
From nobody Sat Jan  2 00:19:59 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2EAB61B2B78 for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:19:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qD5PJ4Mjx0An for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:19:57 -0800 (PST)
Received: from mail-vk0-x236.google.com (mail-vk0-x236.google.com [IPv6:2607:f8b0:400c:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8F27B1B2B74 for <cellar@ietf.org>; Sat,  2 Jan 2016 00:19:57 -0800 (PST)
Received: by mail-vk0-x236.google.com with SMTP id a123so71931755vkh.1 for <cellar@ietf.org>; Sat, 02 Jan 2016 00:19:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=IRXBEOhqv1fHK/VpDlLweo8spRuYzNQGPw6WmfqbbGo=; b=dfqZCJB3IbcefK0uJrHmFMA0Wccf7GkeGWrpevQWec0oXPiGLCAd/x40QaY8nC9PDl YjWiX5ITlCTctysVLY/1zox8sOgK4XfO2geAFXVJ6FJC4DBYh7eK6MYjX963ZwEty1is sa1tEYpVA9QDwhRwcnniwu0WmSgCuMW4e1tqvANa/8/0wgh4sIwHzS5ALLZ/RzkdwZKs VojijcmLfsXkpYmPpNVDjJkFot16m7lUpQfvs0hYV4H+JdkkpB1AyZ0HCz5ZMNIKgRD1 5xQqv3O7iE/UJ17uzm1cJK+SuL7SIR/K7J9r9SF5d2rKHHt5HgTOqXw+ceOZGTaK6dT7 KQBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=IRXBEOhqv1fHK/VpDlLweo8spRuYzNQGPw6WmfqbbGo=; b=OJ1zEIhsQUmuvsUADYSXKbijKW44stFWMq9ZzQa+y0qfxtx8pJ9IYzVeL2dCSy3rZc TD/RODuJkisehvyDAAofttpF55+NxI5C40hXZ4ytn7vrer0oa+icQVE88ysYTJp8/Fto utZKvFt6OHngvLGMvlVRlT+d6ES1qL9MhwZvXz0tzvwO85/+3s5d7DLjQCYUjzJ1bZWY b47JWmby/oXnC4MF3OEk6D+FdYD3fEpq9xy7YA9X9SGS8tTivclHGZaUmY4ArvbVKFOi uUgiOB8J1cx+QypdxYU6OPzD/pKg3N01uTY61cTYbwPGqF6M5xU3K+QA0BOc5Q/UyZLX CSRg==
X-Gm-Message-State: ALoCoQlTDSxacaQ5cIIxMMM2Zu6IBJg22zF1QuOb1+Z+VjyV4t7w3uXjFAWihzEtNbkNzvTYCGEzZzgWHizt/vGRINVjPnmmTg==
MIME-Version: 1.0
X-Received: by 10.31.54.196 with SMTP id d187mr52609908vka.18.1451722796595; Sat, 02 Jan 2016 00:19:56 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sat, 2 Jan 2016 00:19:56 -0800 (PST)
In-Reply-To: <CAC9y1Um99BfDy1LWBjyrkb0_cWSh3HUN=sJoXkjWx2y1HRhzRw@mail.gmail.com>
References: <CAC9y1Um99BfDy1LWBjyrkb0_cWSh3HUN=sJoXkjWx2y1HRhzRw@mail.gmail.com>
Date: Sat, 2 Jan 2016 09:19:56 +0100
Message-ID: <CAOXsMFKtCxFEzK_qmbvPKpWFi+_jukhTSeApHr=N2OEJwbWa=Q@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Nithin Mathew Kurien <nithinmkurien@gmail.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/SkK6uqjGZ0bvJr7okheICjXHINc>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Menu System in Matroska Files
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2016 08:19:59 -0000

2015-12-17 11:41 GMT+01:00 Nithin Mathew Kurien <nithinmkurien@gmail.com>:
> Dear all,
>
> The Matroska specification includes a menu system which is currently
> in a draft state (http://matroska.org/technical/menu/index.html).
> Currently there are no open-source players supporting this feature.

Yes, VLC can handle Matroska files with DVD menus extracted using
DVDMenuXtractor:
https://github.com/Matroska-Org/dvdmenuxtractor

This was a project meant to demonstrate that Matroska menus are
possible. It was never finished though as not all DVD commands were
translated into Matroska menus. It was also done ~10 years ago and
support in VLC might be broken by now.

The idea was to be able to keep all the information contained in a DVD
ISO, but in a different format.

> But there is at least one proprietary format, namely PGMX, a variant
> of MKV, that includes a working menu. These files are created by a
> proprietary TMPGENC PGMX creator and played by a freeware TMPGENC PGMX
> player. A PGMX file also supports including multiple related titles
> inside a single file. Opening this file on open-source players will
> play it as a normal MKV file without menus. There are some samples
> given in their website
> (http://tmpgenc.pegasys-inc.com/en/download/tpxp.html).
>
> I think the menu feature would be a good idea to implement in Matroska
> files and humbly request for the same. I think this feature would be
> useful for content authors who would like to distribute their works
> freely under a Creative Commons license, for example, who would
> otherwise have to adopt proprietary formats like DVD and Blu-ray. I
> understand that implementing a menu system from scratch might involve
> some complexity. In that case, would it be possible to adopt some
> features from the open-source libdvdnav and libbluray?
>
> Thanks and regards,
> Nithin
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Sat Jan  2 00:26:16 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 576961B2B7D for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:26:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zaNa7GWWnOH1 for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:26:14 -0800 (PST)
Received: from mail-vk0-x22b.google.com (mail-vk0-x22b.google.com [IPv6:2607:f8b0:400c:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5C9051B2B7C for <cellar@ietf.org>; Sat,  2 Jan 2016 00:26:14 -0800 (PST)
Received: by mail-vk0-x22b.google.com with SMTP id k1so103378057vkb.2 for <cellar@ietf.org>; Sat, 02 Jan 2016 00:26:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WINMhkpgDYc7wZT1UgEdCi+slIdPmtY/EAfFHefF2ao=; b=qofS66BXPBM0BEyWRfEPF6oISBjBHA3FHXUYl+EJjRZ+G1QEGJ0PU8sUMTUBUZuh9v JVfYe2Djmny8Zal4wd8TSUuIP9e9YbScxZPc9DfcRYY717M5NPsk+SEe2ARKSSBCXshu u1LsERWIO9ZAelhfZB7wda+oy8j0c+VGdSbHqtxIsv1F3XUfcsGDfmnIFHajY6G8C8GN 0q0oMEqEj//kOusVrlVhR9sKK+hgfR7Zn7MRO5z+ZoflSiw17DZOjI1A5/hDK0otwTBO IgOJo5ZhiXTWUv5z6iHV3PhQaokk/qJh20V5ZOY5MZfyHj8kRu4xOS6tChgkJc3JFT9K 1prA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=WINMhkpgDYc7wZT1UgEdCi+slIdPmtY/EAfFHefF2ao=; b=J4olJ1hEhDnXaNwCaPWod87vQ5MsYXHipl7XZkonkTf792/Jrm6pOc+Dr6Vj8qgGoY uTsXubuMaRhScXuvXylDeH1yTWDuD2x8QweRRTz2F//IQm3pd4P0HnpMdibjf5ZhoeBi u0Kmaenm4AEftsvok6MeJy0X+YscwmxZqTa5yCIAV/bSjynMl//50EWvwu1Jr6UvHFsP 1zDrEWV0x0jYboETmgG9m/7mivjEmPjx72vJJSDazAP/tU8QwCOTlif9Y8FsN8/ao/U6 3dAJRO2LfVrdtbItA2vs55xWhY4Ebg2xs6Y36CflEXNkdVzgP6AnJcQQuj/1kjNWGrUi NWWQ==
X-Gm-Message-State: ALoCoQnFkfGJl0dVanI1Y5cRW2HiJBl1Aq1GQZNfFePgmGt0Uf5gR6UtnmX9dw3OKcP45spahR5sreU1oEm75PBI7HVtdnkpjA==
MIME-Version: 1.0
X-Received: by 10.31.134.11 with SMTP id i11mr53941573vkd.152.1451723173457; Sat, 02 Jan 2016 00:26:13 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sat, 2 Jan 2016 00:26:13 -0800 (PST)
In-Reply-To: <CADK0Wuy=wbKzHm9iaAHsx-hCZijkJKOkhL4uDWWRgYCHLd4n5Q@mail.gmail.com>
References: <CADK0Wuy=wbKzHm9iaAHsx-hCZijkJKOkhL4uDWWRgYCHLd4n5Q@mail.gmail.com>
Date: Sat, 2 Jan 2016 09:26:13 +0100
Message-ID: <CAOXsMF+AeFwTiL5UR4a8-hGpD_qtHMpa==WVTmt4Nk+n0Gf3XA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Tessa Fallon <tessa.fallon@gmail.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/d4NKbzrIU7L8KmG83ya1IZlgcnk>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroksa/EBML and GitHub
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2016 08:26:15 -0000

2015-12-29 17:15 GMT+01:00 Tessa Fallon <tessa.fallon@gmail.com>:
> Hi all,
>
> I've been approached by several people about the idea of moving this work as
> it relates to the IETF specifications to a GitHub repository to facilitate
> collaboration.  If there is a group consensus that this would be productive,
> I'm happy to set it up.  I would also like to ask if there might be any
> volunteers willing to administer the account on a day to day basis.  We
> would need to agree on procedures for approving/evaluating pull requests and
> pushing changes before setting up the repository.

Fine with me and it makes total sense.

There is currently an EBML project on SourceForge that was mostly
created to host the specifications outside of the Matroska ones:
http://sourceforge.net/projects/ebml/

I'm fine with moving to Github and I agree discussions should happen
here rather than on Github commits.

> Best,
>
> Tessa
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



-- 
Steve Lhomme
Matroska association Chairman


From nobody Sat Jan  2 00:41:20 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7F3C91B2B8F for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:41:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.621
X-Spam-Level: 
X-Spam-Status: No, score=0.621 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HDuYq_vEeOip for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:41:17 -0800 (PST)
Received: from mail-vk0-x233.google.com (mail-vk0-x233.google.com [IPv6:2607:f8b0:400c:c05::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 62B9A1B2B91 for <cellar@ietf.org>; Sat,  2 Jan 2016 00:41:17 -0800 (PST)
Received: by mail-vk0-x233.google.com with SMTP id f2so191422430vkb.3 for <cellar@ietf.org>; Sat, 02 Jan 2016 00:41:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=sILmP5IIxh/9TtHWQf06nN2okq468pTluHnZEUwMz5k=; b=bK57xeCHWR+W5x8hhtzzOzmI6LebvJrc1Djj+/FDhoT+ajMgnQW7fOpoSusROTnUsG 5IlqsQs8gCcMCtdVnKtF2Ic6dlkiY0X/Q9S4RS4g8vOp0kjGM7hrGvsGZwhy7TJ8hgqD iFO6NCGm6eTiC2VX19sYiZcs8sVUgZLo465l5vJirMJDhmiUfwDrZpwec2077UdMq14y G/zsgOKzvzuRsYZem8v88LEvN85Fwd5sD5QFUE3poN4Wy7MxrwJQyIiWMtfDuAAc3fCu U0Yo36RAcavWkg9Xc0dJ6LejfOdkH0mtpBLGnObF+dFh1UYZ1R3Ao7B1JPVdsE0AeS/W xK6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=sILmP5IIxh/9TtHWQf06nN2okq468pTluHnZEUwMz5k=; b=IkFcDqbF0rvVMwzPCUztWO3IOS4uFHOOXQDs6XPZ85zVgeC+OgOOfJ0aXNHUfOkAfh tcproTjyb6a81hiEjgmkCmvs81rggdtZ6qROsIqBrjV/9NXZKFyPLaYx6M8zSJ3H1KsE nnDJg4u2dIFa1Oj2ljSuZap+qsAK3EmvJGwpvVpGy9zL4LGsPBmHfsKRxfmWK7OxAX0V Vtl/xSkNueAK2ZWLkagPCtdc/NZR867AMqdUWMOlc+jUS5ikH7B7LX+TlpA5lD6ImqWe ba1otdtSalfRJHpmoqgUiiNwJPd7DBfpgAEATVNMT53CCT36m7wP/P+9gy+lDq9W9/ye ufHw==
X-Gm-Message-State: ALoCoQnXbKY1HQHm2donAYNMVliWA+GEjAivZlKbDp0S720dImoj0UBn+ZaoeNpwPUvNn7acZ8gkZwrei9CP9EJdS+EveTqj5w==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr54251491vkd.87.1451724076292; Sat, 02 Jan 2016 00:41:16 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sat, 2 Jan 2016 00:41:16 -0800 (PST)
In-Reply-To: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com>
Date: Sat, 2 Jan 2016 09:41:16 +0100
Message-ID: <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/gmPd9NkADwWZGAQGFsFgRUcyIeg>
Cc: cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2016 08:41:19 -0000

I'd say the reference here is libebml. It may be the only
implementation that handles CRC32.

2015-12-30 1:10 GMT+01:00 Dave Rice <dave@dericed.com>:
> The EBML CRC Element has many contradictory definitions.
>
> Version 1: The Matroska draft states:
>
> "The CRC is computed on all the data of the Master element it's in. The C=
RC element should be the first in it's parent master for easier reading. Al=
l level 1 elements should include a CRC-32. The CRC in use is the IEEE CRC3=
2 Little Endian"
>
> Version 2: An older Matroska draft at http://matroska.org/technical/specs=
/rfc/index.html states:
>
> "The CRC32 container can be placed around any EBML element or elements. T=
he value stored in CRC32Value is the result of the CRC-32 [CRC32] checksum =
performed on the other child elements.
>      CRC32 :=3D c3 container [ level:1..; card:*; ] {
>        %children;
>        CRC32Value :=3D 42fe binary [ size:4; ]
>      }=E2=80=9D
>
> Version 3: The EBML draft states:
>
> "The CRC is computed on all the data from the last CRC element (or start =
of the upper level element), up to the CRC element, including other previou=
s CRC elements. All level 1 elements SHOULD include a CRC-32."
>
> Issue with Version 1:
> Usually the Matroska version is considered authoritative since that docum=
entation was the most maintained; however, in this case the Matroska defini=
tion doesn=E2=80=99t make sense as it implies that the CRC Element is docum=
enting a CRC value of data that includes the CRC Element itself.
>
> Issue with Version 2:
> This definition refers the CRC Element as a Master-element (aka =E2=80=9C=
container=E2=80=9D) with a sub-element (called =E2=80=9CCRC32Value" 0x42FE)=
 that contains the hash. AFAIK there has never been such an implementation.=
 Additionally this draft does not have an open license.
>
> Issues with Version 3:
>
> I think there is a typo and that: "All level 1 elements SHOULD include a =
CRC-32=E2=80=9D should be "All level 1 Master-elements SHOULD include a chi=
ld CRC Element.=E2=80=9D
> The procedure for using multiple CRC Elements within a single Master-elem=
ent seems very inefficient with each subsequent CRC representing the data o=
f all prior CRC Elements within the same Parent Element. This is like a rol=
ling checksum although I=E2=80=99m not sure that is what was intended.
> Also the definition implies that the CRC element can occur multiple times=
 within the parent element while the definition in both EBML and Matroska c=
larifies that CRC is not a =E2=80=98multiple' element.
>
> So, can we clarify the following:
>
> - The CRC Element may only occur 0 or 1 times as a child element of a Mas=
ter-Element.

Agreed.

> - That the CRC Element is a binary element and not a Master-element

Correct

> - There is no definition for a CRC32Value element

The code in libebml assumes the element can be anywhere and the value
is processed in memory on all the data of the Master element minus the
Checksum itself.
https://github.com/Matroska-Org/libebml/blob/master/src/EbmlMaster.cpp#L537

That seems not practical, especially because of the in-memory step.
There are also a TODO that raises some issues with Checksum:
  /// \todo find another way when not all default values are saved or
(unknown from the reader !!!)


> - Is there a placement requirement or suggestion for the use of the CRC e=
lement within a parent (i.e. "should be the first in it's parent master=E2=
=80=9D)

IMO it should be first. It doesn't make sense to signal it at the end.
Either it's present and first or it's not there. Hopefully that will
be the only element that needs to come first.

> - What data exactly does the CRC value represent?
>         All Element Data of the parent element (unfeasible)?

It's feasible, although that implies knowing you need to process the
checksum while doing the children, if you don't want to do a fake
render in memory afterwards.

>         The entire Parent Element (including the parent=E2=80=99s Element=
 ID, Element Data Size, and Element Data) (also unfeasible)?

IMO only the data inside the Master element it's contained.

>         All Element Data of the parent element excepting the child CRC el=
ement?
>         The entire Parent Element (including the parent=E2=80=99s Element=
 ID, Element Data Size, and Element Data) excepting the child CRC element?
>         All data from the beginning of the Master-element up to the begin=
ning of the CRC Element?
>         All data from the beginning of the Master-element=E2=80=99s Eleme=
nt Data up to the beginning of the CRC Element?

It should also be the data as they are rendered, meaning elements not
written (default) or with a 0 size (default value) should be processed
as they are written in the file, and not as they might be represented
in memory. That should make some CRC tools work even without knowing
the semantic.

> I understand these clarifications have an impact on the validity of exist=
ing EBML implementations, but I=E2=80=99ve rarely seen any implementation o=
f the EBML CRC element (better documentation may encourage such implementat=
ions ;)
>
> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Sat Jan  2 00:47:51 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F09041A6F62 for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:47:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W50iaQXRzit4 for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:47:49 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C27131A03AB for <cellar@ietf.org>; Sat,  2 Jan 2016 00:47:48 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id k1so103481811vkb.2 for <cellar@ietf.org>; Sat, 02 Jan 2016 00:47:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=CF3yEaMmQooxFjzkiTahnKCb+nqxJkS08+Y12idaifM=; b=GwsMH6G9hKLte7zXpZCuHVhu6cQlJPg4PrX17qdt7373P8ZIlz0oB9g7z2IlA7R7vi wkTMSlcWvO6Zt2/V3pzTnCufqoS8GmHlYBdQqlFtyHI7Hy0YBhb95wWpgEGqwacx7bNX I2rEGHK8X+G4zR2Cp0gDU94T7G/9v4zFxhCASG9TitxVJloSS0geEZ+NQ8FuNwzr/nnG g1DqTdzgvbV92wBYpgQurLQRnUhoTH+OIZH6A7kDxY1SQ7IHqhoGNMtZDmnHUAIgBRuz KQfWTvXUP9FRb/2SOgNrXIBANJv4MvXAH53RGVuU+Vb7U6UIsi0Sms1FV7CvCdReA6Yd 4FLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=CF3yEaMmQooxFjzkiTahnKCb+nqxJkS08+Y12idaifM=; b=ZLD+sNeSvFjlFdCj3U22XyFGnSt7QJpjI7gSQt0r5s60ABh/EFCCWjbo91Eq/z2Gnb ndIqI3PuZdqftyneDdGGYrL38P/gsoZeBg8Y/01DjUOUeXfSjPRUr9cyImMS2qptk1Xi jPzO0fplbt3HH85ntYGbBpwFLSRD80qDjy3kCymgNJsjk0umT0iiepCnFXueRke4WGlI 0yt5zL5dLRE5gHWJ33EBruCNccuHVJtXOWyNJnxSyzqmFS/+gvmUXKsdi0lBsYQWizTn RyPHtoWDwZt3zImMB/I+05FLu0kLscMbF78CVnYOEb39kVBNHHRWz1oTAg/y2no0M/iT WdTA==
X-Gm-Message-State: ALoCoQlKO7rdsO1X3fpebSxPE0/scY4TX5cP6sAcG7pfgBAE90m3iHhvncIup/Q5/qhagkD6ZX2Xc4sUawoPevODkKqafDtrmA==
MIME-Version: 1.0
X-Received: by 10.31.54.196 with SMTP id d187mr52676101vka.18.1451724467944; Sat, 02 Jan 2016 00:47:47 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sat, 2 Jan 2016 00:47:47 -0800 (PST)
In-Reply-To: <20151230091811.GA19636@bunkus.org>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org>
Date: Sat, 2 Jan 2016 09:47:47 +0100
Message-ID: <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Moritz Bunkus <moritz@bunkus.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/W3K7PGhifMNT1SkBEobsRgANizY>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2016 08:47:50 -0000

2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
> Hey,
>
> I only remember the discussion around Tracks being multiple, not
> particularly for the other ones. Our intent way back when was to allow
> muxers to write multiple instances of _the same information_ in
> different places in order to make the file more resilient against
> damage or incomplete downloads with protocols like BitTorrent.

Yes, that's the idea for the Track Info as it's vital to the usability
of the file, as well as the Segment Info. I'm not sure it's used in
practice though.
Since the goal of CELLAR is archiving solutions it may still make sense.

> The same reasoning could be applied to Info. Both elements are
> absolutely crucial to playback; the other level 1 elements safe for the
> clusters simply aren't.
>
>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>
> SeekHead and Cluster must be multiple. SeekHead in order to allow moving
> a SeekHead to the end of the file while still referencing it from the
> start (so that normal players will still find it quickly). Cluster for
> obvious reasons.
>
>> And Cues, Attachments, and Chapters are non-multiple.
>
> I have no idea why Tags is multiple and these three aren't.
>
> To me the following would make sense:
>
> - Info, Tracks =E2=80=93 multiple but only if each instance contains the =
same
>   information
>
> - SeekHead, Cluster =E2=80=93 multiple without restrictions
>
> - Attachments, Chapters, Cues, Tags =E2=80=93 single
>
> Kind regards,
> mosu
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Sat Jan  2 00:53:13 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B83A1B2B97 for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:53:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.621
X-Spam-Level: 
X-Spam-Status: No, score=0.621 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id agEH3uorFyxn for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 00:53:10 -0800 (PST)
Received: from mail-vk0-x22b.google.com (mail-vk0-x22b.google.com [IPv6:2607:f8b0:400c:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 44E231B2B93 for <cellar@ietf.org>; Sat,  2 Jan 2016 00:53:10 -0800 (PST)
Received: by mail-vk0-x22b.google.com with SMTP id a188so231649152vkc.0 for <cellar@ietf.org>; Sat, 02 Jan 2016 00:53:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=0LpVdSrVKgPvbZwMrszsCe1ojJ7brwga9ncpEjQRZCE=; b=RJZSbU6tZpcTKgWsmxggEdYTlfBfZrVL4sb2V7ToJUAOqCst1Z3WqbsilX67x13RSP 74b6xDOqX6QW83ULtn6GFacwW7N5PHfNnKr6QNmPCdVg4rIiAjooZJbl8mLrPnnrP1BO nl8DPH7f0sIHopZv60Y6NuE5/Drz+OaC9H+PW5oUkVh7W+5+9Hin4TVEnvmH/7Ae7b/9 WvS5Rrtl8GLqKcWgzL9/Z/3mShkG0FfJwkBSgzwNarfLhr2qy2+lTRQX7xxSQ9CwJgn5 sPYoVZfr+f7xTWI2k+UycNl24GedM5GhoggZeqBT79GFylubASyfXem68+xc5dQO24wo oUwg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=0LpVdSrVKgPvbZwMrszsCe1ojJ7brwga9ncpEjQRZCE=; b=AjtJLyb3uIUwVq7SyCFPq3PIyobnhFep/uUomVYJDhXTs3OzQ9rsic1xk39IIBSu3G R3/fXBn8wgTdZZ+2w4ZwFLV6xe3v3quOB0mS8R2rMHQUCcoIFKDV97AHuCr5Mf6TcQ8S 6BLSRmdu7MQC3kMpL+EatdrrFs4Q5qaPjz08unQ6lTOb5P4B13lDbvT4/k0sEXcqIZ1l YmtDyZYv/kW5nUwFgXSo80I+KN7Nd+cfytuckRQK1HRntPOkXfnPXWVP3VA4jwNGOBk3 JwIaEe+EtvXifLipNJuZIO80S1Wp50M5y7W62RELrj4xxDh48x0obDiY5lOj1ii3d2Sh 2iVg==
X-Gm-Message-State: ALoCoQljTMzlEJ4imB0OfqkMOrKEZn2Dl2vWmFfXdrFwPZbu6rBRVPJQsF9w35FwgywfZCEgHo3U/JkItsqcWt7ow5j/kzl9aw==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr54279340vkd.87.1451724789467; Sat, 02 Jan 2016 00:53:09 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sat, 2 Jan 2016 00:53:09 -0800 (PST)
In-Reply-To: <2E9579A9-D970-487D-9B37-5DAD9BDD373A@dericed.com>
References: <D0C51AF0-4D38-4D05-8117-A6C25AD10861@dericed.com> <20151230135402.GA3828@bunkus.org> <2E9579A9-D970-487D-9B37-5DAD9BDD373A@dericed.com>
Date: Sat, 2 Jan 2016 09:53:09 +0100
Message-ID: <CAOXsMFL4jA74ceqwcoy02CEAaeWj5pgVug=sn+1VNbbT_+vMAA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/MH2m8_5c5HgbHm5L5b9VqxWTcKM>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] [PATCH 1/2] Set VOID Element as multiple in EBML spec
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2016 08:53:11 -0000

2015-12-30 14:56 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Dec 30, 2015, at 8:54 AM, Moritz Bunkus <moritz@bunkus.org> wrote:
>>
>> Hey,
>>
>> +1. mkvmerge uses voids a lot, definitely multiple ones per
>> parent. Apart from current, actual use the void's raison d'=C3=AAtre is =
to be
>> able to overwrite existing elements and placing their content somewhere
>> else without invalidating the whole file (and without having to re-write
>> it completely). Therefore voids should be made plural.
>>
>> I wasn't even aware they currently weren't=E2=80=A6
>>
>> The patch itself LGTM.

Apart from the patch being in 2 parts, the changes themselves are good.
We should generate new EBML semantic source code after these changes.

> I sent the patch via PR as well. I=E2=80=99m surprised that mkvalidator w=
asn=E2=80=99t complaining non-stop about this restriction.

That may be because libebml (and libebml2) treat void and nested
elements differently than normal elements. That's something that
should be fixed for nested elements that can only appear once (if that
ever makes sense).

> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Sat Jan  2 01:06:09 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F050C1B2BA4 for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 01:06:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iJ3w4tB-YcXH for <cellar@ietfa.amsl.com>; Sat,  2 Jan 2016 01:06:06 -0800 (PST)
Received: from mail-vk0-x230.google.com (mail-vk0-x230.google.com [IPv6:2607:f8b0:400c:c05::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7F7511B2BA3 for <cellar@ietf.org>; Sat,  2 Jan 2016 01:06:06 -0800 (PST)
Received: by mail-vk0-x230.google.com with SMTP id k1so103571545vkb.2 for <cellar@ietf.org>; Sat, 02 Jan 2016 01:06:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=o8+xwmNWA0Jjvgz0tZqL1XkDPtG3yBs3Q6VbW/tiov0=; b=Aco3C43b+rSNNeiTHfpvfD2fvBJdFUDEqamy1lbVppl9rueDEwl5UKNGf/BMpwKOqv 0rv/XvgGXDkSCFz2L73k7CorwuXt93bK2Qx2nkhOoa7zCaGYT/fRUuG8KDrcUqxlroKY /YkFBrLslktFlR3wkjyjkklf8GXTbmz8OOLVZA1fhFc/olIT4kuP/hLtLhojYsW01Tyc jsonrvLLidZziatdbixVr//UWEZOJFtgM4gRdDMivGceDzV4HWJc6+ntJICsaAkR1ERj FaEYC0KKu+Ind/XCQMOQWtt62MZkHHZcGHXPYrFVZG+aruFVtkUGxl/NgtOmPQ5uog6y 9zhg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=o8+xwmNWA0Jjvgz0tZqL1XkDPtG3yBs3Q6VbW/tiov0=; b=OTMX2KsBc57GXZ9lJAtUeFtacYaMHuVQMycRaGKB+vCKGR1bLsBbctTmPKNwSGrSYh o8FDWQJvu40/1tgj913vGqQz9xZitoWCFQw8kOO50Rw3MrynUFy2L1zCleFq3UACj582 2PUld37+cdxVcoQQtk3nUE4OMEeFAsiYINqr+hvVoVp+U6UFzA2uJwp5rNqu3BXa/PRa KwRxrBDXXPuOHg0xyt8hXXyUC7sx/4y5q0SKvXlAGrlGyPsLtcPv8UxRTPcxGi1AdKF1 zXgnuzqraeAZ+XhnLJ5khjvAYe9haDtA+VUpJnGbyU8sIWEVXnqTrqYnZfxRoX0pkKQ+ /U8Q==
X-Gm-Message-State: ALoCoQlb+pszfNiPR//ZBijqt31pYTAHOSD5XjEDX9UlE8RSOD0gl0xzLegzaQofIDlaSVeYHmw0QV4tLs/1D7Rl6swJ/+z5ow==
MIME-Version: 1.0
X-Received: by 10.31.47.130 with SMTP id v124mr52833045vkv.117.1451725565684;  Sat, 02 Jan 2016 01:06:05 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sat, 2 Jan 2016 01:06:05 -0800 (PST)
In-Reply-To: <20151231083323.GB15920@bunkus.org>
References: <C4021E89-45C0-4DC8-BD60-9072469D1F39@dericed.com> <20151231083323.GB15920@bunkus.org>
Date: Sat, 2 Jan 2016 10:06:05 +0100
Message-ID: <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Moritz Bunkus <moritz@bunkus.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/JnnA66nUt7M7_48Jzf4j2ny-4nE>
Cc: cellar@ietf.org
Subject: Re: [Cellar] test4.mkv and EBML Elements with Unknown Size
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 02 Jan 2016 09:06:08 -0000

2015-12-31 9:33 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
> Hey,
>
>> The Matroska Test file suite is at
>> http://matroska.org/downloads/test_w1.html. This includes test4.mkv
>> which is an example of a live stream recording. However the file
>> doesn=E2=80=99t appear to adhere to the EBML specs. It the file written =
wrong
>> or are we missing something in the EBML specification?
>>
>> Within this file is this extract from the beginning of the Segment
>> element to the end of the Element ID of the Info Element.
>>
>> 18 53 80 67 FF 0A 0A 0A=E2=80=A6
>
> Uhm=E2=80=A6 this is indeed invalid. A master must only contain child ele=
ments,
> not additional data. To put it differently: all child elements of a
> master element must cover the whole space occupied by the master without
> any gaps in between.

Did we handle that part in the newer specs ? It makes sense. But is it
possible that one byte is missing from a file ? If so the whole thing
becomes unusable just because of that missing byte. If it's at the end
of a master or an non vital element, it should not matter too much.
But that's a tricky thing to detect (an extra byte is easier).
Transfers over UDP may have these gaps of data.

Also the segment being of unknown/infinite size, anything is contained
within, unless a new Segment comes.

> I honestly don't know that file was created. libmatroska contains
> programs to create a couple of those files in its "tests" sub-directory,
> but test4 is not among them. Judging from the download page you've
> linked it's possible that the file was created with mkclean =E2=80=93 in =
that
> case I would say that mkclean produces non-compliant files.
>
> Steve?

IIRC it was created manually with a hex editor.

>> I understand that 0x18538067 is the Element ID of the Segment Element.
>>
>> The 0xFF represents the case where as the EBML draft spec states, "An
>> Element Data Size with all VINT_DATA bits set to one is reserved as an
>> indicator that the size of the Element is unknown.=E2=80=9D
>
> Correct.
>
>> Next, between the Element Data Size of the Segment Element and the
>> beginning of the Info Element there is 134 bytes of 0x0A! In this case
>> 0x0A can not be a valid start of an Element ID since for this file the
>> EBMLMaxIDLength is 4 (via the default). Thus the Segment
>> Master-element has child data that is not an EBML Element.
>
> Correct.
>
> Like I said, invalid.
>
> I definitely do not want to adjust the specs to allow arbitrary data in
> arbitrary places that a parser has to be able to skip over.

But that's not what this file is about. It's about error recovery. A
proper parser should treat all the 0A as garbage and look for some
proper data. That's what libebml does.

This file was inspired by the live streaming mode of GStreamer that
sends the header (Segment Info + Track Info) and whatever matroska
data comes after. Including the remaining of the Cluster that's
currently streaming. That part should be treated as garbage (and
luckily there is no false alarm of valid Level1+size elements in the
garbage data).

> Kind regards,
> mosu
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Sun Jan  3 07:53:19 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 19B481ACE1D for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 07:53:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0pMc2hW9my-l for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 07:53:16 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B04521ACE1B for <cellar@ietf.org>; Sun,  3 Jan 2016 07:53:16 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:43318 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aFky1-002Ybr-As; Sun, 03 Jan 2016 10:53:15 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com>
Date: Sun, 3 Jan 2016 10:53:11 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3096.5)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/1r8M7eKvkKBj54n2OfGhEuB7xm8>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Jan 2016 15:53:18 -0000

> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>> Hey,
>>=20
>> I only remember the discussion around Tracks being multiple, not
>> particularly for the other ones. Our intent way back when was to =
allow
>> muxers to write multiple instances of _the same information_ in
>> different places in order to make the file more resilient against
>> damage or incomplete downloads with protocols like BitTorrent.
>=20
> Yes, that's the idea for the Track Info as it's vital to the usability
> of the file, as well as the Segment Info. I'm not sure it's used in
> practice though.
> Since the goal of CELLAR is archiving solutions it may still make =
sense.

Perhaps to declare that an Element may be repeated but must be repeated =
identically should be a new EBML Element Attributes, so there can be a =
distinction between the repeatability Segment/Info and the repeatability =
of SimpleBlock.

>> The same reasoning could be applied to Info. Both elements are
>> absolutely crucial to playback; the other level 1 elements safe for =
the
>> clusters simply aren=E2=80=99t.

But what should happen when the read finds differences in =
repeated-but-should-be-identical elements?

For a scenario of two differing Info Elements, VLC and FFmpeg use =
different Info Elements. Which use is correct? Since the use of =
repeated-identical elements is resilience a deviation between the two =
could be expected, so we should suggest how the reader should respond.

>>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>>=20
>> SeekHead and Cluster must be multiple. SeekHead in order to allow =
moving
>> a SeekHead to the end of the file while still referencing it from the
>> start (so that normal players will still find it quickly). Cluster =
for
>> obvious reasons.
>>=20
>>> And Cues, Attachments, and Chapters are non-multiple.
>>=20
>> I have no idea why Tags is multiple and these three aren't.
>>=20
>> To me the following would make sense:
>>=20
>> - Info, Tracks =E2=80=93 multiple but only if each instance contains =
the same
>>  information
>>=20
>> - SeekHead, Cluster =E2=80=93 multiple without restrictions
>>=20
>> - Attachments, Chapters, Cues, Tags =E2=80=93 single

I can understand Attachments and Tags being multiple as it could allow =
attachments or tags to be added to a file without having to re-write too =
many bytes.

Dave=


From nobody Sun Jan  3 10:11:28 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9345F1ACF54 for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 10:11:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sjVO7tryF1Sr for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 10:11:24 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E160C1ACF24 for <cellar@ietf.org>; Sun,  3 Jan 2016 10:11:24 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:46675 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aFn7h-001mwy-QJ; Sun, 03 Jan 2016 13:11:23 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFL4jA74ceqwcoy02CEAaeWj5pgVug=sn+1VNbbT_+vMAA@mail.gmail.com>
Date: Sun, 3 Jan 2016 13:11:18 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <24795AA9-2E7D-4B29-B494-ADA7E29AF6AF@dericed.com>
References: <D0C51AF0-4D38-4D05-8117-A6C25AD10861@dericed.com> <20151230135402.GA3828@bunkus.org> <2E9579A9-D970-487D-9B37-5DAD9BDD373A@dericed.com> <CAOXsMFL4jA74ceqwcoy02CEAaeWj5pgVug=sn+1VNbbT_+vMAA@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3096.5)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/vv-BWN2TIz4x2Mb34nuFua722Ds>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] [PATCH 1/2] Set VOID Element as multiple in EBML spec
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Jan 2016 18:11:26 -0000

Hi Steve,

> On Jan 2, 2016, at 3:53 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> 2015-12-30 14:56 GMT+01:00 Dave Rice <dave@dericed.com>:
>>=20
>>> On Dec 30, 2015, at 8:54 AM, Moritz Bunkus <moritz@bunkus.org> =
wrote:
>>>=20
>>> Hey,
>>>=20
>>> +1. mkvmerge uses voids a lot, definitely multiple ones per
>>> parent. Apart from current, actual use the void's raison d'=C3=AAtre =
is to be
>>> able to overwrite existing elements and placing their content =
somewhere
>>> else without invalidating the whole file (and without having to =
re-write
>>> it completely). Therefore voids should be made plural.
>>>=20
>>> I wasn't even aware they currently weren't=E2=80=A6
>>>=20
>>> The patch itself LGTM.
>=20
> Apart from the patch being in 2 parts, the changes themselves are =
good.
> We should generate new EBML semantic source code after these changes.

Is it possible/sane to send a single patch that affects two different =
repositories? Patch 1 is for the EBML draft spec at =
https://github.com/Matroska-Org/ebml-specification and Patch 2 =
synchronizes the same change (setting Void to multiple) in =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml of the foundation-source repo.

>> I sent the patch via PR as well. I=E2=80=99m surprised that =
mkvalidator wasn=E2=80=99t complaining non-stop about this restriction.
>=20
> That may be because libebml (and libebml2) treat void and nested
> elements differently than normal elements. That's something that
> should be fixed for nested elements that can only appear once (if that
> ever makes sense).

Coincidentally all nested elements in Matroska are also allowed to =
repeat, so this only affects Void (for now).
Dave=


From nobody Sun Jan  3 13:50:20 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2CCE91A1A1D for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 13:50:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wZBB3cXvjHAu for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 13:50:13 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 815B61A1A19 for <cellar@ietf.org>; Sun,  3 Jan 2016 13:50:13 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:39966 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aFqXQ-002j3a-JI; Sun, 03 Jan 2016 16:50:12 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com>
Date: Sun, 3 Jan 2016 16:50:05 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <84C35B47-B124-4FCE-ABDE-A0EEC19E373E@dericed.com>
References: <C4021E89-45C0-4DC8-BD60-9072469D1F39@dericed.com> <20151231083323.GB15920@bunkus.org> <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3096.5)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/dP3dKzg3XqrkNnrDTC050bdl_iA>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] test4.mkv and EBML Elements with Unknown Size
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 03 Jan 2016 21:50:16 -0000

Hi,

> On Jan 2, 2016, at 4:06 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> 2015-12-31 9:33 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>> Hey,
>>=20
>>> The Matroska Test file suite is at
>>> http://matroska.org/downloads/test_w1.html. This includes test4.mkv
>>> which is an example of a live stream recording. However the file
>>> doesn=E2=80=99t appear to adhere to the EBML specs. It the file =
written wrong
>>> or are we missing something in the EBML specification?
>>>=20
>>> Within this file is this extract from the beginning of the Segment
>>> element to the end of the Element ID of the Info Element.
>>>=20
>>> 18 53 80 67 FF 0A 0A 0A=E2=80=A6
>>=20
>> Uhm=E2=80=A6 this is indeed invalid. A master must only contain child =
elements,
>> not additional data. To put it differently: all child elements of a
>> master element must cover the whole space occupied by the master =
without
>> any gaps in between.
>=20
> Did we handle that part in the newer specs ? It makes sense.

Partly, in the EBML Document section, =
https://github.com/Matroska-Org/ebml-specification/blob/master/specificati=
on.markdown#ebml-document, it states: "An EBML Document MAY only consist =
of EBML Elements and MUST NOT contain any data that is not part of an =
EBML Element.=E2=80=9D But this refers to the EBML Document as a whole =
and not the sub-elements.

The Master-element definition says: =E2=80=9CThe Master-element contains =
zero, one, or many other elements.=E2=80=9D But the language is not =
exclusive to say that the Master-element may ONLY contain zero, one, or =
many other elements.

I propose to add to the Master-element definition the line: =E2=80=9CThe =
Element Data stored within Master-elements MUST only consist of EBML =
Elements and MUST NOT contain any data that is not part of an EBML =
Element.=E2=80=9D I send this as a pull request here =
https://github.com/Matroska-Org/ebml-specification/pull/45. The patch is =
here:

=46rom ba9973706d35934ea4c5e8f50d66d5ac3f725fd2 Mon Sep 17 00:00:00 2001
From: dericed <dave@dericed.com>
Date: Sun, 3 Jan 2016 16:29:43 -0500
Subject: [PATCH] clarify that Master-elements may only contain elements

---
 specification.markdown | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/specification.markdown b/specification.markdown
index b90020c..4159bdb 100644
--- a/specification.markdown
+++ b/specification.markdown
@@ -141,7 +141,7 @@ Element Data Type:   Master-element
=20
     Endianness:     None
     Length:         A Master-element may declare any length (included =
zero) up to the maximum Element Data Size value permitted. The =
Master-element may also use an unknown length. See the section on =
Element Data Size for rules that apply to elements of unknown length.
-    Definition:     The Master-element contains zero, one, or many =
other elements. Elements contained within a Master-element must be =
defined for use at levels greater than the level of the Master-element. =
For instance is a Master-element occurs on level 2 then all contained =
Elements must be valid at levels 3.
+    Definition:     The Master-element contains zero, one, or many =
other elements. The Element Data stored within Master-elements MUST only =
consist of EBML Elements and MUST NOT contain any data that is not part =
of an EBML Element. Elements contained within a Master-element must be =
defined for use at levels greater than the level of the Master-element. =
For instance is a Master-element occurs on level 2 then all contained =
Elements must be valid at levels 3.
=20
 Element Data Type:   Binary
=20
--=20
2.6.4

> But is it
> possible that one byte is missing from a file ? If so the whole thing
> becomes unusable just because of that missing byte. If it's at the end
> of a master or an non vital element, it should not matter too much.
> But that's a tricky thing to detect (an extra byte is easier).
> Transfers over UDP may have these gaps of data.

These suggestions may pertain more to suggestions on a parser than for =
the specification.

> Also the segment being of unknown/infinite size, anything is contained
> within, unless a new Segment comes.

According to the current EBML draft spec: "The end of the Master-element =
is determined by the beginning of the next element that is not a valid =
sub-element of the Master-element.=E2=80=9D I realize that this need a =
little more clarity so I added this patch to the same pull request =
referenced above.

=46rom 64bc489282a51891535815e0cea4d00b42c25564 Mon Sep 17 00:00:00 2001
From: dericed <dave@dericed.com>
Date: Sun, 3 Jan 2016 16:37:50 -0500
Subject: [PATCH] clarification on the end of Master-elements

---
 specification.markdown | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/specification.markdown b/specification.markdown
index 4159bdb..e1b6857 100644
--- a/specification.markdown
+++ b/specification.markdown
@@ -71,7 +71,7 @@ The Element Data Size expresses the length in octets =
of Element Data. The Elemen
=20
 Although an Element ID with all VINT\_DATA bits set to zero is invalid, =
an Element Data Size with all VINT\_DATA bits set to zero is allowed for =
EBML Data Types which do not mandate a non-zero length. An Element Data =
Size with all VINT\_DATA bits set to zero indicates that the Element =
Data of the Element is zero octets in length. Such an Element is =
referred to as an Empty Element. If an Empty Element has a `default` =
value declared then that default value MUST be interpreted as the value =
of the Empty Element. If an Empty Element has no `default` value =
declared then the semantic meaning of Empty Element is defined as part =
of the definition of the EBML Element Types.
=20
-An Element Data Size with all VINT\_DATA bits set to one is reserved as =
an indicator that the size of the Element is unknown. The only reserved =
value for the VINT\_DATA of Element Data Size is all bits set to one. =
This rule allows for an Element to be written and read before the size =
of the Element is known; however unknown Element Data Size values SHOULD =
NOT be used unnecessarily. An Element with an unknown Element Data Size =
MUST be a Master-element in that it contains other EBML Elements as =
sub-elements. The end of the Master-element is determined by the =
beginning of the next element that is not a valid sub-element of the =
Master-element.
+An Element Data Size with all VINT\_DATA bits set to one is reserved as =
an indicator that the size of the Element is unknown. The only reserved =
value for the VINT\_DATA of Element Data Size is all bits set to one. =
This rule allows for an Element to be written and read before the size =
of the Element is known; however unknown Element Data Size values SHOULD =
NOT be used unnecessarily. An Element with an unknown Element Data Size =
MUST be a Master-element in that it contains other EBML Elements as =
sub-elements. The end of a Master-element with unknown size is =
determined by the beginning of the next element that is not a valid =
sub-element of that Master-element.
=20
 For Element Data Sizes encoded at octet lengths from one to eight, this =
table depicts the range of possible values that can be encoded as an =
Element Data Size. An Element Data Size with an octet length of 8 is =
able to express a size of 2^56-2 or 72,057,594,037,927,934 octets (or =
about 72 petabytes).
=20
--=20
2.6.4


>> I honestly don't know that file was created. libmatroska contains
>> programs to create a couple of those files in its "tests" =
sub-directory,
>> but test4 is not among them. Judging from the download page you've
>> linked it's possible that the file was created with mkclean =E2=80=93 =
in that
>> case I would say that mkclean produces non-compliant files.
>>=20
>> Steve?
>=20
> IIRC it was created manually with a hex editor.
>=20
>>> I understand that 0x18538067 is the Element ID of the Segment =
Element.
>>>=20
>>> The 0xFF represents the case where as the EBML draft spec states, =
"An
>>> Element Data Size with all VINT_DATA bits set to one is reserved as =
an
>>> indicator that the size of the Element is unknown.=E2=80=9D
>>=20
>> Correct.
>>=20
>>> Next, between the Element Data Size of the Segment Element and the
>>> beginning of the Info Element there is 134 bytes of 0x0A! In this =
case
>>> 0x0A can not be a valid start of an Element ID since for this file =
the
>>> EBMLMaxIDLength is 4 (via the default). Thus the Segment
>>> Master-element has child data that is not an EBML Element.
>>=20
>> Correct.
>>=20
>> Like I said, invalid.
>>=20
>> I definitely do not want to adjust the specs to allow arbitrary data =
in
>> arbitrary places that a parser has to be able to skip over.
>=20
> But that's not what this file is about. It's about error recovery. A
> proper parser should treat all the 0A as garbage and look for some
> proper data. That's what libebml does.

To be clear. In this case, the file has a MaxIDLength of 4 and thus 0x0A =
(aka 0b00001010) is invalid as the first byte of an Element ID. So is =
this correct logic?

For a generic EBML parser:
It should skip the invalid 0x0A bytes, because they are not valid =
Element IDs according to the MaxIDLength. In this case it should then =
skip ahead to the Info Element.

For a Matroska parser:
It should skip the invalid 0x0A bytes until it encounters the first =
valid Element iD of an Element that may be a child Element of Segment?

> This file was inspired by the live streaming mode of GStreamer that
> sends the header (Segment Info + Track Info) and whatever matroska
> data comes after. Including the remaining of the Cluster that's
> currently streaming. That part should be treated as garbage (and
> luckily there is no false alarm of valid Level1+size elements in the
> garbage data).

The use of 32 bit Element IDs at Level 1 of Matroska makes more sense =
with this logic. A false alarm should be rare with garbage.

With the example provided, the EBML Stream structure would be

EBML/
Segment/
	Info/
	Track/
	<<< GARBAGE FRAGMENTARY CLUSTER >>>
	Cluster/

Should this be considered a valid EBML Stream? The pull request =
reference makes this invalid, otherwise the spec is very unclear about =
the presence of garbage, non Element Data within a Master-element.

>> Kind regards,
>> mosu

[...]

> Steve Lhomme
> Matroska association Chairman

Dave Rice


From nobody Sun Jan  3 19:31:12 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D28CA1B2A52 for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 19:31:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ei6W2YkG9JI6 for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 19:31:08 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8B2161B2A50 for <cellar@ietf.org>; Sun,  3 Jan 2016 19:31:08 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:46321 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aFvrL-002Yg8-RG; Sun, 03 Jan 2016 22:31:07 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com>
Date: Sun, 3 Jan 2016 22:31:00 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3096.5)
X-OutGoing-Spam-Status: No, score=-0.2
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/tCKkDhbzk6-tSDRUCdU_d-m6H2o>
Cc: cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 03:31:11 -0000

Hi,

> On Jan 2, 2016, at 3:41 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> I'd say the reference here is libebml. It may be the only
> implementation that handles CRC32.
>=20
> 2015-12-30 1:10 GMT+01:00 Dave Rice <dave@dericed.com>:
>> The EBML CRC Element has many contradictory definitions.
>>=20
>> Version 1: The Matroska draft states:
>>=20
>> "The CRC is computed on all the data of the Master element it's in. =
The CRC element should be the first in it's parent master for easier =
reading. All level 1 elements should include a CRC-32. The CRC in use is =
the IEEE CRC32 Little Endian"
>>=20
>> Version 2: An older Matroska draft at =
http://matroska.org/technical/specs/rfc/index.html states:
>>=20
>> "The CRC32 container can be placed around any EBML element or =
elements. The value stored in CRC32Value is the result of the CRC-32 =
[CRC32] checksum performed on the other child elements.
>>     CRC32 :=3D c3 container [ level:1..; card:*; ] {
>>       %children;
>>       CRC32Value :=3D 42fe binary [ size:4; ]
>>     }=E2=80=9D
>>=20
>> Version 3: The EBML draft states:
>>=20
>> "The CRC is computed on all the data from the last CRC element (or =
start of the upper level element), up to the CRC element, including =
other previous CRC elements. All level 1 elements SHOULD include a =
CRC-32."
>>=20
>> Issue with Version 1:
>> Usually the Matroska version is considered authoritative since that =
documentation was the most maintained; however, in this case the =
Matroska definition doesn=E2=80=99t make sense as it implies that the =
CRC Element is documenting a CRC value of data that includes the CRC =
Element itself.
>>=20
>> Issue with Version 2:
>> This definition refers the CRC Element as a Master-element (aka =
=E2=80=9Ccontainer=E2=80=9D) with a sub-element (called =E2=80=9CCRC32Valu=
e" 0x42FE) that contains the hash. AFAIK there has never been such an =
implementation. Additionally this draft does not have an open license.
>>=20
>> Issues with Version 3:
>>=20
>> I think there is a typo and that: "All level 1 elements SHOULD =
include a CRC-32=E2=80=9D should be "All level 1 Master-elements SHOULD =
include a child CRC Element.=E2=80=9D
>> The procedure for using multiple CRC Elements within a single =
Master-element seems very inefficient with each subsequent CRC =
representing the data of all prior CRC Elements within the same Parent =
Element. This is like a rolling checksum although I=E2=80=99m not sure =
that is what was intended.
>> Also the definition implies that the CRC element can occur multiple =
times within the parent element while the definition in both EBML and =
Matroska clarifies that CRC is not a =E2=80=98multiple' element.
>>=20
>> So, can we clarify the following:
>>=20
>> - The CRC Element may only occur 0 or 1 times as a child element of a =
Master-Element.
>=20
> Agreed.
>=20
>> - That the CRC Element is a binary element and not a Master-element
>=20
> Correct
>=20
>> - There is no definition for a CRC32Value element
>=20
> The code in libebml assumes the element can be anywhere and the value
> is processed in memory on all the data of the Master element minus the
> Checksum itself.
> =
https://github.com/Matroska-Org/libebml/blob/master/src/EbmlMaster.cpp#L53=
7
>=20
> That seems not practical, especially because of the in-memory step.
> There are also a TODO that raises some issues with Checksum:
>  /// \todo find another way when not all default values are saved or
> (unknown from the reader !!!)

That seems unexpected to me. If the CRC represents data that is not =
present but given default values from the EBML Schema, then the CRC =
validation requires full semantic knowledge. My preference would be to =
checksum the data as stored rather than as the data is understood =
(especially since that understanding may change).

>> - Is there a placement requirement or suggestion for the use of the =
CRC element within a parent (i.e. "should be the first in it's parent =
master=E2=80=9D)
>=20
> IMO it should be first. It doesn't make sense to signal it at the end.
> Either it's present and first or it's not there. Hopefully that will
> be the only element that needs to come first.

Technically at Level 0 the EBML Master-element also has a requirement to =
appear first. :)

>> - What data exactly does the CRC value represent?
>>        All Element Data of the parent element (unfeasible)?
>=20
> It's feasible, although that implies knowing you need to process the
> checksum while doing the children, if you don't want to do a fake
> render in memory afterwards.

I mean that it isn=E2=80=99t feasible for a CRC32 element to represents =
the whole Element Data of the Master-element since then the checksum =
would have to be a checksum of data that includes itself.

>>        The entire Parent Element (including the parent=E2=80=99s =
Element ID, Element Data Size, and Element Data) (also unfeasible)?
>=20
> IMO only the data inside the Master element it's contained.

Agreed, but that data minus the CRC32 element itself (as you note =
above).

>>        All Element Data of the parent element excepting the child CRC =
element?
>>        The entire Parent Element (including the parent=E2=80=99s =
Element ID, Element Data Size, and Element Data) excepting the child CRC =
element?
>>        All data from the beginning of the Master-element up to the =
beginning of the CRC Element?
>>        All data from the beginning of the Master-element=E2=80=99s =
Element Data up to the beginning of the CRC Element?
>=20
> It should also be the data as they are rendered, meaning elements not
> written (default) or with a 0 size (default value) should be processed
> as they are written in the file, and not as they might be represented
> in memory. That should make some CRC tools work even without knowing
> the semantic.

I haven=E2=80=99t yet found a file in the wild with CRC Elements within =
Master-elements that contain non-present mandated child elements that =
have defaults.

>> I understand these clarifications have an impact on the validity of =
existing EBML implementations, but I=E2=80=99ve rarely seen any =
implementation of the EBML CRC element (better documentation may =
encourage such implementations ;)

Here is a survey of Matroska files in the wild which contain CRC32 =
elements.

Sample 1 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
File: =
http://archive.org/download/159753000/blackpool_1-0_manutd-regmo.blogspot.=
com.mkv
Muxing App: Haali DirectShow Matroska Muxer 1.10.262.12
Writing App: gdsmux
Note: This file has 5 CRC32 Elements. All Level 1 Master-elements =
include a CRC32 Element as the first child Element. The CRC32 value =
represents the remaining data of the Master-element that it is contained =
within. This file is done exactly as suggested by the Matroska spec =
(Version 1 noted above). But it is invalid according to the EBML draft =
Specification and older Matroska RFC Draft (Version #2 and #3).

Sample 2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
http://archive.org/download/3asq.comBNXFANTASTECMidoHeRo/3asq.com-BNX-EP =
01-[F A N T A S T E C-MidoHeRo].mkv
Muxing App: libebml-0.7.5 & libmatroska-0.7.7
Writing App: VirtualDubMod 1.5.10.2 (build 2540/release)
Note: Similar to sample #1 but includes 1,413 Cluster elements so LOTS =
MOAR CRC values!

Other samples:
File: http://archive.org/download/Al3asqAlfilsofOnePiece3/[Al3asq - =
Alfilsof] One Piece 0357.mkv
Muxing App: libebml-0.7.7 & libmatroska-0.8.1
Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build =
2550/release)
Note: Similar as sample #2

File: =
http://archive.org/download/BAR2010-2011/LaLiga/05tur_Atletic_Bilbao-Barce=
lona_(0-1)_Keita_HD.mkv
Muxing App: Haali DirectShow Matroska Muxer 1.9.42.1
Writing App: gdsmux
Note: similar to #1

File: =
http://archive.org/download/L0rdGwynSuperGhoulnGhostChouMakaiMura/L0rd_Gwy=
n - Super Ghoul'n'Ghost - Chou Makai Mura.mkv
Muxing App: libebml v0.7.8 + libmatroska v0.8.1
Writing App: Cyberlink Matroska Muxer v1.0.0

File: http://archive.org/download/OP08-Shashah.tv/OP357_Shashah-tv.mkv
Muxing App: libebml-0.7.7 &amp; libmatroska-0.8.1
Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build =
2550/release)

I looked over about 20 more samples but all of them either used Haali or =
libebml as muxers and gdsmux, VirtualDubMod, Cyberlink, or mkvclean as =
writers. All reviewed samples included CRC32 (if at all) as the first =
child element of all level 1 Master-elements. I could not find any =
samples with a CRC32 Element at any other level besides level 2 or a =
CRC32 Element that wasn=E2=80=99t the first child element of its parent. =
=46rom this I think that the EBML and earlier Matroska RFC Draft =
definitions of CRC (version #2 and #3) are either wrong or never =
apparently used.

I propose to refine the Matroska.org definition of the CRC element as =
move that to the EBML specification.

Dave Rice






From nobody Sun Jan  3 23:11:27 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E7DE51A1F73 for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 23:11:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id R-eGSYgLKkFz for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 23:11:24 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AA5D11A1F70 for <cellar@ietf.org>; Sun,  3 Jan 2016 23:11:24 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id a123so86589898vkh.1 for <cellar@ietf.org>; Sun, 03 Jan 2016 23:11:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Fi8GzExQLYQicykH2vDktlYW87sUnX70B7mit4CAgBM=; b=oMEHGD8Yk7id+zs/ps4/yb4ZHUYwKhjokxyTweIwUBu8Vd/97jfbOmOG0TyReDFhfE a/XYVwewBuUZ/nokXqNAFM4Fvs9usL3h0NlF+78uA8OK93nY9EHjrwy5TF90t+BSO64B 0w94LM9w6U6O46PCPUraKmEYtWi5aSa9sqTTkVD0chXSQgAF4hz0yQW2yHPOs16z9H60 cWYtquwCXiuEkWZjqIBl9jwt72l3UjOMiyoECaztStQjkJd2LuViukX3jqlgxd3/61XT sqHFu5Rh7TqZw7NQ2oio5qkYLfMQ3r0fraxclJhEEMR7oeLKSLrelIItB4uaDvxCYd+z 9wmQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Fi8GzExQLYQicykH2vDktlYW87sUnX70B7mit4CAgBM=; b=XiLk3gXr7l9j7eQmk4qmjycv18QFeuqx7bAVQdJ79HkXFIOcSm4N7LKGZivGaj6rv8 ebqT1R82JRuBEnIiudf/vEwZijXJ87I6BP2kqlwbZlio0Ll7ca9NaS2pV/H+xwEnlyb9 TinPaMDLpx8/34hkb+05Fg5HhN7XVVdmCJxMKwAExoSMHzB2S4cwGkF+D12dxOfkI5l7 Z17vQScMDUIZu8aoOW3aZmsS9Pz/UzTIhg+tB2irxK5m7etrR6AkjWrdMx400Wc/j0hw oZNRUW8H1quUqrArD8i43h7/zV7v3UHqFrxWaIwVE9GnjVGu6X0Fell4dlP6hsNsbFYF vKsg==
X-Gm-Message-State: ALoCoQm8MTip3bZcCIrpJz+1RiakQCG/msizitDC9BLXPjor9xiuW8CVNJz8wHNIaMIuXZeWTfACl9DrgJP+tuzdBaGj9pnZAw==
MIME-Version: 1.0
X-Received: by 10.31.5.139 with SMTP id 133mr58498239vkf.157.1451891483772; Sun, 03 Jan 2016 23:11:23 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sun, 3 Jan 2016 23:11:23 -0800 (PST)
In-Reply-To: <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com>
Date: Mon, 4 Jan 2016 08:11:23 +0100
Message-ID: <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/pq5ooftC5DYBqn2MtIEU49rNlkY>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 07:11:26 -0000

2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>> Hey,
>>>
>>> I only remember the discussion around Tracks being multiple, not
>>> particularly for the other ones. Our intent way back when was to allow
>>> muxers to write multiple instances of _the same information_ in
>>> different places in order to make the file more resilient against
>>> damage or incomplete downloads with protocols like BitTorrent.
>>
>> Yes, that's the idea for the Track Info as it's vital to the usability
>> of the file, as well as the Segment Info. I'm not sure it's used in
>> practice though.
>> Since the goal of CELLAR is archiving solutions it may still make sense.
>
> Perhaps to declare that an Element may be repeated but must be repeated i=
dentically should be a new EBML Element Attributes, so there can be a disti=
nction between the repeatability Segment/Info and the repeatability of Simp=
leBlock.

That might be good. After all not elements make sense as repeated
ones. For example in Matroska you don't want a Cluster (timestamped
data) to be repeated.

>>> The same reasoning could be applied to Info. Both elements are
>>> absolutely crucial to playback; the other level 1 elements safe for the
>>> clusters simply aren=E2=80=99t.
>
> But what should happen when the read finds differences in repeated-but-sh=
ould-be-identical elements?

Good question. Maybe repeated elements should have a CRC ? If a CRC is
wrong (or not found) the parser could look for a copy.

> For a scenario of two differing Info Elements, VLC and FFmpeg use differe=
nt Info Elements. Which use is correct? Since the use of repeated-identical=
 elements is resilience a deviation between the two could be expected, so w=
e should suggest how the reader should respond.

It was designed for recovery tools. It may not be good to change
players for such cases. It would make them more complex. (unless an
elegant/easy solution is found).

>>>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>>>
>>> SeekHead and Cluster must be multiple. SeekHead in order to allow movin=
g
>>> a SeekHead to the end of the file while still referencing it from the
>>> start (so that normal players will still find it quickly). Cluster for
>>> obvious reasons.
>>>
>>>> And Cues, Attachments, and Chapters are non-multiple.
>>>
>>> I have no idea why Tags is multiple and these three aren't.
>>>
>>> To me the following would make sense:
>>>
>>> - Info, Tracks =E2=80=93 multiple but only if each instance contains th=
e same
>>>  information
>>>
>>> - SeekHead, Cluster =E2=80=93 multiple without restrictions
>>>
>>> - Attachments, Chapters, Cues, Tags =E2=80=93 single
>
> I can understand Attachments and Tags being multiple as it could allow at=
tachments or tags to be added to a file without having to re-write too many=
 bytes.

Yes. But then there should be a way for the player to know about these
beforehand. Good players scan Matroska files beforehand anyway (unless
it's live streaming).

--=20
Steve Lhomme
Matroska association Chairman


From nobody Sun Jan  3 23:12:16 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EE8131A1F73 for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 23:12:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LlLmpo83bjJG for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 23:12:14 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BB3A51A1F70 for <cellar@ietf.org>; Sun,  3 Jan 2016 23:12:13 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id k1so117958649vkb.2 for <cellar@ietf.org>; Sun, 03 Jan 2016 23:12:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=+fPY9u9bwEDok3cfN0lXnmtD0qT5s0KSxGTkyGTplR4=; b=0BU7mUansUZZ8N6F2LG+4qncQn7vTIz/yK6R1tWrp/nutWn2VIsZiLjUvhmMcauI8i hiom5cglO1VKjLKR2CXN+RLdEFgN/blc5GjWXeWQZaYwY3Rpd6Ml59B2tl12n4bA2p8H UadhgeRB//6cfxkpjbyNF+RMY/f2rB+nN+qYd0EvialTNqEvcgj2rtFyAXiE23afFjyw I8es/f8KDBp4OWABJaelj72q0o6MN/zxJa1+6RpJQAsUhMIqMJTNHr3BNTWYjnct1m2Y IycsWBlfCTRzJ/lYhKC12zgxcLqTfEaX2E2iN2e2m7u61AwOjsk27flDs1DBXggtOxxQ JzRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=+fPY9u9bwEDok3cfN0lXnmtD0qT5s0KSxGTkyGTplR4=; b=UZuxlR1zbEovhkgYOaeCRqRVo6E6mq5qX6moQDOXxbrRJYN7NIjWcBDk9n0pB5TZmw Zmjrjp52AUDLH+0y4LvHLIuuDhjUsvNKoSswKvxCvC57MKNsJGVAwwbfhWthC5wNwoel +ZrYbULDBv/r1Da3Kv0LysHdFXwVkVWwu552dxCF7QpAS92kfbCjxNEWEwe5Q/ogRwKw Z8InKrPmRsorBwSm7y3S77Zp87wuS56aEerNS5tP0W0wK0MnfqgZBeJqRdYxvHN0a1tK hjWr6UeaXk8XhAD89vu6mCSwEwlO+vw7VaN867X2zhMMo1xk/pmweuMTF+1guba+caGV Damg==
X-Gm-Message-State: ALoCoQnpiZRI7IOhRbYtdexQCTG0qtcamtpCQChDzTZlNpqnk+h8edjG4G5g3ecVBiGr6whNy8hTqO4LozA/kOYj25y9iK3tzw==
MIME-Version: 1.0
X-Received: by 10.31.47.130 with SMTP id v124mr59285946vkv.117.1451891532971;  Sun, 03 Jan 2016 23:12:12 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sun, 3 Jan 2016 23:12:12 -0800 (PST)
In-Reply-To: <24795AA9-2E7D-4B29-B494-ADA7E29AF6AF@dericed.com>
References: <D0C51AF0-4D38-4D05-8117-A6C25AD10861@dericed.com> <20151230135402.GA3828@bunkus.org> <2E9579A9-D970-487D-9B37-5DAD9BDD373A@dericed.com> <CAOXsMFL4jA74ceqwcoy02CEAaeWj5pgVug=sn+1VNbbT_+vMAA@mail.gmail.com> <24795AA9-2E7D-4B29-B494-ADA7E29AF6AF@dericed.com>
Date: Mon, 4 Jan 2016 08:12:12 +0100
Message-ID: <CAOXsMFJs6apOPLfR4hrKFo8H9qmn7geXigTpbGZurNSpvK20Uw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/1aO4aeEVgEf2GidFSH9LEWAWPX4>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] [PATCH 1/2] Set VOID Element as multiple in EBML spec
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 07:12:15 -0000

2016-01-03 19:11 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi Steve,
>
>> On Jan 2, 2016, at 3:53 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2015-12-30 14:56 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>
>>>> On Dec 30, 2015, at 8:54 AM, Moritz Bunkus <moritz@bunkus.org> wrote:
>>>>
>>>> Hey,
>>>>
>>>> +1. mkvmerge uses voids a lot, definitely multiple ones per
>>>> parent. Apart from current, actual use the void's raison d'=C3=AAtre i=
s to be
>>>> able to overwrite existing elements and placing their content somewher=
e
>>>> else without invalidating the whole file (and without having to re-wri=
te
>>>> it completely). Therefore voids should be made plural.
>>>>
>>>> I wasn't even aware they currently weren't=E2=80=A6
>>>>
>>>> The patch itself LGTM.
>>
>> Apart from the patch being in 2 parts, the changes themselves are good.
>> We should generate new EBML semantic source code after these changes.
>
> Is it possible/sane to send a single patch that affects two different rep=
ositories? Patch 1 is for the EBML draft spec at https://github.com/Matrosk=
a-Org/ebml-specification and Patch 2 synchronizes the same change (setting =
Void to multiple) in https://github.com/Matroska-Org/foundation-source/blob=
/master/spectool/specdata.xml of the foundation-source repo.

No, you're right.

>>> I sent the patch via PR as well. I=E2=80=99m surprised that mkvalidator=
 wasn=E2=80=99t complaining non-stop about this restriction.
>>
>> That may be because libebml (and libebml2) treat void and nested
>> elements differently than normal elements. That's something that
>> should be fixed for nested elements that can only appear once (if that
>> ever makes sense).
>
> Coincidentally all nested elements in Matroska are also allowed to repeat=
, so this only affects Void (for now).
> Dave



--=20
Steve Lhomme
Matroska association Chairman


From nobody Sun Jan  3 23:44:53 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 676E31A6EEC for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 23:44:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z982RzFgRZEC for <cellar@ietfa.amsl.com>; Sun,  3 Jan 2016 23:44:50 -0800 (PST)
Received: from mail-vk0-x22e.google.com (mail-vk0-x22e.google.com [IPv6:2607:f8b0:400c:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DFD501A6EE9 for <cellar@ietf.org>; Sun,  3 Jan 2016 23:44:49 -0800 (PST)
Received: by mail-vk0-x22e.google.com with SMTP id f2so206154754vkb.3 for <cellar@ietf.org>; Sun, 03 Jan 2016 23:44:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=5RtW9f0HagN7eXC4VktokSz/8fUm/b8rIQvJOUHm4dA=; b=Dkiwe9MdZ9zDWVt2O+sNB09Si1wNPbkC0X/MiuZ1ztr9C+Bu6nThrM1J4SuCSYc7Wh vzhSctqM/375MPWOVuAbUjybdIpW4Qa+d1PyFCO1OVYpKTfB8/WFjxEnRfR+C0kBXn4w qDRT/7kjVqx0X2WVrzpF1IuHlD1EkG2WhwMa9aLGUg1xGgpdjpl6imRF5+op1c/9jP5r BD00iHgyzDeCA3jWoOYoiK8vMs52gir0a2v6QGn/QgfrWdVZmWU/0SDKiFOHWuCokonp BUIIDUNXK48BBklDiOzqhGEncGNiZn3LBCKuSPGfsRK4/dI7Ill/ft5PX344gOX1fPep gDfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=5RtW9f0HagN7eXC4VktokSz/8fUm/b8rIQvJOUHm4dA=; b=GiL8tMJP3lrsPjybb8xgAuVbK8il1nE8fBfT279eWJXe6K/y4HngGT1UhvSkxlzqKg 6o1lgU2dIL5lNG9spSfLINeERfbyCW44BjbxLTvYS+bU8ixKcxzxdRcSsKz2PQeUL0B/ S84ZGhTSZPuIHnLHKMLCt+N1r6yAy5lCh/Rll9dMX48VqQ0vUbzWS/bCAWDwkZ+KfqI1 qpfD46k+QM99kunl4H6nDEWGJSs7pzoR1OHYV7Dhc0bCGgfFbifYPTUKQ788eXRP+aQD syOypZdUKLXYO7Jw61+0p2a+8zi6rrJnx5t1Rnnvn2JKvPyzz1YwRotmR86WXzFF4Xbb p6nQ==
X-Gm-Message-State: ALoCoQmVa4YfKQ5H5QWHP2llwQAwmih119TYUlHmZWOM69JBvHpykEhe7dr6LP3CMYvVAp17x6+2DBxM2XDJNsA6nHm+uEQfPA==
MIME-Version: 1.0
X-Received: by 10.31.5.139 with SMTP id 133mr58559522vkf.157.1451893488841; Sun, 03 Jan 2016 23:44:48 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sun, 3 Jan 2016 23:44:48 -0800 (PST)
In-Reply-To: <84C35B47-B124-4FCE-ABDE-A0EEC19E373E@dericed.com>
References: <C4021E89-45C0-4DC8-BD60-9072469D1F39@dericed.com> <20151231083323.GB15920@bunkus.org> <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com> <84C35B47-B124-4FCE-ABDE-A0EEC19E373E@dericed.com>
Date: Mon, 4 Jan 2016 08:44:48 +0100
Message-ID: <CAOXsMFKM+KiuAfSPK8huAOvConjxG699-FM6KRZ-94cp3k9nHg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Tv1Lkc8NH8Wpsxy-fR_MuPO30uE>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] test4.mkv and EBML Elements with Unknown Size
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 07:44:52 -0000

2016-01-03 22:50 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi,
>
>> On Jan 2, 2016, at 4:06 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2015-12-31 9:33 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>> Hey,
>>>
>>>> The Matroska Test file suite is at
>>>> http://matroska.org/downloads/test_w1.html. This includes test4.mkv
>>>> which is an example of a live stream recording. However the file
>>>> doesn=E2=80=99t appear to adhere to the EBML specs. It the file writte=
n wrong
>>>> or are we missing something in the EBML specification?
>>>>
>>>> Within this file is this extract from the beginning of the Segment
>>>> element to the end of the Element ID of the Info Element.
>>>>
>>>> 18 53 80 67 FF 0A 0A 0A=E2=80=A6
>>>
>>> Uhm=E2=80=A6 this is indeed invalid. A master must only contain child e=
lements,
>>> not additional data. To put it differently: all child elements of a
>>> master element must cover the whole space occupied by the master withou=
t
>>> any gaps in between.
>>
>> Did we handle that part in the newer specs ? It makes sense.
>
> Partly, in the EBML Document section, https://github.com/Matroska-Org/ebm=
l-specification/blob/master/specification.markdown#ebml-document, it states=
: "An EBML Document MAY only consist of EBML Elements and MUST NOT contain =
any data that is not part of an EBML Element.=E2=80=9D But this refers to t=
he EBML Document as a whole and not the sub-elements.
>
> The Master-element definition says: =E2=80=9CThe Master-element contains =
zero, one, or many other elements.=E2=80=9D But the language is not exclusi=
ve to say that the Master-element may ONLY contain zero, one, or many other=
 elements.
>
> I propose to add to the Master-element definition the line: =E2=80=9CThe =
Element Data stored within Master-elements MUST only consist of EBML Elemen=
ts and MUST NOT contain any data that is not part of an EBML Element.=E2=80=
=9D I send this as a pull request here https://github.com/Matroska-Org/ebml=
-specification/pull/45. The patch is here:

But that makes such streaming files illegal according to the specs.
VLC does the same when "broadcast" streaming over HTTP. And even a
Chromecast can handle such stream starting with the end of a Cluster
(ie garbage). Given it's mostly compressed data it can be any octet.
That's why the level-1 elements are all 4 octets in Matroska, to avoid
false positives.

It was not originally designed to work like that but GStreamer
implemented streaming like that and luckily it was fitting the
existing parsers. VLC followed later. Knowing the VLC code, it would
take a bit of work to allow clean EBML data to be sent. For now the
different muxing/sending stages don't signal synchronization points
like that. Only the header (Segment Info).

Again, IMO it's not an issue for parsers that should be resilient to
bad data. Changing this text will not make much difference regarding
to that. Maybe the specs should also cover what happens when bad data
are found ? Like bad CRC, duplicate elements, etc.

> From ba9973706d35934ea4c5e8f50d66d5ac3f725fd2 Mon Sep 17 00:00:00 2001
> From: dericed <dave@dericed.com>
> Date: Sun, 3 Jan 2016 16:29:43 -0500
> Subject: [PATCH] clarify that Master-elements may only contain elements
>
> ---
>  specification.markdown | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/specification.markdown b/specification.markdown
> index b90020c..4159bdb 100644
> --- a/specification.markdown
> +++ b/specification.markdown
> @@ -141,7 +141,7 @@ Element Data Type:   Master-element
>
>      Endianness:     None
>      Length:         A Master-element may declare any length (included ze=
ro) up to the maximum Element Data Size value permitted. The Master-element=
 may also use an unknown length. See the section on Element Data Size for r=
ules that apply to elements of unknown length.
> -    Definition:     The Master-element contains zero, one, or many other=
 elements. Elements contained within a Master-element must be defined for u=
se at levels greater than the level of the Master-element. For instance is =
a Master-element occurs on level 2 then all contained Elements must be vali=
d at levels 3.
> +    Definition:     The Master-element contains zero, one, or many other=
 elements. The Element Data stored within Master-elements MUST only consist=
 of EBML Elements and MUST NOT contain any data that is not part of an EBML=
 Element. Elements contained within a Master-element must be defined for us=
e at levels greater than the level of the Master-element. For instance is a=
 Master-element occurs on level 2 then all contained Elements must be valid=
 at levels 3.
>
>  Element Data Type:   Binary
>
> --
> 2.6.4
>
>> But is it
>> possible that one byte is missing from a file ? If so the whole thing
>> becomes unusable just because of that missing byte. If it's at the end
>> of a master or an non vital element, it should not matter too much.
>> But that's a tricky thing to detect (an extra byte is easier).
>> Transfers over UDP may have these gaps of data.
>
> These suggestions may pertain more to suggestions on a parser than for th=
e specification.
>
>> Also the segment being of unknown/infinite size, anything is contained
>> within, unless a new Segment comes.
>
> According to the current EBML draft spec: "The end of the Master-element =
is determined by the beginning of the next element that is not a valid sub-=
element of the Master-element.=E2=80=9D I realize that this need a little m=
ore clarity so I added this patch to the same pull request referenced above=
.
>
> From 64bc489282a51891535815e0cea4d00b42c25564 Mon Sep 17 00:00:00 2001
> From: dericed <dave@dericed.com>
> Date: Sun, 3 Jan 2016 16:37:50 -0500
> Subject: [PATCH] clarification on the end of Master-elements
>
> ---
>  specification.markdown | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/specification.markdown b/specification.markdown
> index 4159bdb..e1b6857 100644
> --- a/specification.markdown
> +++ b/specification.markdown
> @@ -71,7 +71,7 @@ The Element Data Size expresses the length in octets of=
 Element Data. The Elemen
>
>  Although an Element ID with all VINT\_DATA bits set to zero is invalid, =
an Element Data Size with all VINT\_DATA bits set to zero is allowed for EB=
ML Data Types which do not mandate a non-zero length. An Element Data Size =
with all VINT\_DATA bits set to zero indicates that the Element Data of the=
 Element is zero octets in length. Such an Element is referred to as an Emp=
ty Element. If an Empty Element has a `default` value declared then that de=
fault value MUST be interpreted as the value of the Empty Element. If an Em=
pty Element has no `default` value declared then the semantic meaning of Em=
pty Element is defined as part of the definition of the EBML Element Types.
>
> -An Element Data Size with all VINT\_DATA bits set to one is reserved as =
an indicator that the size of the Element is unknown. The only reserved val=
ue for the VINT\_DATA of Element Data Size is all bits set to one. This rul=
e allows for an Element to be written and read before the size of the Eleme=
nt is known; however unknown Element Data Size values SHOULD NOT be used un=
necessarily. An Element with an unknown Element Data Size MUST be a Master-=
element in that it contains other EBML Elements as sub-elements. The end of=
 the Master-element is determined by the beginning of the next element that=
 is not a valid sub-element of the Master-element.
> +An Element Data Size with all VINT\_DATA bits set to one is reserved as =
an indicator that the size of the Element is unknown. The only reserved val=
ue for the VINT\_DATA of Element Data Size is all bits set to one. This rul=
e allows for an Element to be written and read before the size of the Eleme=
nt is known; however unknown Element Data Size values SHOULD NOT be used un=
necessarily. An Element with an unknown Element Data Size MUST be a Master-=
element in that it contains other EBML Elements as sub-elements. The end of=
 a Master-element with unknown size is determined by the beginning of the n=
ext element that is not a valid sub-element of that Master-element.
>
>  For Element Data Sizes encoded at octet lengths from one to eight, this =
table depicts the range of possible values that can be encoded as an Elemen=
t Data Size. An Element Data Size with an octet length of 8 is able to expr=
ess a size of 2^56-2 or 72,057,594,037,927,934 octets (or about 72 petabyte=
s).
>
> --
> 2.6.4

Fine with me.

>>> I honestly don't know that file was created. libmatroska contains
>>> programs to create a couple of those files in its "tests" sub-directory=
,
>>> but test4 is not among them. Judging from the download page you've
>>> linked it's possible that the file was created with mkclean =E2=80=93 i=
n that
>>> case I would say that mkclean produces non-compliant files.
>>>
>>> Steve?
>>
>> IIRC it was created manually with a hex editor.
>>
>>>> I understand that 0x18538067 is the Element ID of the Segment Element.
>>>>
>>>> The 0xFF represents the case where as the EBML draft spec states, "An
>>>> Element Data Size with all VINT_DATA bits set to one is reserved as an
>>>> indicator that the size of the Element is unknown.=E2=80=9D
>>>
>>> Correct.
>>>
>>>> Next, between the Element Data Size of the Segment Element and the
>>>> beginning of the Info Element there is 134 bytes of 0x0A! In this case
>>>> 0x0A can not be a valid start of an Element ID since for this file the
>>>> EBMLMaxIDLength is 4 (via the default). Thus the Segment
>>>> Master-element has child data that is not an EBML Element.
>>>
>>> Correct.
>>>
>>> Like I said, invalid.
>>>
>>> I definitely do not want to adjust the specs to allow arbitrary data in
>>> arbitrary places that a parser has to be able to skip over.
>>
>> But that's not what this file is about. It's about error recovery. A
>> proper parser should treat all the 0A as garbage and look for some
>> proper data. That's what libebml does.
>
> To be clear. In this case, the file has a MaxIDLength of 4 and thus 0x0A =
(aka 0b00001010) is invalid as the first byte of an Element ID. So is this =
correct logic?

Yes. It's bad data so it should be skipped.

> For a generic EBML parser:
> It should skip the invalid 0x0A bytes, because they are not valid Element=
 IDs according to the MaxIDLength. In this case it should then skip ahead t=
o the Info Element.
>
> For a Matroska parser:
> It should skip the invalid 0x0A bytes until it encounters the first valid=
 Element iD of an Element that may be a child Element of Segment?

It's true that when you know the expected semantic, you can detect
false alarms a lot better. When you don't, 4-octets Level-1 elements
are not much help. So pure EBML recovery tools should not expect great
results.

>> This file was inspired by the live streaming mode of GStreamer that
>> sends the header (Segment Info + Track Info) and whatever matroska
>> data comes after. Including the remaining of the Cluster that's
>> currently streaming. That part should be treated as garbage (and
>> luckily there is no false alarm of valid Level1+size elements in the
>> garbage data).
>
> The use of 32 bit Element IDs at Level 1 of Matroska makes more sense wit=
h this logic. A false alarm should be rare with garbage.
>
> With the example provided, the EBML Stream structure would be
>
> EBML/
> Segment/
>         Info/
>         Track/
>         <<< GARBAGE FRAGMENTARY CLUSTER >>>
>         Cluster/
>
> Should this be considered a valid EBML Stream? The pull request reference=
 makes this invalid, otherwise the spec is very unclear about the presence =
of garbage, non Element Data within a Master-element.

It's invalid EBML data. And should stay that way. But a semantic
parser SHOULD (MUST?) be able to handle this.

>>> Kind regards,
>>> mosu
>
> [...]
>
>> Steve Lhomme
>> Matroska association Chairman
>
> Dave Rice
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan  4 00:03:07 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CB2431A21A0 for <cellar@ietfa.amsl.com>; Mon,  4 Jan 2016 00:03:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eTqB2yEtHfZ6 for <cellar@ietfa.amsl.com>; Mon,  4 Jan 2016 00:03:04 -0800 (PST)
Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9A97E1A066C for <cellar@ietf.org>; Mon,  4 Jan 2016 00:03:04 -0800 (PST)
Received: by mail-vk0-x22a.google.com with SMTP id k1so118404472vkb.2 for <cellar@ietf.org>; Mon, 04 Jan 2016 00:03:04 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Hg0ON6CXMdVSn2KKwMG938kMIs8loj0m1rRSFvAWjZ4=; b=1BqZFny/1aKKe3UB93G2ZTcile7NGnqY3Ew7K7s8wqmMZiMBXmsT0jbNjPlIFp7PwI GVNMmjjbr8NriC22SN3AjKyUXe+dISztLNBQ1LGquvaxuKPt5TM5SfAfUFTHERuAe11h tUMiDsWIUg8alIFALr0P75kZjUE/1NdDG2b0hGlxrT8Ry8qWHTO0Zzu/eNq5fj2WZk8N qf6uSLW7QyxMXaT5zlR91FvjwGca36764JIS5QErrC+bV9bX2RIuYchln4qCPWIxXTKT BL2w9j7JPCKZ0FH2rWzte9WFkdVaM0x4yKb78ElWiaAFthAFfbZOgkNbK5F0UI22hWcc C/zQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Hg0ON6CXMdVSn2KKwMG938kMIs8loj0m1rRSFvAWjZ4=; b=lCKjcFMNbWoVgKoFD66IhvlzqnLQBDNkDad+48TJ+kl17C9c5Pfxb+kFfz/6q+BC4p KIymOYaFStoPiu85aVFl43RB0jLbqWLuZ7sqgU2seXQuKJRXNtK+sbK6Z5SV8z7oggiS EvIBgaug4Z+M7bKaDqJFyxb1BsAmejViwYpSEnrvv22Qaqxv2cf6QuyOFjk75IWw5MrV g4ehR6GOXPmkxt4a+oZpSj80V6H8cknyujW0RKvcBlN/rJGJdnXbyB37peK09/oyMVzK 9uaEnFhc5wgEjf8twFaZj0NPofHSk19+5tgfCGggvQMEBWQkT4r4dBJUgxNl446gRmu6 nFSw==
X-Gm-Message-State: ALoCoQnGkrga/67EM+G3U9elV3poey2Dn3o6Vfdo0Gz27nLmnDDVqq199PgVmEpe+DijjvzX3hZbyPld6Ym0tdn982JQnCUUJw==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr61071523vke.122.1451894583749;  Mon, 04 Jan 2016 00:03:03 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 4 Jan 2016 00:03:03 -0800 (PST)
In-Reply-To: <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com>
Date: Mon, 4 Jan 2016 09:03:03 +0100
Message-ID: <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/NY3dXLIBJlVAKaauehwdt2nqBt4>
Cc: cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 08:03:07 -0000

2016-01-04 4:31 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi,
>
>> On Jan 2, 2016, at 3:41 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> I'd say the reference here is libebml. It may be the only
>> implementation that handles CRC32.
>>
>> 2015-12-30 1:10 GMT+01:00 Dave Rice <dave@dericed.com>:
>>> The EBML CRC Element has many contradictory definitions.
>>>
>>> Version 1: The Matroska draft states:
>>>
>>> "The CRC is computed on all the data of the Master element it's in. The=
 CRC element should be the first in it's parent master for easier reading. =
All level 1 elements should include a CRC-32. The CRC in use is the IEEE CR=
C32 Little Endian"
>>>
>>> Version 2: An older Matroska draft at http://matroska.org/technical/spe=
cs/rfc/index.html states:
>>>
>>> "The CRC32 container can be placed around any EBML element or elements.=
 The value stored in CRC32Value is the result of the CRC-32 [CRC32] checksu=
m performed on the other child elements.
>>>     CRC32 :=3D c3 container [ level:1..; card:*; ] {
>>>       %children;
>>>       CRC32Value :=3D 42fe binary [ size:4; ]
>>>     }=E2=80=9D
>>>
>>> Version 3: The EBML draft states:
>>>
>>> "The CRC is computed on all the data from the last CRC element (or star=
t of the upper level element), up to the CRC element, including other previ=
ous CRC elements. All level 1 elements SHOULD include a CRC-32."
>>>
>>> Issue with Version 1:
>>> Usually the Matroska version is considered authoritative since that doc=
umentation was the most maintained; however, in this case the Matroska defi=
nition doesn=E2=80=99t make sense as it implies that the CRC Element is doc=
umenting a CRC value of data that includes the CRC Element itself.
>>>
>>> Issue with Version 2:
>>> This definition refers the CRC Element as a Master-element (aka =E2=80=
=9Ccontainer=E2=80=9D) with a sub-element (called =E2=80=9CCRC32Value" 0x42=
FE) that contains the hash. AFAIK there has never been such an implementati=
on. Additionally this draft does not have an open license.
>>>
>>> Issues with Version 3:
>>>
>>> I think there is a typo and that: "All level 1 elements SHOULD include =
a CRC-32=E2=80=9D should be "All level 1 Master-elements SHOULD include a c=
hild CRC Element.=E2=80=9D
>>> The procedure for using multiple CRC Elements within a single Master-el=
ement seems very inefficient with each subsequent CRC representing the data=
 of all prior CRC Elements within the same Parent Element. This is like a r=
olling checksum although I=E2=80=99m not sure that is what was intended.
>>> Also the definition implies that the CRC element can occur multiple tim=
es within the parent element while the definition in both EBML and Matroska=
 clarifies that CRC is not a =E2=80=98multiple' element.
>>>
>>> So, can we clarify the following:
>>>
>>> - The CRC Element may only occur 0 or 1 times as a child element of a M=
aster-Element.
>>
>> Agreed.
>>
>>> - That the CRC Element is a binary element and not a Master-element
>>
>> Correct
>>
>>> - There is no definition for a CRC32Value element
>>
>> The code in libebml assumes the element can be anywhere and the value
>> is processed in memory on all the data of the Master element minus the
>> Checksum itself.
>> https://github.com/Matroska-Org/libebml/blob/master/src/EbmlMaster.cpp#L=
537
>>
>> That seems not practical, especially because of the in-memory step.
>> There are also a TODO that raises some issues with Checksum:
>>  /// \todo find another way when not all default values are saved or
>> (unknown from the reader !!!)
>
> That seems unexpected to me. If the CRC represents data that is not prese=
nt but given default values from the EBML Schema, then the CRC validation r=
equires full semantic knowledge. My preference would be to checksum the dat=
a as stored rather than as the data is understood (especially since that un=
derstanding may change).
>
>>> - Is there a placement requirement or suggestion for the use of the CRC=
 element within a parent (i.e. "should be the first in it's parent master=
=E2=80=9D)
>>
>> IMO it should be first. It doesn't make sense to signal it at the end.
>> Either it's present and first or it's not there. Hopefully that will
>> be the only element that needs to come first.
>
> Technically at Level 0 the EBML Master-element also has a requirement to =
appear first. :)
>
>>> - What data exactly does the CRC value represent?
>>>        All Element Data of the parent element (unfeasible)?
>>
>> It's feasible, although that implies knowing you need to process the
>> checksum while doing the children, if you don't want to do a fake
>> render in memory afterwards.
>
> I mean that it isn=E2=80=99t feasible for a CRC32 element to represents t=
he whole Element Data of the Master-element since then the checksum would h=
ave to be a checksum of data that includes itself.
>
>>>        The entire Parent Element (including the parent=E2=80=99s Elemen=
t ID, Element Data Size, and Element Data) (also unfeasible)?
>>
>> IMO only the data inside the Master element it's contained.
>
> Agreed, but that data minus the CRC32 element itself (as you note above).
>
>>>        All Element Data of the parent element excepting the child CRC e=
lement?
>>>        The entire Parent Element (including the parent=E2=80=99s Elemen=
t ID, Element Data Size, and Element Data) excepting the child CRC element?
>>>        All data from the beginning of the Master-element up to the begi=
nning of the CRC Element?
>>>        All data from the beginning of the Master-element=E2=80=99s Elem=
ent Data up to the beginning of the CRC Element?
>>
>> It should also be the data as they are rendered, meaning elements not
>> written (default) or with a 0 size (default value) should be processed
>> as they are written in the file, and not as they might be represented
>> in memory. That should make some CRC tools work even without knowing
>> the semantic.
>
> I haven=E2=80=99t yet found a file in the wild with CRC Elements within M=
aster-elements that contain non-present mandated child elements that have d=
efaults.
>
>>> I understand these clarifications have an impact on the validity of exi=
sting EBML implementations, but I=E2=80=99ve rarely seen any implementation=
 of the EBML CRC element (better documentation may encourage such implement=
ations ;)
>
> Here is a survey of Matroska files in the wild which contain CRC32 elemen=
ts.
>
> Sample 1 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> File: http://archive.org/download/159753000/blackpool_1-0_manutd-regmo.bl=
ogspot.com.mkv
> Muxing App: Haali DirectShow Matroska Muxer 1.10.262.12
> Writing App: gdsmux
> Note: This file has 5 CRC32 Elements. All Level 1 Master-elements include=
 a CRC32 Element as the first child Element. The CRC32 value represents the=
 remaining data of the Master-element that it is contained within. This fil=
e is done exactly as suggested by the Matroska spec (Version 1 noted above)=
. But it is invalid according to the EBML draft Specification and older Mat=
roska RFC Draft (Version #2 and #3).
>
> Sample 2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> http://archive.org/download/3asq.comBNXFANTASTECMidoHeRo/3asq.com-BNX-EP =
01-[F A N T A S T E C-MidoHeRo].mkv
> Muxing App: libebml-0.7.5 & libmatroska-0.7.7
> Writing App: VirtualDubMod 1.5.10.2 (build 2540/release)
> Note: Similar to sample #1 but includes 1,413 Cluster elements so LOTS MO=
AR CRC values!
>
> Other samples:
> File: http://archive.org/download/Al3asqAlfilsofOnePiece3/[Al3asq - Alfil=
sof] One Piece 0357.mkv
> Muxing App: libebml-0.7.7 & libmatroska-0.8.1
> Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build 255=
0/release)
> Note: Similar as sample #2
>
> File: http://archive.org/download/BAR2010-2011/LaLiga/05tur_Atletic_Bilba=
o-Barcelona_(0-1)_Keita_HD.mkv
> Muxing App: Haali DirectShow Matroska Muxer 1.9.42.1
> Writing App: gdsmux
> Note: similar to #1
>
> File: http://archive.org/download/L0rdGwynSuperGhoulnGhostChouMakaiMura/L=
0rd_Gwyn - Super Ghoul'n'Ghost - Chou Makai Mura.mkv
> Muxing App: libebml v0.7.8 + libmatroska v0.8.1
> Writing App: Cyberlink Matroska Muxer v1.0.0
>
> File: http://archive.org/download/OP08-Shashah.tv/OP357_Shashah-tv.mkv
> Muxing App: libebml-0.7.7 &amp; libmatroska-0.8.1
> Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build 255=
0/release)
>
> I looked over about 20 more samples but all of them either used Haali or =
libebml as muxers and gdsmux, VirtualDubMod, Cyberlink, or mkvclean as writ=
ers. All reviewed samples included CRC32 (if at all) as the first child ele=
ment of all level 1 Master-elements. I could not find any samples with a CR=
C32 Element at any other level besides level 2 or a CRC32 Element that wasn=
=E2=80=99t the first child element of its parent. From this I think that th=
e EBML and earlier Matroska RFC Draft definitions of CRC (version #2 and #3=
) are either wrong or never apparently used.
>
> I propose to refine the Matroska.org definition of the CRC element as mov=
e that to the EBML specification.

Agreed.

--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan  4 10:35:47 2016
Return-Path: <bastik.public.mailinglist@gmx.de>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3BCA21A0469 for <cellar@ietfa.amsl.com>; Mon,  4 Jan 2016 10:35:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.1
X-Spam-Level: 
X-Spam-Status: No, score=0.1 tagged_above=-999 required=5 tests=[BAYES_50=0.8,  FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VxssCcsHbKRb for <cellar@ietfa.amsl.com>; Mon,  4 Jan 2016 10:35:44 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8086F1A03AB for <cellar@ietf.org>; Mon,  4 Jan 2016 10:35:43 -0800 (PST)
Received: from [192.168.2.129] ([188.100.175.162]) by mail.gmx.com (mrgmx101) with ESMTPSA (Nemesis) id 0MOjMY-1aL5vH1942-00645J for <cellar@ietf.org>; Mon, 04 Jan 2016 19:35:41 +0100
To: cellar@ietf.org
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com>
From: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Openpgp: id=BFE90DE515B6F548CDE298939902921C2B944DAE
X-Enigmail-Draft-Status: N1110
Message-ID: <568ABB7B.9070609@gmx.de>
Date: Mon, 4 Jan 2016 19:35:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:ozQYndhMEXAytNc/+8F5Wte17SdQGG4A3WECBjLlDvRVO8vdNHV SytVifvuprNtlDu/Fwfw4X9NalTg3ouzKhkqz1bi/S+JkfrtLtl15Zkj7Ckv8NSje0X5wfm ZjMmYgp75v9B2awIdW0sH7gR75SfPY9Mye9dWA6H/riUe+ahLSRboUxl1ub0QDJhrW3GUSv cmu3OiDfCB3vy87wleqfA==
X-UI-Out-Filterresults: notjunk:1;V01:K0:eIU7PJVE1o0=:HjK08MM9QnPW4lXcPl238u F0UJFIH7plV2M6BGRjbDG2PJ/DSdhPCyuxC8eovaGUaBHsB7WoOthD5rwyRkZTUWYrF1u6XX6 VJdvoPgyrfJiAnjFSNo6BpqwBBUf2lTSyNmteYBeczaH+gSX3LnbaLXBZCERTHtcHOZBiZTI0 Nlth9vRbjyNjz0B1wtlh7ohiQSW01+MuwZQE75p1Js7ameFp+mosn6/vXapAQfYKUSGH3FLat m0VNYa8jAA3I7e/Q5H4Tka1qK7EOp1/0BUd+Z/MOLkebbUD5leg7lo06/VgOWpPbFGR22euM3 3U5MoaPAEdJKt1IUM3dpun53Cqkim8dNs8ZK80y+5dSD/Ke1HdNjquG+IbUcGdpnX/JHx3+wP R7OrgUPPqCgTcSNW7JNbZwQVNA9NMbvEBWx0hm/uOchkuZcTwsgfl8zvdbfwyuwxE9mnsEvKT gNQXQvlfWdu4Q1VeBb+qpkVBiqgHdxc8im+7p1xNklD68rk+zu3i4GYQt7+KTel0e2Z/cNaPM hT9upNNNAX/2f6kS6BqnL9ipyVtrNyHxLsDqjRwH77Ilv3icS5cXxatX3noHKz1B8iyipBuWi RRBytY+OwExCbwck0C7YlkWnlmPD5bft9Lx5vLVIGyTXx4+uFBHNvrXV9Kve0eNnqIeRmCiAt QN8/WRvT7l0lTzJ1fai8N2Oe7UrrxlqdIMH+KdJLuK3++cR0hPQQHDlERhCXwOLY8uz7FYIov Izd6pfuoVGc3XN+C9U1DnmuRNUbR8OUROk3JjtyXCEi4F8vTuQxLhHrJvWzuv5tusrov3SJAP e3HOpgU
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/yocXg6K-WDlRzowJwCqgGOkgad4>
Subject: Re: [Cellar] clarity for the EBML CRC Element
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 18:35:45 -0000

04.01.2016, 04:31 Dave Rice:

[trimmed to maker it more readable and just have the relevant part]

> If the CRC represents data that is not present but given default
> values from the EBML Schema, then the CRC validation requires full
> semantic knowledge. My preference would be to checksum the data as
> stored rather than as the data is understood (especially since that
> understanding may change).

I fully agree with the statement that a checksum should be of whatever
is actually present within a segment the checksum covers. Particularly
if the default values are omitted.

It makes it easier to check the checksum with trivial validators. This
would not be the case when, as Dave points out, default values change.
Something easy as a checksum should not have to take version
considerations into account or worse actually having to be able to
'understand' what the checksum is for.

If I create a hash of a file with several tools implementing the same
hash-function and get different results I would be confused. The same
would be true if different tools that handle matroksa files tell me
different answers on the validity of checksums within them.

--
Sebastian


From nobody Mon Jan  4 10:59:33 2016
Return-Path: <bastik.public.mailinglist@gmx.de>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 40F0E1A3BA3 for <cellar@ietfa.amsl.com>; Mon,  4 Jan 2016 10:59:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.1
X-Spam-Level: 
X-Spam-Status: No, score=0.1 tagged_above=-999 required=5 tests=[BAYES_50=0.8,  FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lZeDUVy1TKSZ for <cellar@ietfa.amsl.com>; Mon,  4 Jan 2016 10:59:30 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 178B11A1B76 for <cellar@ietf.org>; Mon,  4 Jan 2016 10:59:29 -0800 (PST)
Received: from [192.168.2.129] ([188.100.175.162]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0M5cMq-1a0aTX33Bw-00xbPJ for <cellar@ietf.org>; Mon, 04 Jan 2016 19:59:27 +0100
To: cellar@ietf.org
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com>
From: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Openpgp: id=BFE90DE515B6F548CDE298939902921C2B944DAE
X-Enigmail-Draft-Status: N1110
Message-ID: <568AC10F.9030303@gmx.de>
Date: Mon, 4 Jan 2016 19:59:27 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:hfQVva8ifB9+cqzc623Stbjqm0A6DhzFiH5yzuSoCCSpWAfGhNe QwH+VZ9/3fVrqcpM7M8vW7c3zrBP23RT0OMtIXwaSGEp805VxnfQk8p18RJbjiUJClf4Hx+ 0M3ksJmARDMLyaZJpiJVK6EEm7ZAZk88rg1m6c+hZNWVDqN/zO9oSbNTjR2IucsEaOpBlKI id23LidOsHGODHpaY/JRQ==
X-UI-Out-Filterresults: notjunk:1;V01:K0:g/+RI/MwIy4=:Wz5JooX4oi8+hnpQoFl2e6 w1OTywC8J5a+Hdn+PF6Ymvh41DXRgSfrjEnY9K/HXhk5BxPgoH/mY77euj89nz+TGMs7o3asG KS35Q0/IsLTcUnUXc6qAbaHNZSl5rXQh9KGuTSNDwrhd375Qrem/Y/0YjwXgIlGEpcc5pqZ6i ZL3wYhO2CsX5RzgLqDggm919C/QLwJevuqx06fAAem0/1xph3XCSjlivIVSQsj1URP8qBNUuV ItcwWWbfaS4JrUtA8d7r9ZJfYhvw08qDxKN4o1Sl4TAWjrStPqGla6wTEy8wvoI8Rgp/D08C9 BW61i4caAe4nVpbJWjPzI/ersSX/DYnK+gSfywOMKzz4h3CtfLX0uAIAaciMVHy8UWh/fXR4O M37+RuozXAAzefoL+3HweAj6ESDJhlWTasRtsSinTgyk74mp7qcBSSM/ngjc3kVH9n+i3TZcf 40LXek2j7n5O10XybB5EQRNJGTcoOVuoCTlh8F0dP22sIUWn0ENlT1eeehUyMWcEob6LFoUxM SiU9nU+4fdxUdHWyomuJiUoet0wp89FSt5f8fl+Kq6/Wo7lHyJsuuYnpXDT1xwfgxZMylppAU 6CeEJv48tK2zHlfNoYbvwry9VjYI76dODDlIZ1rRhL/T82rO7SAu7xfnaNI/qwHBWMTn/hehe +WKnmq9TseUdk5lwlkgAn1bKyjJOQ/v20kRgCBaIYEIG189CK9Z8QG/hYVViLbB/aRjaSpT3Y ANiotn65ZALfYAMTGZmjTmve40S2WlxeG1m+Kvnnt8Xmnoxp4yVls2EPPZld0Q8qnoLT0UhZ7 wqea0/O
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/8InoDRkWNk8dW4OxqGTZvuskKC8>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Jan 2016 18:59:32 -0000

04.01.2016, 08:11 Steve Lhomme:
> 2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
>> 
>>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org>
>>> wrote:
>>> 
>>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>>> Hey,
>>>> 
>>>> I only remember the discussion around Tracks being multiple,
>>>> not particularly for the other ones. Our intent way back when
>>>> was to allow muxers to write multiple instances of _the same
>>>> information_ in different places in order to make the file more
>>>> resilient against damage or incomplete downloads with protocols
>>>> like BitTorrent.
>>> 
>>> Yes, that's the idea for the Track Info as it's vital to the
>>> usability of the file, as well as the Segment Info. I'm not sure
>>> it's used in practice though. Since the goal of CELLAR is
>>> archiving solutions it may still make sense.
>> 
>> Perhaps to declare that an Element may be repeated but must be
>> repeated identically should be a new EBML Element Attributes, so
>> there can be a distinction between the repeatability Segment/Info
>> and the repeatability of SimpleBlock.
> 
> That might be good. After all not elements make sense as repeated 
> ones. For example in Matroska you don't want a Cluster (timestamped 
> data) to be repeated.
> 
>>>> The same reasoning could be applied to Info. Both elements are 
>>>> absolutely crucial to playback; the other level 1 elements safe
>>>> for the clusters simply arenâ€™t.
>> 
>> But what should happen when the read finds differences in
>> repeated-but-should-be-identical elements?
> 
> Good question. Maybe repeated elements should have a CRC ? If a CRC
> is wrong (or not found) the parser could look for a copy.

I like the CRC idea for repeated elements, but it still does not define
how players should behave if they encounter two elements, even with
valid CRCs, not matching each other.

There would have to be a recommendation. "Use always the first
occurrence of an element." or "If an element occurs repeated and its
values differ, the last occurrence is the one that should be used."

Obviously tools that create such files are violating the specifications
since it should not be allowed to create repeated elements with
differing values. On the other hand should it be hard to break playback.
I prefer uniform behavior among players.

>> For a scenario of two differing Info Elements, VLC and FFmpeg use
>> different Info Elements. Which use is correct? Since the use of
>> repeated-identical elements is resilience a deviation between the
>> two could be expected, so we should suggest how the reader should
>> respond.
> 
> It was designed for recovery tools. It may not be good to change 
> players for such cases. It would make them more complex. (unless an 
> elegant/easy solution is found).

For differences due to transmission errors a CRC for repeated elements
seems a good solution.

Players have to do something with repeated elements. I don't know what
they do, but there should be a recommended way they should handle such
cases. If a player breaks, that is OK, as long as the file was violating
the specs. A player should behave in an expected way.

>>>>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>>>> 
>>>> SeekHead and Cluster must be multiple. SeekHead in order to
>>>> allow moving a SeekHead to the end of the file while still
>>>> referencing it from the start (so that normal players will
>>>> still find it quickly). Cluster for obvious reasons.
>>>> 
>>>>> And Cues, Attachments, and Chapters are non-multiple.
>>>> 
>>>> I have no idea why Tags is multiple and these three aren't.
>>>> 
>>>> To me the following would make sense:
>>>> 
>>>> - Info, Tracks â€“ multiple but only if each instance contains
>>>> the same information
>>>> 
>>>> - SeekHead, Cluster â€“ multiple without restrictions
>>>> 
>>>> - Attachments, Chapters, Cues, Tags â€“ single
>> 
>> I can understand Attachments and Tags being multiple as it could
>> allow attachments or tags to be added to a file without having to
>> re-write too many bytes.
> 
> Yes. But then there should be a way for the player to know about
> these beforehand. Good players scan Matroska files beforehand anyway
> (unless it's live streaming).
> 

I agree with having a mechanism for players to know about them beforehand.

--
Sebastian


From nobody Tue Jan  5 00:20:04 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D1BF1B2C4D for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 00:20:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4KbR73UJ0PH9 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 00:20:01 -0800 (PST)
Received: from mail-vk0-x22e.google.com (mail-vk0-x22e.google.com [IPv6:2607:f8b0:400c:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6367F1B2BAC for <cellar@ietf.org>; Tue,  5 Jan 2016 00:20:01 -0800 (PST)
Received: by mail-vk0-x22e.google.com with SMTP id k1so135590038vkb.2 for <cellar@ietf.org>; Tue, 05 Jan 2016 00:20:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=zz5GVpxKut5huBYcLevQLl0cNKx6UroSOQbH3VLS8+w=; b=09GrBpwZR8a3LG2ZVfNDvIRtvIB/PXUdUS/rIdA9o0Bk1aqtzYU2lWhubxqyOaXp8t SGycvoSkC/1+oyuZf7V0f8jjM5DfBsEDSARNA+A/isvVZ6/1St+xDRXKbNf5kSuYf0kx yVTp2FSIJg0aPNp9i9EEfC5yaMERfH0ekRa6c190OyMH7Ana8qUOBpHMEOvjhbHgVwqp VCNfy25MWJKHZo7Ry3vRWhKjbtmcE+ioAAVG0RbDVPoqqMOgrWjjiaDPS1/V9uhL8AkC 0uI9hbr9z4TVW8AviOg0Fp9q/CMBrcQ/oPIu0v1wB3Zl4w2rZXgwNXPZJieV4phDpl/u NswQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=zz5GVpxKut5huBYcLevQLl0cNKx6UroSOQbH3VLS8+w=; b=Fb/BJngZfcfMqbAYPZQOIdcXc7GqCD90uIh+GzTMjwr5PvT3lZ6jRhS6b4KaoNcxg+ cC1p1H1VdCSOpNRQxBShQRAmGVrZHjmT7rdV2dfkVUpe48NYzA1WADDrpZZNMl1Sb26V IWsoYjmPvYT0u09IBuSbYfDiRSsKKkAC/muKv0PIsG2K+gtjIGCys610PpCxIJS1mU88 iFFNEu3ZjsX7Vo4exELmsfWFe4GgJ/jv1Nok3LRhCU6CMPdpiJDIE+Qr5AqMBfInUPq7 kg2D6HhBCqsbQ1Yi/gFyThPegE82QG6lZKB6CiaiXBA8AnC7SbAUh7TByfJbj6gaM6Im woQw==
X-Gm-Message-State: ALoCoQkWmZpllPLuiQ27j5NebmTgIDpxZ0LqVpgKv8dKpM3uLQrChltMCVlrwXPYLNn2LQUHSlDNoZjdSTy0jY7ttYjGETLfIw==
MIME-Version: 1.0
X-Received: by 10.31.50.213 with SMTP id y204mr44427031vky.109.1451982000387;  Tue, 05 Jan 2016 00:20:00 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Tue, 5 Jan 2016 00:20:00 -0800 (PST)
In-Reply-To: <568AC10F.9030303@gmx.de>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de>
Date: Tue, 5 Jan 2016 09:20:00 +0100
Message-ID: <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/DFTlkmgkLgktS-UNggaw6njwjAs>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 08:20:03 -0000

2016-01-04 19:59 GMT+01:00 Sebastian G. <bastik>
<bastik.public.mailinglist@gmx.de>:
> 04.01.2016, 08:11 Steve Lhomme:
>> 2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>
>>>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org>
>>>> wrote:
>>>>
>>>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>>>> Hey,
>>>>>
>>>>> I only remember the discussion around Tracks being multiple,
>>>>> not particularly for the other ones. Our intent way back when
>>>>> was to allow muxers to write multiple instances of _the same
>>>>> information_ in different places in order to make the file more
>>>>> resilient against damage or incomplete downloads with protocols
>>>>> like BitTorrent.
>>>>
>>>> Yes, that's the idea for the Track Info as it's vital to the
>>>> usability of the file, as well as the Segment Info. I'm not sure
>>>> it's used in practice though. Since the goal of CELLAR is
>>>> archiving solutions it may still make sense.
>>>
>>> Perhaps to declare that an Element may be repeated but must be
>>> repeated identically should be a new EBML Element Attributes, so
>>> there can be a distinction between the repeatability Segment/Info
>>> and the repeatability of SimpleBlock.
>>
>> That might be good. After all not elements make sense as repeated
>> ones. For example in Matroska you don't want a Cluster (timestamped
>> data) to be repeated.
>>
>>>>> The same reasoning could be applied to Info. Both elements are
>>>>> absolutely crucial to playback; the other level 1 elements safe
>>>>> for the clusters simply aren=E2=80=99t.
>>>
>>> But what should happen when the read finds differences in
>>> repeated-but-should-be-identical elements?
>>
>> Good question. Maybe repeated elements should have a CRC ? If a CRC
>> is wrong (or not found) the parser could look for a copy.
>
> I like the CRC idea for repeated elements, but it still does not define
> how players should behave if they encounter two elements, even with
> valid CRCs, not matching each other.

Also what about repeated elements that are not master elements. You'd
have no way of telling which is the best version. So repeated should
probably be master elements. Maybe CRC should be mandatory too (not
sure if real life files already follow this rule). That's the only way
a parser would be able to tell which version is correct, as far as I
can see.

> There would have to be a recommendation. "Use always the first
> occurrence of an element." or "If an element occurs repeated and its
> values differ, the last occurrence is the one that should be used."

Not necessarily. Bogus data could be on the first one. The goal is not
to write a version of the element and then an updated version in the
file. It has to be the same data. If you want to clear the first
version, you should use the Void EBML element. When the file is
originally written, repeated values should be exactly the same. That
means elements that have a file offset relative to a child element
would not be equal. Luckily in Matroska offset positions are always
relative to the Segment, so a Level-0 element.

http://www.matroska.org/technical/specs/notes.html#Position_References

> Obviously tools that create such files are violating the specifications
> since it should not be allowed to create repeated elements with
> differing values. On the other hand should it be hard to break playback.
> I prefer uniform behavior among players.
>
>>> For a scenario of two differing Info Elements, VLC and FFmpeg use
>>> different Info Elements. Which use is correct? Since the use of
>>> repeated-identical elements is resilience a deviation between the
>>> two could be expected, so we should suggest how the reader should
>>> respond.
>>
>> It was designed for recovery tools. It may not be good to change
>> players for such cases. It would make them more complex. (unless an
>> elegant/easy solution is found).
>
> For differences due to transmission errors a CRC for repeated elements
> seems a good solution.
>
> Players have to do something with repeated elements. I don't know what
> they do, but there should be a recommended way they should handle such
> cases. If a player breaks, that is OK, as long as the file was violating
> the specs. A player should behave in an expected way.

IMO what makes sense from a player point of view is to read an
element. If there's a CRC, it's broken and the semantic says the
element can be repeated, then it should look for a valid version.
Otherwise it shouldn't have to wonder which element to use if it
encounters another one. IMO repeated elements only make sense if
there's a CRC (whichever form it may take).

Another rule for repeatable elements: the element MUST be unique at
that level (not multiple).

>>>>>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>>>>>
>>>>> SeekHead and Cluster must be multiple. SeekHead in order to
>>>>> allow moving a SeekHead to the end of the file while still
>>>>> referencing it from the start (so that normal players will
>>>>> still find it quickly). Cluster for obvious reasons.
>>>>>
>>>>>> And Cues, Attachments, and Chapters are non-multiple.
>>>>>
>>>>> I have no idea why Tags is multiple and these three aren't.
>>>>>
>>>>> To me the following would make sense:
>>>>>
>>>>> - Info, Tracks =E2=80=93 multiple but only if each instance contains
>>>>> the same information
>>>>>
>>>>> - SeekHead, Cluster =E2=80=93 multiple without restrictions
>>>>>
>>>>> - Attachments, Chapters, Cues, Tags =E2=80=93 single
>>>
>>> I can understand Attachments and Tags being multiple as it could
>>> allow attachments or tags to be added to a file without having to
>>> re-write too many bytes.
>>
>> Yes. But then there should be a way for the player to know about
>> these beforehand. Good players scan Matroska files beforehand anyway
>> (unless it's live streaming).
>>
>
> I agree with having a mechanism for players to know about them beforehand=
.
>
> --
> Sebastian
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Tue Jan  5 06:22:50 2016
Return-Path: <kieran.o.leary@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0C7D01A8702 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 06:22:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gjanfhNkUzTL for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 06:22:47 -0800 (PST)
Received: from mail-qk0-x231.google.com (mail-qk0-x231.google.com [IPv6:2607:f8b0:400d:c09::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 829FB1A86FE for <cellar@ietf.org>; Tue,  5 Jan 2016 06:22:47 -0800 (PST)
Received: by mail-qk0-x231.google.com with SMTP id n135so141027241qka.2 for <cellar@ietf.org>; Tue, 05 Jan 2016 06:22:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:date:message-id:subject:from:to:content-type; bh=nkZwi4ck6k8dEz1HEepVn3L9Xhs9neH6QlwgCfvAFSg=; b=C44pNc1DuS4PraIWsYCk/BFS18xjCXdcaXAoAhSC+PXphxeEpoDBxq2I8gmPTcOVJC FcBBKB0lGjeyqc6wjqTOpY0T5ND1zUYEz822nRGiKjT2csn3LMZUL393zDRc2mrkWs20 O3w7xTR1F66dPN1yi1qQj+S9p9LOMLyi2idlMZXldK+uPEidAkH4Z48Dss5TnE6LquIl ttAh1Yo2s86hljHmoTls8DETY1TOvhuje6OGk3QqxHi5eejJ7ZQ8RZ5XzXdIDt3yzMYV 8iEprQvZyXJWlANPw7cr7EjQzTXupFDCFDXGPkBBCQnFFfRwY6RxSQv8qIoDazSiUKqH vIHg==
MIME-Version: 1.0
X-Received: by 10.55.73.74 with SMTP id w71mr124616578qka.60.1452003766749; Tue, 05 Jan 2016 06:22:46 -0800 (PST)
Received: by 10.55.106.6 with HTTP; Tue, 5 Jan 2016 06:22:46 -0800 (PST)
Date: Tue, 5 Jan 2016 14:22:46 +0000
Message-ID: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com>
From: Kieran O Leary <kieran.o.leary@gmail.com>
To: cellar@ietf.org
Content-Type: multipart/alternative; boundary=001a114a802ebad2a1052896f85e
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/RFYBaQSuoULr8sIw9RfHwnfZKvQ>
Subject: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 14:22:49 -0000

--001a114a802ebad2a1052896f85e
Content-Type: text/plain; charset=UTF-8

Hello,

I saw on your charter that a milestone for September 2016 is "Submit
specification for FFV1 video codec version 4 to IESG (Standards Track)".
https://datatracker.ietf.org/wg/cellar/charter/

Is there any information or roadmap available about proposed changes from
version 3 to version 4? I'm asking as the added features of Version 3 were
significant for moving image archives, and I'm curious to know what version
4 may look like.

Best regards,

Kieran O'Leary.

--001a114a802ebad2a1052896f85e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello,<div><br></div><div>I saw on your charter that a mil=
estone for September 2016 is &quot;<span style=3D"font-family:&#39;PT Serif=
&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;line-height:21.428=
6px">Submit specification for FFV1 video codec version 4 to IESG (Standards=
 Track)&quot;.=C2=A0</span><font face=3D"PT Serif, Palatino, Neue Swift, se=
rif"><span style=3D"font-size:15px;line-height:21.4286px"><a href=3D"https:=
//datatracker.ietf.org/wg/cellar/charter/">https://datatracker.ietf.org/wg/=
cellar/charter/</a></span></font></div><div><span style=3D"font-family:&#39=
;PT Serif&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;line-heig=
ht:21.4286px"><br></span></div><div><span style=3D"font-family:&#39;PT Seri=
f&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;line-height:21.42=
86px">Is there any information or roadmap available about proposed changes =
from version 3 to version 4? I&#39;m asking as the added features of Versio=
n 3 were significant for moving image archives, and I&#39;m curious to know=
 what version 4 may look like.</span><br></div><div><span style=3D"font-fam=
ily:&#39;PT Serif&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;l=
ine-height:21.4286px"><br></span></div><div><span style=3D"font-family:&#39=
;PT Serif&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;line-heig=
ht:21.4286px">Best regards,</span></div><div><span style=3D"font-family:&#3=
9;PT Serif&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;line-hei=
ght:21.4286px"><br></span></div><div><span style=3D"font-family:&#39;PT Ser=
if&#39;,Palatino,&#39;Neue Swift&#39;,serif;font-size:15px;line-height:21.4=
286px">Kieran O&#39;Leary.</span></div></div>

--001a114a802ebad2a1052896f85e--


From nobody Tue Jan  5 08:08:25 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E7EA11A8843 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:08:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.58
X-Spam-Level: *
X-Spam-Status: No, score=1.58 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oh1Tr1T9-Kd9 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:08:21 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3E2AB1A8845 for <cellar@ietf.org>; Tue,  5 Jan 2016 08:08:21 -0800 (PST)
Received: from [146.96.19.240] (port=33091 helo=[10.10.202.53]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aGU9i-000AoT-12; Tue, 05 Jan 2016 11:08:20 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_CEB941E9-3171-4C82-B17D-A55E2A79D441"
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com>
Date: Tue, 5 Jan 2016 11:08:16 -0500
Message-Id: <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com>
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com>
To: Kieran O Leary <kieran.o.leary@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/r59Xjmz65MzyS1bu9nYIV7yz1i8>
Cc: cellar@ietf.org
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 16:08:23 -0000

--Apple-Mail=_CEB941E9-3171-4C82-B17D-A55E2A79D441
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


> On Jan 5, 2016, at 9:22 AM, Kieran O Leary <kieran.o.leary@gmail.com> =
wrote:
>=20
> Hello,
>=20
> I saw on your charter that a milestone for September 2016 is "Submit =
specification for FFV1 video codec version 4 to IESG (Standards Track)". =
https://datatracker.ietf.org/wg/cellar/charter/ =
<https://datatracker.ietf.org/wg/cellar/charter/>
>=20
> Is there any information or roadmap available about proposed changes =
from version 3 to version 4? I'm asking as the added features of Version =
3 were significant for moving image archives, and I'm curious to know =
what version 4 may look like.

This is the place to provide proposals. There has been a little =
discussion on FFmpeg-devel but none yet on CELLAR. IMO I'd like to =
consider the following for FFV1:

Increased Self-Description of Intended Decoding
- documentation of color matrix (i.e. bt.601, bt.709, etc)
- documentation of sample range (i.e. full range vs broadcast range)

Increased Self-Description of the Encoding
- storage of encoding parameters (I see this features in h264, are these =
called SEI messages?)

Extending Pixel Format Support
- support for Bayer pixel formats

Some Header Adjustments
- currently some values such as bit depth, display aspect ratio, and =
chroma subsampling are set per slice rather than per frame. Perhaps =
there is a reason I am not considering, but possibly some adjustment =
could improve the logic of the frame and slice headers.

Looking forward to discussion on this topic.

Best Regards,
Dave Rice


--Apple-Mail=_CEB941E9-3171-4C82-B17D-A55E2A79D441
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jan 5, 2016, at 9:22 AM, Kieran O Leary &lt;<a =
href=3D"mailto:kieran.o.leary@gmail.com" =
class=3D"">kieran.o.leary@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Hello,<div class=3D""><br class=3D""></div><div class=3D"">I =
saw on your charter that a milestone for September 2016 is "<span =
style=3D"font-family:'PT Serif',Palatino,'Neue =
Swift',serif;font-size:15px;line-height:21.4286px" class=3D"">Submit =
specification for FFV1 video codec version 4 to IESG (Standards =
Track)".&nbsp;</span><font face=3D"PT Serif, Palatino, Neue Swift, =
serif" class=3D""><span style=3D"font-size:15px;line-height:21.4286px" =
class=3D""><a href=3D"https://datatracker.ietf.org/wg/cellar/charter/" =
class=3D"">https://datatracker.ietf.org/wg/cellar/charter/</a></span></fon=
t></div><div class=3D""><span style=3D"font-family:'PT =
Serif',Palatino,'Neue Swift',serif;font-size:15px;line-height:21.4286px" =
class=3D""><br class=3D""></span></div><div class=3D""><span =
style=3D"font-family:'PT Serif',Palatino,'Neue =
Swift',serif;font-size:15px;line-height:21.4286px" class=3D"">Is there =
any information or roadmap available about proposed changes from version =
3 to version 4? I'm asking as the added features of Version 3 were =
significant for moving image archives, and I'm curious to know what =
version 4 may look like.</span><br =
class=3D""></div></div></div></blockquote><br class=3D""></div><div>This =
is the place to provide proposals. There has been a little discussion on =
FFmpeg-devel but none yet on CELLAR. IMO I'd like to consider the =
following for FFV1:</div><div><br class=3D""></div><div>Increased =
Self-Description of Intended Decoding</div><div>- documentation of color =
matrix (i.e. bt.601, bt.709, etc)</div><div>- documentation of sample =
range (i.e. full range vs broadcast range)</div><div><br =
class=3D""></div><div>Increased Self-Description of the =
Encoding</div><div>- storage of encoding parameters (I see this features =
in h264, are these called SEI messages?)</div><div><br =
class=3D""></div><div>Extending Pixel Format Support</div>- support for =
Bayer pixel formats<div class=3D""><br class=3D""></div><div =
class=3D"">Some Header Adjustments</div><div class=3D"">- currently some =
values such as bit depth, display aspect ratio, and chroma subsampling =
are set per slice rather than per frame. Perhaps there is a reason I am =
not considering, but possibly some adjustment could improve the logic of =
the frame and slice headers.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Looking forward to discussion on this =
topic.</div><div class=3D""><br class=3D""></div><div class=3D"">Best =
Regards,</div><div class=3D"">Dave Rice</div><div class=3D""><br =
class=3D""></div></body></html>=

--Apple-Mail=_CEB941E9-3171-4C82-B17D-A55E2A79D441--


From nobody Tue Jan  5 08:10:37 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 893871A8845 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:10:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bDkpWzAQ7hB9 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:10:33 -0800 (PST)
Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [IPv6:2001:4b98:c:538::197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 391771A8824 for <cellar@ietf.org>; Tue,  5 Jan 2016 08:10:33 -0800 (PST)
Received: from mfilter23-d.gandi.net (mfilter23-d.gandi.net [217.70.178.151]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id 4835941C141; Tue,  5 Jan 2016 17:10:31 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter23-d.gandi.net
Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter23-d.gandi.net (mfilter23-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id jT_YJvz70XYN; Tue,  5 Jan 2016 17:10:29 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 8981D41C0A6; Tue,  5 Jan 2016 17:10:29 +0100 (CET)
Date: Tue, 5 Jan 2016 17:09:40 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Kieran O Leary <kieran.o.leary@gmail.com>
Message-ID: <20160105160940.GY13213@nb4>
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="H6o9R95t2FPeZmf3"
Content-Disposition: inline
In-Reply-To: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/gFydpu8BKAgzspvy6Mvbpsrg5yY>
Cc: cellar@ietf.org
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 16:10:35 -0000

--H6o9R95t2FPeZmf3
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hi

On Tue, Jan 05, 2016 at 02:22:46PM +0000, Kieran O Leary wrote:
> Hello,
>=20
> I saw on your charter that a milestone for September 2016 is "Submit
> specification for FFV1 video codec version 4 to IESG (Standards Track)".
> https://datatracker.ietf.org/wg/cellar/charter/
>=20
> Is there any information or roadmap available about proposed changes from
> version 3 to version 4? I'm asking as the added features of Version 3 were
> significant for moving image archives, and I'm curious to know what versi=
on
> 4 may look like.

i dont know about roundmaps but what might be in the next version
i guess depends largly on what volunteers do (spec, implementation
and testing wise)
support for bayer "pixel" formats and maybe paletted formats could
be in it. Some compression improvments by using inter frame prediction
would be an idea too. But i think 2016-sep is too soon for complex
additions like inter frames. All these things require trying multiple
solutions and testing/evaluating how they perform comression, speed
and complexity wise to see what makes sense to add to the spec


>=20
> Best regards,
>=20
> Kieran O'Leary.

> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar


--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When you are offended at any man's fault, turn to yourself and study your
own failings. Then you will forget your anger. -- Epictetus

--H6o9R95t2FPeZmf3
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaL6sQACgkQYR7HhwQLD6ub6gCeO/pcR+15w5RBRpIo+LoaJdMn
pBEAn2elyc4nOchvEbsZlSfOLvp0GeUq
=n1l2
-----END PGP SIGNATURE-----

--H6o9R95t2FPeZmf3--


From nobody Tue Jan  5 08:31:53 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 64C5B1A89A5 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:31:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LyK8j2ns0oDR for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:31:50 -0800 (PST)
Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [IPv6:2001:4b98:c:538::197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E31E1A899B for <cellar@ietf.org>; Tue,  5 Jan 2016 08:31:50 -0800 (PST)
Received: from mfilter42-d.gandi.net (mfilter42-d.gandi.net [217.70.178.172]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id 5D9A341C0A9; Tue,  5 Jan 2016 17:31:49 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter42-d.gandi.net
Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter42-d.gandi.net (mfilter42-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id bmhRVEiJEXRw; Tue,  5 Jan 2016 17:31:47 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id AC67041C084; Tue,  5 Jan 2016 17:31:47 +0100 (CET)
Date: Tue, 5 Jan 2016 17:30:58 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Kieran O Leary <kieran.o.leary@gmail.com>
Message-ID: <20160105163058.GZ13213@nb4>
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <20160105160940.GY13213@nb4>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3NJww9yp20AXRsxZ"
Content-Disposition: inline
In-Reply-To: <20160105160940.GY13213@nb4>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/GyB9v8c2tzMW-o5B4F3fg3t0udk>
Cc: cellar@ietf.org
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 16:31:52 -0000

--3NJww9yp20AXRsxZ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jan 05, 2016 at 05:09:40PM +0100, Michael Niedermayer wrote:
> Hi
>=20
> On Tue, Jan 05, 2016 at 02:22:46PM +0000, Kieran O Leary wrote:
> > Hello,
> >=20
> > I saw on your charter that a milestone for September 2016 is "Submit
> > specification for FFV1 video codec version 4 to IESG (Standards Track)".
> > https://datatracker.ietf.org/wg/cellar/charter/
> >=20
> > Is there any information or roadmap available about proposed changes fr=
om
> > version 3 to version 4? I'm asking as the added features of Version 3 w=
ere
> > significant for moving image archives, and I'm curious to know what ver=
sion
> > 4 may look like.
>=20
> i dont know about roundmaps but what might be in the next version
> i guess depends largly on what volunteers do (spec, implementation
> and testing wise)
> support for bayer "pixel" formats and maybe paletted formats could
> be in it. Some compression improvments by using inter frame prediction
> would be an idea too. But i think 2016-sep is too soon for complex
> additions like inter frames. All these things require trying multiple
> solutions and testing/evaluating how they perform comression, speed
> and complexity wise to see what makes sense to add to the spec

also theres a raw slice coding mode and a more flexible RCT in the
implementation and partly in the draft spec, these likely will be in
version 4 (depening on peoples oppinions i assume)

the "raw" coding mode for slices is needed so a tight upper bound
can be put on the compressed size of slices, otherwise its possible
to construct a sequence of frames where one slice has a compressed
size that is very much larger than its raw size, this would likely
never occur with any real video but contructed videos that push
the range coder statistics one direction and then sharply switch
everything to have completely opposite statistics would result in
a locally bloated up bitstream.
Such bloated up slices would annoyingly require larger buffers to be
allocated to allow encoding them, the raw coding mode puts a
constraint on this so that a buffer that is about as large as the raw
pixels is gurateed to be large enough for coding a slice in some mode.
Reducing the needed memory and complexity of an encoder implementation
and also reducing the worst case local bitrate requirement for
anything else in the chain



[...]

--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No snowflake in an avalanche ever feels responsible. -- Voltaire

--3NJww9yp20AXRsxZ
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaL78IACgkQYR7HhwQLD6ug2QCeJz9NsRMHPoihpJuf7XeLkEjv
qWcAnRK1Nu0+iM9fryeuVayAlwu2jy60
=SI7z
-----END PGP SIGNATURE-----

--3NJww9yp20AXRsxZ--


From nobody Tue Jan  5 08:35:35 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 105341A89A6 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:35:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i1UjRhVuGRBI for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:35:32 -0800 (PST)
Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B30511A89A5 for <cellar@ietf.org>; Tue,  5 Jan 2016 08:35:32 -0800 (PST)
Received: from mfilter18-d.gandi.net (mfilter18-d.gandi.net [217.70.178.146]) by relay3-d.mail.gandi.net (Postfix) with ESMTP id 1754BA80D0; Tue,  5 Jan 2016 17:35:31 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter18-d.gandi.net
Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195]) by mfilter18-d.gandi.net (mfilter18-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id mUp0W0hfKKrD; Tue,  5 Jan 2016 17:35:29 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 109A4A80CA; Tue,  5 Jan 2016 17:35:28 +0100 (CET)
Date: Tue, 5 Jan 2016 17:34:39 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Dave Rice <dave@dericed.com>
Message-ID: <20160105163439.GA13213@nb4>
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="M9YpAf2t6OxtMGzg"
Content-Disposition: inline
In-Reply-To: <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ZTI6ieIft7-aT6A9wUlwIl5t4Q0>
Cc: cellar@ietf.org, Kieran O Leary <kieran.o.leary@gmail.com>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 16:35:34 -0000

--M9YpAf2t6OxtMGzg
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jan 05, 2016 at 11:08:16AM -0500, Dave Rice wrote:
[...]

> Some Header Adjustments
> - currently some values such as bit depth, display aspect ratio, and chro=
ma subsampling are set per slice rather than per frame. Perhaps there is a =
reason I am not considering, but possibly some adjustment could improve the=
 logic of the frame and slice headers.

the reason behind these being in slices is that slices should be
independantly decodable
If these would be in a single frame header and that frame header
is lost then none of the slices would be decodable (unless the
information is not needed to decode them)

[...]

--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

You can kill me, but you cannot change the truth.

--M9YpAf2t6OxtMGzg
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaL8J8ACgkQYR7HhwQLD6tQVgCgihQqCUIFAdeo/6UmblN53NFM
NosAoJILcnde+rB1ikR/LmBLDpbGamfC
=jLgp
-----END PGP SIGNATURE-----

--M9YpAf2t6OxtMGzg--


From nobody Tue Jan  5 08:50:53 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 867F91A8A46 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:50:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YzaKoAPHcDfC for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:50:51 -0800 (PST)
Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EA4271A8A43 for <cellar@ietf.org>; Tue,  5 Jan 2016 08:50:50 -0800 (PST)
Received: from mfilter38-d.gandi.net (mfilter38-d.gandi.net [217.70.178.169]) by relay3-d.mail.gandi.net (Postfix) with ESMTP id C25A7A80D1; Tue,  5 Jan 2016 17:50:49 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter38-d.gandi.net
Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195]) by mfilter38-d.gandi.net (mfilter38-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id iqWBG788kph4; Tue,  5 Jan 2016 17:50:48 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id F0957A80CF; Tue,  5 Jan 2016 17:50:47 +0100 (CET)
Date: Tue, 5 Jan 2016 17:49:58 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Steve Lhomme <slhomme@matroska.org>
Message-ID: <20160105164958.GB13213@nb4>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="tuifNR376H9qoyoc"
Content-Disposition: inline
In-Reply-To: <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9bMSKququInPIfYqhUG9yEQYlUw>
Cc: cellar@ietf.org, "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 16:50:52 -0000

--tuifNR376H9qoyoc
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jan 05, 2016 at 09:20:00AM +0100, Steve Lhomme wrote:
> 2016-01-04 19:59 GMT+01:00 Sebastian G. <bastik>
> <bastik.public.mailinglist@gmx.de>:
> > 04.01.2016, 08:11 Steve Lhomme:
> >> 2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
> >>>
> >>>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org>
> >>>> wrote:
> >>>>
> >>>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
> >>>>> Hey,
> >>>>>
> >>>>> I only remember the discussion around Tracks being multiple,
> >>>>> not particularly for the other ones. Our intent way back when
> >>>>> was to allow muxers to write multiple instances of _the same
> >>>>> information_ in different places in order to make the file more
> >>>>> resilient against damage or incomplete downloads with protocols
> >>>>> like BitTorrent.
> >>>>
> >>>> Yes, that's the idea for the Track Info as it's vital to the
> >>>> usability of the file, as well as the Segment Info. I'm not sure
> >>>> it's used in practice though. Since the goal of CELLAR is
> >>>> archiving solutions it may still make sense.
> >>>
> >>> Perhaps to declare that an Element may be repeated but must be
> >>> repeated identically should be a new EBML Element Attributes, so
> >>> there can be a distinction between the repeatability Segment/Info
> >>> and the repeatability of SimpleBlock.
> >>
> >> That might be good. After all not elements make sense as repeated
> >> ones. For example in Matroska you don't want a Cluster (timestamped
> >> data) to be repeated.
> >>
> >>>>> The same reasoning could be applied to Info. Both elements are
> >>>>> absolutely crucial to playback; the other level 1 elements safe
> >>>>> for the clusters simply aren=E2=80=99t.
> >>>
> >>> But what should happen when the read finds differences in
> >>> repeated-but-should-be-identical elements?
> >>
> >> Good question. Maybe repeated elements should have a CRC ? If a CRC
> >> is wrong (or not found) the parser could look for a copy.
> >
> > I like the CRC idea for repeated elements, but it still does not define
> > how players should behave if they encounter two elements, even with
> > valid CRCs, not matching each other.
>=20
> Also what about repeated elements that are not master elements. You'd
> have no way of telling which is the best version. So repeated should
> probably be master elements. Maybe CRC should be mandatory too (not
> sure if real life files already follow this rule). That's the only way
> a parser would be able to tell which version is correct, as far as I
> can see.

i dont disagree but i think "no way" is not correct
its possible that external means like errors from reading data could
be used to detect which repeated versions are bad, also parsing errors
could indicate what is bad and then if there are 3 or more copies
simple majority "voting" on a byte per byte base could be used
to construct a "good" version, this too could be done when all copies
fail CRC checks. No idea if that would be usefull in any actual real
world usecase, but a player or repair tool trying to be exceptionally
resillient to damages could do things like that

[...]

--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Many things microsoft did are stupid, but not doing something just because
microsoft did it is even more stupid. If everything ms did were stupid they
would be bankrupt already.

--tuifNR376H9qoyoc
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaL9DYACgkQYR7HhwQLD6sfWQCfUky4bEi9D/pIRuB4VkotjUtr
g+QAoI1Ewb+BSiry27d9NrdSg3ZA0cCT
=IS5k
-----END PGP SIGNATURE-----

--tuifNR376H9qoyoc--


From nobody Tue Jan  5 08:56:05 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 17C621A9152 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:56:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.702
X-Spam-Level: 
X-Spam-Status: No, score=-0.702 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P47oJaGzR9fy for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 08:56:01 -0800 (PST)
Received: from 1.mo69.mail-out.ovh.net (1.mo69.mail-out.ovh.net [178.33.251.173]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D2DAB1A911A for <cellar@ietf.org>; Tue,  5 Jan 2016 08:56:00 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 0BE24FFC316 for <cellar@ietf.org>; Tue,  5 Jan 2016 17:55:58 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 5 Jan 2016 18:55:58 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 5 Jan 2016 18:55:57 +0200
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4>
To: cellar@ietf.org
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568BF59B.6050106@mediaarea.net>
Date: Tue, 5 Jan 2016 17:55:55 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <20160105163439.GA13213@nb4>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 17698302111477731514
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: -100
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelgdelvdcutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/zgdGxV6Q70HNGiziiYMukzrGu6Y>
Cc: Kieran O Leary <kieran.o.leary@gmail.com>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 16:56:03 -0000

Le 05/01/2016 17:34, Michael Niedermayer a écrit :
> On Tue, Jan 05, 2016 at 11:08:16AM -0500, Dave Rice wrote:
> [...]
>
>> Some Header Adjustments
>> - currently some values such as bit depth, display aspect ratio, and chroma subsampling are set per slice rather than per frame. Perhaps there is a reason I am not considering, but possibly some adjustment could improve the logic of the frame and slice headers.
> the reason behind these being in slices is that slices should be
> independantly decodable
> If these would be in a single frame header and that frame header
> is lost then none of the slices would be decodable (unless the
> information is not needed to decode them)

We have problem about resilience in:
- the ConfigurationRecord(). Very important, and not duplicated. So if 
we want resilience, we should first focus in it.
- if the slice_size of the last slice is corrupted, we lose all slices 
(ok, we could decode each slice, let say slice_sizeof last slice and 
first byte of first slice). So there is not a so good resilience anyway.
So I am not sure it helps so much to have display aspect ratio, and 
picture_structure in a slice header, without more work on resilience 
(slice synchro? something else?). If keep them per slice, maybe we 
should say in spec that all slices must have the exact same display 
aspect ratio and picture_structure per frame (does the decoder support 
different picture_structures in a frame?)

Additionally, picture_structure, sar_num, sar_dem (and other?) do not 
use to change (or they change as often as  chroma_planes, 
h_chroma_subsample, alpha_plane...), so we may consider to put them in 
the ConfigurationRecord() too (and we may need to take care of 
duplicating it in the container?)

I guess such question should have its own topic.

PS: Dave, I see  colorspace_type, bits_per_raw_sample, chroma_plane,  
h_chroma_subsample, v_chroma_subsample, so bit depth and chroma 
subsampling in the ConfigurationRecord(), so per stream. Where so you 
see them per slice? I only see display aspect ratio per slice.


From nobody Tue Jan  5 09:45:40 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCCB81ACE6F for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 09:45:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NcvrnplREIsi for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 09:45:38 -0800 (PST)
Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [IPv6:2001:4b98:c:538::197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DE1351AC7E8 for <cellar@ietf.org>; Tue,  5 Jan 2016 09:45:37 -0800 (PST)
Received: from mfilter28-d.gandi.net (mfilter28-d.gandi.net [217.70.178.159]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id B630B41C0AB; Tue,  5 Jan 2016 18:45:36 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter28-d.gandi.net
Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter28-d.gandi.net (mfilter28-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id 14TMsPd5Dwei; Tue,  5 Jan 2016 18:45:35 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id E2A7A41C097; Tue,  5 Jan 2016 18:45:34 +0100 (CET)
Date: Tue, 5 Jan 2016 18:44:45 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <20160105174445.GC13213@nb4>
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4> <568BF59B.6050106@mediaarea.net>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="gkQsIeIyLzf1kMz9"
Content-Disposition: inline
In-Reply-To: <568BF59B.6050106@mediaarea.net>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/M707Ca5DAFHj9TcuI38mVbRBEyY>
Cc: cellar@ietf.org, Kieran O Leary <kieran.o.leary@gmail.com>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 17:45:40 -0000

--gkQsIeIyLzf1kMz9
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jan 05, 2016 at 05:55:55PM +0100, Jerome Martinez wrote:
> Le 05/01/2016 17:34, Michael Niedermayer a =E9crit :
> >On Tue, Jan 05, 2016 at 11:08:16AM -0500, Dave Rice wrote:
> >[...]
> >
> >>Some Header Adjustments
> >>- currently some values such as bit depth, display aspect ratio, and ch=
roma subsampling are set per slice rather than per frame. Perhaps there is =
a reason I am not considering, but possibly some adjustment could improve t=
he logic of the frame and slice headers.
> >the reason behind these being in slices is that slices should be
> >independantly decodable
> >If these would be in a single frame header and that frame header
> >is lost then none of the slices would be decodable (unless the
> >information is not needed to decode them)
>=20
> We have problem about resilience in:
> - the ConfigurationRecord(). Very important, and not duplicated. So

the global header / extradata / ConfigurationRecord can and should
be duplicated at the container level.
repeating it at the codec level would make finding a duplicate element
relativly hard as one probably would have to scan the whole file.
A container could contain something like an index to point to
redundant copies, while at codec level this would not work so easily


> if we want resilience, we should first focus in it.
> - if the slice_size of the last slice is corrupted, we lose all
> slices (ok, we could decode each slice, let say slice_sizeof last
> slice and first byte of first slice). So there is not a so good
> resilience anyway.

its not hard to scan for slices with valid CRCs without knowing their
start/end. for each assumed end the size is just stored in 3 bytes
there which gives the start, and the crc is there easy to check
(Checking all these potential slice crcs can be done efficiently if
 iam not missing something)


> So I am not sure it helps so much to have display aspect ratio, and
> picture_structure in a slice header, without more work on resilience
> (slice synchro? something else?).

> If keep them per slice, maybe we
> should say in spec that all slices must have the exact same display
> aspect ratio and picture_structure per frame

agree (per frame all must match)


> (does the decoder
> support different picture_structures in a frame?)

different picture_structures in 1 frame dont make sense or do i
misunderstand ?


>=20
> Additionally, picture_structure, sar_num, sar_dem (and other?) do
> not use to change (or they change as often as  chroma_planes,
> h_chroma_subsample, alpha_plane...), so we may consider to put them
> in the ConfigurationRecord() too (and we may need to take care of
> duplicating it in the container?)

they could optionally be put in the global ConfigurationRecord
but it should stay possible for them to change if thats what the
source video we encode is doing

[...]
--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Good people do not need laws to tell them to act responsibly, while bad
people will find a way around the laws. -- Plato

--gkQsIeIyLzf1kMz9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaMAQ0ACgkQYR7HhwQLD6sp2ACcDNwt3+XXLuHvZVI1FbxQqvS0
AzUAn14assd1yRXJZ3yYtdMcTKF+c4MZ
=H9zl
-----END PGP SIGNATURE-----

--gkQsIeIyLzf1kMz9--


From nobody Tue Jan  5 10:02:06 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 959D51A8AF6 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 10:02:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iFPxGlrMXrBb for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 10:02:03 -0800 (PST)
Received: from 10.mo69.mail-out.ovh.net (10.mo69.mail-out.ovh.net [46.105.73.241]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 90DC81A8AF4 for <cellar@ietf.org>; Tue,  5 Jan 2016 10:02:03 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id CDE28FFC18B for <cellar@ietf.org>; Tue,  5 Jan 2016 19:02:01 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 5 Jan 2016 20:02:01 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 5 Jan 2016 20:01:59 +0200
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4> <568BF59B.6050106@mediaarea.net> <20160105174445.GC13213@nb4>
To: cellar@ietf.org
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568C0516.3040605@mediaarea.net>
Date: Tue, 5 Jan 2016 19:01:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <20160105174445.GC13213@nb4>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 366480421352181946
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: -100
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelgddutdehucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/EDH5vX69WZpIFFVdwWmyBBUi-zs>
Cc: Kieran O Leary <kieran.o.leary@gmail.com>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 18:02:05 -0000

Le 05/01/2016 18:44, Michael Niedermayer a écrit :
> the global header / extradata / ConfigurationRecord can and should be 
> duplicated at the container level. repeating it at the codec level 
> would make finding a duplicate element relativly hard as one probably 
> would have to scan the whole file. A container could contain something 
> like an index to point to redundant copies, while at codec level this 
> would not work so easily 

As far as I know, I never seen duplicated ConfigurationRecord.
I guess we should add such option (e.g. in Matroska specs, there is 
already a discussion about duplicated parts) for people wanting to 
secure this important part.5

> [...]
>
> different picture_structures in 1 frame dont make sense or do i
> misunderstand ?

Some people may be crazy enough for wanting and trying e.g.:
- slice 0,0 top field first
- slice 0,0 (the same as the line above) bottom field first
- slice 0,1 progressive
- slice 1,0 bottom field first
- slice 1,0 (the same as the line above) top field first
- slice 1,1 progressive
(we have MABFF feature in AVC/H264, so I don't invent too much)

and for the moment, I see nothing in the FFV1 specification forbidding 
that (did I miss something?)
So either we are clear it is authorized (and the reference decoder can 
deal with it), or we explicitly forbid it (picture_structure is same in 
all slices of a frame)


>
>> Additionally, picture_structure, sar_num, sar_dem (and other?) do
>> not use to change (or they change as often as  chroma_planes,
>> h_chroma_subsample, alpha_plane...), so we may consider to put them
>> in the ConfigurationRecord() too (and we may need to take care of
>> duplicating it in the container?)
> they could optionally be put in the global ConfigurationRecord
> but it should stay possible for them to change if thats what the
> source video we encode is doing

I like the idea to have such optional possibility. this is not a lot, 
but always some bits of compression.
A candidate for FFV1 version 4 feature!

Jérôme


From frankgalligan@gmail.com  Tue Jan  5 13:12:27 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C35BF1A9163 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:12:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.701
X-Spam-Level: 
X-Spam-Status: No, score=0.701 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aoSBJY4iU1gZ for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:12:24 -0800 (PST)
Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ABB851A9125 for <cellar@ietf.org>; Tue,  5 Jan 2016 13:12:24 -0800 (PST)
Received: by mail-oi0-x22f.google.com with SMTP id o62so276627207oif.3 for <cellar@ietf.org>; Tue, 05 Jan 2016 13:12:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:date:message-id:subject:from:to:cc:content-type;  bh=3zs/yLzV4wVqnqpQFmTgYKnNsbZX8ePKVwqIviJi//g=; b=rFj1mtFqHNz+6Fvdpfl+vD7dKSig5qJtb5exdCRhcKN4qmsEFbErtYxswAXtUISedV 1y5J9jGsgAfb2Z0z8AxbaV0kwRvoXzessqTJrIN43fHU+j0e/zFvdiHFgN8cycMLkq8u jtaiUVXIvdpODcIEwsivP2swAnsJe7USVXDv1acWsqa4UzC16k88qHyK/cG1S6R68uBB 6YVhV+93gPyB03m+6SjVa9EEqfOJZxOy1JXnuhQmyn1iDEVDlETKIX8ziyiloUBQ1SV6 djuO17QGyfjO2cVLUcIqkN2/VFOCqU/n8V9/Wl+fJT5NabREB7i7FTo8KJVaePgpvuu4 eH+Q==
MIME-Version: 1.0
X-Received: by 10.202.85.7 with SMTP id j7mr64705483oib.11.1452028344057; Tue, 05 Jan 2016 13:12:24 -0800 (PST)
Received: by 10.202.211.65 with HTTP; Tue, 5 Jan 2016 13:12:24 -0800 (PST)
Date: Tue, 5 Jan 2016 13:12:24 -0800
Message-ID: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: cellar@ietf.org
Content-Type: multipart/alternative; boundary=001a113cc1a2a6c58305289cb15e
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/sZyfPTM-QY69P-0omfOIiTN622o>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Subject: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 21:13:20 -0000

--001a113cc1a2a6c58305289cb15e
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello all,

I would like to bring up the discussion again about better representing the
color format of video. It looks like the discussion was started here [1] on
matroska-devel list. I think we need to add some Colour elements so
Matroska files can (potentially) more faithfully represent the video source
on many devices. Here is a proposal I created to start from:


Element Name: Colour
Level:        4
ID:           [55][A0]
Mandatory:    -
Multiple:     -
Default:      -
Type:         m
Description:  Settings describing the colour format.


Element Name: ColourMatrix
Level:        5
ID:           [55][A1]
Mandatory:    ma
Multiple:     -
Default:      2
Type:         u
Description:  ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB), 1: BT709=
,
              2: Unspecified, 3: Reserved, 4: FCC, 5: BT470BG, 6: SMPTE
170M,
              7: SMPTE 240M, 8: YCOCG, 9: BT2020 Non-constant Luminance,
              10: BT2020 Constant Luminance)


Element Name: BitsPerChannel
Level:        5
ID:           [55][A2]
Mandatory:    ma
Multiple:     -
Default:      8
Type:         u
Description:  Number of bits per channel. This number may be less for
specific
              channels depending on the ColourFormat and ChromaSubsampling.


Element Name: ChromaSubsampling
Level:        5
ID:           [55][A3]
Mandatory:    ma
Multiple:     -
Default:      0
Type:         u
Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)


Element Name: ColourRange
Level:        5
ID:           [55][A4]
Mandatory:    ma
Multiple:     -
Default:      1
Type:         u
Description:  (0: Unspecified, 1: Defined by ColourMatrix/TransferFunction,
              2: Full range)


Element Name: TransferFunction
Level:        5
ID:           [55][A6]
Mandatory:    ma
Multiple:     -
Default:      2
Type:         u
Description:  Transfer Function. (0: Reserved, 1: ITU-R BT.709, 2:
Unspecified,
              4: Gamma 2.2 curve, 5: Gamma 2.8 curve, 6: SMPTE 170M,
              7: SMPTE 240M, 8: Linear, 9: Log, 10: Log Sqrt,
              11: IEC 61966-2-4, 12: ITU-R BT.1361 Extended Colour Gamut,
              13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit,
              15: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084,
              17: SMPTE ST 428-1 18: ARIB STD-B67 (HLG))


Element Name: Primaries
Level:        5
Mandatory:    -
Multiple:     -
ID:           [55][A7]
Default:      2
Description:  (0: Reserved, 1: ITU-R BT.709, 2: Unspecified, 4: ITU-R
BT.470M,
               5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM,
               9: ITU-R BT.2020, 10: SMPTE ST 428-1)


Element Name: MaxCLL
Level:        5
ID:           [55][A8]
Mandatory:    -
Multiple:     -
Default:      -
Type:         u
Description:  Maximum brightness of a single pixel in candelas per square
              meter (cd/m=C2=B2).


Element Name: MaxFALL
Level:        5
ID:           [55][A9]
Mandatory:    -
Multiple:     -
Default:      -
Type:         u
Description:  Maximum brightness of a single full frame in candelas per
square
              meter (cd/m=C2=B2).


Element Name: MasteringMetadata
Level:        5
ID:           [55][B0]
Mandatory:    -
Multiple:     -
Default:      -
Type:         m
Description:  SMPTE 2086 mastering data.


Element Name: PrimaryRChromaticityX
Level:        6
ID:           [55][B1]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryRChromaticityY
Level:        6
ID:           [55][B2]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryGChromaticityX
Level:        6
ID:           [55][B3]
Mandatory:    -
Multiple:     -
Default:      -
f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryGChromaticityY
Level:        6
ID:           [55][B4]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryBChromaticityX
Level:        6
ID:           [55][B5]
Mandatory:    -
Multiple:     -
Default:      -
f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryBChromaticityY
Level:        6
ID:           [55][B6]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: WhitePointChromaticityX
Level:        6
ID:           [55][B7]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: WhitePointChromaticityY
Level:        6
ID:           [55][B8]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: LuminanceMax
Level:        6
ID:           [55][B9]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Maximum luminance. Shall be represented in candelas per squar=
e
              meter (cd/m=C2=B2). Valid value is in the range 0 <=3D f <=3D=
 9999.99


Element Name: LuminanceMin
Level:        6
ID:           [55][BA]
Mandatory:    -
Multiple:     -
Default:      -
Type:         f
Description:  Minimum luminance. Shall be represented in candelas per squar=
e
              meter (cd/m=C2=B2). Valid value is in the range 0 <=3D f <=3D=
 999.9999



I can post a link to a formatted document if that would be easier. For
Matrix, Range, and Primaries, I'm pretty much using values that map
directly to values defined in FFmpeg.

Thanks,
Frank

[1]
http://lists.matroska.org/pipermail/matroska-devel/2015-September/004778.ht=
ml

--001a113cc1a2a6c58305289cb15e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hello all,<div><br></div><div>I would like to bring up the=
 discussion again about better representing the color format of video. It l=
ooks like the discussion was started here [1] on matroska-devel list. I thi=
nk we need to add some Colour elements so Matroska files can (potentially) =
more faithfully represent the video source on many devices. Here is a propo=
sal I created to start from:</div><div><br></div><div><br></div><div><div><=
font face=3D"monospace, monospace">Element Name: Colour</font></div><div><f=
ont face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A04</font=
></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 [55][A0]</font></div><div><font face=3D"monospace, monospace"=
>Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monosp=
ace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"monospace, mo=
nospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"mono=
space, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 m</font></div><div><fon=
t face=3D"monospace, monospace">Description: =C2=A0Settings describing the =
colour format.</font></div><div><font face=3D"monospace, monospace"><br></f=
ont></div><div><font face=3D"monospace, monospace"><br></font></div><div><f=
ont face=3D"monospace, monospace">Element Name: ColourMatrix</font></div><d=
iv><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A05<=
/font></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 [55][A1]</font></div><div><font face=3D"monospace, monosp=
ace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><font face=3D"monospace, m=
onospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"monospac=
e, monospace">Default: =C2=A0 =C2=A0 =C2=A02</font></div><div><font face=3D=
"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</font></div><div=
><font face=3D"monospace, monospace">Description: =C2=A0ColourMatrix of the=
 video. (0: IEC 61966-2-1 (sRGB), 1: BT709,</font></div><div><font face=3D"=
monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 2: U=
nspecified, 3: Reserved, 4: FCC, 5: BT470BG, 6: SMPTE 170M,</font></div><di=
v><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 7: SMPTE 240M, 8: YCOCG, 9: BT2020 Non-constant Luminance,</f=
ont></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 10: BT2020 Constant Luminance)=C2=A0</font></div><=
div><font face=3D"monospace, monospace"><br></font></div><div><font face=3D=
"monospace, monospace"><br></font></div><div><font face=3D"monospace, monos=
pace">Element Name: BitsPerChannel</font></div><div><font face=3D"monospace=
, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A05</font></div><div><font fac=
e=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A2]<=
/font></div><div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=
=A0ma</font></div><div><font face=3D"monospace, monospace">Multiple: =C2=A0=
 =C2=A0 -</font></div><div><font face=3D"monospace, monospace">Default: =C2=
=A0 =C2=A0 =C2=A08</font></div><div><font face=3D"monospace, monospace">Typ=
e: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</font></div><div><font face=3D"monospace, =
monospace">Description: =C2=A0Number of bits per channel. This number may b=
e less for specific</font></div><div><font face=3D"monospace, monospace">=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 channels depending on the =
ColourFormat and ChromaSubsampling.</font></div><div><font face=3D"monospac=
e, monospace"><br></font></div><div><font face=3D"monospace, monospace"><br=
></font></div><div><font face=3D"monospace, monospace">Element Name: Chroma=
Subsampling</font></div><div><font face=3D"monospace, monospace">Level: =C2=
=A0 =C2=A0 =C2=A0 =C2=A05</font></div><div><font face=3D"monospace, monospa=
ce">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A3]</font></div><div><font =
face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><=
font face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><d=
iv><font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A00</font=
></div><div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 u</font></div><div><font face=3D"monospace, monospace">Description: =
=C2=A0(0: 4:2:0, 2: 4:2:2, 4: 4:4:4)</font></div><div><font face=3D"monospa=
ce, monospace"><br></font></div><div><font face=3D"monospace, monospace"><b=
r></font></div><div><font face=3D"monospace, monospace">Element Name: Colou=
rRange</font></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =
=C2=A0 =C2=A0 =C2=A05</font></div><div><font face=3D"monospace, monospace">=
ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A4]</font></div><div><font face=
=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><font=
 face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><=
font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A01</font></d=
iv><div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 u</font></div><div><font face=3D"monospace, monospace">Description: =C2=
=A0(0: Unspecified, 1: Defined by ColourMatrix/TransferFunction,</font></di=
v><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 2: Full range)</font></div><div><font face=3D"monospace, =
monospace"><br></font></div><div><font face=3D"monospace, monospace"><br></=
font></div><div><font face=3D"monospace, monospace">Element Name: TransferF=
unction</font></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =
=C2=A0 =C2=A0 =C2=A05</font></div><div><font face=3D"monospace, monospace">=
ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A6]</font></div><div><font face=
=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><font=
 face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><=
font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A02</font></d=
iv><div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 u</font></div><div><font face=3D"monospace, monospace">Description: =C2=
=A0Transfer Function. (0: Reserved, 1: ITU-R BT.709, 2: Unspecified,</font>=
</div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 4: Gamma 2.2 curve, 5: Gamma 2.8 curve, 6: SMPTE 170M,=
</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 7: SMPTE 240M, 8: Linear, 9: Log, 10: Log Sqrt,=
</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 11: IEC 61966-2-4, 12: ITU-R BT.1361 Extended C=
olour Gamut,</font></div><div><font face=3D"monospace, monospace">=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 13: IEC 61966-2-1, 14: ITU-R BT.2=
020 10 bit,</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 15: ITU-R BT.2020 12 bit, 16: SMPTE =
ST 2084,</font></div><div><font face=3D"monospace, monospace">=C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 17: SMPTE ST 428-1 18: ARIB STD-B67 (HL=
G))</font></div><div><font face=3D"monospace, monospace"><br></font></div><=
div><font face=3D"monospace, monospace"><br></font></div><div><font face=3D=
"monospace, monospace">Element Name: Primaries</font></div><div><font face=
=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A05</font></div><=
div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0-</font></d=
iv><div><font face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font=
></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 [55][A7]</font></div><div><font face=3D"monospace, monospace"=
>Default: =C2=A0 =C2=A0 =C2=A02</font></div><div><font face=3D"monospace, m=
onospace">Description: =C2=A0(0: Reserved, 1: ITU-R BT.709, 2: Unspecified,=
 4: ITU-R BT.470M,</font></div><div><font face=3D"monospace, monospace">=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A05: ITU-R BT.470BG, 6: S=
MPTE 170M, 7: SMPTE 240M, 8: FILM,</font></div><div><font face=3D"monospace=
, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A09: ITU-=
R BT.2020, 10: SMPTE ST 428-1)</font></div><div><font face=3D"monospace, mo=
nospace"><br></font></div><div><font face=3D"monospace, monospace"><br></fo=
nt></div><div><font face=3D"monospace, monospace">Element Name: MaxCLL</fon=
t></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=
=A0 =C2=A05</font></div><div><font face=3D"monospace, monospace">ID: =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A8]</font></div><div><font face=3D"monosp=
ace, monospace">Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D"mo=
nospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=
=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><=
font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</fon=
t></div><div><font face=3D"monospace, monospace">Description: =C2=A0Maximum=
 brightness of a single pixel in candelas per square</font></div><div><font=
 face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 meter (cd/m=C2=B2).</font></div><div><font face=3D"monospace, monosp=
ace"><br></font></div><div><font face=3D"monospace, monospace"><br></font><=
/div><div><font face=3D"monospace, monospace">Element Name: MaxFALL</font><=
/div><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =
=C2=A05</font></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 [55][A9]</font></div><div><font face=3D"monospace,=
 monospace">Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D"monosp=
ace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"mo=
nospace, monospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font f=
ace=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</font></di=
v><div><font face=3D"monospace, monospace">Description: =C2=A0Maximum brigh=
tness of a single full frame in candelas per square</font></div><div><font =
face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 meter (cd/m=C2=B2).</font></div><div><font face=3D"monospace, monospace=
"><br></font></div><div><font face=3D"monospace, monospace"><br></font></di=
v><div><font face=3D"monospace, monospace">Element Name: MasteringMetadata<=
/font></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =
=C2=A0 =C2=A05</font></div><div><font face=3D"monospace, monospace">ID: =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][B0]</font></div><div><font face=3D"mon=
ospace, monospace">Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D=
"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font fac=
e=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div>=
<font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 m</fo=
nt></div><div><font face=3D"monospace, monospace">Description: =C2=A0SMPTE =
2086 mastering data.</font></div><div><font face=3D"monospace, monospace"><=
br></font></div><div><font face=3D"monospace, monospace"><br></font></div><=
div><font face=3D"monospace, monospace">Element Name: PrimaryRChromaticityX=
</font></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =
=C2=A0 =C2=A06</font></div><div><font face=3D"monospace, monospace">ID: =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][B1]</font></div><div><font face=3D"mon=
ospace, monospace">Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D=
"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font fac=
e=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div>=
<font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 f</fo=
nt></div><div><font face=3D"monospace, monospace">Description: =C2=A0Valid =
value is in the range 0 &lt;=3D f &lt;=3D 1.</font></div><div><font face=3D=
"monospace, monospace"><br></font></div><div><font face=3D"monospace, monos=
pace"><br></font></div><div><font face=3D"monospace, monospace">Element Nam=
e: PrimaryRChromaticityY</font></div><div><font face=3D"monospace, monospac=
e">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</font></div><div><font face=3D"monos=
pace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][B2]</font></di=
v><div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0-</font>=
</div><div><font face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</f=
ont></div><div><font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =
=C2=A0-</font></div><div><font face=3D"monospace, monospace">Type: =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 f</font></div><div><font face=3D"monospace, monospace"=
>Description: =C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</fon=
t></div><div><font face=3D"monospace, monospace"><br></font></div><div><fon=
t face=3D"monospace, monospace"><br></font></div><div><font face=3D"monospa=
ce, monospace">Element Name: PrimaryGChromaticityX</font></div><div><font f=
ace=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</font></di=
v><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 [55][B3]</font></div><div><font face=3D"monospace, monospace">Mandat=
ory: =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monospace">Mu=
ltiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"monospace, monospace=
">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, =
monospace">f</font></div><div><font face=3D"monospace, monospace">Descripti=
on: =C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</font></div><d=
iv><font face=3D"monospace, monospace"><br></font></div><div><font face=3D"=
monospace, monospace"><br></font></div><div><font face=3D"monospace, monosp=
ace">Element Name: PrimaryGChromaticityY</font></div><div><font face=3D"mon=
ospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</font></div><div><fo=
nt face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55=
][B4]</font></div><div><font face=3D"monospace, monospace">Mandatory: =C2=
=A0 =C2=A0-</font></div><div><font face=3D"monospace, monospace">Multiple: =
=C2=A0 =C2=A0 -</font></div><div><font face=3D"monospace, monospace">Defaul=
t: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monospac=
e">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 f</font></div><div><font face=3D"monos=
pace, monospace">Description: =C2=A0Valid value is in the range 0 &lt;=3D f=
 &lt;=3D 1.</font></div><div><font face=3D"monospace, monospace"><br></font=
></div><div><font face=3D"monospace, monospace"><br></font></div><div><font=
 face=3D"monospace, monospace">Element Name: PrimaryBChromaticityX</font></=
div><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =
=C2=A06</font></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 [55][B5]</font></div><div><font face=3D"monospace,=
 monospace">Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D"monosp=
ace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"mo=
nospace, monospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font f=
ace=3D"monospace, monospace">f</font></div><div><font face=3D"monospace, mo=
nospace">Description: =C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D=
 1.</font></div><div><font face=3D"monospace, monospace"><br></font></div><=
div><font face=3D"monospace, monospace"><br></font></div><div><font face=3D=
"monospace, monospace">Element Name: PrimaryBChromaticityY</font></div><div=
><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</f=
ont></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 [55][B6]</font></div><div><font face=3D"monospace, monospace=
">Mandatory: =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monos=
pace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"monospace, m=
onospace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"mon=
ospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 f</font></div><div><fo=
nt face=3D"monospace, monospace">Description: =C2=A0Valid value is in the r=
ange 0 &lt;=3D f &lt;=3D 1.</font></div><div><font face=3D"monospace, monos=
pace"><br></font></div><div><font face=3D"monospace, monospace"><br></font>=
</div><div><font face=3D"monospace, monospace">Element Name: WhitePointChro=
maticityX</font></div><div><font face=3D"monospace, monospace">Level: =C2=
=A0 =C2=A0 =C2=A0 =C2=A06</font></div><div><font face=3D"monospace, monospa=
ce">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][B7]</font></div><div><font =
face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0-</font></div><div><f=
ont face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><di=
v><font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A0-</font>=
</div><div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 f</font></div><div><font face=3D"monospace, monospace">Description: =
=C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</font></div><div><=
font face=3D"monospace, monospace"><br></font></div><div><font face=3D"mono=
space, monospace"><br></font></div><div><font face=3D"monospace, monospace"=
>Element Name: WhitePointChromaticityY</font></div><div><font face=3D"monos=
pace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</font></div><div><font=
 face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][=
B8]</font></div><div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =
=C2=A0-</font></div><div><font face=3D"monospace, monospace">Multiple: =C2=
=A0 =C2=A0 -</font></div><div><font face=3D"monospace, monospace">Default: =
=C2=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monospace">=
Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 f</font></div><div><font face=3D"monospac=
e, monospace">Description: =C2=A0Valid value is in the range 0 &lt;=3D f &l=
t;=3D 1.</font></div><div><font face=3D"monospace, monospace"><br></font></=
div><div><font face=3D"monospace, monospace"><br></font></div><div><font fa=
ce=3D"monospace, monospace">Element Name: LuminanceMax</font></div><div><fo=
nt face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</font>=
</div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 [55][B9]</font></div><div><font face=3D"monospace, monospace">Ma=
ndatory: =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monospace=
">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"monospace, monos=
pace">Default: =C2=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"monospa=
ce, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 f</font></div><div><font f=
ace=3D"monospace, monospace">Description: =C2=A0Maximum luminance. Shall be=
 represented in candelas per square</font></div><div><font face=3D"monospac=
e, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 meter (cd/m=
=C2=B2). Valid value is in the range 0 &lt;=3D f &lt;=3D 9999.99</font></di=
v><div><font face=3D"monospace, monospace"><br></font></div><div><font face=
=3D"monospace, monospace"><br></font></div><div><font face=3D"monospace, mo=
nospace">Element Name: LuminanceMin</font></div><div><font face=3D"monospac=
e, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A06</font></div><div><font fa=
ce=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][BA]=
</font></div><div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=
=A0-</font></div><div><font face=3D"monospace, monospace">Multiple: =C2=A0 =
=C2=A0 -</font></div><div><font face=3D"monospace, monospace">Default: =C2=
=A0 =C2=A0 =C2=A0-</font></div><div><font face=3D"monospace, monospace">Typ=
e: =C2=A0 =C2=A0 =C2=A0 =C2=A0 f</font></div><div><font face=3D"monospace, =
monospace">Description: =C2=A0Minimum luminance. Shall be represented in ca=
ndelas per square</font></div><div><font face=3D"monospace, monospace">=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 meter (cd/m=C2=B2). Valid val=
ue is in the range 0 &lt;=3D f &lt;=3D 999.9999</font></div></div><div><fon=
t face=3D"monospace, monospace"><br></font></div><div><font face=3D"monospa=
ce, monospace"><br></font></div><div><font face=3D"monospace, monospace"><b=
r></font></div><div><font face=3D"monospace, monospace">I can post a link t=
o a formatted document if that would be=C2=A0easier. For Matrix, Range, and=
=C2=A0Primaries, I&#39;m pretty much using=C2=A0values=C2=A0that map direct=
ly to values defined in=C2=A0FFmpeg.</font></div><div><font face=3D"monospa=
ce, monospace"><br></font></div><div><font face=3D"monospace, monospace">Th=
anks,</font></div><div><font face=3D"monospace, monospace">Frank</font></di=
v><div><br></div><div>[1]=C2=A0<a href=3D"http://lists.matroska.org/piperma=
il/matroska-devel/2015-September/004778.html">http://lists.matroska.org/pip=
ermail/matroska-devel/2015-September/004778.html</a></div></div>

--001a113cc1a2a6c58305289cb15e--


From nobody Tue Jan  5 13:19:59 2016
Return-Path: <tterribe@xiph.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 861FE1A9235 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:19:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.613
X-Spam-Level: 
X-Spam-Status: No, score=-2.613 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BAvjrhfeNDNG for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:19:56 -0800 (PST)
Received: from smtp.mozilla.org (mx1.scl3.mozilla.com [63.245.214.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 843361A9233 for <cellar@ietf.org>; Tue,  5 Jan 2016 13:19:56 -0800 (PST)
Received: from localhost (localhost6.localdomain [127.0.0.1]) by mx1.mail.scl3.mozilla.com (Postfix) with ESMTP id 222DEC1688; Tue,  5 Jan 2016 21:19:56 +0000 (UTC)
X-Virus-Scanned: amavisd-new at mozilla.org
Received: from smtp.mozilla.org ([127.0.0.1]) by localhost (mx1.mail.scl3.mozilla.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RwXPOrFPK9cA; Tue,  5 Jan 2016 21:19:55 +0000 (UTC)
Received: from [192.168.11.19] (pool-71-120-21-208.washdc.east.verizon.net [71.120.21.208]) (Authenticated sender: tterriberry@mozilla.com) by mx1.mail.scl3.mozilla.com (Postfix) with ESMTPSA id 9DE27C005C; Tue,  5 Jan 2016 21:19:55 +0000 (UTC)
Message-ID: <568C3378.5060305@xiph.org>
Date: Tue, 05 Jan 2016 13:19:52 -0800
From: "Timothy B. Terriberry" <tterribe@xiph.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 SeaMonkey/2.26
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
In-Reply-To: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/2FVZXgTOI009oLwvPxYH-PHuuVc>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 21:19:58 -0000

Frank Galligan wrote:
> I would like to bring up the discussion again about better representing
> the color format of video. It looks like the discussion was started here

Nothing describing chroma siting?


From nobody Tue Jan  5 13:33:54 2016
Return-Path: <mjbshaw@google.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 836C81A92E4 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:33:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level: 
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id R8HylPM-rUQS for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:33:52 -0800 (PST)
Received: from mail-pa0-x22c.google.com (mail-pa0-x22c.google.com [IPv6:2607:f8b0:400e:c03::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 953B21A92E3 for <cellar@ietf.org>; Tue,  5 Jan 2016 13:33:52 -0800 (PST)
Received: by mail-pa0-x22c.google.com with SMTP id yy13so128700332pab.3 for <cellar@ietf.org>; Tue, 05 Jan 2016 13:33:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=xscZaEKUYaYxf7mazVJGuxc4BPfWEz/mGDNRlEp5vsM=; b=oVGDr38DUKVDF9Hrcfe2RDz3iT7wHMcpS1WHLypTK2EJaicHiZKoiagRunssnBPcPj jnUrvq8/Oj65fb7Pu3U5RqQpbKnSBuANet1bVdNsMNpz+g4iTgLdrKFmSUmg83Zp7Okj NhEjekay20VIPWowyr8ceYEJP5Q3LhhmWopXPR8IR3/N/K3Z5cOof0RccK8vuE167gNx EMuvRN+31QHG3zp6qDl7+mtNDlIrIGoCZHOOtYFOX9DIdF+rNsygB//1/xhkk9cq17ej CzY1xpMPyvkYxsJG/697ufZc9TU+FKvd+2+8dmoJ2fyFupU0fnWxQ/KDpQJ4KO46nVlX JtwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=xscZaEKUYaYxf7mazVJGuxc4BPfWEz/mGDNRlEp5vsM=; b=fAyR6WlN8SeipPd4xtfpR5Zwv00vJnuM1PVglMIureiv1JZxSR0n5UqYbu1hxvC2CF AptqeBygn+lpt8dLz/B66oInC5RPWMqebJJYSqk3/qChowkScPyNR/U21S/yMlDuGMov fbv7KAryGI6njcBx0zgBXOBQHUyWA6zqgLfp3UI+wt0fzYmt8RmL/RGQ75vY3CFf/UZJ bQMTuIeGKyCJAiTPRs8fmn9WZM41fiMjBbTVHOdw551ECcV4s8jZKF85Fp70JEDqcCbq 1LAN1sHqYVw6ZNHd1JRt3Ie7J5Aa7/gSBGK/iBzfu6qDl/PySGYljLPIAHYo9Mt3sBxK ji7A==
X-Gm-Message-State: ALoCoQmbp0169MkkoNAeZsSHw+da5tzA00I5gHODdRCG0XxcWIilNNESN3uzaR65k1FZT5hA4S2rLdFoHh2ZUOgiHBvJje8dNoqc1BE1jpgNun/bHTZOA8o=
X-Received: by 10.66.227.1 with SMTP id rw1mr138795863pac.35.1452029632047; Tue, 05 Jan 2016 13:33:52 -0800 (PST)
MIME-Version: 1.0
Received: by 10.66.156.165 with HTTP; Tue, 5 Jan 2016 13:33:32 -0800 (PST)
In-Reply-To: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
From: Michael Bradshaw <mjbshaw@google.com>
Date: Tue, 5 Jan 2016 13:33:32 -0800
Message-ID: <CAHUoET+jsobP5W7E_QOyRaeG+xTjJg-jCc=2NAC4UBrv7j2SZw@mail.gmail.com>
To: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Content-Type: multipart/alternative; boundary=047d7b111d7d6c27fa05289cfeb4
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Hhmir2X730fG2vFDsefGaN7u2Qg>
Cc: cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 21:33:53 -0000

--047d7b111d7d6c27fa05289cfeb4
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 5, 2016 at 1:12 PM, Frank Galligan <frankgalligan@gmail.com>
wrote:
>
> Element Name: ChromaSubsampling
> Level:        5
> ID:           [55][A3]
> Mandatory:    ma
> Multiple:     -
> Default:      0
> Type:         u
> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
>
>
FFmpeg supports more subsampling schemes like 4:1:0, 4:1:1, and 4:4:0.

Additionally, these formats assume 3-channel pixel formats. What about an
alpha-channel or other color spaces with > 3 channels?

Perhaps a per-channel master element could exist that contains subsampling
and bit information?

--047d7b111d7d6c27fa05289cfeb4
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On T=
ue, Jan 5, 2016 at 1:12 PM, Frank Galligan <span dir=3D"ltr">&lt;<a href=3D=
"mailto:frankgalligan@gmail.com" target=3D"_blank">frankgalligan@gmail.com<=
/a>&gt;</span> wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0 0 =
0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div><=
div><font face=3D"monospace, monospace">Element Name: ChromaSubsampling</fo=
nt></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=
=A0 =C2=A05</font></div><div><font face=3D"monospace, monospace">ID: =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A3]</font></div><div><font face=3D"monosp=
ace, monospace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><font face=3D"m=
onospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=
=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A00</font></div><div><=
font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</fon=
t></div><div><font face=3D"monospace, monospace">Description: =C2=A0(0: 4:2=
:0, 2: 4:2:2, 4: 4:4:4)</font></div><div><font face=3D"monospace, monospace=
"><br></font></div></div></div></blockquote><div><br></div><div>FFmpeg supp=
orts more subsampling schemes like 4:1:0, 4:1:1, and 4:4:0.</div><div><br><=
/div><div>Additionally, these formats assume 3-channel pixel formats. What =
about an alpha-channel or other color spaces with &gt; 3 channels?</div><di=
v><br></div><div>Perhaps a per-channel master element could exist that cont=
ains subsampling and bit information?</div></div></div></div>

--047d7b111d7d6c27fa05289cfeb4--


From nobody Tue Jan  5 13:54:11 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9F5761ABD35 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:54:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.12
X-Spam-Level: 
X-Spam-Status: No, score=-1.12 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QldiDUTESoUp for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:54:08 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3A7B71A92F3 for <cellar@ietf.org>; Tue,  5 Jan 2016 13:54:08 -0800 (PST)
Received: from [146.96.19.240] (port=12031 helo=[10.10.202.53]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aGZYL-004HTm-A4; Tue, 05 Jan 2016 16:54:07 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_92B9F10E-BA76-49BA-AE21-63A24A6636F4"
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
Date: Tue, 5 Jan 2016 16:54:04 -0500
Message-Id: <EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
To: Frank Galligan <frankgalligan@gmail.com>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/E8umPZw33N3EiEskcpuKIyfCzZE>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 21:54:10 -0000

--Apple-Mail=_92B9F10E-BA76-49BA-AE21-63A24A6636F4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii


> On Jan 5, 2016, at 4:12 PM, Frank Galligan <frankgalligan@gmail.com> =
wrote:
>=20
> Hello all,
>=20
> I would like to bring up the discussion again about better =
representing the color format of video. It looks like the discussion was =
started here [1] on matroska-devel list. I think we need to add some =
Colour elements so Matroska files can (potentially) more faithfully =
represent the video source on many devices. Here is a proposal I created =
to start from:
>=20
>=20
> Element Name: Colour
> Level:        4

Please clarify the proposed Parent Element.

[...]

> Element Name: ColourMatrix
> Level:        5
> ID:           [55][A1]
> Mandatory:    ma
> Multiple:     -
> Default:      2
> Type:         u
> Description:  ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB), 1: =
BT709,
>               2: Unspecified,

Any reason for "Unspecified" to be #2 rather than #0? Do these numbers =
align with a FFmpeg/libav enumeration?

[...]

> Element Name: ChromaSubsampling
> Level:        5
> ID:           [55][A3]
> Mandatory:    ma
> Multiple:     -
> Default:      0
> Type:         u
> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)

This is mandatory, but there is no Unspecified option. If I want to =
clarify that a contained 4:1:1 DV stream uses bt.601 there is no valid =
way to say this, since if ColourMatrix is used then ChromaSubsampling =
must also be used, but there is no options that fit 4:1:1.

[...]

Dave Rice=

--Apple-Mail=_92B9F10E-BA76-49BA-AE21-63A24A6636F4
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jan 5, 2016, at 4:12 PM, Frank Galligan &lt;<a =
href=3D"mailto:frankgalligan@gmail.com" =
class=3D"">frankgalligan@gmail.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><div dir=3D"ltr" =
class=3D"">Hello all,<div class=3D""><br class=3D""></div><div =
class=3D"">I would like to bring up the discussion again about better =
representing the color format of video. It looks like the discussion was =
started here [1] on matroska-devel list. I think we need to add some =
Colour elements so Matroska files can (potentially) more faithfully =
represent the video source on many devices. Here is a proposal I created =
to start from:</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div><div class=3D""><div class=3D""><font =
face=3D"monospace, monospace" class=3D"">Element Name: =
Colour</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">Level: &nbsp; &nbsp; &nbsp; =
&nbsp;4</font></div></div></div></div></blockquote><div><br =
class=3D""></div><div>Please clarify the proposed Parent =
Element.</div><div><br class=3D""></div><div>[...]</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div dir=3D"ltr" =
class=3D""><div class=3D""><div class=3D""><span style=3D"font-family: =
monospace, monospace;" class=3D"">Element Name: =
ColourMatrix</span></div><div class=3D""><font face=3D"monospace, =
monospace" class=3D"">Level: &nbsp; &nbsp; &nbsp; =
&nbsp;5</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">ID: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
[55][A1]</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">Mandatory: &nbsp; &nbsp;ma</font></div><div class=3D""><font =
face=3D"monospace, monospace" class=3D"">Multiple: &nbsp; &nbsp; =
-</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">Default: &nbsp; &nbsp; &nbsp;2</font></div><div =
class=3D""><font face=3D"monospace, monospace" class=3D"">Type: &nbsp; =
&nbsp; &nbsp; &nbsp; u</font></div><div class=3D""><font =
face=3D"monospace, monospace" class=3D"">Description: &nbsp;ColourMatrix =
of the video. (0: IEC 61966-2-1 (sRGB), 1: BT709,</font></div><div =
class=3D""><font face=3D"monospace, monospace" class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 2: =
Unspecified,</font></div></div></div></blockquote><div><br =
class=3D""></div><div>Any reason for "Unspecified" to be #2 rather than =
#0? Do these numbers align with a FFmpeg/libav =
enumeration?</div><div><br class=3D""></div><div>[...]</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div dir=3D"ltr" =
class=3D""><div class=3D""><div class=3D""><span style=3D"font-family: =
monospace, monospace;" class=3D"">Element Name: =
ChromaSubsampling</span></div><div class=3D""><font face=3D"monospace, =
monospace" class=3D"">Level: &nbsp; &nbsp; &nbsp; =
&nbsp;5</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">ID: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
[55][A3]</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">Mandatory: &nbsp; &nbsp;ma</font></div><div class=3D""><font =
face=3D"monospace, monospace" class=3D"">Multiple: &nbsp; &nbsp; =
-</font></div><div class=3D""><font face=3D"monospace, monospace" =
class=3D"">Default: &nbsp; &nbsp; &nbsp;0</font></div><div =
class=3D""><font face=3D"monospace, monospace" class=3D"">Type: &nbsp; =
&nbsp; &nbsp; &nbsp; u</font></div><div class=3D""><font =
face=3D"monospace, monospace" class=3D"">Description: &nbsp;(0: 4:2:0, =
2: 4:2:2, 4: 4:4:4)</font></div></div></div></blockquote><div><br =
class=3D""></div><div>This is mandatory, but there is no Unspecified =
option. If I want to clarify that a contained 4:1:1 DV stream uses =
bt.601 there is no valid way to say this, since if&nbsp;ColourMatrix is =
used then&nbsp;ChromaSubsampling must also be used, but there is no =
options that fit 4:1:1.</div><div><br =
class=3D""></div><div>[...]</div><div><br class=3D""></div><div>Dave =
Rice</div></div></body></html>=

--Apple-Mail=_92B9F10E-BA76-49BA-AE21-63A24A6636F4--


From nobody Tue Jan  5 13:59:08 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 296721AC398 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:59:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N3bxiYvsjpvv for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 13:59:02 -0800 (PST)
Received: from 10.mo69.mail-out.ovh.net (10.mo69.mail-out.ovh.net [46.105.73.241]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C94CC1B2D5F for <cellar@ietf.org>; Tue,  5 Jan 2016 13:59:01 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 329AAFFB5DF for <cellar@ietf.org>; Tue,  5 Jan 2016 22:58:59 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 5 Jan 2016 23:58:59 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 5 Jan 2016 23:58:57 +0200
To: cellar@ietf.org
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568C3CA0.8040300@mediaarea.net>
Date: Tue, 5 Jan 2016 22:58:56 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------020302000207040005030604"
X-Ovh-Tracer-Id: 4368773114353619029
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: -100
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelgdduheegucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Q8y3rOePwP5tfaWOsyds6kbdpx0>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 21:59:06 -0000

This is a multi-part message in MIME format.
--------------020302000207040005030604
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Thanks for your detailed proposal.
It is a lot of items, I am not expert in all domains but I have some 
comments:

Le 05/01/2016 22:12, Frank Galligan a écrit :
> Hello all,
>
> I would like to bring up the discussion again about better 
> representing the color format of video. It looks like the discussion 
> was started here [1] on matroska-devel list. I think we need to add 
> some Colour elements so Matroska files can (potentially) more 
> faithfully represent the video source on many devices. Here is a 
> proposal I created to start from:
>
>
> Element Name: Colour
> Level:        4
> ID:           [55][A0]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         m
> Description:  Settings describing the colour format.
>
>
> Element Name: ColourMatrix
> Level:        5
> ID:           [55][A1]
> Mandatory:    ma
> Multiple:     -
> Default:      2
> Type:         u
> Description:  ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB), 1: 
> BT709,
>               2: Unspecified, 3: Reserved, 4: FCC, 5: BT470BG, 6: 
> SMPTE 170M,
>               7: SMPTE 240M, 8: YCOCG, 9: BT2020 Non-constant Luminance,
>               10: BT2020 Constant Luminance)

Name: MatrixCoefficients (or Matrix. You don't use "Colour" with 
"Primaries" element, so I would not use it here too)
See my comment about FFmpeg values at the end of the email.

>
>
> Element Name: BitsPerChannel
> Level:        5
> ID:           [55][A2]
> Mandatory:    ma
> Multiple:     -
> Default:      8
> Type:         u
> Description:  Number of bits per channel. This number may be less for 
> specific
>               channels depending on the ColourFormat and 
> ChromaSubsampling.


BitsPerChannel is misleading, used to be the technical count of bits.
I propose QuantizationBits or ValidBitsPerChannel
Not mandatory, not default (this value is often unknown)

>
>
> Element Name: ChromaSubsampling
> Level:        5
> ID:           [55][A3]
> Mandatory:    ma
> Multiple:     -
> Default:      0
> Type:         u
> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)

FFV1, for example, permits "weird" chroma values, more possibilities.
And the following chroma values were seen at least once in some specs:
4:4:4
4:2:2
4:2:1
4:1:1
4:2:0
4:1:0
3:1:1

So having a list is maybe not the solution.
I like the way it is done in FFV1, except the power of 2 (so 3 can not 
be expressed).
I propose to find a way for describing Chroma subsampling (e.g. 
h_chroma_subsample and v_chroma_subsample; a ratio per plane with any 
number of plane, think to alpha channel with a subsampling).

Or to remove entirely this element, because it is a technical piece of 
information and raw stream must contain it somewhere else (else it is 
not decodable)
(I am aware it is not the case for uncompresse data, but we need the 4CC 
in that case for the order of pixel, so we get chroma subsamping this way)

>
>
> Element Name: ColourRange
> Level:        5
> ID:           [55][A4]
> Mandatory:    ma
> Multiple:     -
> Default:      1
> Type:         u
> Description:  (0: Unspecified, 1: Defined by 
> ColourMatrix/TransferFunction,
>               2: Full range)

I don't understand the 1 value.
in at least AVC and HEVC, range is orthogonal to 
ColourMatrix/TransferFunction.
I propose 0: unspecified 1: Broadcast range 1: Full range
and Default:0

>
>
> Element Name: TransferFunction
> Level:        5
> ID:           [55][A6]
> Mandatory:    ma
> Multiple:     -
> Default:      2
> Type:         u
> Description:  Transfer Function. (0: Reserved, 1: ITU-R BT.709, 2: 
> Unspecified,
>               4: Gamma 2.2 curve, 5: Gamma 2.8 curve, 6: SMPTE 170M,
>               7: SMPTE 240M, 8: Linear, 9: Log, 10: Log Sqrt,
>               11: IEC 61966-2-4, 12: ITU-R BT.1361 Extended Colour Gamut,
>               13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit,
>               15: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084,
>               17: SMPTE ST 428-1 18: ARIB STD-B67 (HLG))

See my comment about FFmpeg values at the end of the email.

>
>
> Element Name: Primaries
> Level:        5
> Mandatory:    -
> Multiple:     -
> ID:           [55][A7]
> Default:      2
> Description:  (0: Reserved, 1: ITU-R BT.709, 2: Unspecified, 4: ITU-R 
> BT.470M,
>                5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM,
>                9: ITU-R BT.2020, 10: SMPTE ST 428-1)

See my comment about FFmpeg values at the end of the email.

>
>
> Element Name: MaxCLL
> Level:        5
> ID:           [55][A8]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         u
> Description:  Maximum brightness of a single pixel in candelas per square
>               meter (cd/m²).
>
>
> Element Name: MaxFALL
> Level:        5
> ID:           [55][A9]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         u
> Description:  Maximum brightness of a single full frame in candelas 
> per square
>               meter (cd/m²).
>
>
> Element Name: MasteringMetadata
> Level:        5
> ID:           [55][B0]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         m
> Description:  SMPTE 2086 mastering data.
>
>
> Element Name: PrimaryRChromaticityX
> Level:        6
> ID:           [55][B1]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: PrimaryRChromaticityY
> Level:        6
> ID:           [55][B2]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: PrimaryGChromaticityX
> Level:        6
> ID:           [55][B3]
> Mandatory:    -
> Multiple:     -
> Default:      -
> f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: PrimaryGChromaticityY
> Level:        6
> ID:           [55][B4]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: PrimaryBChromaticityX
> Level:        6
> ID:           [55][B5]
> Mandatory:    -
> Multiple:     -
> Default:      -
> f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: PrimaryBChromaticityY
> Level:        6
> ID:           [55][B6]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: WhitePointChromaticityX
> Level:        6
> ID:           [55][B7]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: WhitePointChromaticityY
> Level:        6
> ID:           [55][B8]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Valid value is in the range 0 <= f <= 1.
>
>
> Element Name: LuminanceMax
> Level:        6
> ID:           [55][B9]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Maximum luminance. Shall be represented in candelas per 
> square
>               meter (cd/m²). Valid value is in the range 0 <= f <= 9999.99
>
>
> Element Name: LuminanceMin
> Level:        6
> ID:           [55][BA]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         f
> Description:  Minimum luminance. Shall be represented in candelas per 
> square
>               meter (cd/m²). Valid value is in the range 0 <= f <= 
> 999.9999


I got requests for having information about "Capture Gamma Equation" (or 
"Tone Curve"), e.g. "same as transfer characteristic", Scene Linear, 
S-Log, Cine-Log, Log-C...
I am not an expert of this domain, but looks like it is sometimes important.
there are also other colour ideas with e.g. EBU Tech 3349.

>
>
>
> I can post a link to a formatted document if that would be easier. For 
> Matrix, Range, and Primaries, I'm pretty much using values that map 
> directly to values defined in FFmpeg.

I don't like the idea to use the source code of a piece of software for 
lists. Too much subjective, may have historical flaws.
Lists from FFmpeg are nearly same as the ones in H.26x, I think I prefer 
we base our list on their list (I don't think there are copyright issues 
with such list) directly. Or that we have a prefix with the origin of 
the list (e.g. ARIB STD-B67, from Japan, is not in ITU/ISO list, a 18 
will be used in the future for something in ITU/ISO)

Jérôme

--------------020302000207040005030604
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Thanks for your detailed proposal.<br>
      It is a lot of items, I am not expert in all domains but I have
      some comments:<br>
      <br>
      Le 05/01/2016 22:12, Frank Galligan a écrit :<br>
    </div>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hello all,
        <div><br>
        </div>
        <div>I would like to bring up the discussion again about better
          representing the color format of video. It looks like the
          discussion was started here [1] on matroska-devel list. I
          think we need to add some Colour elements so Matroska files
          can (potentially) more faithfully represent the video source
          on many devices. Here is a proposal I created to start from:</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>
          <div><font face="monospace, monospace">Element Name: Colour</font></div>
          <div><font face="monospace, monospace">Level:        4</font></div>
          <div><font face="monospace, monospace">ID:           [55][A0]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         m</font></div>
          <div><font face="monospace, monospace">Description:  Settings
              describing the colour format.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              ColourMatrix</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A1]</font></div>
          <div><font face="monospace, monospace">Mandatory:    ma</font></div>
        </div>
      </div>
    </blockquote>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      2</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:
               ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB), 1:
              BT709,</font></div>
          <div><font face="monospace, monospace">              2:
              Unspecified, 3: Reserved, 4: FCC, 5: BT470BG, 6: SMPTE
              170M,</font></div>
          <div><font face="monospace, monospace">              7: SMPTE
              240M, 8: YCOCG, 9: BT2020 Non-constant Luminance,</font></div>
          <div><font face="monospace, monospace">              10:
              BT2020 Constant Luminance) <br>
            </font></div>
        </div>
      </div>
    </blockquote>
    <br>
    Name: MatrixCoefficients (or Matrix. You don't use "Colour" with
    "Primaries" element, so I would not use it here too)<br>
    See my comment about FFmpeg values at the end of the email.<br>
    <br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              BitsPerChannel</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A2]</font></div>
          <div><font face="monospace, monospace">Mandatory:    ma</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      8</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:  Number of
              bits per channel. This number may be less for specific</font></div>
          <div><font face="monospace, monospace">              channels
              depending on the ColourFormat and ChromaSubsampling.</font></div>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    <font face="monospace, monospace">BitsPerChannel is misleading, used
      to be the technical count of bits.<br>
      I propose QuantizationBits or ValidBitsPerChannel <br>
      Not mandatory, not default (this value is often unknown)<br>
    </font><br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              ChromaSubsampling</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A3]</font></div>
          <div><font face="monospace, monospace">Mandatory:    ma</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      0</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:  (0:
              4:2:0, 2: 4:2:2, 4: 4:4:4)</font></div>
        </div>
      </div>
    </blockquote>
    <br>
    FFV1, for example, permits "weird" chroma values, more
    possibilities.<br>
    And the following chroma values were seen at least once in some
    specs:<br>
    4:4:4<br>
    4:2:2<br>
    4:2:1<br>
    4:1:1<br>
    4:2:0<br>
    4:1:0<br>
    3:1:1<br>
    <br>
    So having a list is maybe not the solution.<br>
    I like the way it is done in FFV1, except the power of 2 (so 3 can
    not be expressed).<br>
    I propose to find a way for describing Chroma subsampling (e.g.
    h_chroma_subsample and v_chroma_subsample; a ratio per plane with
    any number of plane, think to alpha channel with a subsampling).<br>
    <br>
    Or to remove entirely this element, because it is a technical piece
    of information and raw stream must contain it somewhere else (else
    it is not decodable)<br>
    (I am aware it is not the case for uncompresse data, but we need the
    4CC in that case for the order of pixel, so we get chroma subsamping
    this way)<br>
    <br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              ColourRange</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A4]</font></div>
          <div><font face="monospace, monospace">Mandatory:    ma</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      1</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:  (0:
              Unspecified, 1: Defined by ColourMatrix/TransferFunction,</font></div>
          <div><font face="monospace, monospace">              2: Full
              range)</font></div>
        </div>
      </div>
    </blockquote>
    <br>
    I don't understand the 1 value.<br>
    in at least AVC and HEVC, range is orthogonal to <font
      face="monospace, monospace">ColourMatrix/TransferFunction.<br>
      I propose 0: unspecified 1: Broadcast range 1: Full range <br>
    </font>and Default:0<br>
    <br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              TransferFunction</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A6]</font></div>
          <div><font face="monospace, monospace">Mandatory:    ma</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      2</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:  Transfer
              Function. (0: Reserved, 1: ITU-R BT.709, 2: Unspecified,</font></div>
          <div><font face="monospace, monospace">              4: Gamma
              2.2 curve, 5: Gamma 2.8 curve, 6: SMPTE 170M,</font></div>
          <div><font face="monospace, monospace">              7: SMPTE
              240M, 8: Linear, 9: Log, 10: Log Sqrt,</font></div>
          <div><font face="monospace, monospace">              11: IEC
              61966-2-4, 12: ITU-R BT.1361 Extended Colour Gamut,</font></div>
          <div><font face="monospace, monospace">              13: IEC
              61966-2-1, 14: ITU-R BT.2020 10 bit,</font></div>
          <div><font face="monospace, monospace">              15: ITU-R
              BT.2020 12 bit, 16: SMPTE ST 2084,</font></div>
          <div><font face="monospace, monospace">              17: SMPTE
              ST 428-1 18: ARIB STD-B67 (HLG))</font></div>
        </div>
      </div>
    </blockquote>
    <br>
    See my comment about FFmpeg values at the end of the email.<br>
    <br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name: Primaries</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">ID:           [55][A7]</font></div>
          <div><font face="monospace, monospace">Default:      2</font></div>
          <div><font face="monospace, monospace">Description:  (0:
              Reserved, 1: ITU-R BT.709, 2: Unspecified, 4: ITU-R
              BT.470M,</font></div>
          <div><font face="monospace, monospace">               5: ITU-R
              BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM,</font></div>
          <div><font face="monospace, monospace">               9: ITU-R
              BT.2020, 10: SMPTE ST 428-1)</font></div>
        </div>
      </div>
    </blockquote>
    <br>
    See my comment about FFmpeg values at the end of the email.<br>
    <br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name: MaxCLL</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A8]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:  Maximum
              brightness of a single pixel in candelas per square</font></div>
          <div><font face="monospace, monospace">              meter
              (cd/m²).</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name: MaxFALL</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][A9]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         u</font></div>
          <div><font face="monospace, monospace">Description:  Maximum
              brightness of a single full frame in candelas per square</font></div>
          <div><font face="monospace, monospace">              meter
              (cd/m²).</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              MasteringMetadata</font></div>
          <div><font face="monospace, monospace">Level:        5</font></div>
          <div><font face="monospace, monospace">ID:           [55][B0]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         m</font></div>
          <div><font face="monospace, monospace">Description:  SMPTE
              2086 mastering data.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              PrimaryRChromaticityX</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B1]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              PrimaryRChromaticityY</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B2]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              PrimaryGChromaticityX</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B3]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              PrimaryGChromaticityY</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B4]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              PrimaryBChromaticityX</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B5]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              PrimaryBChromaticityY</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B6]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              WhitePointChromaticityX</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B7]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              WhitePointChromaticityY</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B8]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Valid
              value is in the range 0 &lt;= f &lt;= 1.</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              LuminanceMax</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][B9]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Maximum
              luminance. Shall be represented in candelas per square</font></div>
          <div><font face="monospace, monospace">              meter
              (cd/m²). Valid value is in the range 0 &lt;= f &lt;=
              9999.99</font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace"><br>
            </font></div>
          <div><font face="monospace, monospace">Element Name:
              LuminanceMin</font></div>
          <div><font face="monospace, monospace">Level:        6</font></div>
          <div><font face="monospace, monospace">ID:           [55][BA]</font></div>
          <div><font face="monospace, monospace">Mandatory:    -</font></div>
          <div><font face="monospace, monospace">Multiple:     -</font></div>
          <div><font face="monospace, monospace">Default:      -</font></div>
          <div><font face="monospace, monospace">Type:         f</font></div>
          <div><font face="monospace, monospace">Description:  Minimum
              luminance. Shall be represented in candelas per square</font></div>
          <div><font face="monospace, monospace">              meter
              (cd/m²). Valid value is in the range 0 &lt;= f &lt;=
              999.9999</font></div>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    I got requests for having information about "Capture Gamma Equation"
    (or "Tone Curve"), e.g. "same as transfer characteristic", Scene
    Linear, S-Log, Cine-Log, Log-C...<br>
    I am not an expert of this domain, but looks like it is sometimes
    important.<br>
    there are also other colour ideas with e.g. EBU Tech 3349.<br>
    <br>
    <blockquote
cite="mid:CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><font face="monospace, monospace"><br>
          </font></div>
        <div><font face="monospace, monospace"><br>
          </font></div>
        <div><font face="monospace, monospace"><br>
          </font></div>
        <div><font face="monospace, monospace">I can post a link to a
            formatted document if that would be easier. For Matrix,
            Range, and Primaries, I'm pretty much using values that map
            directly to values defined in FFmpeg.</font></div>
      </div>
    </blockquote>
    <br>
    I don't like the idea to use the source code of a piece of software
    for lists. Too much subjective, may have historical flaws.<br>
    Lists from FFmpeg are nearly same as the ones in H.26x, I think I
    prefer we base our list on their list (I don't think there are
    copyright issues with such list) directly. Or that we have a prefix
    with the origin of the list (e.g. ARIB STD-B67, from Japan, is not
    in ITU/ISO list, a 18 will be used in the future for something in
    ITU/ISO)<br>
    <br>
    Jérôme<br>
  </body>
</html>

--------------020302000207040005030604--


From nobody Tue Jan  5 14:08:55 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 696A01B2D93 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 14:08:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 96u7O6OsQsx6 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 14:08:52 -0800 (PST)
Received: from 6.mo69.mail-out.ovh.net (6.mo69.mail-out.ovh.net [46.105.50.107]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B0381B2D92 for <cellar@ietf.org>; Tue,  5 Jan 2016 14:08:52 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id D793FFFB576 for <cellar@ietf.org>; Tue,  5 Jan 2016 23:08:50 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 6 Jan 2016 00:08:50 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 6 Jan 2016 00:08:49 +0200
To: cellar@ietf.org
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568C3EF0.4040203@mediaarea.net>
Date: Tue, 5 Jan 2016 23:08:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com>
Content-Type: multipart/alternative; boundary="------------070802040001000004090205"
X-Ovh-Tracer-Id: 4535406301631418453
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: -100
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrieelgdduheeiucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/95JDvExNSv2qo7GMEg9PV0ARM0w>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Subject: Re: [Cellar] [Matroska-devel]  Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Jan 2016 22:08:54 -0000

This is a multi-part message in MIME format.
--------------070802040001000004090205
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit

Le 05/01/2016 22:54, Dave Rice a Ã©crit :
> [...]
>> Element Name: ColourMatrix
>> Level:        5
>> ID:           [55][A1]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      2
>> Type:         u
>> Description:  ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB), 1: 
>> BT709,
>>             2: Unspecified,
>
> Any reason for "Unspecified" to be #2 rather than #0? Do these numbers 
> align with a FFmpeg/libav enumeration?

Similar to Apple QuickTime nclc specs, ISO/MPEG Video / AVC / HEVC, ITU 
H.26x.
I recommend to not change that.

>
> [...]
>
>> Element Name: ChromaSubsampling
>> Level:        5
>> ID:           [55][A3]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      0
>> Type:         u
>> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
>
> This is mandatory, but there is no Unspecified option. If I want to 
> clarify that a contained 4:1:1 DV stream uses bt.601 there is no valid 
> way to say this, since if ColourMatrix is used then ChromaSubsampling 
> must also be used, but there is no options that fit 4:1:1.

+1 (must be optional or unknown possibility, and more cases)

JÃ©rÃ´me

--------------070802040001000004090205
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Le 05/01/2016 22:54, Dave Rice a
      Ã©critÂ :<br>
    </div>
    <blockquote
      cite="mid:EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com"
      type="cite">
      <div>[...]<br class="">
        <blockquote type="cite" class="">
          <div dir="ltr" class="">
            <div class="">
              <div class=""><span style="font-family: monospace,
                  monospace;" class="">Element Name: ColourMatrix</span></div>
              <div class=""><font class="" face="monospace, monospace">Level:
                  Â  Â  Â  Â 5</font></div>
              <div class=""><font class="" face="monospace, monospace">ID:
                  Â  Â  Â  Â  Â  [55][A1]</font></div>
              <div class=""><font class="" face="monospace, monospace">Mandatory:
                  Â  Â ma</font></div>
              <div class=""><font class="" face="monospace, monospace">Multiple:
                  Â  Â  -</font></div>
              <div class=""><font class="" face="monospace, monospace">Default:
                  Â  Â  Â 2</font></div>
              <div class=""><font class="" face="monospace, monospace">Type:
                  Â  Â  Â  Â  u</font></div>
              <div class=""><font class="" face="monospace, monospace">Description:
                  Â ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB),
                  1: BT709,</font></div>
              <div class=""><font class="" face="monospace, monospace">Â 
                  Â  Â  Â  Â  Â  Â  2: Unspecified,</font></div>
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>Any reason for "Unspecified" to be #2 rather than #0? Do
          these numbers align with a FFmpeg/libav enumeration?</div>
      </div>
    </blockquote>
    <br>
    Similar to Apple QuickTime nclc specs, ISO/MPEG Video / AVC / HEVC,
    ITU H.26x.<br>
    I recommend to not change that.<br>
    <br>
    <blockquote
      cite="mid:EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com"
      type="cite">
      <div>
        <div><br class="">
        </div>
        <div>[...]</div>
        <br class="">
        <blockquote type="cite" class="">
          <div dir="ltr" class="">
            <div class="">
              <div class=""><span style="font-family: monospace,
                  monospace;" class="">Element Name: ChromaSubsampling</span></div>
              <div class=""><font class="" face="monospace, monospace">Level:
                  Â  Â  Â  Â 5</font></div>
              <div class=""><font class="" face="monospace, monospace">ID:
                  Â  Â  Â  Â  Â  [55][A3]</font></div>
              <div class=""><font class="" face="monospace, monospace">Mandatory:
                  Â  Â ma</font></div>
              <div class=""><font class="" face="monospace, monospace">Multiple:
                  Â  Â  -</font></div>
              <div class=""><font class="" face="monospace, monospace">Default:
                  Â  Â  Â 0</font></div>
              <div class=""><font class="" face="monospace, monospace">Type:
                  Â  Â  Â  Â  u</font></div>
              <div class=""><font class="" face="monospace, monospace">Description:
                  Â (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)</font></div>
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>This is mandatory, but there is no Unspecified option. If I
          want to clarify that a contained 4:1:1 DV stream uses bt.601
          there is no valid way to say this, since ifÂ ColourMatrix is
          used thenÂ ChromaSubsampling must also be used, but there is no
          options that fit 4:1:1.</div>
      </div>
    </blockquote>
    <br>
    +1 (must be optional or unknown possibility, and more cases)<br>
    <br>
    JÃ©rÃ´me<br>
  </body>
</html>

--------------070802040001000004090205--


From nobody Tue Jan  5 18:15:21 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 658541A8979 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 18:15:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ILPKxEYJmt0r for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 18:15:19 -0800 (PST)
Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [IPv6:2001:4b98:c:538::197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CD12C1A8978 for <cellar@ietf.org>; Tue,  5 Jan 2016 18:15:18 -0800 (PST)
Received: from mfilter42-d.gandi.net (mfilter42-d.gandi.net [217.70.178.172]) by relay5-d.mail.gandi.net (Postfix) with ESMTP id 4570C41C080; Wed,  6 Jan 2016 03:15:17 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter42-d.gandi.net
Received: from relay5-d.mail.gandi.net ([IPv6:::ffff:217.70.183.197]) by mfilter42-d.gandi.net (mfilter42-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id FVeLZ4rSEzGV; Wed,  6 Jan 2016 03:15:15 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 2A0D141C076; Wed,  6 Jan 2016 03:15:14 +0100 (CET)
Date: Wed, 6 Jan 2016 03:14:25 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Frank Galligan <frankgalligan@gmail.com>
Message-ID: <20160106021425.GE13213@nb4>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="4TjKedF+bau4YbxU"
Content-Disposition: inline
In-Reply-To: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/FG2gepdjhmdzx_DMfZc8L6vmAFM>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 02:15:20 -0000

--4TjKedF+bau4YbxU
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jan 05, 2016 at 01:12:24PM -0800, Frank Galligan wrote:
> Hello all,
>=20
> I would like to bring up the discussion again about better representing t=
he
> color format of video. It looks like the discussion was started here [1] =
on
> matroska-devel list. I think we need to add some Colour elements so
> Matroska files can (potentially) more faithfully represent the video sour=
ce
> on many devices. Here is a proposal I created to start from:
[...]
> Element Name: ChromaSubsampling
> Level:        5
> ID:           [55][A3]
> Mandatory:    ma
> Multiple:     -
> Default:      0
> Type:         u
> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)

i suggest to store 2 integers, one for vertical and one for horizontal
chroma subsampling, that allows indicating any subsampling
and its a logic and simple way to indicate the subsampling

[...]

--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle

--4TjKedF+bau4YbxU
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEUEARECAAYFAlaMeIEACgkQYR7HhwQLD6t6KgCfUFG8c2pHPQZTLSZiJr23l+za
6EMAl0cgq2ufpi41r5j9tAHv3flnyxs=
=Aevt
-----END PGP SIGNATURE-----

--4TjKedF+bau4YbxU--


From nobody Tue Jan  5 20:36:16 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A36861A9091 for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 20:36:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HPYt66v8RAVD for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 20:36:09 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E51821A907F for <cellar@ietf.org>; Tue,  5 Jan 2016 20:36:09 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:48990 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aGfpC-001TPU-HN; Tue, 05 Jan 2016 23:36:09 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com>
Date: Tue, 5 Jan 2016 23:35:24 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <59916228-8638-4827-8145-5B0206B74A96@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com> <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-0.2
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/WgRKl_UkmlUq-ie03Ack25Pr8eQ>
Cc: cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 04:36:12 -0000

> On Jan 4, 2016, at 3:03 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> 2016-01-04 4:31 GMT+01:00 Dave Rice <dave@dericed.com>:
>> Hi,
>>=20
>>> On Jan 2, 2016, at 3:41 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>=20
>>> I'd say the reference here is libebml. It may be the only
>>> implementation that handles CRC32.
>>>=20
>>> 2015-12-30 1:10 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>> The EBML CRC Element has many contradictory definitions.
>>>>=20
>>>> Version 1: The Matroska draft states:
>>>>=20
>>>> "The CRC is computed on all the data of the Master element it's in. =
The CRC element should be the first in it's parent master for easier =
reading. All level 1 elements should include a CRC-32. The CRC in use is =
the IEEE CRC32 Little Endian"
>>>>=20
>>>> Version 2: An older Matroska draft at =
http://matroska.org/technical/specs/rfc/index.html states:
>>>>=20
>>>> "The CRC32 container can be placed around any EBML element or =
elements. The value stored in CRC32Value is the result of the CRC-32 =
[CRC32] checksum performed on the other child elements.
>>>>    CRC32 :=3D c3 container [ level:1..; card:*; ] {
>>>>      %children;
>>>>      CRC32Value :=3D 42fe binary [ size:4; ]
>>>>    }=E2=80=9D
>>>>=20
>>>> Version 3: The EBML draft states:
>>>>=20
>>>> "The CRC is computed on all the data from the last CRC element (or =
start of the upper level element), up to the CRC element, including =
other previous CRC elements. All level 1 elements SHOULD include a =
CRC-32."
>>>>=20
>>>> Issue with Version 1:
>>>> Usually the Matroska version is considered authoritative since that =
documentation was the most maintained; however, in this case the =
Matroska definition doesn=E2=80=99t make sense as it implies that the =
CRC Element is documenting a CRC value of data that includes the CRC =
Element itself.
>>>>=20
>>>> Issue with Version 2:
>>>> This definition refers the CRC Element as a Master-element (aka =
=E2=80=9Ccontainer=E2=80=9D) with a sub-element (called =E2=80=9CCRC32Valu=
e" 0x42FE) that contains the hash. AFAIK there has never been such an =
implementation. Additionally this draft does not have an open license.
>>>>=20
>>>> Issues with Version 3:
>>>>=20
>>>> I think there is a typo and that: "All level 1 elements SHOULD =
include a CRC-32=E2=80=9D should be "All level 1 Master-elements SHOULD =
include a child CRC Element.=E2=80=9D
>>>> The procedure for using multiple CRC Elements within a single =
Master-element seems very inefficient with each subsequent CRC =
representing the data of all prior CRC Elements within the same Parent =
Element. This is like a rolling checksum although I=E2=80=99m not sure =
that is what was intended.
>>>> Also the definition implies that the CRC element can occur multiple =
times within the parent element while the definition in both EBML and =
Matroska clarifies that CRC is not a =E2=80=98multiple' element.
>>>>=20
>>>> So, can we clarify the following:
>>>>=20
>>>> - The CRC Element may only occur 0 or 1 times as a child element of =
a Master-Element.
>>>=20
>>> Agreed.
>>>=20
>>>> - That the CRC Element is a binary element and not a Master-element
>>>=20
>>> Correct
>>>=20
>>>> - There is no definition for a CRC32Value element
>>>=20
>>> The code in libebml assumes the element can be anywhere and the =
value
>>> is processed in memory on all the data of the Master element minus =
the
>>> Checksum itself.
>>> =
https://github.com/Matroska-Org/libebml/blob/master/src/EbmlMaster.cpp#L53=
7
>>>=20
>>> That seems not practical, especially because of the in-memory step.
>>> There are also a TODO that raises some issues with Checksum:
>>> /// \todo find another way when not all default values are saved or
>>> (unknown from the reader !!!)
>>=20
>> That seems unexpected to me. If the CRC represents data that is not =
present but given default values from the EBML Schema, then the CRC =
validation requires full semantic knowledge. My preference would be to =
checksum the data as stored rather than as the data is understood =
(especially since that understanding may change).
>>=20
>>>> - Is there a placement requirement or suggestion for the use of the =
CRC element within a parent (i.e. "should be the first in it's parent =
master=E2=80=9D)
>>>=20
>>> IMO it should be first. It doesn't make sense to signal it at the =
end.
>>> Either it's present and first or it's not there. Hopefully that will
>>> be the only element that needs to come first.
>>=20
>> Technically at Level 0 the EBML Master-element also has a requirement =
to appear first. :)
>>=20
>>>> - What data exactly does the CRC value represent?
>>>>       All Element Data of the parent element (unfeasible)?
>>>=20
>>> It's feasible, although that implies knowing you need to process the
>>> checksum while doing the children, if you don't want to do a fake
>>> render in memory afterwards.
>>=20
>> I mean that it isn=E2=80=99t feasible for a CRC32 element to =
represents the whole Element Data of the Master-element since then the =
checksum would have to be a checksum of data that includes itself.
>>=20
>>>>       The entire Parent Element (including the parent=E2=80=99s =
Element ID, Element Data Size, and Element Data) (also unfeasible)?
>>>=20
>>> IMO only the data inside the Master element it's contained.
>>=20
>> Agreed, but that data minus the CRC32 element itself (as you note =
above).
>>=20
>>>>       All Element Data of the parent element excepting the child =
CRC element?
>>>>       The entire Parent Element (including the parent=E2=80=99s =
Element ID, Element Data Size, and Element Data) excepting the child CRC =
element?
>>>>       All data from the beginning of the Master-element up to the =
beginning of the CRC Element?
>>>>       All data from the beginning of the Master-element=E2=80=99s =
Element Data up to the beginning of the CRC Element?
>>>=20
>>> It should also be the data as they are rendered, meaning elements =
not
>>> written (default) or with a 0 size (default value) should be =
processed
>>> as they are written in the file, and not as they might be =
represented
>>> in memory. That should make some CRC tools work even without knowing
>>> the semantic.
>>=20
>> I haven=E2=80=99t yet found a file in the wild with CRC Elements =
within Master-elements that contain non-present mandated child elements =
that have defaults.
>>=20
>>>> I understand these clarifications have an impact on the validity of =
existing EBML implementations, but I=E2=80=99ve rarely seen any =
implementation of the EBML CRC element (better documentation may =
encourage such implementations ;)
>>=20
>> Here is a survey of Matroska files in the wild which contain CRC32 =
elements.
>>=20
>> Sample 1 =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> File: =
http://archive.org/download/159753000/blackpool_1-0_manutd-regmo.blogspot.=
com.mkv
>> Muxing App: Haali DirectShow Matroska Muxer 1.10.262.12
>> Writing App: gdsmux
>> Note: This file has 5 CRC32 Elements. All Level 1 Master-elements =
include a CRC32 Element as the first child Element. The CRC32 value =
represents the remaining data of the Master-element that it is contained =
within. This file is done exactly as suggested by the Matroska spec =
(Version 1 noted above). But it is invalid according to the EBML draft =
Specification and older Matroska RFC Draft (Version #2 and #3).
>>=20
>> Sample 2 =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> =
http://archive.org/download/3asq.comBNXFANTASTECMidoHeRo/3asq.com-BNX-EP =
01-[F A N T A S T E C-MidoHeRo].mkv
>> Muxing App: libebml-0.7.5 & libmatroska-0.7.7
>> Writing App: VirtualDubMod 1.5.10.2 (build 2540/release)
>> Note: Similar to sample #1 but includes 1,413 Cluster elements so =
LOTS MOAR CRC values!
>>=20
>> Other samples:
>> File: http://archive.org/download/Al3asqAlfilsofOnePiece3/[Al3asq - =
Alfilsof] One Piece 0357.mkv
>> Muxing App: libebml-0.7.7 & libmatroska-0.8.1
>> Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build =
2550/release)
>> Note: Similar as sample #2
>>=20
>> File: =
http://archive.org/download/BAR2010-2011/LaLiga/05tur_Atletic_Bilbao-Barce=
lona_(0-1)_Keita_HD.mkv
>> Muxing App: Haali DirectShow Matroska Muxer 1.9.42.1
>> Writing App: gdsmux
>> Note: similar to #1
>>=20
>> File: =
http://archive.org/download/L0rdGwynSuperGhoulnGhostChouMakaiMura/L0rd_Gwy=
n - Super Ghoul'n'Ghost - Chou Makai Mura.mkv
>> Muxing App: libebml v0.7.8 + libmatroska v0.8.1
>> Writing App: Cyberlink Matroska Muxer v1.0.0
>>=20
>> File: =
http://archive.org/download/OP08-Shashah.tv/OP357_Shashah-tv.mkv
>> Muxing App: libebml-0.7.7 &amp; libmatroska-0.8.1
>> Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build =
2550/release)
>>=20
>> I looked over about 20 more samples but all of them either used Haali =
or libebml as muxers and gdsmux, VirtualDubMod, Cyberlink, or mkvclean =
as writers. All reviewed samples included CRC32 (if at all) as the first =
child element of all level 1 Master-elements. I could not find any =
samples with a CRC32 Element at any other level besides level 2 or a =
CRC32 Element that wasn=E2=80=99t the first child element of its parent. =
=46rom this I think that the EBML and earlier Matroska RFC Draft =
definitions of CRC (version #2 and #3) are either wrong or never =
apparently used.
>>=20
>> I propose to refine the Matroska.org definition of the CRC element as =
move that to the EBML specification.
>=20
> Agreed.

Here is a proposed rewrite of the CRC-32 Element definition. It is based =
upon the matroska.org=E2=80=99s definition with additional edits for =
clarity.

The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of =
all the Element Data of the Parent Element as stored except for the =
CRC-32 Element itself. The CRC element SHOULD be the first in its Parent =
Element for easier reading. All Elements at Level 1 of an EBML Document =
SHOULD include a CRC-32 Element as a Child Element. The CRC in use is =
the IEEE-CRC-32 algorithm as used in the ISO 3309 standard and in =
section 8.1.1.6.2 of ITU-T recommendation V.42. The CRC value MUST use =
little endian storage.

The revision is with a pull request at =
https://github.com/Matroska-Org/ebml-specification/pull/46.

Dave Rice=


From nobody Tue Jan  5 23:06:15 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CFA0C1ACD3B for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 23:06:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Pe4fKLWbgxfh for <cellar@ietfa.amsl.com>; Tue,  5 Jan 2016 23:06:11 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 72E2B1ACD4B for <cellar@ietf.org>; Tue,  5 Jan 2016 23:06:11 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:44210 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aGiAZ-0012k6-0Z; Wed, 06 Jan 2016 02:06:10 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com>
Date: Wed, 6 Jan 2016 02:06:05 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/WDJ05JXGKFwdx9Wd_QRlNycwZ6A>
Cc: cellar@ietf.org, "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 07:06:14 -0000

> On Jan 5, 2016, at 3:20 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> 2016-01-04 19:59 GMT+01:00 Sebastian G. <bastik>
> <bastik.public.mailinglist@gmx.de>:
>> 04.01.2016, 08:11 Steve Lhomme:
>>> 2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>>=20
>>>>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org>
>>>>> wrote:
>>>>>=20
>>>>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>>>>> Hey,
>>>>>>=20
>>>>>> I only remember the discussion around Tracks being multiple,
>>>>>> not particularly for the other ones. Our intent way back when
>>>>>> was to allow muxers to write multiple instances of _the same
>>>>>> information_ in different places in order to make the file more
>>>>>> resilient against damage or incomplete downloads with protocols
>>>>>> like BitTorrent.
>>>>>=20
>>>>> Yes, that's the idea for the Track Info as it's vital to the
>>>>> usability of the file, as well as the Segment Info. I'm not sure
>>>>> it's used in practice though. Since the goal of CELLAR is
>>>>> archiving solutions it may still make sense.
>>>>=20
>>>> Perhaps to declare that an Element may be repeated but must be
>>>> repeated identically should be a new EBML Element Attributes, so
>>>> there can be a distinction between the repeatability Segment/Info
>>>> and the repeatability of SimpleBlock.
>>>=20
>>> That might be good. After all not elements make sense as repeated
>>> ones. For example in Matroska you don't want a Cluster (timestamped
>>> data) to be repeated.
>>>=20
>>>>>> The same reasoning could be applied to Info. Both elements are
>>>>>> absolutely crucial to playback; the other level 1 elements safe
>>>>>> for the clusters simply aren=E2=80=99t.
>>>>=20
>>>> But what should happen when the read finds differences in
>>>> repeated-but-should-be-identical elements?
>>>=20
>>> Good question. Maybe repeated elements should have a CRC ? If a CRC
>>> is wrong (or not found) the parser could look for a copy.
>>=20
>> I like the CRC idea for repeated elements, but it still does not =
define
>> how players should behave if they encounter two elements, even with
>> valid CRCs, not matching each other.
>=20
> Also what about repeated elements that are not master elements. You'd
> have no way of telling which is the best version. So repeated should
> probably be master elements. Maybe CRC should be mandatory too (not
> sure if real life files already follow this rule). That's the only way
> a parser would be able to tell which version is correct, as far as I
> can see.
>=20
>> There would have to be a recommendation. "Use always the first
>> occurrence of an element." or "If an element occurs repeated and its
>> values differ, the last occurrence is the one that should be used."
>=20
> Not necessarily. Bogus data could be on the first one. The goal is not
> to write a version of the element and then an updated version in the
> file. It has to be the same data. If you want to clear the first
> version, you should use the Void EBML element. When the file is
> originally written, repeated values should be exactly the same. That
> means elements that have a file offset relative to a child element
> would not be equal. Luckily in Matroska offset positions are always
> relative to the Segment, so a Level-0 element.
>=20
> http://www.matroska.org/technical/specs/notes.html#Position_References
>=20
>> Obviously tools that create such files are violating the =
specifications
>> since it should not be allowed to create repeated elements with
>> differing values. On the other hand should it be hard to break =
playback.
>> I prefer uniform behavior among players.
>>=20
>>>> For a scenario of two differing Info Elements, VLC and FFmpeg use
>>>> different Info Elements. Which use is correct? Since the use of
>>>> repeated-identical elements is resilience a deviation between the
>>>> two could be expected, so we should suggest how the reader should
>>>> respond.
>>>=20
>>> It was designed for recovery tools. It may not be good to change
>>> players for such cases. It would make them more complex. (unless an
>>> elegant/easy solution is found).
>>=20
>> For differences due to transmission errors a CRC for repeated =
elements
>> seems a good solution.
>>=20
>> Players have to do something with repeated elements. I don't know =
what
>> they do, but there should be a recommended way they should handle =
such
>> cases. If a player breaks, that is OK, as long as the file was =
violating
>> the specs. A player should behave in an expected way.
>=20
> IMO what makes sense from a player point of view is to read an
> element. If there's a CRC, it's broken and the semantic says the
> element can be repeated, then it should look for a valid version.
> Otherwise it shouldn't have to wonder which element to use if it
> encounters another one. IMO repeated elements only make sense if
> there's a CRC (whichever form it may take).
>=20
> Another rule for repeatable elements: the element MUST be unique at
> that level (not multiple).
>=20
>>>>>>> SeekHead, Info, Cluster, Tracks, and Tags are multiple.
>>>>>>=20
>>>>>> SeekHead and Cluster must be multiple. SeekHead in order to
>>>>>> allow moving a SeekHead to the end of the file while still
>>>>>> referencing it from the start (so that normal players will
>>>>>> still find it quickly). Cluster for obvious reasons.
>>>>>>=20
>>>>>>> And Cues, Attachments, and Chapters are non-multiple.
>>>>>>=20
>>>>>> I have no idea why Tags is multiple and these three aren't.
>>>>>>=20
>>>>>> To me the following would make sense:
>>>>>>=20
>>>>>> - Info, Tracks =E2=80=93 multiple but only if each instance =
contains
>>>>>> the same information
>>>>>>=20
>>>>>> - SeekHead, Cluster =E2=80=93 multiple without restrictions
>>>>>>=20
>>>>>> - Attachments, Chapters, Cues, Tags =E2=80=93 single
>>>>=20
>>>> I can understand Attachments and Tags being multiple as it could
>>>> allow attachments or tags to be added to a file without having to
>>>> re-write too many bytes.
>>>=20
>>> Yes. But then there should be a way for the player to know about
>>> these beforehand. Good players scan Matroska files beforehand anyway
>>> (unless it's live streaming).
>>>=20
>>=20
>> I agree with having a mechanism for players to know about them =
beforehand.

Here is a draft for an EBML Schema Attribute to be used in the =
definition of EBML Elements for what I=E2=80=99m referring to as =
Identically-Recurring Elements.

=3D=3D=3D=3D
A boolean to express if the EBML Element may occur within its Parent =
Element more than once but that each recurrance within that Parent =
Element MUST be identical both in storage and semantics. Such Elements =
are referred to as Identically-Recurring Elements. In this case, =
identical copies of an EBML Element are permitted to be stored multiple =
times within the same Parent Element in order to increase data =
resillience and optimize the use of EBML in transmission. =
Identically-Recurring Elements SHOULD include a CRC-32 Element as a =
Child Element. If a Parent Element contains more than one copy of an =
Identically-Recurring Element which includes a CRC-32 Child Elememnt =
then the first instance of the Identically-Recurring Element with a =
valid CRC-32 value should be used for interpretation. If a Parent =
Element contains more than one copy of an Identically-Recurring Element =
which does not contain a CRC-32 Child Elememnt then the first instance =
of the Identically-Recurring Element should be used for interpretation. =
If the `identical` attribute is not expressed for that Element then that =
Element is considered to not have a requirement for identical expression =
within the same Parent Element. The `identical` attribute is only valid =
if the Element is not set to `multiple`, otherwise the `identical` =
attribute shall be ignored.
=3D=3D=3D=3D

The text may be seen in context with the other attributes at =
https://github.com/MediaArea/ebml-specification/blob/d108c14d1f1c748d1f3f5=
0e58d4057208325f892/specification.markdown#ebml-schema-element-attributes

Some pending questions:
- Should Identically-Recurring Elements recommend or mandate inclusion =
of a CRC-32? I suggestion recommend and not mandate for reverse =
compability.
- Is 'Identically-Recurring Elements=E2=80=99 a decent short name for =
these types of Elements?
- Should the =E2=80=98identical=E2=80=99 attribute apply to only =
Master-elements? I think it could be open. I could see scenarios to =
place the CRC-32 both at the beginning and end of the Parent Element.
- I=E2=80=99m thinking that =E2=80=98multiple=E2=80=99 means the Element =
may recur within its Parent Element and means that there are multiple =
semantics. I suggest that =E2=80=98identical=E2=80=99 Elements not be =
=E2=80=98multiple=E2=80=99 as an =E2=80=98identical=E2=80=99 Element =
recurs but only with a single and non-multiple semantic meaning. OK?
- If there are multiple copies of identical Elements, I wrote in the =
draft that if there=E2=80=99s a CRC than the first copy with valid CRC =
be used, else the first copy be used. Potentially we could say first =
valid copy be used, but then need to say fully what valid means.
- I agree that an identical Element should not be used to change the =
semantics over time.

Btw while working on this I found a mkv file from Lavf54.29.104 where a =
Track Entry element contained two different copies of DefaultDuration. =
They only differed by 1, but is the first one valid and the second one =
invalid?

Dave Rice




From nobody Wed Jan  6 02:12:00 2016
Return-Path: <kieran.o.leary@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1873F1ACDD2 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 02:11:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c4ffVLOC1eei for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 02:11:56 -0800 (PST)
Received: from mail-qg0-x230.google.com (mail-qg0-x230.google.com [IPv6:2607:f8b0:400d:c04::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A7FCA1ACD97 for <cellar@ietf.org>; Wed,  6 Jan 2016 02:11:56 -0800 (PST)
Received: by mail-qg0-x230.google.com with SMTP id e32so208700137qgf.3 for <cellar@ietf.org>; Wed, 06 Jan 2016 02:11:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ThlOoB7C3HqcB5spgvEmCDOnbQRliYxT/HeP3ExfCBw=; b=st8gfCo2pQ819ND1NaV5pA01MtV45i7ZrNfdCb3TAkDqOadmRKFovLymnpf6CqRkCp sspzpJ+Bsf0zwpRnOCimPt3hJb/h5mUZE8YDCI00+GXAmobf5GjezTShlE6qarVW4riy XjDlsxuB0X6WiTaB7p/Hk9ccGGZv1JFoelvYLMn7OL0JKSO3xJmCzY+gOACVUFqH2Tv/ hy1gnGRJbIZFWkuboO+dpJM/XeqFUn0SYx+i1512Zpnb+EWK+7+7g/gEkG1amJReG8SF a1hpCDCkpy6cTs6YYBwSvOoJaCqE3RobVxMXJWooddKNiCo4vwEP+r7i7sjfLT8zq2iP 3H7w==
MIME-Version: 1.0
X-Received: by 10.140.237.74 with SMTP id i71mr72472938qhc.55.1452075115870; Wed, 06 Jan 2016 02:11:55 -0800 (PST)
Received: by 10.55.106.6 with HTTP; Wed, 6 Jan 2016 02:11:55 -0800 (PST)
In-Reply-To: <568C0516.3040605@mediaarea.net>
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4> <568BF59B.6050106@mediaarea.net> <20160105174445.GC13213@nb4> <568C0516.3040605@mediaarea.net>
Date: Wed, 6 Jan 2016 10:11:55 +0000
Message-ID: <CAO7v-1R44SDSZWZ_55SBT0vE+ka7e+s5V9suiW3emM-Z-ViS2A@mail.gmail.com>
From: Kieran O Leary <kieran.o.leary@gmail.com>
To: Jerome Martinez <jerome@mediaarea.net>
Content-Type: multipart/alternative; boundary=001a1135914c77fe550528a79549
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/g8mLLjiNQI_KcVH-KtK_042cSz8>
Cc: Christoph Gerstbauer <christophgerstbauer@gmail.com>, cellar@ietf.org
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 10:11:59 -0000

--001a1135914c77fe550528a79549
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hi guys,

I'd like to propose the inclusion of Logarithmic information within the
FFV1 codec when transcoding from LOG RGB DPX.

This could be very beneficial to moving image archives who want to
losslessly compress their LOG DPX scans to FFV1. Currently if the FFV1
transcode is converted back to DPX, it is with Linear values, making it
unsuitable for preservation purposes.

It appears that ffmpeg doesn't support LOG in general (or maybe this lack
of support is just in DPX), from what I've gleaned from the mailing list,
so perhaps the LOG 'flag' within the FFV1 bitstream is only half the
battle? This conversation between Carl Eugen Hoyos and Dave Rice is my
source for this info, so apologies if I'm taking them up the wrong way :
https://ffmpeg.org/pipermail/ffmpeg-user/2015-March/025634.html

I would love to know if this is possible, or if anyone else would be
interested in this feature.
Here's some ffmpeg-user threads about the subject from the past year:
https://ffmpeg.org/pipermail/ffmpeg-user/2015-March/025625.html &
https://lists.mplayerhq.hu/pipermail/ffmpeg-user/2015-December/029536.html

Best regards,

Kieran O'Leary

On Tue, Jan 5, 2016 at 6:01 PM, Jerome Martinez <jerome@mediaarea.net>
wrote:

> Le 05/01/2016 18:44, Michael Niedermayer a =C3=A9crit :
>
>> the global header / extradata / ConfigurationRecord can and should be
>> duplicated at the container level. repeating it at the codec level would
>> make finding a duplicate element relativly hard as one probably would ha=
ve
>> to scan the whole file. A container could contain something like an inde=
x
>> to point to redundant copies, while at codec level this would not work s=
o
>> easily
>>
>
> As far as I know, I never seen duplicated ConfigurationRecord.
> I guess we should add such option (e.g. in Matroska specs, there is
> already a discussion about duplicated parts) for people wanting to secure
> this important part.5
>
> [...]
>>
>> different picture_structures in 1 frame dont make sense or do i
>> misunderstand ?
>>
>
> Some people may be crazy enough for wanting and trying e.g.:
> - slice 0,0 top field first
> - slice 0,0 (the same as the line above) bottom field first
> - slice 0,1 progressive
> - slice 1,0 bottom field first
> - slice 1,0 (the same as the line above) top field first
> - slice 1,1 progressive
> (we have MABFF feature in AVC/H264, so I don't invent too much)
>
> and for the moment, I see nothing in the FFV1 specification forbidding
> that (did I miss something?)
> So either we are clear it is authorized (and the reference decoder can
> deal with it), or we explicitly forbid it (picture_structure is same in a=
ll
> slices of a frame)
>
>
>
>> Additionally, picture_structure, sar_num, sar_dem (and other?) do
>>> not use to change (or they change as often as  chroma_planes,
>>> h_chroma_subsample, alpha_plane...), so we may consider to put them
>>> in the ConfigurationRecord() too (and we may need to take care of
>>> duplicating it in the container?)
>>>
>> they could optionally be put in the global ConfigurationRecord
>> but it should stay possible for them to change if thats what the
>> source video we encode is doing
>>
>
> I like the idea to have such optional possibility. this is not a lot, but
> always some bits of compression.
> A candidate for FFV1 version 4 feature!
>
> J=C3=A9r=C3=B4me
>

--001a1135914c77fe550528a79549
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div><div>Hi guys,<br><br></div>I&#39;d like to propo=
se the inclusion of Logarithmic information within the FFV1 codec when tran=
scoding from LOG RGB DPX. <br><br></div>This could be very beneficial to mo=
ving image archives who want to losslessly compress their LOG DPX scans to =
FFV1. Currently if the FFV1 transcode is converted back to DPX, it is with =
Linear values, making it unsuitable for preservation purposes.</div><div><b=
r></div>It appears that ffmpeg doesn&#39;t support LOG in general (or maybe=
 this lack of support is just in DPX), from what I&#39;ve gleaned from the =
mailing list, so perhaps the LOG &#39;flag&#39; within the FFV1 bitstream i=
s only half the battle? This conversation between Carl Eugen Hoyos and Dave=
 Rice is my source for this info, so apologies if I&#39;m taking them up th=
e wrong way : <a href=3D"https://ffmpeg.org/pipermail/ffmpeg-user/2015-Marc=
h/025634.html" target=3D"_blank">https://ffmpeg.org/pipermail/ffmpeg-user/2=
015-March/025634.html</a><br><div><br></div><div>I would love to know if th=
is is possible, or if anyone else would be interested in this feature.=C2=
=A0<br>Here&#39;s some ffmpeg-user threads about the subject from the past =
year:=20
<a href=3D"https://ffmpeg.org/pipermail/ffmpeg-user/2015-March/025625.html"=
 target=3D"_blank">https://ffmpeg.org/pipermail/ffmpeg-user/2015-March/0256=
25.html</a> &amp;=20
<a href=3D"https://lists.mplayerhq.hu/pipermail/ffmpeg-user/2015-December/0=
29536.html" target=3D"_blank">https://lists.mplayerhq.hu/pipermail/ffmpeg-u=
ser/2015-December/029536.html</a>=C2=A0<br></div><div><br></div><div>Best r=
egards,</div><div><br></div><div>Kieran O&#39;Leary</div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, Jan 5, 2016 at 6:01=
 PM, Jerome Martinez <span dir=3D"ltr">&lt;<a href=3D"mailto:jerome@mediaar=
ea.net" target=3D"_blank">jerome@mediaarea.net</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><span class=3D"">Le 05/01/2016 18:44, Michael N=
iedermayer a =C3=A9crit :<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
the global header / extradata / ConfigurationRecord can and should be dupli=
cated at the container level. repeating it at the codec level would make fi=
nding a duplicate element relativly hard as one probably would have to scan=
 the whole file. A container could contain something like an index to point=
 to redundant copies, while at codec level this would not work so easily <b=
r>
</blockquote>
<br></span>
As far as I know, I never seen duplicated ConfigurationRecord.<br>
I guess we should add such option (e.g. in Matroska specs, there is already=
 a discussion about duplicated parts) for people wanting to secure this imp=
ortant part.5<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
[...]<span class=3D""><br>
<br>
different picture_structures in 1 frame dont make sense or do i<br>
misunderstand ?<br>
</span></blockquote>
<br>
Some people may be crazy enough for wanting and trying e.g.:<br>
- slice 0,0 top field first<br>
- slice 0,0 (the same as the line above) bottom field first<br>
- slice 0,1 progressive<br>
- slice 1,0 bottom field first<br>
- slice 1,0 (the same as the line above) top field first<br>
- slice 1,1 progressive<br>
(we have MABFF feature in AVC/H264, so I don&#39;t invent too much)<br>
<br>
and for the moment, I see nothing in the FFV1 specification forbidding that=
 (did I miss something?)<br>
So either we are clear it is authorized (and the reference decoder can deal=
 with it), or we explicitly forbid it (picture_structure is same in all sli=
ces of a frame)<span class=3D""><br>
<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Additionally, picture_structure, sar_num, sar_dem (and other?) do<br>
not use to change (or they change as often as=C2=A0 chroma_planes,<br>
h_chroma_subsample, alpha_plane...), so we may consider to put them<br>
in the ConfigurationRecord() too (and we may need to take care of<br>
duplicating it in the container?)<br>
</blockquote>
they could optionally be put in the global ConfigurationRecord<br>
but it should stay possible for them to change if thats what the<br>
source video we encode is doing<br>
</blockquote>
<br></span>
I like the idea to have such optional possibility. this is not a lot, but a=
lways some bits of compression.<br>
A candidate for FFV1 version 4 feature!<br>
<br>
J=C3=A9r=C3=B4me<br>
</blockquote></div><br></div>

--001a1135914c77fe550528a79549--


From nobody Wed Jan  6 03:48:35 2016
Return-Path: <tterribe@xiph.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 473541ACEE3 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 03:48:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.414
X-Spam-Level: 
X-Spam-Status: No, score=-3.414 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yow3mnMCh2q7 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 03:48:33 -0800 (PST)
Received: from smtp.mozilla.org (mx2.scl3.mozilla.com [63.245.214.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 372A51ACEED for <cellar@ietf.org>; Wed,  6 Jan 2016 03:48:33 -0800 (PST)
Received: from localhost (localhost6.localdomain [127.0.0.1]) by mx2.mail.scl3.mozilla.com (Postfix) with ESMTP id CDBE2BFCE4 for <cellar@ietf.org>; Wed,  6 Jan 2016 11:48:32 +0000 (UTC)
X-Virus-Scanned: amavisd-new at mozilla.org
Received: from smtp.mozilla.org ([127.0.0.1]) by localhost (mx2.mail.scl3.mozilla.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LDc3ICTgZ76R for <cellar@ietf.org>; Wed,  6 Jan 2016 11:48:32 +0000 (UTC)
Received: from [192.168.11.19] (pool-71-120-21-208.washdc.east.verizon.net [71.120.21.208]) (Authenticated sender: tterriberry@mozilla.com) by mx2.mail.scl3.mozilla.com (Postfix) with ESMTPSA id 8AF35BFB4F for <cellar@ietf.org>; Wed,  6 Jan 2016 11:48:31 +0000 (UTC)
Message-ID: <568CFF0E.2060505@xiph.org>
Date: Wed, 06 Jan 2016 03:48:30 -0800
From: "Timothy B. Terriberry" <tterribe@xiph.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 SeaMonkey/2.26
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com>
In-Reply-To: <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/2Gz-D30Al4MXlKT8AgjEP8noU7g>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 11:48:34 -0000

> - Should Identically-Recurring Elements recommend or mandate inclusion of a CRC-32? I suggestion recommend and not mandate for reverse compability.

The text should say something about this justification (i.e., when it 
would be reasonable to violate the SHOULD).


From nobody Wed Jan  6 10:16:39 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A1F881A0093 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 10:16:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.499
X-Spam-Level: **
X-Spam-Status: No, score=2.499 tagged_above=-999 required=5 tests=[BAYES_50=0.8, J_CHICKENPOX_54=0.6, J_CHICKENPOX_55=0.6, J_CHICKENPOX_64=0.6, J_CHICKENPOX_65=0.6, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UBQedZjjzSAN for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 10:16:36 -0800 (PST)
Received: from 8.mo69.mail-out.ovh.net (8.mo69.mail-out.ovh.net [46.105.56.233]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F99A1A0092 for <cellar@ietf.org>; Wed,  6 Jan 2016 10:16:35 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id ED8BDFFB4D4 for <cellar@ietf.org>; Wed,  6 Jan 2016 19:16:33 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 6 Jan 2016 20:16:33 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 6 Jan 2016 20:16:30 +0200
To: cellar@ietf.org
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com> <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com> <59916228-8638-4827-8145-5B0206B74A96@dericed.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568D59FD.4030702@mediaarea.net>
Date: Wed, 6 Jan 2016 19:16:29 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <59916228-8638-4827-8145-5B0206B74A96@dericed.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 6484620514729660562
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjeduucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjedugdellecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/0lQU9nbn5_vXKjVSRSJXbREZjKo>
Subject: Re: [Cellar] clarity for the EBML CRC Element (and some bit of FFV1 CRC)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 18:16:38 -0000

Le 06/01/2016 05:35, Dave Rice a Ã©crit :
> [...]
>
> Here is a proposed rewrite of the CRC-32 Element definition. It is 
> based upon the matroska.orgâ€™s definition with additional edits for 
> clarity. The CRC-32 Element contains a 32 bit Cyclic Redundancy Check 
> value of all the Element Data of the Parent Element as stored except 
> for the CRC-32 Element itself. The CRC element SHOULD be the first in 
> its Parent Element for easier reading. All Elements at Level 1 of an 
> EBML Document SHOULD include a CRC-32 Element as a Child Element. The 
> CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 
> standard and in section 8.1.1.6.2 of ITU-T recommendation V.42. The 
> CRC value MUST use little endian storage.

CRC definition is a pain, with often implementation details different 
and missing from the spec, despite the fact developers need such details.
For example with IEEE-CRC-32, we can see on Wikipedia:
https://en.wikipedia.org/wiki/Polynomial_representations_of_cyclic_redundancy_checks
that both Gzip (similar to the one used by Matroska) and MPEG-2 are 
listed as CRC-32 (as well as "ITU-T V.42")
We also see in original FFV1 spec "The CRC generator polynom used is the 
standard IEEE CRC polynom"

But:
- MPEG-2 uses an initial content of the register of 0xFFFFFFFF and runs 
on a Big Endian bitstream (final value not stored, must be 0 if not 
reversed, 0xFFFFFFFF if reversed). Note: MPEG-2 don't claim to be IEEE 
compliant)
- Matroska uses an initial content of the register of 0xFFFFFFFF and 
runs on a Little Endian bitstream, final value is reversed and stored in 
Little Endian
- FFV1 uses an initial content of the register of 0x00000000 and runs on 
a Big Endian bitstream, final value is not reversed and stored in Big Endian
All different despite the fact they are in the "CRC-32" group.

I read section 8.1.1.6.2 of ITU-T recommendation V.42, it says:
"As a typical implementation at the transmitter, the initial content of 
the register of the device computing the remainder of the division is 
preset to all 1s"

"typical" is not "MUST."

And I don't see in section 8.1.1.6.2 that the result should be reversed.

I don't have access to ISO 3309.

So I propose to be more explicit:
"The CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 
standard and in section 8.1.1.6.2 of ITU-T recommendation V.42, with 
initial value of 0xFFFFFFFF. The CRC value MUST be computed on a little 
endian bitstream and MUST use little endian storage."

I already added some details on the FFV1 spec some time ago (when I 
tried to reuse MPEG-2 CRC code for FFV1):
https://github.com/FFmpeg/FFV1/commit/0e67a72a75485b95261be2e1f39258004666c4a1
(the initial value is 0x00000000)
Maybe I need to add that it must be computed on a big endian bitstream 
and that the result is stored not reversed (big endian storage is forced 
for the whole spec, so no need to add such info here) in order to be 
explicit on all implementation details.

I am not a CRC expert, just a developer facing issues when I need to 
check CRCs, so don't hesitate to correct me if I am wrong on the 
analysis of the issues I have when I implement, and maybe there are 
already a "standard" way to define a CRC at the IETF (I need to dig 
further, but I see e.g. the Polynomial in some IETF documents).

Note: checking (not a reference)
http://reveng.sourceforge.net/crc-catalogue/17plus.htm
V.42 is defined as:
width=32 poly=0x04c11db7 init=0xffffffff refin=true refout=true 
xorout=0xffffffff check=0xcbf43926 name="CRC-32"
CRC-32/MPEG-2 is defined:
width=32 poly=0x04c11db7 init=0xffffffff refin=false refout=false 
xorout=0x00000000 check=0x0376e6e7 name="CRC-32/MPEG-2"

If it is obvious that "IEEE-CRC-32" is the way it is implemented in 
Matroska and only this way, no need of details and I guess we need to 
update FFV1 spec with the same kind of details ("CRC-32/FFV1"?)


JÃ©rÃ´me


From nobody Wed Jan  6 11:13:10 2016
Return-Path: <bastik.public.mailinglist@gmx.de>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BDF661A010B for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 11:13:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.2
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TnRs16zOp0kZ for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 11:13:06 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 494A31A0108 for <cellar@ietf.org>; Wed,  6 Jan 2016 11:13:06 -0800 (PST)
Received: from [192.168.2.129] ([188.100.175.162]) by mail.gmx.com (mrgmx003) with ESMTPSA (Nemesis) id 0MMShK-1aIYzk3npO-008Gq6; Wed, 06 Jan 2016 20:12:19 +0100
To: Dave Rice <dave@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com>
From: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Openpgp: id=BFE90DE515B6F548CDE298939902921C2B944DAE
X-Enigmail-Draft-Status: N1110
Message-ID: <568D6710.8000605@gmx.de>
Date: Wed, 6 Jan 2016 20:12:16 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:M+bw/qUi/s4mHvyUVqijQWPoAldYQqMQwMPO9xP+Njv8+LwwxoO 2qtlyJh6sYjx1DsnVPcAO5GkOOTbKr6OMgUx1drIC+3mUb+5Sp+XxaknZIArrgTv4IarMWG 4Y+G+ssxBT2r5fx/Y2EXn2ipkOBD5jwsJtsSqouvLt9BeqTw4/U2JIMoHuyySgLUxpXOWZe 4aeb6BjEEbzeCHVrk7r6Q==
X-UI-Out-Filterresults: notjunk:1;V01:K0:0nDMgUSYg4Q=:Mlk3knwCn/NR2hGIo9TxR7 Y4XfZjpb02pEM/d335uPjDnh8Xj5PWyXKRc876jCPdWMMm+ggVuknkDsw49UppeE69PV4LrJR S6r6EjxGCETZGlgQk1J1nBfGAGVNsq0bqFzGyUE2z7t2FuX7MjG/TVtUL6YMGBhE0+b1Lwy4E 6TTRO644QGya8UV9QUSErjB3bzgjtevgxfZ4K0WrorLIavKchE74F9Uoax27mho27c8PnGWvb vYqhzKtC1r40jhJv0wr6KnS9cKo8yVZZI59fVC8zxH18Mmkx8HQYwhkDpKXntqgXQdmn5mx02 Nnd1j3HOWxObreTJPq2YrmsPMqlcEd3+JqfNAOtF+R7PQRllFdcxEJwFTi+gFp4QsBpMnDUJG rSYJGZtR4yIge7zJ93r2onpKJT2G3Ayhvr99N4Z246RpDH+1T5xEU5NIBpFxRtMmQ4J9+u2wR bUS168F+ivAr6zHTENrtrAfXmM41vgI9PJ0AK6oNiwQ82b6sjn1un0QinPqWV5UmVgQWcJ4Ym nd6LRX1DFyQlsmbOIMdr/W1IZbw+48d9Pcp3yQ2FLbQ4csvQeI5bh4QqLHQAjdArh6fAByhW5 0xt7nPg1So0SXepb4yfmu4TMuD8G14NMgdUyqJk4wbBAzwkVGxBUXIbS69gqn61N4c7oaAeXQ 3LKXxpRynK2raXLFqSE+sQ/C8ibvbu9jlCRkmfzWYp/VY+9YzgtTxGuGv61tIZ4RtyqrdDZaP Ma37ebnYk8MRUeujTQcSXVJzyRdoJ3RxTFjSG7vujloQiNIbj7YzMae+4exEqUfjIiBUCeZM4 m7sGmk9
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/HE2Nifm1X1XAyrwgSHTmdjLo7w0>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 19:13:08 -0000

06.01.2016, 08:06 Dave Rice:
> Here is a draft for an EBML Schema Attribute to be used in the
> definition of EBML Elements for what Iâ€™m referring to as
> Identically-Recurring Elements.
> 
> ==== A boolean to express if the EBML Element may occur within its
> Parent Element more than once but that each recurrance within that

Is 'recurrance' spelled correctly? (Not a native speaker). 'recurrence'
is suggested as search term suggestion.

> Parent Element MUST be identical both in storage and semantics. Such
> Elements are referred to as Identically-Recurring Elements. In this
> case, identical copies of an EBML Element are permitted to be stored
> multiple times within the same Parent Element in order to increase
> data resillience and optimize the use of EBML in transmission.

'resillience' seems to have an error. 'resilience'.

> Identically-Recurring Elements SHOULD include a CRC-32 Element as a
> Child Element. If a Parent Element contains more than one copy of an
> Identically-Recurring Element which includes a CRC-32 Child Elememnt

s/Elememnt/Element

> then the first instance of the Identically-Recurring Element with a
> valid CRC-32 value should be used for interpretation. If a Parent
> Element contains more than one copy of an Identically-Recurring
> Element which does not contain a CRC-32 Child Elememnt then the first

s/Elememnt/Element

'If a Parent Element contains more than one copy of an
Identically-Recurring Element which does not contain a CRC-32 Child
Element "or if CRC-32 Child Elements are present but neither of those
are valid" then the first instance of the Identically-Recurring Element
should be used for interpretation.'

I took your sentence and added (noted by "") the case something would
contain CRCs, but neither of them would be valid. Feel free to ignore
this suggestion. It might be a rare case.

It is certainly possible to have it as separate sentence. Maybe it makes
it easier to read. Maybe even easier to understand.

> instance of the Identically-Recurring Element should be used for
> interpretation. If the `identical` attribute is not expressed for
> that Element then that Element is considered to not have a
> requirement for identical expression within the same Parent Element.
> The `identical` attribute is only valid if the Element is not set to
> `multiple`, otherwise the `identical` attribute shall be ignored. 
> ====
> 
> The text may be seen in context with the other attributes at
> https://github.com/MediaArea/ebml-specification/blob/d108c14d1f1c748d1f3f50e58d4057208325f892/specification.markdown#ebml-schema-element-attributes
>
>  Some pending questions:
> - Should Identically-Recurring Elements recommend or mandate inclusion of a CRC-32? I suggestion recommend and not mandate for reverse compability.

Backward compatibility seems to be a higher goal than CRCs. I think it
should be even possible to play a file without checking CRCs, which does
not contradict having CRCs in the first place.

Like Timothy B. Terriberry points out, reasons for not having CRCs on
those elements should be given in the specification.

> - Is 'Identically-Recurring Elementsâ€™ a decent short name for these types of Elements?

I have no objection. IRE could be used when talking about those
elements, unless it is within official documents.

> - Should the â€˜identicalâ€™ attribute apply to only Master-elements? I think it could be open. I could see scenarios to place the CRC-32 both at the beginning and end of the Parent Element.

I have not enough knowledge to make an informed statement.

> - Iâ€™m thinking that â€˜multipleâ€™ means the Element may recur within its Parent Element and means that there are multiple semantics. I suggest that â€˜identicalâ€™ Elements not be â€˜multipleâ€™ as an â€˜identicalâ€™ Element recurs but only with a single and non-multiple semantic meaning. OK?

I have not enough knowledge to make an informed statement.

> - If there are multiple copies of identical Elements, I wrote in the draft that if thereâ€™s a CRC than the first copy with valid CRC be used, else the first copy be used. Potentially we could say first valid copy be used, but then need to say fully what valid means.

I'm neutral, but agree that if just valid is used it would have to be
explained what valid means.

> - I agree that an identical Element should not be used to change the semantics over time.

Agreed.

--
Sebastian


From nobody Wed Jan  6 12:19:59 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1EE231A0204 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 12:19:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ctE0LPkv27Cs for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 12:19:54 -0800 (PST)
Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2641F1A01F9 for <cellar@ietf.org>; Wed,  6 Jan 2016 12:19:54 -0800 (PST)
Received: by mail-oi0-x232.google.com with SMTP id l9so272612876oia.2 for <cellar@ietf.org>; Wed, 06 Jan 2016 12:19:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=T0EJgBKwEVYl28u/d1kQFnEd032sBXlDtFBoui4Nsu4=; b=nVZ3r720KOUmvwAeF7eXJxyuzs2+0cmv4sTeLmugrQL9Ozd/b3Ph17Hqv/L406RwnC wYLRaexuAwNt0b4bX7KWmKDD0a9HeFh2nWvUk/rYzxPyvKjHLROJuSr1/ogKUYv2s4Pe irKj3BREi6rA/vGyl/9r1ZHeXFprez8d8OMiP+m9JIr6N+FTUMwo1jzK+4D9uFcquuSx 7Zskz4TSALQdA7spo2t9XdfR4swTBmKarJSyR50F92eBd/Rj4MRwG21IT7j7Oq1inIVv gUmYgCVTDmbyr4FX4U20Ueg/484yn9DeHWvsI+lZiwBzjuSC0ol6Q0TAcPAaVvbVGxw3 BXEQ==
MIME-Version: 1.0
X-Received: by 10.202.184.69 with SMTP id i66mr53382354oif.62.1452111593528; Wed, 06 Jan 2016 12:19:53 -0800 (PST)
Received: by 10.202.211.65 with HTTP; Wed, 6 Jan 2016 12:19:53 -0800 (PST)
In-Reply-To: <568C3378.5060305@xiph.org>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3378.5060305@xiph.org>
Date: Wed, 6 Jan 2016 12:19:53 -0800
Message-ID: <CAJGH+Uu2DDZiL_UdHiyQwHPoZ7WGfSOtBBWgZbNozt3iEc=bQw@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: "Timothy B. Terriberry" <tterribe@xiph.org>
Content-Type: multipart/alternative; boundary=001a113cd21ab4e3a70528b013b9
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/BlH-EtAx612MsZCOfmvBdNYDNso>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 20:19:59 -0000

--001a113cd21ab4e3a70528b013b9
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 5, 2016 at 1:19 PM, Timothy B. Terriberry <tterribe@xiph.org>
wrote:

> Frank Galligan wrote:
>
>> I would like to bring up the discussion again about better representing
>> the color format of video. It looks like the discussion was started here
>>
>
> Nothing describing chroma siting?
>
>
> Sorry took it out. Yes we need this.

Should we define something that is more extensible? Or just go with the
common sittings? I.e. co-located luma (0,0), sitting for Mpeg2, sitting
Jpeg,...

--001a113cd21ab4e3a70528b013b9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jan 5, 2016 at 1:19 PM, Timothy B. Terriberry <span dir=3D"ltr"=
>&lt;<a href=3D"mailto:tterribe@xiph.org" target=3D"_blank">tterribe@xiph.o=
rg</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D""=
>Frank Galligan wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
I would like to bring up the discussion again about better representing<br>
the color format of video. It looks like the discussion was started here<br=
>
</blockquote>
<br></span>
Nothing describing chroma siting?<br>
<br><br>
</blockquote></div>Sorry took it out. Yes we need this.</div><div class=3D"=
gmail_extra"><br></div><div class=3D"gmail_extra">Should we define somethin=
g that is more extensible? Or just go with the common sittings? I.e. co-loc=
ated luma (0,0), sitting for Mpeg2, sitting Jpeg,...</div></div>

--001a113cd21ab4e3a70528b013b9--


From nobody Wed Jan  6 13:46:48 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 119751A1A54 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 13:46:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bsX67n1F0_z7 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 13:46:45 -0800 (PST)
Received: from mail-oi0-x233.google.com (mail-oi0-x233.google.com [IPv6:2607:f8b0:4003:c06::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74A7A1A1A78 for <cellar@ietf.org>; Wed,  6 Jan 2016 13:46:45 -0800 (PST)
Received: by mail-oi0-x233.google.com with SMTP id y66so302007672oig.0 for <cellar@ietf.org>; Wed, 06 Jan 2016 13:46:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=x8tUgJ+hwGtPEE+fnBBw7H1J9EwX2QyZ0PLrRyHIHOo=; b=hoJoZBsrqW0OUiw70j9CeFzw4vFElTEDpzwLyrXJAuD9D9GS8mACXLVzBVD/OzCr64 LChs1tJ5BNsfWPm/vjmyZ4fYRZ9gRynznXpfgyhJQ3k/grEJrk7PEApzLkzmO+R2tXMk jqXghK9h027GIe9PARGslQDOPWEcFnwc0KkUjiKIZEpDG+7d4TVIBNMmbT98ZbbmWMFt Yeuvq9V3ANC704wgXizho9TD6NKf/x3aDNqv/M73OA6Rh9gNpZsmXZSVkAzxL0iaT39d Dljx0vEaQPkXGtFBO06+sRs+eZw7//k4OFWxmYI9yTkvJ7yT7YY93lWo0sAp9X+NNYNl uicw==
MIME-Version: 1.0
X-Received: by 10.202.184.69 with SMTP id i66mr53705687oif.62.1452116804857; Wed, 06 Jan 2016 13:46:44 -0800 (PST)
Received: by 10.202.211.65 with HTTP; Wed, 6 Jan 2016 13:46:44 -0800 (PST)
In-Reply-To: <CAHUoET+jsobP5W7E_QOyRaeG+xTjJg-jCc=2NAC4UBrv7j2SZw@mail.gmail.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <CAHUoET+jsobP5W7E_QOyRaeG+xTjJg-jCc=2NAC4UBrv7j2SZw@mail.gmail.com>
Date: Wed, 6 Jan 2016 13:46:44 -0800
Message-ID: <CAJGH+UtVQiXxLVd+if-T4qGuuiBJEKBVCOxXbqOHfYuXygQHBg@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: Michael Bradshaw <mjbshaw@google.com>
Content-Type: multipart/alternative; boundary=001a113cd21a53773c0528b14a06
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9kpKaavcs3yynpSRZSqG0Var1GE>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 21:46:47 -0000

--001a113cd21a53773c0528b14a06
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 5, 2016 at 1:33 PM, Michael Bradshaw <mjbshaw@google.com> wrote:

> On Tue, Jan 5, 2016 at 1:12 PM, Frank Galligan <frankgalligan@gmail.com>
> wrote:
>>
>> Element Name: ChromaSubsampling
>> Level:        5
>> ID:           [55][A3]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      0
>> Type:         u
>> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
>>
>>
> FFmpeg supports more subsampling schemes like 4:1:0, 4:1:1, and 4:4:0.
>
Yes all the rest should have been included. Looking over some of the other
messages we could change too:
Element Name: ChromaSubsampling
Level:        5
ID:           [55][A3]
Mandatory:    ma
Multiple:     -
Default:      0
Type:         u
Description:  (0: Unspecified, 1: 4:4:4, 2: 4:4:0, 2: 4:2:2, 3: 4:2:1, 4:
4:2:0, 5: 4:1:1, 6: 4:1:0, 7: 3:1:1)



>
> Additionally, these formats assume 3-channel pixel formats. What about an
> alpha-channel or other color spaces with > 3 channels?
>
We could add another element to signify an alpha channel. Are there any
common formats where the alpha is subsampled?

>
> Perhaps a per-channel master element could exist that contains subsampling
> and bit information?
>
This seems like a little overkill to me, but if other people want to do it
this way, then it is fine with me.

--001a113cd21a53773c0528b14a06
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jan 5, 2016 at 1:33 PM, Michael Bradshaw <span dir=3D"ltr">&lt;=
<a href=3D"mailto:mjbshaw@google.com" target=3D"_blank">mjbshaw@google.com<=
/a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);=
border-left-style:solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gm=
ail_extra"><div class=3D"gmail_quote"><span class=3D"">On Tue, Jan 5, 2016 =
at 1:12 PM, Frank Galligan <span dir=3D"ltr">&lt;<a href=3D"mailto:frankgal=
ligan@gmail.com" target=3D"_blank">frankgalligan@gmail.com</a>&gt;</span> w=
rote:<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:so=
lid;padding-left:1ex"><div dir=3D"ltr"><div><div><font face=3D"monospace, m=
onospace">Element Name: ChromaSubsampling</font></div><div><font face=3D"mo=
nospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A05</font></div><div><f=
ont face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [5=
5][A3]</font></div><div><font face=3D"monospace, monospace">Mandatory: =C2=
=A0 =C2=A0ma</font></div><div><font face=3D"monospace, monospace">Multiple:=
 =C2=A0 =C2=A0 -</font></div><div><font face=3D"monospace, monospace">Defau=
lt: =C2=A0 =C2=A0 =C2=A00</font></div><div><font face=3D"monospace, monospa=
ce">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</font></div><div><font face=3D"mono=
space, monospace">Description: =C2=A0(0: 4:2:0, 2: 4:2:2, 4: 4:4:4)</font><=
/div><div><font face=3D"monospace, monospace"><br></font></div></div></div>=
</blockquote><div><br></div></span><div>FFmpeg supports more subsampling sc=
hemes like 4:1:0, 4:1:1, and 4:4:0.</div></div></div></div></blockquote><di=
v>Yes all the rest should have been included. Looking over some of the othe=
r messages we could change too:</div><div><div>Element Name: ChromaSubsampl=
ing</div><div>Level: =C2=A0 =C2=A0 =C2=A0 =C2=A05</div><div>ID: =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 [55][A3]</div><div>Mandatory: =C2=A0 =C2=A0ma</div=
><div>Multiple: =C2=A0 =C2=A0 -</div><div>Default: =C2=A0 =C2=A0 =C2=A00</d=
iv><div>Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</div><div>Description: =C2=A0(0=
: Unspecified, 1: 4:4:4, 2: 4:4:0, 2: 4:2:2, 3: 4:2:1, 4: 4:2:0, 5: 4:1:1, =
6: 4:1:0, 7: 3:1:1)</div></div><div><br></div><div>=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1=
px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:=
1ex"><div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"=
><div><br></div><div>Additionally, these formats assume 3-channel pixel for=
mats. What about an alpha-channel or other color spaces with &gt; 3 channel=
s?</div></div></div></div></blockquote><div>We could add another element to=
 signify an alpha channel. Are there any common formats where the alpha is =
subsampled?=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bo=
rder-left-style:solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmai=
l_extra"><div class=3D"gmail_quote"><div><br></div><div>Perhaps a per-chann=
el master element could exist that contains subsampling and bit information=
?</div></div></div></div></blockquote><div>This seems like a little overkil=
l to me, but if other people want to do it this way, then it is fine with m=
e.</div><div>=C2=A0</div></div><br></div></div>

--001a113cd21a53773c0528b14a06--


From nobody Wed Jan  6 14:00:38 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 94B201A1AB9 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 14:00:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SkFD06Ra7H23 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 14:00:36 -0800 (PST)
Received: from mail-ob0-x22e.google.com (mail-ob0-x22e.google.com [IPv6:2607:f8b0:4003:c01::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DC4D51A1AC1 for <cellar@ietf.org>; Wed,  6 Jan 2016 14:00:35 -0800 (PST)
Received: by mail-ob0-x22e.google.com with SMTP id bx1so284091925obb.0 for <cellar@ietf.org>; Wed, 06 Jan 2016 14:00:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=jz289fp0OTj2VeR8+6zRvD53HI1T24PARMDzchBtukc=; b=ZXGLMdSnSvshvwA5KUyjN+oAuJ0itVgYqzfeo4kFrnNBLQlP433LbOvSgwtkcQyZv5 JwWqBkgactjFg8IJSMH2uoAaWUytykz/UeHqppwldOo/V7TIsKimawN4hqguLnpo1S+U aZWs63+mNPn+2bC4TwuB/6XCI+dLOZ4YVHzX+pCLZxXSLrfHiJaRKnGgiB927H//cSZu gzOo3NLy/ZtqHWKZ0bfY4IAQdf9BxiKw0cDLADJau4ncMfXOMHkDxL29eZYfGdurnInZ nIXf51Uu9ByJtwU8AR6Up2bi7ufo9TL5ybl+Hv+pb0S5o7E/GL06LQd9rtAtKSeT82eL o+Qw==
MIME-Version: 1.0
X-Received: by 10.182.16.233 with SMTP id j9mr76807368obd.9.1452117635195; Wed, 06 Jan 2016 14:00:35 -0800 (PST)
Received: by 10.202.211.65 with HTTP; Wed, 6 Jan 2016 14:00:35 -0800 (PST)
In-Reply-To: <EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <EC1B043D-AC46-46C2-8B93-EAFDCFCBD102@dericed.com>
Date: Wed, 6 Jan 2016 14:00:35 -0800
Message-ID: <CAJGH+UvCFwwD_=8+57QiCb5zRgp0nOj737pHxSJZ3AgMcR8fjA@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: Dave Rice <dave@dericed.com>
Content-Type: multipart/alternative; boundary=001a11c30aa2d17f610528b17bac
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/e8-dveu5_L2VRUh5S8cuV9lr87Y>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 22:00:37 -0000

--001a11c30aa2d17f610528b17bac
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 5, 2016 at 1:54 PM, Dave Rice <dave@dericed.com> wrote:

>
> On Jan 5, 2016, at 4:12 PM, Frank Galligan <frankgalligan@gmail.com>
> wrote:
>
> Hello all,
>
> I would like to bring up the discussion again about better representing
> the color format of video. It looks like the discussion was started here
> [1] on matroska-devel list. I think we need to add some Colour elements so
> Matroska files can (potentially) more faithfully represent the video source
> on many devices. Here is a proposal I created to start from:
>
>
> Element Name: Colour
> Level:        4
>
>
> Please clarify the proposed Parent Element.
>
> [...]
>
Sorry. The parent element would be Video [E0].


>
> Element Name: ColourMatrix
> Level:        5
> ID:           [55][A1]
> Mandatory:    ma
> Multiple:     -
> Default:      2
> Type:         u
> Description:  ColourMatrix of the video. (0: IEC 61966-2-1 (sRGB), 1:
> BT709,
>               2: Unspecified,
>
>
> Any reason for "Unspecified" to be #2 rather than #0? Do these numbers
> align with a FFmpeg/libav enumeration?
>
> [...]
>
Yes (and what Jerome mentioned)


>
> Element Name: ChromaSubsampling
> Level:        5
> ID:           [55][A3]
> Mandatory:    ma
> Multiple:     -
> Default:      0
> Type:         u
> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
>
>
> This is mandatory, but there is no Unspecified option. If I want to
> clarify that a contained 4:1:1 DV stream uses bt.601 there is no valid way
> to say this, since if ColourMatrix is used then ChromaSubsampling must also
> be used, but there is no options that fit 4:1:1.
>
> [...]
>
That was an omission on my part. I added Unspecified as well as 4:1:1 in a
previous email.

>
>

--001a11c30aa2d17f610528b17bac
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jan 5, 2016 at 1:54 PM, Dave Rice <span dir=3D"ltr">&lt;<a href=
=3D"mailto:dave@dericed.com" target=3D"_blank">dave@dericed.com</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px=
 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left=
-style:solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><br><div=
><span class=3D""><blockquote type=3D"cite"><div>On Jan 5, 2016, at 4:12 PM=
, Frank Galligan &lt;<a href=3D"mailto:frankgalligan@gmail.com" target=3D"_=
blank">frankgalligan@gmail.com</a>&gt; wrote:</div><br><div><div dir=3D"ltr=
">Hello all,<div><br></div><div>I would like to bring up the discussion aga=
in about better representing the color format of video. It looks like the d=
iscussion was started here [1] on matroska-devel list. I think we need to a=
dd some Colour elements so Matroska files can (potentially) more faithfully=
 represent the video source on many devices. Here is a proposal I created t=
o start from:</div><div><br></div><div><br></div><div><div><font face=3D"mo=
nospace, monospace">Element Name: Colour</font></div><div><font face=3D"mon=
ospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=A04</font></div></div></=
div></div></blockquote><div><br></div></span><div>Please clarify the propos=
ed Parent Element.</div><div><br></div><div>[...]</div></div></div></blockq=
uote><div>Sorry. The parent element would be Video [E0].</div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:sol=
id;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><span class=
=3D""><br><blockquote type=3D"cite"><div dir=3D"ltr"><div><div><span style=
=3D"font-family:monospace,monospace">Element Name: ColourMatrix</span></div=
><div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=A0 =C2=
=A05</font></div><div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 [55][A1]</font></div><div><font face=3D"monospace, mo=
nospace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><font face=3D"monospac=
e, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><font face=3D"mono=
space, monospace">Default: =C2=A0 =C2=A0 =C2=A02</font></div><div><font fac=
e=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=A0 u</font></div>=
<div><font face=3D"monospace, monospace">Description: =C2=A0ColourMatrix of=
 the video. (0: IEC 61966-2-1 (sRGB), 1: BT709,</font></div><div><font face=
=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
2: Unspecified,</font></div></div></div></blockquote><div><br></div></span>=
<div>Any reason for &quot;Unspecified&quot; to be #2 rather than #0? Do the=
se numbers align with a FFmpeg/libav enumeration?</div><div><br></div><div>=
[...]</div></div></div></blockquote><div>Yes (and what Jerome mentioned)</d=
iv><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><d=
iv><span class=3D""><br><blockquote type=3D"cite"><div dir=3D"ltr"><div><di=
v><span style=3D"font-family:monospace,monospace">Element Name: ChromaSubsa=
mpling</span></div><div><font face=3D"monospace, monospace">Level: =C2=A0 =
=C2=A0 =C2=A0 =C2=A05</font></div><div><font face=3D"monospace, monospace">=
ID: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 [55][A3]</font></div><div><font face=
=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0ma</font></div><div><font=
 face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 -</font></div><div><=
font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =C2=A00</font></d=
iv><div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 u</font></div><div><font face=3D"monospace, monospace">Description: =C2=
=A0(0: 4:2:0, 2: 4:2:2, 4: 4:4:4)</font></div></div></div></blockquote><div=
><br></div></span><div>This is mandatory, but there is no Unspecified optio=
n. If I want to clarify that a contained 4:1:1 DV stream uses bt.601 there =
is no valid way to say this, since if=C2=A0ColourMatrix is used then=C2=A0C=
hromaSubsampling must also be used, but there is no options that fit 4:1:1.=
</div><div><br></div><div>[...]</div></div></div></blockquote><div>That was=
 an omission on my part. I added Unspecified as well as 4:1:1 in a previous=
 email.</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-=
style:solid;padding-left:1ex"><div style=3D"word-wrap:break-word"><div><spa=
n class=3D""><font color=3D"#888888"><div><br></div></font></span></div></d=
iv></blockquote></div></div></div>

--001a11c30aa2d17f610528b17bac--


From nobody Wed Jan  6 14:30:46 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 212061A1B15 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 14:30:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YDQ_jEOonzY5 for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 14:30:42 -0800 (PST)
Received: from mail-oi0-x236.google.com (mail-oi0-x236.google.com [IPv6:2607:f8b0:4003:c06::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 846851A1B14 for <cellar@ietf.org>; Wed,  6 Jan 2016 14:30:42 -0800 (PST)
Received: by mail-oi0-x236.google.com with SMTP id o124so302195233oia.1 for <cellar@ietf.org>; Wed, 06 Jan 2016 14:30:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=sfykHptzI5oFTB52q/QWKWbrDmLgNhHYrRTPfykVv2I=; b=CT35T18IIWf5+baHVIV0Om9dCOqD3eG1/IL6RC+Ks2NKRH4HhgUce5sjJNn2ukPf+g mxGTO8z1LZ490BOnVG1DEfVagi2tynEf5SE3HRK11lAqU7L1Rr48nLyMsKlQn3o7w3Pr qYfeQevmkgAbr7rcXpDHvu7a6kahpsxgSfeLqo2VJJYlwI9wxdhLsyPtjBEwaQDuiOnx DuVtZ3VFdLrQOXtitIOzcjDvMF2vLPNkQ9VEkgOZKc6Mjn22d8QP3nmRXj9BkxT0yMs/ bLqfzZVXiSR2UTlKmL1gFwf8eJQU1bOOhggxj6NkfJYiSwz/i1R+55WTB2+41RhzgSF7 yKCA==
MIME-Version: 1.0
X-Received: by 10.202.80.201 with SMTP id e192mr68595283oib.14.1452119441785;  Wed, 06 Jan 2016 14:30:41 -0800 (PST)
Received: by 10.202.211.65 with HTTP; Wed, 6 Jan 2016 14:30:41 -0800 (PST)
In-Reply-To: <568C3CA0.8040300@mediaarea.net>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net>
Date: Wed, 6 Jan 2016 14:30:41 -0800
Message-ID: <CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: Jerome Martinez <jerome@mediaarea.net>
Content-Type: multipart/alternative; boundary=001a113b058c7fcee60528b1e742
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/mwfPh5nOPCUvs-x8G66l2XjGV68>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 22:30:45 -0000

--001a113b058c7fcee60528b1e742
Content-Type: text/plain; charset=UTF-8

On Tue, Jan 5, 2016 at 1:58 PM, Jerome Martinez <jerome@mediaarea.net>
wrote:

> Thanks for your detailed proposal.
> It is a lot of items, I am not expert in all domains but I have some
> comments:
>
Neither am I, but I figured we might as well start from a proposal and
iterate from there.


> Name: MatrixCoefficients (or Matrix. You don't use "Colour" with
> "Primaries" element, so I would not use it here too)
>
 Sounds good to me.


>
>
>
>
> Element Name: BitsPerChannel
> Level:        5
> ID:           [55][A2]
> Mandatory:    ma
> Multiple:     -
> Default:      8
> Type:         u
> Description:  Number of bits per channel. This number may be less for
> specific
>               channels depending on the ColourFormat and ChromaSubsampling.
>
>
>
> BitsPerChannel is misleading, used to be the technical count of bits.
> I propose QuantizationBits or ValidBitsPerChannel
> Not mandatory, not default (this value is often unknown)
>
When authoring the video, I'm not sure why the software would not know the
bits per channel. Can you describe a use case where the this is unknown?

I really think we should make this mandatory and have authoring software
populate the element (or default) vs software thinking this was
non-mandatory and not populating this element because the developer didn't
think it was needed.

>
>
>
> Element Name: ChromaSubsampling
> Level:        5
> ID:           [55][A3]
> Mandatory:    ma
> Multiple:     -
> Default:      0
> Type:         u
> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
>
>
> FFV1, for example, permits "weird" chroma values, more possibilities.
> And the following chroma values were seen at least once in some specs:
> 4:4:4
> 4:2:2
> 4:2:1
> 4:1:1
> 4:2:0
> 4:1:0
> 3:1:1
>
> So having a list is maybe not the solution.
> I like the way it is done in FFV1, except the power of 2 (so 3 can not be
> expressed).
> I propose to find a way for describing Chroma subsampling (e.g.
> h_chroma_subsample and v_chroma_subsample; a ratio per plane with any
> number of plane, think to alpha channel with a subsampling).
>
I'm fine with coming up with a more extensible solution (Micheal asked for
that as well).

>
>
>
>
>
> Element Name: ColourRange
> Level:        5
> ID:           [55][A4]
> Mandatory:    ma
> Multiple:     -
> Default:      1
> Type:         u
> Description:  (0: Unspecified, 1: Defined by ColourMatrix/TransferFunction,
>               2: Full range)
>
>
> I don't understand the 1 value.
> in at least AVC and HEVC, range is orthogonal to
> ColourMatrix/TransferFunction.
> I propose 0: unspecified 1: Broadcast range 1: Full range
> and Default:0
>
I thought someone mentioned to me before that the range could change based
on the matrix and transfer function. I'm fine with your proposal.


>
>
> I got requests for having information about "Capture Gamma Equation" (or
> "Tone Curve"), e.g. "same as transfer characteristic", Scene Linear, S-Log,
> Cine-Log, Log-C...
> I am not an expert of this domain, but looks like it is sometimes
> important.
>
Someone who knows more about  this should propose something to this list to
be included.


> there are also other colour ideas with e.g. EBU Tech 3349.
>
If this is important to people, then we could add this as well.

>
>
>
>
>
> I can post a link to a formatted document if that would be easier. For
> Matrix, Range, and Primaries, I'm pretty much using values that map
> directly to values defined in FFmpeg.
>
>
> I don't like the idea to use the source code of a piece of software for
> lists. Too much subjective, may have historical flaws.
> Lists from FFmpeg are nearly same as the ones in H.26x, I think I prefer
> we base our list on their list (I don't think there are copyright issues
> with such list) directly.
>
I don't know the H.26x list. I started with my own, but then switched to
FFmpeg as they already had an extensive list and assumed they have seen a
lot of the video already.

If deciding between H.26x and FFmpeg, my guess is that FFmpeg would be
better as it handles a lot more video than H.26x.


> Or that we have a prefix with the origin of the list (e.g. ARIB STD-B67,
> from Japan, is not in ITU/ISO list, a 18 will be used in the future for
> something in ITU/ISO)
>
Yeah HLG is relatively new, but has been requested by a few people.

--001a113b058c7fcee60528b1e742
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Jan 5, 2016 at 1:58 PM, Jerome Martinez <span dir=3D"ltr">&lt;<=
a href=3D"mailto:jerome@mediaarea.net" target=3D"_blank">jerome@mediaarea.n=
et</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000">
    <div>Thanks for your detailed proposal.<br>
      It is a lot of items, I am not expert in all domains but I have
      some comments:</div></div></blockquote><div>Neither am I, but I figur=
ed we might as well start from a proposal and iterate from there.</div><div=
>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=
=3D"#000000">
    Name: MatrixCoefficients (or Matrix. You don&#39;t use &quot;Colour&quo=
t; with
    &quot;Primaries&quot; element, so I would not use it here too)</div></b=
lockquote><div>=C2=A0Sounds good to me.</div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=3D"#000000"><span class=3D"=
"><br>
    <br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div><font face=3D"monospace, monospace"><br>
            </font></div>
          <div><font face=3D"monospace, monospace"><br>
            </font></div>
          <div><font face=3D"monospace, monospace">Element Name:
              BitsPerChannel</font></div>
          <div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=
=A0 =C2=A05</font></div>
          <div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 [55][A2]</font></div>
          <div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0=
ma</font></div>
          <div><font face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 =
-</font></div>
          <div><font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =
=C2=A08</font></div>
          <div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 u</font></div>
          <div><font face=3D"monospace, monospace">Description: =C2=A0Numbe=
r of
              bits per channel. This number may be less for specific</font>=
</div>
          <div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 channels
              depending on the ColourFormat and ChromaSubsampling.</font></=
div>
        </div>
      </div>
    </blockquote>
    <br>
    <br>
    </span><font face=3D"monospace, monospace">BitsPerChannel is misleading=
, used
      to be the technical count of bits.<br>
      I propose QuantizationBits or ValidBitsPerChannel <br>
      Not mandatory, not default (this value is often unknown)<br></font></=
div></blockquote><div>When authoring the video, I&#39;m not sure why the so=
ftware would not know the bits per channel. Can you describe a use case whe=
re the this is unknown?=C2=A0</div><div><br></div><div>I really think we sh=
ould make this mandatory and have authoring software populate the element (=
or default) vs software thinking this was non-mandatory and not populating =
this element because the developer didn&#39;t think it was needed.</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=3D"#000000"><font=
 face=3D"monospace, monospace">
    </font><span class=3D""><br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div><font face=3D"monospace, monospace"><br>
            </font></div>
          <div><font face=3D"monospace, monospace"><br>
            </font></div>
          <div><font face=3D"monospace, monospace">Element Name:
              ChromaSubsampling</font></div>
          <div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=
=A0 =C2=A05</font></div>
          <div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 [55][A3]</font></div>
          <div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0=
ma</font></div>
          <div><font face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 =
-</font></div>
          <div><font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =
=C2=A00</font></div>
          <div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 u</font></div>
          <div><font face=3D"monospace, monospace">Description: =C2=A0(0:
              4:2:0, 2: 4:2:2, 4: 4:4:4)</font></div>
        </div>
      </div>
    </blockquote>
    <br></span>
    FFV1, for example, permits &quot;weird&quot; chroma values, more
    possibilities.<br>
    And the following chroma values were seen at least once in some
    specs:<br>
    4:4:4<br>
    4:2:2<br>
    4:2:1<br>
    4:1:1<br>
    4:2:0<br>
    4:1:0<br>
    3:1:1<br>
    <br>
    So having a list is maybe not the solution.<br>
    I like the way it is done in FFV1, except the power of 2 (so 3 can
    not be expressed).<br>
    I propose to find a way for describing Chroma subsampling (e.g.
    h_chroma_subsample and v_chroma_subsample; a ratio per plane with
    any number of plane, think to alpha channel with a subsampling).<br></d=
iv></blockquote><div>I&#39;m fine with coming up with a more extensible sol=
ution (Micheal asked for that as well). =C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex"><div bgcolor=3D"#FFFFFF" text=3D"#000000"><br></div></blockquote><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=3D"#000000"><spa=
n class=3D""><br>
    <br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div>
          <div><font face=3D"monospace, monospace"><br>
            </font></div>
          <div><font face=3D"monospace, monospace"><br>
            </font></div>
          <div><font face=3D"monospace, monospace">Element Name:
              ColourRange</font></div>
          <div><font face=3D"monospace, monospace">Level: =C2=A0 =C2=A0 =C2=
=A0 =C2=A05</font></div>
          <div><font face=3D"monospace, monospace">ID: =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 [55][A4]</font></div>
          <div><font face=3D"monospace, monospace">Mandatory: =C2=A0 =C2=A0=
ma</font></div>
          <div><font face=3D"monospace, monospace">Multiple: =C2=A0 =C2=A0 =
-</font></div>
          <div><font face=3D"monospace, monospace">Default: =C2=A0 =C2=A0 =
=C2=A01</font></div>
          <div><font face=3D"monospace, monospace">Type: =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 u</font></div>
          <div><font face=3D"monospace, monospace">Description: =C2=A0(0:
              Unspecified, 1: Defined by ColourMatrix/TransferFunction,</fo=
nt></div>
          <div><font face=3D"monospace, monospace">=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 2: Full
              range)</font></div>
        </div>
      </div>
    </blockquote>
    <br></span>
    I don&#39;t understand the 1 value.<br>
    in at least AVC and HEVC, range is orthogonal to <font face=3D"monospac=
e, monospace">ColourMatrix/TransferFunction.<br>
      I propose 0: unspecified 1: Broadcast range 1: Full range <br>
    </font>and Default:0</div></blockquote><div>I thought someone mentioned=
 to me before that the range could change based on the matrix and transfer =
function. I&#39;m fine with your proposal.</div><div><br></div><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=3D"#000000"><span class=3D=
""><blockquote type=3D"cite"><div dir=3D"ltr"><div><div><br></div></div></d=
iv></blockquote></span><div><div class=3D"h5">
    <br>
    <br></div></div>
    I got requests for having information about &quot;Capture Gamma Equatio=
n&quot;
    (or &quot;Tone Curve&quot;), e.g. &quot;same as transfer characteristic=
&quot;, Scene
    Linear, S-Log, Cine-Log, Log-C...<br>
    I am not an expert of this domain, but looks like it is sometimes
    important.<br></div></blockquote><div>Someone who knows more about =C2=
=A0this should propose something to this list to be included.</div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=3D"#0=
00000">
    there are also other colour ideas with e.g. EBU Tech 3349.</div></block=
quote><div>If this is important to people, then we could add this as well.=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div bgcolor=3D"#FFFFFF" text=3D=
"#000000"><span class=3D""><br>
    <br>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">
        <div><font face=3D"monospace, monospace"><br>
          </font></div>
        <div><font face=3D"monospace, monospace"><br>
          </font></div>
        <div><font face=3D"monospace, monospace"><br>
          </font></div>
        <div><font face=3D"monospace, monospace">I can post a link to a
            formatted document if that would be=C2=A0easier. For Matrix,
            Range, and=C2=A0Primaries, I&#39;m pretty much using=C2=A0value=
s=C2=A0that map
            directly to values defined in=C2=A0FFmpeg.</font></div>
      </div>
    </blockquote>
    <br></span>
    I don&#39;t like the idea to use the source code of a piece of software
    for lists. Too much subjective, may have historical flaws.<br>
    Lists from FFmpeg are nearly same as the ones in H.26x, I think I
    prefer we base our list on their list (I don&#39;t think there are
    copyright issues with such list) directly. </div></blockquote><div>I do=
n&#39;t know the H.26x list. I started with my own, but then switched to FF=
mpeg as they already had an extensive list and assumed they have seen a lot=
 of the video already.</div><div><br></div><div>If deciding between H.26x a=
nd FFmpeg, my guess is that FFmpeg would be better as it handles a lot more=
 video than H.26x.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v bgcolor=3D"#FFFFFF" text=3D"#000000">Or that we have a prefix
    with the origin of the list (e.g. ARIB STD-B67, from Japan, is not
    in ITU/ISO list, a 18 will be used in the future for something in
    ITU/ISO)<br></div></blockquote><div>Yeah HLG is relatively new, but has=
 been requested by a few people.</div><div><br></div></div><br></div></div>

--001a113b058c7fcee60528b1e742--


From nobody Wed Jan  6 15:00:41 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CC0841A1B8B for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 15:00:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ATDoTa_zyrvK for <cellar@ietfa.amsl.com>; Wed,  6 Jan 2016 15:00:36 -0800 (PST)
Received: from 7.mo69.mail-out.ovh.net (7.mo69.mail-out.ovh.net [46.105.50.32]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D61D21A1B86 for <cellar@ietf.org>; Wed,  6 Jan 2016 15:00:35 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id E70AEFFB31E for <cellar@ietf.org>; Thu,  7 Jan 2016 00:00:33 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 7 Jan 2016 01:00:33 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 7 Jan 2016 01:00:32 +0200
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net> <CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com>
To: cellar@ietf.org
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568D9C8F.2020505@mediaarea.net>
Date: Thu, 7 Jan 2016 00:00:31 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------040403050002020709090406"
X-Ovh-Tracer-Id: 11281517068470718549
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: -100
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjedvucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjedvgddtjecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/O50gGdDHpgLTYgGQCixS_VeeAxQ>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Jan 2016 23:00:40 -0000

This is a multi-part message in MIME format.
--------------040403050002020709090406
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Le 06/01/2016 23:30, Frank Galligan a écrit :
>
>
> On Tue, Jan 5, 2016 at 1:58 PM, Jerome Martinez <jerome@mediaarea.net 
> <mailto:jerome@mediaarea.net>> wrote:
>
>     Thanks for your detailed proposal.
>     It is a lot of items, I am not expert in all domains but I have
>     some comments:
>
> Neither am I, but I figured we might as well start from a proposal and 
> iterate from there.
>
>     Name: MatrixCoefficients (or Matrix. You don't use "Colour" with
>     "Primaries" element, so I would not use it here too)
>
>  Sounds good to me.
>
>
>
>>
>>
>>     Element Name: BitsPerChannel
>>     Level:      5
>>     ID:     [55][A2]
>>     Mandatory:    ma
>>     Multiple:     -
>>     Default:      8
>>     Type:     u
>>     Description:  Number of bits per channel. This number may be less
>>     for specific
>>         channels depending on the ColourFormat and ChromaSubsampling.
>
>
>     BitsPerChannel is misleading, used to be the technical count of bits.
>     I propose QuantizationBits or ValidBitsPerChannel
>     Not mandatory, not default (this value is often unknown)
>
> When authoring the video, I'm not sure why the software would not know 
> the bits per channel. Can you describe a use case where the this is 
> unknown?

When you don't author the video (e.g. when you transcode a video from a 
source you don't handle and without such information).
Just take any QuickTime file with FFV1, you want to move to 
Matroska/FFV1, you have Colour Primaries from QuickTime container so you 
want to keep it so you save this colour Element (else you lose 
metadata), how should be filled this mandatory element.
FFV1 bit depth (the one we get from FFV1) is not always the real number 
of bits per channel (it is possible to transform a 8-bit stream to a 
12-bit stream, nothing prevents that), so I don't see where is this 
piece of information.

That said, I am now not sure about the purpose of this element:
- do you mean the real count of valid bits (e.g. this is a 8-bit stream 
oversampled to 10-bit)? In that case, we can not always know if it is 
oversampled and having it mandatory without "unknown" info is blocking.
- do you mean the bits per channel technically in the bitstream? I don't 
see any reason to have such element (useless, we get the info from the 
bitstream, risk of incoherencies)

>
> I really think we should make this mandatory and have authoring 
> software populate the element (or default) vs software thinking this 
> was non-mandatory and not populating this element because the 
> developer didn't think it was needed.
>
> [...]
>
>
>
>>
>>
>>
>>     I can post a link to a formatted document if that would
>>     be easier. For Matrix, Range, and Primaries, I'm pretty much
>>     using values that map directly to values defined in FFmpeg.
>
>     I don't like the idea to use the source code of a piece of
>     software for lists. Too much subjective, may have historical flaws.
>     Lists from FFmpeg are nearly same as the ones in H.26x, I think I
>     prefer we base our list on their list (I don't think there are
>     copyright issues with such list) directly.
>
> I don't know the H.26x list. I started with my own, but then switched 
> to FFmpeg as they already had an extensive list and assumed they have 
> seen a lot of the video already.
>
> If deciding between H.26x and FFmpeg, my guess is that FFmpeg would be 
> better as it handles a lot more video than H.26x.

FFmpeg is made by volunteers, and some parts (e.g. colours) may be not 
so perfect (there was another example in other emails: DPX. the list is 
different, FFmpeg does not support it).
Thinking more about it, maybe we need 2 bytes (or something else): the 
source of the list (MPEG, DPX...) + the list itself.
I am reluctant to create a list from scratch, developers may have issues 
for doing the mapping between lists from different sources.
Anyway, if we create our own list, the question is what to do when MPEG 
add an element to their list: will we be fast enough to update our list 
before people complain that they can not map the new element from their 
source to Matroska? MPEG has numbers 11..255 reserved for future usages, 
I think it is good to reserve something for the future usages from MPEG.
Maybe I go too far and a Matroska-specific list, based on FFmpeg (But 
FFmpeg is not the "reference decoder"...), is enough.

List from H.265 is available at:
https://www.itu.int/rec/T-REC-H.265-201504-I/en
starting page 347 (no paywall)


>     Or that we have a prefix with the origin of the list (e.g. ARIB
>     STD-B67, from Japan, is not in ITU/ISO list, a 18 will be used in
>     the future for something in ITU/ISO)
>
> Yeah HLG is relatively new, but has been requested by a few people.
>
>


--------------040403050002020709090406
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Le 06/01/2016 23:30, Frank Galligan a
      écrit :<br>
    </div>
    <blockquote
cite="mid:CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Tue, Jan 5, 2016 at 1:58 PM,
            Jerome Martinez <span dir="ltr">&lt;<a
                moz-do-not-send="true"
                href="mailto:jerome@mediaarea.net" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:jerome@mediaarea.net">jerome@mediaarea.net</a></a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000">
                <div>Thanks for your detailed proposal.<br>
                  It is a lot of items, I am not expert in all domains
                  but I have some comments:</div>
              </div>
            </blockquote>
            <div>Neither am I, but I figured we might as well start from
              a proposal and iterate from there.</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"> Name:
                MatrixCoefficients (or Matrix. You don't use "Colour"
                with "Primaries" element, so I would not use it here
                too)</div>
            </blockquote>
            <div> Sounds good to me.</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"><span class=""><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div><font face="monospace, monospace"><br>
                          </font></div>
                        <div><font face="monospace, monospace"><br>
                          </font></div>
                        <div><font face="monospace, monospace">Element
                            Name: BitsPerChannel</font></div>
                        <div><font face="monospace, monospace">Level:  
                                 5</font></div>
                        <div><font face="monospace, monospace">ID:      
                                [55][A2]</font></div>
                        <div><font face="monospace, monospace">Mandatory:
                               ma</font></div>
                        <div><font face="monospace, monospace">Multiple:
                                -</font></div>
                        <div><font face="monospace, monospace">Default:
                                 8</font></div>
                        <div><font face="monospace, monospace">Type:    
                                u</font></div>
                        <div><font face="monospace, monospace">Description:
                             Number of bits per channel. This number may
                            be less for specific</font></div>
                        <div><font face="monospace, monospace">         
                                channels depending on the ColourFormat
                            and ChromaSubsampling.</font></div>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                  <br>
                </span><font face="monospace, monospace">BitsPerChannel
                  is misleading, used to be the technical count of bits.<br>
                  I propose QuantizationBits or ValidBitsPerChannel <br>
                  Not mandatory, not default (this value is often
                  unknown)<br>
                </font></div>
            </blockquote>
            <div>When authoring the video, I'm not sure why the software
              would not know the bits per channel. Can you describe a
              use case where the this is unknown? <br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    When you don't author the video (e.g. when you transcode a video
    from a source you don't handle and without such information).<br>
    Just take any QuickTime file with FFV1, you want to move to
    Matroska/FFV1, you have Colour Primaries from QuickTime container so
    you want to keep it so you save this colour Element (else you lose
    metadata), how should be filled this mandatory element.<br>
    FFV1 bit depth (the one we get from FFV1) is not always the real
    number of bits per channel (it is possible to transform a 8-bit
    stream to a 12-bit stream, nothing prevents that), so I don't see
    where is this piece of information.<br>
    <br>
    That said, I am now not sure about the purpose of this element:<br>
    - do you mean the real count of valid bits (e.g. this is a 8-bit
    stream oversampled to 10-bit)? In that case, we can not always know
    if it is oversampled and having it mandatory without "unknown" info
    is blocking.<br>
    - do you mean the bits per channel technically in the bitstream? I
    don't see any reason to have such element (useless, we get the info
    from the bitstream, risk of incoherencies)<br>
    <br>
    <blockquote
cite="mid:CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <div>I really think we should make this mandatory and have
              authoring software populate the element (or default) vs
              software thinking this was non-mandatory and not
              populating this element because the developer didn't think
              it was needed.</div>
            <br>
            [...]<br>
            <br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"><span class=""><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div><font face="monospace, monospace"><br>
                        </font></div>
                      <div><font face="monospace, monospace"><br>
                        </font></div>
                      <div><font face="monospace, monospace"><br>
                        </font></div>
                      <div><font face="monospace, monospace">I can post
                          a link to a formatted document if that would
                          be easier. For Matrix, Range, and Primaries,
                          I'm pretty much using values that map directly
                          to values defined in FFmpeg.</font></div>
                    </div>
                  </blockquote>
                  <br>
                </span> I don't like the idea to use the source code of
                a piece of software for lists. Too much subjective, may
                have historical flaws.<br>
                Lists from FFmpeg are nearly same as the ones in H.26x,
                I think I prefer we base our list on their list (I don't
                think there are copyright issues with such list)
                directly. </div>
            </blockquote>
            <div>I don't know the H.26x list. I started with my own, but
              then switched to FFmpeg as they already had an extensive
              list and assumed they have seen a lot of the video
              already.</div>
            <div><br>
            </div>
            <div>If deciding between H.26x and FFmpeg, my guess is that
              FFmpeg would be better as it handles a lot more video than
              H.26x.</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    FFmpeg is made by volunteers, and some parts (e.g. colours) may be
    not so perfect (there was another example in other emails: DPX. the
    list is different, FFmpeg does not support it).<br>
    Thinking more about it, maybe we need 2 bytes (or something else):
    the source of the list (MPEG, DPX...) + the list itself.<br>
    I am reluctant to create a list from scratch, developers may have
    issues for doing the mapping between lists from different sources.<br>
    Anyway, if we create our own list, the question is what to do when
    MPEG add an element to their list: will we be fast enough to update
    our list before people complain that they can not map the new
    element from their source to Matroska? MPEG has numbers 11..255
    reserved for future usages, I think it is good to reserve something
    for the future usages from MPEG.<br>
    Maybe I go too far and a Matroska-specific list, based on FFmpeg
    (But FFmpeg is not the "reference decoder"...), is enough.<br>
    <br>
    List from H.265 is available at:<br>
    <a class="moz-txt-link-freetext" href="https://www.itu.int/rec/T-REC-H.265-201504-I/en">https://www.itu.int/rec/T-REC-H.265-201504-I/en</a><br>
    starting page 347 (no paywall)<br>
    <br>
    <br>
    <blockquote
cite="mid:CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000">Or that we have a
                prefix with the origin of the list (e.g. ARIB STD-B67,
                from Japan, is not in ITU/ISO list, a 18 will be used in
                the future for something in ITU/ISO)<br>
              </div>
            </blockquote>
            <div>Yeah HLG is relatively new, but has been requested by a
              few people.</div>
            <div><br>
            </div>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------040403050002020709090406--


From nobody Thu Jan  7 10:00:58 2016
Return-Path: <pb@das-werkstatt.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 48D4B1A914D for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:00:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.1
X-Spam-Level: 
X-Spam-Status: No, score=0.1 tagged_above=-999 required=5 tests=[BAYES_50=0.8,  RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c7c5EHgUBI1U for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:00:54 -0800 (PST)
Received: from zucker.schokokeks.org (zucker.schokokeks.org [178.63.68.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F00211A914A for <cellar@ietf.org>; Thu,  7 Jan 2016 10:00:53 -0800 (PST)
Received: from [192.168.0.14] (chello213047163139.5.15.vie.surfer.at [::ffff:213.47.163.139]) (AUTH: PLAIN bubestinger@schokokeks.org, TLS: TLSv1/SSLv3, 128bits, ECDHE-RSA-AES128-GCM-SHA256) by zucker.schokokeks.org with ESMTPSA; Thu, 07 Jan 2016 19:00:50 +0100 id 0000000000000069.00000000568EA7D2.00001FB8
Message-ID: <568EA7D2.50503@das-werkstatt.com>
Date: Thu, 07 Jan 2016 19:00:50 +0100
From: "Peter B." <pb@das-werkstatt.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4> <568BF59B.6050106@mediaarea.net> <20160105174445.GC13213@nb4> <568C0516.3040605@mediaarea.net> <CAO7v-1R44SDSZWZ_55SBT0vE+ka7e+s5V9suiW3emM-Z-ViS2A@mail.gmail.com>
In-Reply-To: <CAO7v-1R44SDSZWZ_55SBT0vE+ka7e+s5V9suiW3emM-Z-ViS2A@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/vNjsaa956VzPcfbxcdhlSzDCjng>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:00:56 -0000

On 01/06/2016 11:11 AM, Kieran O Leary wrote:
> I'd like to propose the inclusion of Logarithmic information within the
> FFV1 codec when transcoding from LOG RGB DPX

I just wanted to mention that as well.
Thanks Kieran :)

I was already asked several times (mainly by film archives) if that is
possible.
Currently, "logarithmic-DPX-to-FFV1-and-back" is reported to be doable,
but requires to manually set the output DPX to be non-linear...

I'm not too experienced with non-linear color encoding, but in a recent
presentation by Reto Kromer, he mentioned that "logarithmic" often just
means "logarithmic-ish".

Therefore it might be good (or necessary) to also store and handle
information about what type of non-linear color values are used?


Kind regards,
Pb







From nobody Thu Jan  7 10:09:06 2016
Return-Path: <pb@das-werkstatt.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D06BD1A9151 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:09:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i82Rq-y32ztI for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:09:03 -0800 (PST)
Received: from zucker.schokokeks.org (zucker.schokokeks.org [178.63.68.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B1D641A9150 for <cellar@ietf.org>; Thu,  7 Jan 2016 10:09:03 -0800 (PST)
Received: from [192.168.0.14] (chello213047163139.5.15.vie.surfer.at [::ffff:213.47.163.139]) (AUTH: PLAIN bubestinger@schokokeks.org, TLS: TLSv1/SSLv3, 128bits, ECDHE-RSA-AES128-GCM-SHA256) by zucker.schokokeks.org with ESMTPSA; Thu, 07 Jan 2016 19:09:01 +0100 id 0000000000000066.00000000568EA9BD.000029D0
Message-ID: <568EA9BD.3030606@das-werkstatt.com>
Date: Thu, 07 Jan 2016 19:09:01 +0100
From: "Peter B." <pb@das-werkstatt.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net>
In-Reply-To: <568C3CA0.8040300@mediaarea.net>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Z5fTy8Yd7nqILxwwc1m4WyIZDm8>
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:09:05 -0000

On 01/05/2016 10:58 PM, Jerome Martinez wrote:
>>
>> Element Name: ColourRange
>> Level:        5
>> ID:           [55][A4]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      1
>> Type:         u
>> Description:  (0: Unspecified, 1: Defined by
>> ColourMatrix/TransferFunction,
>>               2: Full range)
>
> I don't understand the 1 value.
> in at least AVC and HEVC, range is orthogonal to
> ColourMatrix/TransferFunction.
> I propose 0: unspecified 1: Broadcast range 1: Full range
> and Default:0

Just for the sake of completeness, I think you have a small typo:
You proposed:

// ------------------
0: default
1: broadcast range
1: full range
// ------------------


I guess you meant "2" for "full range", as it was before?


Regards,
Pb


From nobody Thu Jan  7 10:10:42 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0F2281A9154 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:10:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1SgAlS5fYOlx for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:10:39 -0800 (PST)
Received: from mo69.mail-out.ovh.net (mo69.mail-out.ovh.net [178.32.228.69]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29C931A914F for <cellar@ietf.org>; Thu,  7 Jan 2016 10:10:39 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 4D32DFFC872 for <cellar@ietf.org>; Thu,  7 Jan 2016 19:10:37 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 7 Jan 2016 20:10:36 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 7 Jan 2016 20:10:34 +0200
To: cellar@ietf.org
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net> <568EA9BD.3030606@das-werkstatt.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568EAA16.4000505@mediaarea.net>
Date: Thu, 7 Jan 2016 19:10:30 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <568EA9BD.3030606@das-werkstatt.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12257109337044750482
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjeefucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjeefgddutdejucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ynvHtFEP84fkOG5XCFw3vd1AJWA>
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:10:41 -0000

Le 07/01/2016 19:09, Peter B. a écrit :
> On 01/05/2016 10:58 PM, Jerome Martinez wrote:
>>> Element Name: ColourRange
>>> Level:        5
>>> ID:           [55][A4]
>>> Mandatory:    ma
>>> Multiple:     -
>>> Default:      1
>>> Type:         u
>>> Description:  (0: Unspecified, 1: Defined by
>>> ColourMatrix/TransferFunction,
>>>                2: Full range)
>> I don't understand the 1 value.
>> in at least AVC and HEVC, range is orthogonal to
>> ColourMatrix/TransferFunction.
>> I propose 0: unspecified 1: Broadcast range 1: Full range
>> and Default:0
> Just for the sake of completeness, I think you have a small typo:
> You proposed:
>
> // ------------------
> 0: default
> 1: broadcast range
> 1: full range
> // ------------------
>
>
> I guess you meant "2" for "full range", as it was before?

Oops :).

// ------------------
0: unspecified
1: broadcast range
2: full range
// ------------------

and default is 0.


From nobody Thu Jan  7 10:14:09 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BB1111A916A for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:14:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Zrz9HCNcwsix for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:14:04 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D965B1A916D for <cellar@ietf.org>; Thu,  7 Jan 2016 10:14:04 -0800 (PST)
Received: from [146.96.19.240] (port=26795 helo=[10.10.202.53]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aHF4U-003YeE-Vd; Thu, 07 Jan 2016 13:14:04 -0500
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <568EAA16.4000505@mediaarea.net>
Date: Thu, 7 Jan 2016 13:14:01 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <E158FB09-D686-4A74-88B7-D46698DF746C@dericed.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net> <568EA9BD.3030606@das-werkstatt.com> <568EAA16.4000505@mediaarea.net>
To: Jerome Martinez <jerome@mediaarea.net>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/kgYuGQdiBtbvEOwZYjmGaAj9yQ0>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:14:06 -0000

> On Jan 7, 2016, at 1:10 PM, Jerome Martinez <jerome@mediaarea.net> =
wrote:
>=20
> Le 07/01/2016 19:09, Peter B. a =E9crit :
>> On 01/05/2016 10:58 PM, Jerome Martinez wrote:
>>>> Element Name: ColourRange
>>>> Level:        5
>>>> ID:           [55][A4]
>>>> Mandatory:    ma
>>>> Multiple:     -
>>>> Default:      1
>>>> Type:         u
>>>> Description:  (0: Unspecified, 1: Defined by
>>>> ColourMatrix/TransferFunction,
>>>>               2: Full range)
>>> I don't understand the 1 value.
>>> in at least AVC and HEVC, range is orthogonal to
>>> ColourMatrix/TransferFunction.
>>> I propose 0: unspecified 1: Broadcast range 1: Full range
>>> and Default:0
>> Just for the sake of completeness, I think you have a small typo:
>> You proposed:
>>=20
>> // ------------------
>> 0: default
>> 1: broadcast range
>> 1: full range
>> // ------------------
>>=20
>>=20
>> I guess you meant "2" for "full range", as it was before?
>=20
> Oops :).
>=20
> // ------------------
> 0: unspecified
> 1: broadcast range
> 2: full range
> // ------------------
>=20
> and default is 0.

Perhaps a statement is needed on when the value is applicable. For =
instance is 'broadcast range' with a JPEG2000-RCT encoding valid?

I suggest adding a citation to explain how 'broadcast range' and 'full =
range' are defined.
Dave=


From nobody Thu Jan  7 10:19:50 2016
Return-Path: <lists@reto.ch>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E09141A9173 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:19:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.367
X-Spam-Level: 
X-Spam-Status: No, score=0.367 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, XPRIO=1.568] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 68HWhbeQX2kq for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:19:45 -0800 (PST)
Received: from smtp-sh.infomaniak.ch (smtp-sh.infomaniak.ch [128.65.195.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7187B1A9231 for <cellar@ietf.org>; Thu,  7 Jan 2016 10:19:45 -0800 (PST)
Received: from smtp4.infomaniak.ch (smtp4.infomaniak.ch [84.16.68.92]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u07IJhKc010211 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for <cellar@ietf.org>; Thu, 7 Jan 2016 19:19:43 +0100
Received: from Castor.local (85-218-38-132.dclient.lsne.ch [85.218.38.132]) (authenticated bits=0) by smtp4.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u07IJgXu012208 for <cellar@ietf.org>; Thu, 7 Jan 2016 19:19:42 +0100
Date: Thu,  7 Jan 2016 19:19:43 +0100
From: Reto Kromer <lists@reto.ch>
To: cellar@ietf.org
X-Priority: 3
Message-ID: <r470Ps-10112i-45FD2AC2DA854201B78A205DECA15312@Castor.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.4 (470)
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/-99wUq2dktRnaPgvWVUmW8Cq-HQ>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:19:48 -0000

Peter B. wrote:

>I'm not too experienced with non-linear color encoding, but
>in a recent presentation by Reto Kromer, he mentioned that
>"logarithmic" often just means "logarithmic-ish".

It's usually called quasi-log. Apart from the toe and
shoulder region, the curve is non-linear, yet no clear
provision is made for foot-room and head-room.

Best regards, Reto


AV Preservation by reto.ch
chemin du Suchet 5 | 1024 Ecublens | Switzerland
Web: http://reto.ch | Twitter: @retoch


From nobody Thu Jan  7 10:34:55 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9B42A1A92B1 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:34:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FyViitrLSean for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:34:52 -0800 (PST)
Received: from 2.mo69.mail-out.ovh.net (2.mo69.mail-out.ovh.net [178.33.251.80]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7D7CA1A92B0 for <cellar@ietf.org>; Thu,  7 Jan 2016 10:34:52 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id E5DDDFFCADC for <cellar@ietf.org>; Thu,  7 Jan 2016 19:34:50 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 7 Jan 2016 20:34:49 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 7 Jan 2016 20:34:47 +0200
To: cellar@ietf.org
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4> <568BF59B.6050106@mediaarea.net> <20160105174445.GC13213@nb4> <568C0516.3040605@mediaarea.net> <CAO7v-1R44SDSZWZ_55SBT0vE+ka7e+s5V9suiW3emM-Z-ViS2A@mail.gmail.com> <568EA7D2.50503@das-werkstatt.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <568EAFC3.1000202@mediaarea.net>
Date: Thu, 7 Jan 2016 19:34:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <568EA7D2.50503@das-werkstatt.com>
Content-Type: multipart/alternative; boundary="------------080505070406070305050905"
X-Ovh-Tracer-Id: 12666092477052817554
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjeefucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrjeefgdduuddvucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/DYGOo1_jMGrL_lkWZX-BtvRILBg>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:34:54 -0000

This is a multi-part message in MIME format.
--------------080505070406070305050905
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Le 07/01/2016 19:00, Peter B. a écrit :
> On 01/06/2016 11:11 AM, Kieran O Leary wrote:
>> I'd like to propose the inclusion of Logarithmic information within the
>> FFV1 codec when transcoding from LOG RGB DPX
> I just wanted to mention that as well.
> Thanks Kieran :)
>
> I was already asked several times (mainly by film archives) if that is
> possible.
> Currently, "logarithmic-DPX-to-FFV1-and-back" is reported to be doable,
> but requires to manually set the output DPX to be non-linear...
>
> I'm not too experienced with non-linear color encoding, but in a recent
> presentation by Reto Kromer, he mentioned that "logarithmic" often just
> means "logarithmic-ish".
>
> Therefore it might be good (or necessary) to also store and handle
> information about what type of non-linear color values are used?
>

I am not an expert, I just see that "Logarithmic" is in the list of DPX 
transfer characteristics. so it looks like it is an unique value to store.

On my side, I tried to map DPX transfer characteristics to MPEG transfer 
characteristics, but it is not obvious.
For example, DPX transfer characteristics 5 is "SMPTE 274M", 6 is "BT.709"
They are actually same, and can be mapped to MPEG transfer 
characteristics 1, 6, 14 or 15 (several values for the same function)

List from each spec is not bidirectional, this is the reason I am 
thinking to have a code for the source of the value + the value from 
this source.
This is the only possibility if we want to be let people keep the exact 
metadata from the source (and being able to "revert" this compression).

We could do our own list for Matroska, but in that case we need to 
maintain it (for example, SMPTE added a new transfer characteristic 
value "ADX" in 2014 so we need to add a value in our list too) and take 
values from different specs in order to have an exhaustive list.
(and "reverting" it will not be with the exact same value: DPX 5 or 6 
will be mapped to MKV value X and "revert" will have to decide to put 
value 5 or  arbitrary).

I guess we first need to be clear about what we want to do (keep the 
exact value from the source or not, maintain a list...)

PS: just to be clear, when you speak about "logarithmic", you speak 
about DPX transfer characteristic value 3 "Logarithmic [to be defined by 
SMPTE I23 Technology Committee,
sub-group on “Transfer Characteristics”]", right?
(note: the "to be defined" is in the spec from 2003 as well from the 
spec from 2014 :), without further description)

Jérôme

--------------080505070406070305050905
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Le 07/01/2016 19:00, Peter B. a écrit :<br>
    </div>
    <blockquote cite="mid:568EA7D2.50503@das-werkstatt.com" type="cite">
      <pre wrap="">On 01/06/2016 11:11 AM, Kieran O Leary wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">I'd like to propose the inclusion of Logarithmic information within the
FFV1 codec when transcoding from LOG RGB DPX
</pre>
      </blockquote>
      <pre wrap="">
I just wanted to mention that as well.
Thanks Kieran :)

I was already asked several times (mainly by film archives) if that is
possible.
Currently, "logarithmic-DPX-to-FFV1-and-back" is reported to be doable,
but requires to manually set the output DPX to be non-linear...

I'm not too experienced with non-linear color encoding, but in a recent
presentation by Reto Kromer, he mentioned that "logarithmic" often just
means "logarithmic-ish".

Therefore it might be good (or necessary) to also store and handle
information about what type of non-linear color values are used?

</pre>
    </blockquote>
    <br>
    I am not an expert, I just see that "Logarithmic" is in the list of
    DPX transfer characteristics. so it looks like it is an unique value
    to store.<br>
    <br>
    On my side, I tried to map DPX transfer characteristics to MPEG
    transfer characteristics, but it is not obvious.<br>
    For example, DPX transfer characteristics 5 is "SMPTE 274M", 6 is
    "BT.709"<br>
    They are actually same, and can be mapped to MPEG transfer
    characteristics 1, 6, 14 or 15 (several values for the same
    function)<br>
    <!--EndFragment--><br>
    List from each spec is not bidirectional, this is the reason I am
    thinking to have a code for the source of the value + the value from
    this source.<br>
    This is the only possibility if we want to be let people keep the
    exact metadata from the source (and being able to "revert" this
    compression).<br>
    <br>
    We could do our own list for Matroska, but in that case we need to
    maintain it (for example, SMPTE added a new transfer characteristic
    value "ADX" in 2014 so we need to add a value in our list too) and
    take values from different specs in order to have an exhaustive
    list.<br>
    (and "reverting" it will not be with the exact same value: DPX 5 or
    6 will be mapped to MKV value X and "revert" will have to decide to
    put value 5 or  arbitrary).<br>
    <br>
    I guess we first need to be clear about what we want to do (keep the
    exact value from the source or not, maintain a list...)<br>
    <br>
    PS: just to be clear, when you speak about "logarithmic", you speak
    about DPX transfer characteristic value 3 "Logarithmic [to be
    defined by SMPTE I23 Technology Committee,<br>
    sub-group on “Transfer Characteristics”]", right?<br>
    (note: the "to be defined" is in the spec from 2003 as well from the
    spec from 2014 :), without further description)<br>
    <br>
    Jérôme<br>
  </body>
</html>

--------------080505070406070305050905--


From nobody Thu Jan  7 10:37:11 2016
Return-Path: <lists@reto.ch>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B6171A92B5 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:37:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.033
X-Spam-Level: 
X-Spam-Status: No, score=-1.033 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, XPRIO=1.568] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3IAb9XL68j3R for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 10:37:09 -0800 (PST)
Received: from smtp-sh2.infomaniak.ch (smtp-sh2.infomaniak.ch [128.65.195.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B2CC91A92B4 for <cellar@ietf.org>; Thu,  7 Jan 2016 10:37:08 -0800 (PST)
Received: from smtp3.infomaniak.ch (smtp3.infomaniak.ch [84.16.68.91]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u07Ib6CT032261 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for <cellar@ietf.org>; Thu, 7 Jan 2016 19:37:06 +0100
Received: from Castor.local (85-218-38-132.dclient.lsne.ch [85.218.38.132]) (authenticated bits=0) by smtp3.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u07Ib5nB023595 for <cellar@ietf.org>; Thu, 7 Jan 2016 19:37:06 +0100
Date: Thu,  7 Jan 2016 19:37:06 +0100
From: Reto Kromer <lists@reto.ch>
To: cellar@ietf.org
X-Priority: 3
Message-ID: <r470Ps-10112i-ED05D0D38BE744AA8D0C138B25B5AE48@Castor.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.4 (470)
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/SzqPc30flotATYXg39B23X11ZLE>
Subject: [Cellar] Fwd: Re:  FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 18:37:10 -0000

Sadly, there are around a lot of coding schemes:

- power function (=3D gamma function) encoded BT. 709, sRGB,
  CineGamma, "FILM REC", HyperGamma

- log RGB (=3D "quasi-log", sometimes also called "pseudo-
  log") encodings: FilmStream (log60), ARRI log F, Panalog,
  Sony-log (=3D S-log), REDLOG, SI log90

- log neg encodings: Cineon printing density (CPD), "DPX",
  ARRI log C

Hope this helps, Reto


=3D=3D=3D=3D=3D=3D Forwarded Message =3D=3D=3D=3D=3D=3D
Date: 7.1.2016-01-07 19:19 CET
=46rom: Reto Kromer <lists@reto.ch>
To: cellar@ietf.org

Peter B. wrote:

>I'm not too experienced with non-linear color encoding, but
>in a recent presentation by Reto Kromer, he mentioned that
>"logarithmic" often just means "logarithmic-ish".

It's usually called quasi-log. Apart from the toe and
shoulder region, the curve is non-linear, yet no clear
provision is made for foot-room and head-room.

Best regards, Reto


AV Preservation by reto.ch
chemin du Suchet 5 | 1024 Ecublens | Switzerland
Web: http://reto.ch | Twitter: @retoch

_______________________________________________
Cellar mailing list
Cellar@ietf.org
https://www.ietf.org/mailman/listinfo/cellar
=3D=3D=3D=3D=3D=3D End Forwarded Message =3D=3D=3D=3D=3D=3D


From nobody Thu Jan  7 14:09:46 2016
Return-Path: <pb@das-werkstatt.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4A11E1A01F9 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 14:09:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MD7VGRVLLA0q for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 14:09:43 -0800 (PST)
Received: from zucker.schokokeks.org (zucker.schokokeks.org [178.63.68.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9D9341A01C6 for <cellar@ietf.org>; Thu,  7 Jan 2016 14:09:43 -0800 (PST)
Received: from [192.168.0.14] (chello213047163139.5.15.vie.surfer.at [::ffff:213.47.163.139]) (AUTH: PLAIN bubestinger@schokokeks.org, TLS: TLSv1/SSLv3, 128bits, ECDHE-RSA-AES128-GCM-SHA256) by zucker.schokokeks.org with ESMTPSA; Thu, 07 Jan 2016 23:09:40 +0100 id 000000000000006A.00000000568EE224.00001BEC
Message-ID: <568EE224.8020101@das-werkstatt.com>
Date: Thu, 07 Jan 2016 23:09:40 +0100
From: "Peter B." <pb@das-werkstatt.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAO7v-1TCNOcqhv=JR5dMWhibD=kLyQwLztk8RG3v-rtegn7s7Q@mail.gmail.com> <E89E5459-836A-4FD7-BA52-6F75AFD67083@dericed.com> <20160105163439.GA13213@nb4> <568BF59B.6050106@mediaarea.net> <20160105174445.GC13213@nb4> <568C0516.3040605@mediaarea.net> <CAO7v-1R44SDSZWZ_55SBT0vE+ka7e+s5V9suiW3emM-Z-ViS2A@mail.gmail.com> <568EA7D2.50503@das-werkstatt.com> <568EAFC3.1000202@mediaarea.net>
In-Reply-To: <568EAFC3.1000202@mediaarea.net>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/0lFZfrVggxDY_2faWE9t0xSX0fg>
Subject: Re: [Cellar] FFV1 Version 4
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 22:09:45 -0000

On 01/07/2016 07:34 PM, Jerome Martinez wrote:
> PS: just to be clear, when you speak about "logarithmic", you speak
> about DPX transfer characteristic value 3 "Logarithmic [to be defined
> by SMPTE I23 Technology Committee,
> sub-group on â€œTransfer Characteristicsâ€]", right?
> (note: the "to be defined" is in the spec from 2003 as well from the
> spec from 2014 :), without further description)

Well, personally I'd say I'm speaking about "color values that are
non-linear".
In practice, I've only encountered "quasi-log(TM)" (aka "logarithmic) -
and DPX being the most popular case for these non-linear color values.

So in order to stick to real-world use-cases I mentioned
"logarithmic-DPX-to-FFV1-and-back".
Could also be "Non-linear-Foo-to-FFV1-and-back" ;)


Maybe it would make sense to collect what kind of non-linear color
interpretations appear in the real world and derive some way of handling
them.
At least the most prominent ones?

For example, like the ones Reto mentioned:
// -------------------
- log RGB (= "quasi-log", sometimes also called "pseudo-log") encodings:
FilmStream (log60), ARRI log F, Panalog, Sony-log (= S-log), REDLOG, SI
log90
- log neg encodings: Cineon printing density (CPD), "DPX", ARRI log C
// -------------------


Regards,
Pb


PS: Maybe something like a CLUT could be stored as a self-contained way
of interpreting the non-linearity of the color values?


From nobody Thu Jan  7 14:40:21 2016
Return-Path: <mjbshaw@google.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 430211A6FF9 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 14:40:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level: 
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OgBdfa-537zY for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 14:40:13 -0800 (PST)
Received: from mail-pf0-x22b.google.com (mail-pf0-x22b.google.com [IPv6:2607:f8b0:400e:c00::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C77F61A6FE5 for <cellar@ietf.org>; Thu,  7 Jan 2016 14:40:13 -0800 (PST)
Received: by mail-pf0-x22b.google.com with SMTP id q63so26885pfb.1 for <cellar@ietf.org>; Thu, 07 Jan 2016 14:40:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=UClFal9KMgzxxCSFym37YIKPT/R/aBM4ej6tAlx34WM=; b=dR+AzgGzLft8TE5m7SDaNAxkmELI5ofrI6vmk/NnsnzTJ4IhouR59fLGKtwDUmdg4v m08Wv/Tru/uB3FXZBfm1BV5IvplJYoIpICPWAmDtnmVB6PIkRf9Bpeh3JhXcX0Clwy5i xhcuIC3atSrVZEui2BLViFhUibyxIX7qCnlmzLj/Ok01NbT3Z9814QttSUkZ9YywSFeu itUTql/d7+F+WwCxR0POxSOb1tdbjckQBrVIsyHYkwjDy+zwIMUb128yRdI3Bv2YJQj+ /qLWkcFiARB6ex3rbSvjR4KeTmuayeLaDD1KXDWewMvYB4hExBGrv+oScmjxofhW3PZr Z8yw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-type; bh=UClFal9KMgzxxCSFym37YIKPT/R/aBM4ej6tAlx34WM=; b=S8lXSYHRDOb428SqzQawxYur6SO/mMr46Lotv+yGMJKXCEPBEhW881ec1xuvg+iuwY OHawo1AnFyOKaKqP6/vsRFjBEOs/hxV1FzVk0RVqdpyxNNR/4RM32E2LzK1kB9nUXBsT eLVn0V4lR+D5HpgsMTgluzMZAY5Pq5Z3+8w56KC2r9+9oNpt3KumIS1VtYE7f35HNoVk h9/BdbQEmHnxo/a0OiwlnzS3KI4r4z9DR6LHz5/6YSLNl3rQG76LG8eem21YQmeIhNSQ WCYf6N2Uo9NbhziDAIoPlGDG7y01N4UoWHcCp7UPhL5x0XEwsCYVFBSrFros2Z3uEXKY 1V0w==
X-Gm-Message-State: ALoCoQnC/K3oDRxC0AzxgaBXALpybcJyfvwKiGYjEOrQcf4o4pD1cyRRvmYbVH5hIr1LYIn+P5vqTfchmm85frCK3aFv4nqwgWsoiLh+LwcaIfEd6tL0xp4=
X-Received: by 10.98.65.90 with SMTP id o87mr24950pfa.115.1452206413395; Thu, 07 Jan 2016 14:40:13 -0800 (PST)
MIME-Version: 1.0
Received: by 10.66.156.165 with HTTP; Thu, 7 Jan 2016 14:39:54 -0800 (PST)
From: Michael Bradshaw <mjbshaw@google.com>
Date: Thu, 7 Jan 2016 14:39:54 -0800
Message-ID: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com>
To: cellar@ietf.org
Content-Type: multipart/alternative; boundary=94eb2c0bcaee697cce0528c62742
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Isr8NSlas7PiMCm5OqdJ702zT38>
Subject: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 22:40:15 -0000

--94eb2c0bcaee697cce0528c62742
Content-Type: text/plain; charset=UTF-8

Blocks can have a negative timecode in the following situations:


   - Cluster Timecode + Block timecode < 0. This may happen if the
   Cluster's Timecode is near zero and the Block's timecode is sufficiently
   negative.
   - CodecDelay > Cluster Timecode + Block timecode. I have a WebM file
   created by ffmpeg with an Opus audio track that has a CodecDelay of 6.5ms,
   and since the first block's timecode is zero, its computed timecode is
   -6.5ms. mkvinfo shows this frame has having a timecode of 0.000s, but
   ffprobe shows a PTS of -0.007ms (rounding up).


The notes say that "Blocks with a negative Raw Timecode are not valid."[1]
This page, however, does not mention CodecDelay's role in computing
timecodes.

Questions:


   - Should the Specification Notes talk about CodecDelay's role in
   computing a block's timecode?
   - Assuming the answer to the previous questions is "yes," is a block
   with a negative timecode due to a CodecDelay still invalid (i.e. is
   CodecDelay a part of Raw Timecodes)?


--Michael

[1]: http://matroska.org/technical/specs/notes.html

--94eb2c0bcaee697cce0528c62742
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Blocks can have a negative timecode in the following situa=
tions:<div><br></div><div><ul><li>Cluster Timecode + Block timecode &lt; 0.=
 This may happen if the Cluster&#39;s Timecode is near zero and the Block&#=
39;s timecode is sufficiently negative.<br></li><li>CodecDelay &gt;=C2=A0Cl=
uster Timecode + Block timecode. I have a WebM file created by ffmpeg with =
an Opus audio track that has a CodecDelay of=C2=A06.5ms, and since the firs=
t block&#39;s timecode is zero, its computed timecode is -6.5ms. mkvinfo sh=
ows this frame has having a timecode of 0.000s, but ffprobe shows a PTS of =
-0.007ms (rounding up).<br></li></ul></div><div><br></div><div>The notes sa=
y that &quot;Blocks with a negative Raw Timecode are not valid.&quot;[1] Th=
is page, however, does not mention CodecDelay&#39;s role in computing timec=
odes.</div><div><br></div><div>Questions:</div><div><br></div><div><ul><li>=
Should the Specification Notes talk about CodecDelay&#39;s role in computin=
g a block&#39;s timecode?<br></li><li>Assuming the answer to the previous q=
uestions is &quot;yes,&quot; is a block with a negative timecode due to a C=
odecDelay still invalid (i.e. is CodecDelay a part of Raw Timecodes)?<br></=
li></ul></div><div><br></div><div>--Michael</div><div><br></div><div>[1]:=
=C2=A0<a href=3D"http://matroska.org/technical/specs/notes.html">http://mat=
roska.org/technical/specs/notes.html</a></div></div>

--94eb2c0bcaee697cce0528c62742--


From nobody Thu Jan  7 15:05:45 2016
Return-Path: <giles@thaumas.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 899511A8724 for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 15:05:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SucNvMQW6VKX for <cellar@ietfa.amsl.com>; Thu,  7 Jan 2016 15:05:43 -0800 (PST)
Received: from mail-pf0-x230.google.com (mail-pf0-x230.google.com [IPv6:2607:f8b0:400e:c00::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 629CB1A8722 for <cellar@ietf.org>; Thu,  7 Jan 2016 15:05:43 -0800 (PST)
Received: by mail-pf0-x230.google.com with SMTP id 65so263626pff.2 for <cellar@ietf.org>; Thu, 07 Jan 2016 15:05:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thaumas-net.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=KknMnEPxVlsxuUASFRZ18tLBu9IuTNMXG643sBpedFI=; b=YtIHWocRoc3+hBQtTiwtgdKv8bY76eR/tNC38CPQzGv5UL1mLFfkMlbdGkd18RWtdI yGlA6slSPN3SsZRa8nNC+s9gl97abNy7f6VRk7FyvDh76xUJqeb00hpbbPjzSm7vKfBo +xltR8JE2S70CMOLCmx3JN37ZPlf6+DROX+4Fr+lOMi256UzcibeH6pSsmQDDQjnZSf4 E4puY0Scndi16zuIjibJdW+FdM+Kx6AnFvyGQpzY30z6g1A+vG4RusaoRgcIdh9QNkV8 Z/a2WxmbR2tcxiaRsFH38NRFb6aZF/v44RH7Rx42aeMcip1wZ054DitodN4Y8NRlHVSf YYMw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=KknMnEPxVlsxuUASFRZ18tLBu9IuTNMXG643sBpedFI=; b=Qq2QTyEIzVB2LnXdkrDunz+8rZkONI8Hz9OyjTttSYM+hjA9uDT5fRkyZYzkJI/oiA p3C50YiqVcDsoAuDopN5iGKn/QZMgj3o9ztrn1/hneP/fhbQuQETN90fMWpm3fhfn0dl ZeJy5FGiZSPLvfeOfCwn88n6VM330AKYTCV61iIkKYMWPLsNdaAKoUHnRYkBwqp/jXOK fliifzwJz4DjBQ7pglfImcE1Gswlhh2r5Bvc5ZagZfwdXkgrY0aXTWxqkYeYrlVn45FW GjQiktFtQTg5+RcYoZ1imCeeaHVB9756nes6x0UN5PiHQTAw1WwN27J9xK9NKbv3XPN8 Ok3A==
X-Gm-Message-State: ALoCoQlYjSyyV042JoNxOkWdwVbzeBs/wZ96WKTuNb1xLClA7sFdUaHHpw0zuMaY0XiXwWXRB6kMhBaDBDjmMIJhAvL+a7MXLQ==
X-Received: by 10.98.65.9 with SMTP id o9mr141538pfa.114.1452207942994; Thu, 07 Jan 2016 15:05:42 -0800 (PST)
Received: from tamias.local ([69.196.65.149]) by smtp.googlemail.com with ESMTPSA id v71sm66170pfi.91.2016.01.07.15.05.42 for <cellar@ietf.org> (version=TLSv1/SSLv3 cipher=OTHER); Thu, 07 Jan 2016 15:05:42 -0800 (PST)
To: cellar@ietf.org
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com>
From: Ralph Giles <giles@thaumas.net>
X-Enigmail-Draft-Status: N1110
Message-ID: <568EEF45.1000707@thaumas.net>
Date: Thu, 7 Jan 2016 15:05:41 -0800
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/60MnOsaQeUs44kqts7txXMD1koI>
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 07 Jan 2016 23:05:44 -0000

On 2016-01-07 2:39 PM, Michael Bradshaw wrote:

>   * Should the Specification Notes talk about CodecDelay's role in
>     computing a block's timecode?

Yes. This is pretty confusing, and I think implementation guidance is
welcome.

>   * Assuming the answer to the previous questions is "yes," is a block
>     with a negative timecode due to a CodecDelay still invalid (i.e. is
>     CodecDelay a part of Raw Timecodes)?

The way we intended this to work is that the CodecDelay is subtracted
from the declared timestamps to get the actual timestamps. This is
specifically to get around the issue of declaring timestamps which work
out to be negative for samples which should be trimmed.

Assuming that's what people have been implementing, CodecDelay on its
own shouldn't make a block invalid.

It's helpful if the spec can specify what implementation must/should do
with blocks or clusters with negative timestamps. Should they Trim to
zero? Ignore the block? Reject the file?

 -r


From nobody Sat Jan  9 13:06:58 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3EEC61A8F4E for <cellar@ietfa.amsl.com>; Sat,  9 Jan 2016 13:06:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.979
X-Spam-Level: ***
X-Spam-Status: No, score=3.979 tagged_above=-999 required=5 tests=[BAYES_50=0.8, J_CHICKENPOX_54=0.6, J_CHICKENPOX_55=0.6, J_CHICKENPOX_64=0.6, J_CHICKENPOX_65=0.6, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id apdq8CbS18Pk for <cellar@ietfa.amsl.com>; Sat,  9 Jan 2016 13:06:54 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 49C4F1A8F50 for <cellar@ietf.org>; Sat,  9 Jan 2016 13:06:54 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:33984 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aI0io-002A7D-GI; Sat, 09 Jan 2016 16:06:53 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <568D59FD.4030702@mediaarea.net>
Date: Sat, 9 Jan 2016 16:06:49 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <2C5B6A5E-A2DC-46F8-A0F6-F8A11ED34C31@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com> <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com> <59916228-8638-4827-8145-5B0206B74A96@dericed.com> <568D59FD.4030702@mediaarea.net>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ihWfN8Lua5l8aio3WsWjKQhhwyw>
Cc: Jerome Martinez <Jerome@MediaArea.net>
Subject: Re: [Cellar] clarity for the EBML CRC Element (and some bit of FFV1 CRC)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 09 Jan 2016 21:06:56 -0000

Hi,

> On Jan 6, 2016, at 1:16 PM, Jerome Martinez <Jerome@MediaArea.net> =
wrote:
>=20
> Le 06/01/2016 05:35, Dave Rice a =C3=A9crit :
>> [...]
>>=20
>> Here is a proposed rewrite of the CRC-32 Element definition. It is =
based upon the matroska.org=E2=80=99s definition with additional edits =
for clarity. The CRC-32 Element contains a 32 bit Cyclic Redundancy =
Check value of all the Element Data of the Parent Element as stored =
except for the CRC-32 Element itself. The CRC element SHOULD be the =
first in its Parent Element for easier reading. All Elements at Level 1 =
of an EBML Document SHOULD include a CRC-32 Element as a Child Element. =
The CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 =
standard and in section 8.1.1.6.2 of ITU-T recommendation V.42. The CRC =
value MUST use little endian storage.
>=20
> CRC definition is a pain, with often implementation details different =
and missing from the spec, despite the fact developers need such =
details.
> For example with IEEE-CRC-32, we can see on Wikipedia:
> =
https://en.wikipedia.org/wiki/Polynomial_representations_of_cyclic_redunda=
ncy_checks
> that both Gzip (similar to the one used by Matroska) and MPEG-2 are =
listed as CRC-32 (as well as "ITU-T V.42")
> We also see in original FFV1 spec "The CRC generator polynom used is =
the standard IEEE CRC polynom"
>=20
> But:
> - MPEG-2 uses an initial content of the register of 0xFFFFFFFF and =
runs on a Big Endian bitstream (final value not stored, must be 0 if not =
reversed, 0xFFFFFFFF if reversed). Note: MPEG-2 don't claim to be IEEE =
compliant)
> - Matroska uses an initial content of the register of 0xFFFFFFFF and =
runs on a Little Endian bitstream, final value is reversed and stored in =
Little Endian
> - FFV1 uses an initial content of the register of 0x00000000 and runs =
on a Big Endian bitstream, final value is not reversed and stored in Big =
Endian
> All different despite the fact they are in the "CRC-32" group.
>=20
> I read section 8.1.1.6.2 of ITU-T recommendation V.42, it says:
> "As a typical implementation at the transmitter, the initial content =
of the register of the device computing the remainder of the division is =
preset to all 1s"
>=20
> "typical" is not "MUST."
>=20
> And I don't see in section 8.1.1.6.2 that the result should be =
reversed.
>=20
> I don't have access to ISO 3309.
>=20
> So I propose to be more explicit:
> "The CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 =
standard and in section 8.1.1.6.2 of ITU-T recommendation V.42, with =
initial value of 0xFFFFFFFF. The CRC value MUST be computed on a little =
endian bitstream and MUST use little endian storage."
>=20
> I already added some details on the FFV1 spec some time ago (when I =
tried to reuse MPEG-2 CRC code for FFV1):
> =
https://github.com/FFmpeg/FFV1/commit/0e67a72a75485b95261be2e1f39258004666=
c4a1
> (the initial value is 0x00000000)
> Maybe I need to add that it must be computed on a big endian bitstream =
and that the result is stored not reversed (big endian storage is forced =
for the whole spec, so no need to add such info here) in order to be =
explicit on all implementation details.
>=20
> I am not a CRC expert, just a developer facing issues when I need to =
check CRCs, so don't hesitate to correct me if I am wrong on the =
analysis of the issues I have when I implement, and maybe there are =
already a "standard" way to define a CRC at the IETF (I need to dig =
further, but I see e.g. the Polynomial in some IETF documents).
>=20
> Note: checking (not a reference)
> http://reveng.sourceforge.net/crc-catalogue/17plus.htm
> V.42 is defined as:
> width=3D32 poly=3D0x04c11db7 init=3D0xffffffff refin=3Dtrue =
refout=3Dtrue xorout=3D0xffffffff check=3D0xcbf43926 name=3D"CRC-32"
> CRC-32/MPEG-2 is defined:
> width=3D32 poly=3D0x04c11db7 init=3D0xffffffff refin=3Dfalse =
refout=3Dfalse xorout=3D0x00000000 check=3D0x0376e6e7 =
name=3D"CRC-32/MPEG-2"
>=20
> If it is obvious that "IEEE-CRC-32" is the way it is implemented in =
Matroska and only this way, no need of details and I guess we need to =
update FFV1 spec with the same kind of details ("CRC-32/FFV1"?)

Based on Jerome=E2=80=99s comments here is an update to the CRC Element =
for the EBML specification:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of =
all the Element Data of the Parent Element as stored except for the =
CRC-32 Element itself. The CRC element SHOULD be the first in its Parent =
Element for easier reading. All Elements at Level 1 of an EBML Document =
SHOULD include a CRC-32 Element as a Child Element. The CRC in use is =
the IEEE-CRC-32 algorithm as used in the ISO 3309 standard and in =
section 8.1.1.6.2 of ITU-T recommendation V.42, with initial value of =
0xFFFFFFFF. The CRC value MUST be computed on a little endian bitstream =
and MUST use little endian storage.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

I agree with Jerome that to refer simply to =E2=80=9CCRC=E2=80=9D =
presumes a lot and that it=E2=80=99s better to be explicate with initial =
values and endianness of computation of data and storage of the hash. I =
updated the pull request at =
https://github.com/Matroska-Org/ebml-specification/pull/46 to include =
the new definition, =
https://github.com/Matroska-Org/ebml-specification/pull/46.
Dave Rice=


From nobody Sun Jan 10 10:35:42 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 72EDE1A8946 for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 10:35:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9VoLZiPoew_V for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 10:35:39 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 466CF1A8906 for <cellar@ietf.org>; Sun, 10 Jan 2016 10:35:39 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:44148 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIKpz-003zL0-6l for cellar@ietf.org; Sun, 10 Jan 2016 13:35:38 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <568D6710.8000605@gmx.de>
Date: Sun, 10 Jan 2016 13:35:33 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/bVwTRKL0FMfbxlibqPqFE4QHo84>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2016 18:35:41 -0000

> On Jan 6, 2016, at 2:12 PM, Sebastian G. <bastik> wrote:
>=20
> 06.01.2016, 08:06 Dave Rice:
>> Here is a draft for an EBML Schema Attribute to be used in the
>> definition of EBML Elements for what I=E2=80=99m referring to as
>> Identically-Recurring Elements.
>>=20
>> =3D=3D=3D=3D A boolean to express if the EBML Element may occur =
within its
>> Parent Element more than once but that each recurrance within that
>=20
> Is 'recurrance' spelled correctly? (Not a native speaker). =
'recurrence'
> is suggested as search term suggestion.

fixed

>> Parent Element MUST be identical both in storage and semantics. Such
>> Elements are referred to as Identically-Recurring Elements. In this
>> case, identical copies of an EBML Element are permitted to be stored
>> multiple times within the same Parent Element in order to increase
>> data resillience and optimize the use of EBML in transmission.
>=20
> 'resillience' seems to have an error. 'resilience=E2=80=99.

fixed

>> Identically-Recurring Elements SHOULD include a CRC-32 Element as a
>> Child Element. If a Parent Element contains more than one copy of an
>> Identically-Recurring Element which includes a CRC-32 Child Elememnt
>=20
> s/Elememnt/Element

fixed

>> then the first instance of the Identically-Recurring Element with a
>> valid CRC-32 value should be used for interpretation. If a Parent
>> Element contains more than one copy of an Identically-Recurring
>> Element which does not contain a CRC-32 Child Elememnt then the first
>=20
> s/Elememnt/Element

fixed

> 'If a Parent Element contains more than one copy of an
> Identically-Recurring Element which does not contain a CRC-32 Child
> Element "or if CRC-32 Child Elements are present but neither of those
> are valid" then the first instance of the Identically-Recurring =
Element
> should be used for interpretation.'
>=20
> I took your sentence and added (noted by "") the case something would
> contain CRCs, but neither of them would be valid. Feel free to ignore
> this suggestion. It might be a rare case.
>=20
> It is certainly possible to have it as separate sentence. Maybe it =
makes
> it easier to read. Maybe even easier to understand.
>=20
>> instance of the Identically-Recurring Element should be used for
>> interpretation. If the `identical` attribute is not expressed for
>> that Element then that Element is considered to not have a
>> requirement for identical expression within the same Parent Element.
>> The `identical` attribute is only valid if the Element is not set to
>> `multiple`, otherwise the `identical` attribute shall be ignored.=20
>> =3D=3D=3D=3D
>>=20
>> The text may be seen in context with the other attributes at
>> =
https://github.com/MediaArea/ebml-specification/blob/d108c14d1f1c748d1f3f5=
0e58d4057208325f892/specification.markdown#ebml-schema-element-attributes
>>=20
>> Some pending questions:
>> - Should Identically-Recurring Elements recommend or mandate =
inclusion of a CRC-32? I suggestion recommend and not mandate for =
reverse compability.
>=20
> Backward compatibility seems to be a higher goal than CRCs. I think it
> should be even possible to play a file without checking CRCs, which =
does
> not contradict having CRCs in the first place.

I agree.

> Like Timothy B. Terriberry points out, reasons for not having CRCs on
> those elements should be given in the specification.

Based on Tim and Sebastian=E2=80=99s comments I extended the sentence to =
be:

"Identically-Recurring Elements SHOULD include a CRC-32 Element as a =
Child Element; this is especially recommended when EBML is used for =
long-term storage or transmission.=E2=80=9D

Listing reasons to not have a CRC Child Element seems awkward. =
Realistically I think the primary reason that CRC elements are not used =
is because many muxers don=E2=80=99t support adding them, although the =
EBML specification has long contained: "All level 1 elements SHOULD =
include a CRC-32.=E2=80=9D Instead of addressing reasons why not I added =
some reasons for why with references to ong-term storage and =
transmission.

>> - Is 'Identically-Recurring Elements=E2=80=99 a decent short name for =
these types of Elements?
>=20
> I have no objection. IRE could be used when talking about those
> elements, unless it is within official documents.
>=20
>> - Should the =E2=80=98identical=E2=80=99 attribute apply to only =
Master-elements? I think it could be open. I could see scenarios to =
place the CRC-32 both at the beginning and end of the Parent Element.
>=20
> I have not enough knowledge to make an informed statement.

Unless there=E2=80=99s a good reason to do so, I won=E2=80=99t restrict =
the =E2=80=98identical=E2=80=99 attribute to certain Element Types, thus =
the specifications for EBML formats can decide how to use this.

>> - I=E2=80=99m thinking that =E2=80=98multiple=E2=80=99 means the =
Element may recur within its Parent Element and means that there are =
multiple semantics. I suggest that =E2=80=98identical=E2=80=99 Elements =
not be =E2=80=98multiple=E2=80=99 as an =E2=80=98identical=E2=80=99 =
Element recurs but only with a single and non-multiple semantic meaning. =
OK?
>=20
> I have not enough knowledge to make an informed statement.
>=20
>> - If there are multiple copies of identical Elements, I wrote in the =
draft that if there=E2=80=99s a CRC than the first copy with valid CRC =
be used, else the first copy be used. Potentially we could say first =
valid copy be used, but then need to say fully what valid means.
>=20
> I'm neutral, but agree that if just valid is used it would have to be
> explained what valid means.
>=20
>> - I agree that an identical Element should not be used to change the =
semantics over time.
>=20
> Agreed.

Here is a new version for review:

Definition for a new EBML Schema Attribute: identical
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
A boolean to express if the EBML Element may occur within its Parent =
Element more than once but that each recurrence within that Parent =
Element MUST be identical both in storage and semantics. Such Elements =
are referred to as Identically-Recurring Elements. In this case, =
identical copies of an EBML Element are permitted to be stored multiple =
times within the same Parent Element in order to increase data =
resilience and optimize the use of EBML in transmission. =
Identically-Recurring Elements SHOULD include a CRC-32 Element as a =
Child Element; this is especially recommended when EBML is used for =
long-term storage or transmission. If a Parent Element contains more =
than one copy of an Identically-Recurring Element which includes a =
CRC-32 Child Element then the first instance of the =
Identically-Recurring Element with a valid CRC-32 value should be used =
for interpretation. If a Parent Element contains more than one copy of =
an Identically-Recurring Element which does not contain a CRC-32 Child =
Element or if CRC-32 Child Elements are present but none are valid then =
the first instance of the Identically-Recurring Element should be used =
for interpretation. If the `identical` attribute is not expressed for =
that Element then that Element is considered to not have a requirement =
for identical expression within the same Parent Element. The `identical` =
attribute is only valid if the Element is not set to `multiple`, =
otherwise the `identical` attribute shall be ignored.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Dave Rice=


From nobody Sun Jan 10 10:40:58 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 749521A894F for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 10:40:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VSDby8lj_fCf for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 10:40:55 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 86EB01A894E for <cellar@ietf.org>; Sun, 10 Jan 2016 10:40:55 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:33793 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIKv6-0042YD-5L for cellar@ietf.org; Sun, 10 Jan 2016 13:40:55 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
Date: Sun, 10 Jan 2016 13:40:50 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <86D98A62-7ED1-4C55-A8A6-2F96EB46226E@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Qbl0nPxu7l5PT3rkVUARxmnmgns>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2016 18:40:57 -0000

> On Jan 10, 2016, at 1:35 PM, Dave Rice <dave@dericed.com> wrote:
>=20
>=20
>> On Jan 6, 2016, at 2:12 PM, Sebastian G. <bastik> wrote:
>>=20
>> 06.01.2016, 08:06 Dave Rice:
>>> Here is a draft for an EBML Schema Attribute to be used in the
>>> definition of EBML Elements for what I=E2=80=99m referring to as
>>> Identically-Recurring Elements.
>>>=20
>>> =3D=3D=3D=3D A boolean to express if the EBML Element may occur =
within its
>>> Parent Element more than once but that each recurrance within that
>>=20
>> Is 'recurrance' spelled correctly? (Not a native speaker). =
'recurrence'
>> is suggested as search term suggestion.
>=20
> fixed
>=20
>>> Parent Element MUST be identical both in storage and semantics. Such
>>> Elements are referred to as Identically-Recurring Elements. In this
>>> case, identical copies of an EBML Element are permitted to be stored
>>> multiple times within the same Parent Element in order to increase
>>> data resillience and optimize the use of EBML in transmission.
>>=20
>> 'resillience' seems to have an error. 'resilience=E2=80=99.
>=20
> fixed
>=20
>>> Identically-Recurring Elements SHOULD include a CRC-32 Element as a
>>> Child Element. If a Parent Element contains more than one copy of an
>>> Identically-Recurring Element which includes a CRC-32 Child Elememnt
>>=20
>> s/Elememnt/Element
>=20
> fixed
>=20
>>> then the first instance of the Identically-Recurring Element with a
>>> valid CRC-32 value should be used for interpretation. If a Parent
>>> Element contains more than one copy of an Identically-Recurring
>>> Element which does not contain a CRC-32 Child Elememnt then the =
first
>>=20
>> s/Elememnt/Element
>=20
> fixed
>=20
>> 'If a Parent Element contains more than one copy of an
>> Identically-Recurring Element which does not contain a CRC-32 Child
>> Element "or if CRC-32 Child Elements are present but neither of those
>> are valid" then the first instance of the Identically-Recurring =
Element
>> should be used for interpretation.'
>>=20
>> I took your sentence and added (noted by "") the case something would
>> contain CRCs, but neither of them would be valid. Feel free to ignore
>> this suggestion. It might be a rare case.
>>=20
>> It is certainly possible to have it as separate sentence. Maybe it =
makes
>> it easier to read. Maybe even easier to understand.
>>=20
>>> instance of the Identically-Recurring Element should be used for
>>> interpretation. If the `identical` attribute is not expressed for
>>> that Element then that Element is considered to not have a
>>> requirement for identical expression within the same Parent Element.
>>> The `identical` attribute is only valid if the Element is not set to
>>> `multiple`, otherwise the `identical` attribute shall be ignored.=20
>>> =3D=3D=3D=3D
>>>=20
>>> The text may be seen in context with the other attributes at
>>> =
https://github.com/MediaArea/ebml-specification/blob/d108c14d1f1c748d1f3f5=
0e58d4057208325f892/specification.markdown#ebml-schema-element-attributes
>>>=20
>>> Some pending questions:
>>> - Should Identically-Recurring Elements recommend or mandate =
inclusion of a CRC-32? I suggestion recommend and not mandate for =
reverse compability.
>>=20
>> Backward compatibility seems to be a higher goal than CRCs. I think =
it
>> should be even possible to play a file without checking CRCs, which =
does
>> not contradict having CRCs in the first place.
>=20
> I agree.
>=20
>> Like Timothy B. Terriberry points out, reasons for not having CRCs on
>> those elements should be given in the specification.
>=20
> Based on Tim and Sebastian=E2=80=99s comments I extended the sentence =
to be:
>=20
> "Identically-Recurring Elements SHOULD include a CRC-32 Element as a =
Child Element; this is especially recommended when EBML is used for =
long-term storage or transmission.=E2=80=9D
>=20
> Listing reasons to not have a CRC Child Element seems awkward. =
Realistically I think the primary reason that CRC elements are not used =
is because many muxers don=E2=80=99t support adding them, although the =
EBML specification has long contained: "All level 1 elements SHOULD =
include a CRC-32.=E2=80=9D Instead of addressing reasons why not I added =
some reasons for why with references to ong-term storage and =
transmission.
>=20
>>> - Is 'Identically-Recurring Elements=E2=80=99 a decent short name =
for these types of Elements?
>>=20
>> I have no objection. IRE could be used when talking about those
>> elements, unless it is within official documents.
>>=20
>>> - Should the =E2=80=98identical=E2=80=99 attribute apply to only =
Master-elements? I think it could be open. I could see scenarios to =
place the CRC-32 both at the beginning and end of the Parent Element.
>>=20
>> I have not enough knowledge to make an informed statement.
>=20
> Unless there=E2=80=99s a good reason to do so, I won=E2=80=99t =
restrict the =E2=80=98identical=E2=80=99 attribute to certain Element =
Types, thus the specifications for EBML formats can decide how to use =
this.
>=20
>>> - I=E2=80=99m thinking that =E2=80=98multiple=E2=80=99 means the =
Element may recur within its Parent Element and means that there are =
multiple semantics. I suggest that =E2=80=98identical=E2=80=99 Elements =
not be =E2=80=98multiple=E2=80=99 as an =E2=80=98identical=E2=80=99 =
Element recurs but only with a single and non-multiple semantic meaning. =
OK?
>>=20
>> I have not enough knowledge to make an informed statement.
>>=20
>>> - If there are multiple copies of identical Elements, I wrote in the =
draft that if there=E2=80=99s a CRC than the first copy with valid CRC =
be used, else the first copy be used. Potentially we could say first =
valid copy be used, but then need to say fully what valid means.
>>=20
>> I'm neutral, but agree that if just valid is used it would have to be
>> explained what valid means.
>>=20
>>> - I agree that an identical Element should not be used to change the =
semantics over time.
>>=20
>> Agreed.
>=20
> Here is a new version for review:
>=20
> Definition for a new EBML Schema Attribute: identical
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> A boolean to express if the EBML Element may occur within its Parent =
Element more than once but that each recurrence within that Parent =
Element MUST be identical both in storage and semantics. Such Elements =
are referred to as Identically-Recurring Elements. In this case, =
identical copies of an EBML Element are permitted to be stored multiple =
times within the same Parent Element in order to increase data =
resilience and optimize the use of EBML in transmission. =
Identically-Recurring Elements SHOULD include a CRC-32 Element as a =
Child Element; this is especially recommended when EBML is used for =
long-term storage or transmission. If a Parent Element contains more =
than one copy of an Identically-Recurring Element which includes a =
CRC-32 Child Element then the first instance of the =
Identically-Recurring Element with a valid CRC-32 value should be used =
for interpretation. If a Parent Element contains more than one copy of =
an Identically-Recurring Element which does not contain a CRC-32 Child =
Element or if CRC-32 Child Elements are present but none are valid then =
the first instance of the Identically-Recurring Element should be used =
for interpretation. If the `identical` attribute is not expressed for =
that Element then that Element is considered to not have a requirement =
for identical expression within the same Parent Element. The `identical` =
attribute is only valid if the Element is not set to `multiple`, =
otherwise the `identical` attribute shall be ignored.
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

I added this text as a pull request, so that it may be reviewed in =
context. https://github.com/Matroska-Org/ebml-specification/pull/47
Dave Rice=


From nobody Sun Jan 10 11:33:30 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 162EA1ACEC7 for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 11:33:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id I1IiiA4hubkJ for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 11:33:26 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E6B291ACED3 for <cellar@ietf.org>; Sun, 10 Jan 2016 11:33:05 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:34373 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aILjY-000rN4-9s; Sun, 10 Jan 2016 14:33:05 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFKM+KiuAfSPK8huAOvConjxG699-FM6KRZ-94cp3k9nHg@mail.gmail.com>
Date: Sun, 10 Jan 2016 14:32:58 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <262671D6-2C76-4D7B-BE48-A5D6909D2A8A@dericed.com>
References: <C4021E89-45C0-4DC8-BD60-9072469D1F39@dericed.com> <20151231083323.GB15920@bunkus.org> <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com> <84C35B47-B124-4FCE-ABDE-A0EEC19E373E@dericed.com> <CAOXsMFKM+KiuAfSPK8huAOvConjxG699-FM6KRZ-94cp3k9nHg@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Y_NuLGbZ2MVt17epDedJmVbwBLQ>
Cc: Moritz Bunkus <moritz@bunkus.org>, cellar@ietf.org
Subject: Re: [Cellar] test4.mkv and EBML Elements with Unknown Size
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2016 19:33:29 -0000

Hi,

> On Jan 4, 2016, at 2:44 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>=20
> 2016-01-03 22:50 GMT+01:00 Dave Rice <dave@dericed.com>:
>> Hi,
>>=20
>>> On Jan 2, 2016, at 4:06 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>=20
>>> 2015-12-31 9:33 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>>> Hey,
>>>>=20
>>>>> The Matroska Test file suite is at
>>>>> http://matroska.org/downloads/test_w1.html. This includes =
test4.mkv
>>>>> which is an example of a live stream recording. However the file
>>>>> doesn=E2=80=99t appear to adhere to the EBML specs. It the file =
written wrong
>>>>> or are we missing something in the EBML specification?
>>>>>=20
>>>>> Within this file is this extract from the beginning of the Segment
>>>>> element to the end of the Element ID of the Info Element.
>>>>>=20
>>>>> 18 53 80 67 FF 0A 0A 0A=E2=80=A6
>>>>=20
>>>> Uhm=E2=80=A6 this is indeed invalid. A master must only contain =
child elements,
>>>> not additional data. To put it differently: all child elements of a
>>>> master element must cover the whole space occupied by the master =
without
>>>> any gaps in between.
>>>=20
>>> Did we handle that part in the newer specs ? It makes sense.
>>=20
>> Partly, in the EBML Document section, =
https://github.com/Matroska-Org/ebml-specification/blob/master/specificati=
on.markdown#ebml-document, it states: "An EBML Document MAY only consist =
of EBML Elements and MUST NOT contain any data that is not part of an =
EBML Element.=E2=80=9D But this refers to the EBML Document as a whole =
and not the sub-elements.
>>=20
>> The Master-element definition says: =E2=80=9CThe Master-element =
contains zero, one, or many other elements.=E2=80=9D But the language is =
not exclusive to say that the Master-element may ONLY contain zero, one, =
or many other elements.
>>=20
>> I propose to add to the Master-element definition the line: =E2=80=9CTh=
e Element Data stored within Master-elements MUST only consist of EBML =
Elements and MUST NOT contain any data that is not part of an EBML =
Element.=E2=80=9D I send this as a pull request here =
https://github.com/Matroska-Org/ebml-specification/pull/45. The patch is =
here:
>=20
> But that makes such streaming files illegal according to the specs.
> VLC does the same when "broadcast" streaming over HTTP. And even a
> Chromecast can handle such stream starting with the end of a Cluster
> (ie garbage).

Here is the current definition of Master-element and a proposed update =
based on the discussion in this thread.

current definition of Master-element
=3D=3D=3D=3D=3D=3D=3D=3D
The Master-element contains zero, one, or many other elements. The =
Element Data stored within Master-elements MUST only consist of EBML =
Elements and MUST NOT contain any data that is not part of an EBML =
Element. Elements contained within a Master-element must be defined for =
use at levels greater than the level of the Master-element. For instance =
is a Master-element occurs on level 2 then all contained Elements must =
be valid at levels 3.
=3D=3D=3D=3D=3D=3D=3D=3D

proposed update to definition of Master-element
=3D=3D=3D=3D=3D=3D=3D=3D
The Master-element contains zero, one, or many other elements. Elements =
contained within a Master-element must be defined for use at levels =
greater than the level of the Master-element. For instance is a =
Master-element occurs on level 2 then all contained Elements must be =
valid at levels 3. Element Data stored within Master-elements SHOULD =
only consist of EBML Elements and SHOULD NOT contain any data that is =
not part of an EBML Element. When EBML is used in transmission or =
streaming, data that is not part of an EBML Element is permitted to be =
present within a Master-element. In this case, the reader should read =
the Element Data of the Master-element octet by octet until a valid =
Element ID at the same level or the next greater level of the =
Master-element is found. What Element IDs are considered valid within a =
Master-element is identified by the EBML Schema for that version of the =
EBML Document Type. Any data contained with a Master-element that is not =
part of an Element SHOULD be ignored.
=3D=3D=3D=3D=3D=3D=3D=3D

Question: Can non-Element data in Master-elements be restricted to =
certain EBML Levels?

> Given it's mostly compressed data it can be any octet.
> That's why the level-1 elements are all 4 octets in Matroska, to avoid
> false positives.

This is a good point, but it is not noted within the EBML Specification. =
I propose adding this to the definition of =E2=80=98id=E2=80=99 within =
the EBML Schema Element Attributes section:

"To reduce the risk of false positives while parsing EBML Streams, Level =
1 EBML Element IDs SHOULD be at least 4 octets in length. Element IDs at =
Level 1 MAY use shorter octet lengths to facilitate padding and optimize =
edits to EBML Documents; for instance, the EBML Void Element uses an =
Element ID with a one octet length to allow its usage in more writing =
and editing scenarios."

> It was not originally designed to work like that but GStreamer
> implemented streaming like that and luckily it was fitting the
> existing parsers. VLC followed later. Knowing the VLC code, it would
> take a bit of work to allow clean EBML data to be sent. For now the
> different muxing/sending stages don't signal synchronization points
> like that. Only the header (Segment Info).
>=20
> Again, IMO it's not an issue for parsers that should be resilient to
> bad data. Changing this text will not make much difference regarding
> to that. Maybe the specs should also cover what happens when bad data
> are found ? Like bad CRC, duplicate elements, etc.

I think it should though perhaps in a new section. I added an issue here =
https://github.com/Matroska-Org/ebml-specification/issues/48 to deal =
with this eventually, but not to expand the scope of this current thread =
too much.

>> =46rom ba9973706d35934ea4c5e8f50d66d5ac3f725fd2 Mon Sep 17 00:00:00 =
2001
>> From: dericed <dave@dericed.com>
>> Date: Sun, 3 Jan 2016 16:29:43 -0500
>> Subject: [PATCH] clarify that Master-elements may only contain =
elements
>>=20
>> ---
>> specification.markdown | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>=20
>> diff --git a/specification.markdown b/specification.markdown
>> index b90020c..4159bdb 100644
>> --- a/specification.markdown
>> +++ b/specification.markdown
>> @@ -141,7 +141,7 @@ Element Data Type:   Master-element
>>=20
>>     Endianness:     None
>>     Length:         A Master-element may declare any length (included =
zero) up to the maximum Element Data Size value permitted. The =
Master-element may also use an unknown length. See the section on =
Element Data Size for rules that apply to elements of unknown length.
>> -    Definition:     The Master-element contains zero, one, or many =
other elements. Elements contained within a Master-element must be =
defined for use at levels greater than the level of the Master-element. =
For instance is a Master-element occurs on level 2 then all contained =
Elements must be valid at levels 3.
>> +    Definition:     The Master-element contains zero, one, or many =
other elements. The Element Data stored within Master-elements MUST only =
consist of EBML Elements and MUST NOT contain any data that is not part =
of an EBML Element. Elements contained within a Master-element must be =
defined for use at levels greater than the level of the Master-element. =
For instance is a Master-element occurs on level 2 then all contained =
Elements must be valid at levels 3.
>>=20
>> Element Data Type:   Binary
>>=20
>> --
>> 2.6.4
>>=20
>>> But is it
>>> possible that one byte is missing from a file ? If so the whole =
thing
>>> becomes unusable just because of that missing byte. If it's at the =
end
>>> of a master or an non vital element, it should not matter too much.
>>> But that's a tricky thing to detect (an extra byte is easier).
>>> Transfers over UDP may have these gaps of data.
>>=20
>> These suggestions may pertain more to suggestions on a parser than =
for the specification.
>>=20
>>> Also the segment being of unknown/infinite size, anything is =
contained
>>> within, unless a new Segment comes.
>>=20
>> According to the current EBML draft spec: "The end of the =
Master-element is determined by the beginning of the next element that =
is not a valid sub-element of the Master-element.=E2=80=9D I realize =
that this need a little more clarity so I added this patch to the same =
pull request referenced above.
>>=20
>> =46rom 64bc489282a51891535815e0cea4d00b42c25564 Mon Sep 17 00:00:00 =
2001
>> From: dericed <dave@dericed.com>
>> Date: Sun, 3 Jan 2016 16:37:50 -0500
>> Subject: [PATCH] clarification on the end of Master-elements
>>=20
>> ---
>> specification.markdown | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>=20
>> diff --git a/specification.markdown b/specification.markdown
>> index 4159bdb..e1b6857 100644
>> --- a/specification.markdown
>> +++ b/specification.markdown
>> @@ -71,7 +71,7 @@ The Element Data Size expresses the length in =
octets of Element Data. The Elemen
>>=20
>> Although an Element ID with all VINT\_DATA bits set to zero is =
invalid, an Element Data Size with all VINT\_DATA bits set to zero is =
allowed for EBML Data Types which do not mandate a non-zero length. An =
Element Data Size with all VINT\_DATA bits set to zero indicates that =
the Element Data of the Element is zero octets in length. Such an =
Element is referred to as an Empty Element. If an Empty Element has a =
`default` value declared then that default value MUST be interpreted as =
the value of the Empty Element. If an Empty Element has no `default` =
value declared then the semantic meaning of Empty Element is defined as =
part of the definition of the EBML Element Types.
>>=20
>> -An Element Data Size with all VINT\_DATA bits set to one is reserved =
as an indicator that the size of the Element is unknown. The only =
reserved value for the VINT\_DATA of Element Data Size is all bits set =
to one. This rule allows for an Element to be written and read before =
the size of the Element is known; however unknown Element Data Size =
values SHOULD NOT be used unnecessarily. An Element with an unknown =
Element Data Size MUST be a Master-element in that it contains other =
EBML Elements as sub-elements. The end of the Master-element is =
determined by the beginning of the next element that is not a valid =
sub-element of the Master-element.
>> +An Element Data Size with all VINT\_DATA bits set to one is reserved =
as an indicator that the size of the Element is unknown. The only =
reserved value for the VINT\_DATA of Element Data Size is all bits set =
to one. This rule allows for an Element to be written and read before =
the size of the Element is known; however unknown Element Data Size =
values SHOULD NOT be used unnecessarily. An Element with an unknown =
Element Data Size MUST be a Master-element in that it contains other =
EBML Elements as sub-elements. The end of a Master-element with unknown =
size is determined by the beginning of the next element that is not a =
valid sub-element of that Master-element.
>>=20
>> For Element Data Sizes encoded at octet lengths from one to eight, =
this table depicts the range of possible values that can be encoded as =
an Element Data Size. An Element Data Size with an octet length of 8 is =
able to express a size of 2^56-2 or 72,057,594,037,927,934 octets (or =
about 72 petabytes).
>>=20
>> --
>> 2.6.4
>=20
> Fine with me.
>=20
>>>> I honestly don't know that file was created. libmatroska contains
>>>> programs to create a couple of those files in its "tests" =
sub-directory,
>>>> but test4 is not among them. Judging from the download page you've
>>>> linked it's possible that the file was created with mkclean =E2=80=93=
 in that
>>>> case I would say that mkclean produces non-compliant files.
>>>>=20
>>>> Steve?
>>>=20
>>> IIRC it was created manually with a hex editor.
>>>=20
>>>>> I understand that 0x18538067 is the Element ID of the Segment =
Element.
>>>>>=20
>>>>> The 0xFF represents the case where as the EBML draft spec states, =
"An
>>>>> Element Data Size with all VINT_DATA bits set to one is reserved =
as an
>>>>> indicator that the size of the Element is unknown.=E2=80=9D
>>>>=20
>>>> Correct.
>>>>=20
>>>>> Next, between the Element Data Size of the Segment Element and the
>>>>> beginning of the Info Element there is 134 bytes of 0x0A! In this =
case
>>>>> 0x0A can not be a valid start of an Element ID since for this file =
the
>>>>> EBMLMaxIDLength is 4 (via the default). Thus the Segment
>>>>> Master-element has child data that is not an EBML Element.
>>>>=20
>>>> Correct.
>>>>=20
>>>> Like I said, invalid.
>>>>=20
>>>> I definitely do not want to adjust the specs to allow arbitrary =
data in
>>>> arbitrary places that a parser has to be able to skip over.
>>>=20
>>> But that's not what this file is about. It's about error recovery. A
>>> proper parser should treat all the 0A as garbage and look for some
>>> proper data. That's what libebml does.
>>=20
>> To be clear. In this case, the file has a MaxIDLength of 4 and thus =
0x0A (aka 0b00001010) is invalid as the first byte of an Element ID. So =
is this correct logic?
>=20
> Yes. It's bad data so it should be skipped.

I added a statement to this in the proposed definition update above, =
using =E2=80=98ignored=E2=80=99 rather than =E2=80=98skipped=E2=80=99.

>> For a generic EBML parser:
>> It should skip the invalid 0x0A bytes, because they are not valid =
Element IDs according to the MaxIDLength. In this case it should then =
skip ahead to the Info Element.
>>=20
>> For a Matroska parser:
>> It should skip the invalid 0x0A bytes until it encounters the first =
valid Element iD of an Element that may be a child Element of Segment?
>=20
> It's true that when you know the expected semantic, you can detect
> false alarms a lot better. When you don't, 4-octets Level-1 elements
> are not much help. So pure EBML recovery tools should not expect great
> results.

I didn=E2=80=99t address this in the proposal above, but should we. =
Perhaps we could clarify that a parser SHOULD have a semantic =
understanding of the version and doctype that it is parser, else the =
results are unexpected?

>>> This file was inspired by the live streaming mode of GStreamer that
>>> sends the header (Segment Info + Track Info) and whatever matroska
>>> data comes after. Including the remaining of the Cluster that's
>>> currently streaming. That part should be treated as garbage (and
>>> luckily there is no false alarm of valid Level1+size elements in the
>>> garbage data).
>>=20
>> The use of 32 bit Element IDs at Level 1 of Matroska makes more sense =
with this logic. A false alarm should be rare with garbage.
>>=20
>> With the example provided, the EBML Stream structure would be
>>=20
>> EBML/
>> Segment/
>>        Info/
>>        Track/
>>        <<< GARBAGE FRAGMENTARY CLUSTER >>>
>>        Cluster/
>>=20
>> Should this be considered a valid EBML Stream? The pull request =
reference makes this invalid, otherwise the spec is very unclear about =
the presence of garbage, non Element Data within a Master-element.
>=20
> It's invalid EBML data. And should stay that way. But a semantic
> parser SHOULD (MUST?) be able to handle this.

Let me know if you think the proposed definition above address this =
well. I placed all the referenced changes in this pull request so it may =
be reviewed in context: =
https://github.com/Matroska-Org/ebml-specification/pull/49.

[=E2=80=A6]

Dave Rice


From nobody Sun Jan 10 12:08:13 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 108D51AD068 for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 12:08:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NtkSPZFdskpe for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 12:08:11 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2225E1AD055 for <cellar@ietf.org>; Sun, 10 Jan 2016 12:08:11 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:33044 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIMHY-001t9I-7z for cellar@ietf.org; Sun, 10 Jan 2016 15:08:10 -0500
From: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Message-Id: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com>
Date: Sun, 10 Jan 2016 15:08:06 -0500
To: cellar@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/UsWgtVvh7zrNPXEey-YI6yGK9DE>
Subject: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2016 20:08:13 -0000

Hi Cellar,

This proposal continues from earlier conversation on matroska-devel: =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.htm=
l.

Currently Matroska only expresses video interlacement in the =
FlagInterlaced Element, which is defined like this (see: =
http://matroska.org/technical/specs/index.html#FlagInterlaced):

Element Name: FlagInterlaced
Level:        4
ID:           [9A]
Mandatory:    mand.
Multiple:     -
Range:	0-1
Default:      0
Type:         u
Description:  Set if the video is interlaced. (1 bit)

An issue here is that there isn=E2=80=99t a distinction between unknown =
and progressive interlacement. Also if the video is interlaced there is =
no clarification if it is top or bottom field first (or one of the =
progressive segmented frame options). While some video encodings (such =
as DV and FFV1) can contain their own information about interlacement, =
many (especially uncompressed formats) can not.

I propose the values are expanded such as:

0	undetermined
1	interlaced
2	progressive

or

0	progressive
1	interlaced
2	undetermined

I am unclear if FlagInterlaced=3D0 has been traditionally interpreted as =
undetermined or progressive. Advice?

Then a second element can optionally contain field ordering metadata.

Element Name: FieldOrdering
Level:        4
ID:           [9D]
Mandatory:    -
Multiple:     -
Range:	0-2
Default:      0
Type:         u
Description:  Declare the field ordering of the video. If FlagInterlaced =
is not set to 1, this Element MUST be ignored.

0	undetermined
1	interlaced (bottom field first)
2	interlaced (top field first)

To do:
- consider progressive segmented fields
- consider noting field storage order in addition to field display order

I did consider that bff and tff values could be added as new values to =
FlagInterlaced, so that only one element would be needed. However it may =
affect reverse compatibility since some muxer may interpret only a value =
of FlagInterlaced=3D1 as interlaced.

Dave Rice=


From nobody Sun Jan 10 14:57:48 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8DE8C1A1A59 for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 14:57:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JMbOgpwKHVbH for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 14:57:27 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 90F5E1A1A51 for <cellar@ietf.org>; Sun, 10 Jan 2016 14:57:26 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:45359 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIOvK-001eRW-S6; Sun, 10 Jan 2016 17:57:24 -0500
From: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Sun, 10 Jan 2016 17:57:21 -0500
Message-Id: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
To: cellar@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/2EGqnfyPxe_JUyk95vYkOUZRjk4>
Cc: matroska-devel@lists.matroska.org
Subject: [Cellar] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Jan 2016 22:57:28 -0000

Hi all,

Here is an early draft of Elements for managing ReferenceTimecode =
tracks. Matroska uses the term 'Timecode' to reference presentation =
timestamps, whereas other formats (QuickTime, MXF) use 'Timecode' to =
reference a time reference that is added to the timeline which is =
inpendent of the presentation (i.e. a QuickTime file with a timecode =
track that starts at one hour aka 1:00:00;00 would not cause a one hour =
delay before playback starts). In the context of Matroska I am using =
ReferenceTimecode (for now) to refer to QuickTime/MXF style timecode =
tracks.

TrackType:
Add to the TrackType definition to list "0x13: timecode,"

CodecID:
Add the following timecode Codec IDs.
Codec ID        | Name               | Description
T_QUICKTIME     | QuickTime Timecode | Timecode data as stored in =
QuickTime, e.q. tmcd. The CodecPrivate contains all additional data that =
is stored in the 'tcmd' (timecode) atom in the QuickTime file.
Others? LTC? VITC?

Proposed elements under TrackEntry:

Element Name: ReferenceTimecode
Level:        3
ID:           [EF]
Mandatory:    -
Multiple:     -
Default:      -
Type:         m
Description:  ReferenceTimecode settings

Element Name: ReferenceTimecodeForm
Level:        4
ID:           [EF][A1]
Mandatory:    mand.
Multiple:     -
Range:        0-2
Default:      0
Type:         u
Description:  Indicates the form of expression used to present the =
timecode (using HH for hours, MM for minutes, SS for seconds, mmm for =
milliseconds, ff for frames).
              0: HH:MM:SS.mmm
              1: HH:MM:SS:ff (non-drop frame)
              2: HH:MM:SS;ff (drop frame)

Element Name: ReferenceTimecode24HourMax
Level:        4
ID:           [EF][A2]
Mandatory:    mand.
Multiple:     -
Range:        0-1
Default:      0
Type:         u
Description:  Indicates if the timecode should revert to a zero-value at =
the time reference of 24 hours. Set to 1 if the ReferenceTimecode should =
use a maximum value of 24 hours and wrap values back to zero hours at =
that point.

For storage of ReferenceTimecode values in Blocks, I suggest storing a =
signed integer (ReferenceTimecode values may be negative). The stored =
signed integer would be the frame number (players supporting =
ReferenceTimecode should convert the frame number accordingly to a =
drop-frame or non-drop-frame display). So if ReferenceTimecodeForm=3D1, =
the Block stores 0x00BC, and the frame duration is NTSC, then the =
displayed value would be 00:00:06:08. The next value 00:00:06:09, etc.

I propose that one block per ReferenceTimecode not be required for =
simple incrementing ReferenceTimecode, but that the ReferenceTimecode =
value of the next video frame be considered to be either 1 greater than =
the previous value (if ReferenceTimecodeForm is 1 or 2) or increased by =
the duration of the corresponding video frame.

If the ReferenceTimecode is non-continuous then a new ReferenceTimecode =
value in a new Block with a new Timecode (Matroska meaning of Timecode) =
could be inserted at the point of the discontinuity.

Comments?
Dave Rice=


From nobody Sun Jan 10 17:08:17 2016
Return-Path: <kieran.o.leary@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C0E911A1E0E for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 17:07:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.701
X-Spam-Level: 
X-Spam-Status: No, score=0.701 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gyW8sQLzKxoG for <cellar@ietfa.amsl.com>; Sun, 10 Jan 2016 17:07:57 -0800 (PST)
Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 25E5F1A1E0B for <cellar@ietf.org>; Sun, 10 Jan 2016 17:07:57 -0800 (PST)
Received: by mail-lf0-x230.google.com with SMTP id 17so2496131lfz.1 for <cellar@ietf.org>; Sun, 10 Jan 2016 17:07:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=/ahF1GJCCsgOKXdHD7U2m/3joZfq4RYbwbicUZBWodM=; b=punzcZEhEQ6/mLzej10XreRFbVG1RE/oAyQpgrFS5wd7Ts6OqChxtXZUbvebbLgLq4 XiFNyU/95dK9U59EoTipaDDByinFWf7gN4+XklVhM1hKNfX845xCGCSEgLPxu5QmMADi 8pjLkMmk13sN9v1BKw+aun+6KkArtdfxT7iWh3tQUz6dw/3DYHNFsxGPwiMXi8SIpR6d q5ey3IGzgfqeNZ206FsRlWcHplq3Lv3NBnMmycuab0S/HJhFnK5Mj9pDLBrCdb6cSqAo 6R6pgEnvh33lniNiyr/Ye0a10oo8Jlic8amxLIEYickr6mXZws0J8gmw5B8hLKX38W0S IqsQ==
MIME-Version: 1.0
X-Received: by 10.25.29.147 with SMTP id d141mr20017583lfd.26.1452474475353; Sun, 10 Jan 2016 17:07:55 -0800 (PST)
Received: by 10.25.168.79 with HTTP; Sun, 10 Jan 2016 17:07:55 -0800 (PST)
In-Reply-To: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
Date: Mon, 11 Jan 2016 01:07:55 +0000
Message-ID: <CAO7v-1S2dmx6acCrfrYkcNaGOM2j5Pv5=O2WA6W3xFL4cdtYwQ@mail.gmail.com>
From: Kieran O Leary <kieran.o.leary@gmail.com>
To: cellar@ietf.org
Content-Type: multipart/alternative; boundary=001a1140235e26233705290491af
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/nuduxXSKZsLAwWiUV5q3Kt5j_7o>
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 01:07:59 -0000

--001a1140235e26233705290491af
Content-Type: text/plain; charset=UTF-8

On Sun, Jan 10, 2016 at 10:57 PM, Dave Rice <dave@dericed.com> wrote:

> Hi all,
>

Hi,
I don't have much to add except that I'm delighted to see this addressed
and it looks like a great addition to the matroska format. Some comments
further down.


>
> Here is an early draft of Elements for managing ReferenceTimecode tracks.
> Matroska uses the term 'Timecode' to reference presentation timestamps,
> whereas other formats (QuickTime, MXF) use 'Timecode' to reference a time
> reference that is added to the timeline which is inpendent of the
> presentation (i.e. a QuickTime file with a timecode track that starts at
> one hour aka 1:00:00;00 would not cause a one hour delay before playback
> starts). In the context of Matroska I am using ReferenceTimecode (for now)
> to refer to QuickTime/MXF style timecode tracks.
>
> TrackType:
> Add to the TrackType definition to list "0x13: timecode,"
>
> CodecID:
> Add the following timecode Codec IDs.
> Codec ID        | Name               | Description
> T_QUICKTIME     | QuickTime Timecode | Timecode data as stored in
> QuickTime, e.q. tmcd. The CodecPrivate contains all additional data that is
> stored in the 'tcmd' (timecode) atom in the QuickTime file.
> Others? LTC? VITC?
>

I have mostly encountered QuickTime tmcd info thus far. I haven't
reformatted any mxfs as mkv yet, but tmcd info within matroska would be
fantastic from my perspective.



> Proposed elements under TrackEntry:
>
> Element Name: ReferenceTimecode
> Level:        3
> ID:           [EF]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         m
> Description:  ReferenceTimecode settings
>
> Element Name: ReferenceTimecodeForm
> Level:        4
> ID:           [EF][A1]
> Mandatory:    mand.
> Multiple:     -
> Range:        0-2
> Default:      0
> Type:         u
> Description:  Indicates the form of expression used to present the
> timecode (using HH for hours, MM for minutes, SS for seconds, mmm for
> milliseconds, ff for frames).
>               0: HH:MM:SS.mmm
>               1: HH:MM:SS:ff (non-drop frame)
>               2: HH:MM:SS;ff (drop frame)
>

I don't know if this flag is explicitly mentioned in a QuickTime
container,but it seems to me to be a great idea to flag this message info.




>
> Element Name: ReferenceTimecode24HourMax
> Level:        4
> ID:           [EF][A2]
> Mandatory:    mand.
> Multiple:     -
> Range:        0-1
> Default:      0
> Type:         u
> Description:  Indicates if the timecode should revert to a zero-value at
> the time reference of 24 hours. Set to 1 if the ReferenceTimecode should
> use a maximum value of 24 hours and wrap values back to zero hours at that
> point.
>
> For storage of ReferenceTimecode values in Blocks, I suggest storing a
> signed integer (ReferenceTimecode values may be negative). The stored
> signed integer would be the frame number (players supporting
> ReferenceTimecode should convert the frame number accordingly to a
> drop-frame or non-drop-frame display). So if ReferenceTimecodeForm=1, the
> Block stores 0x00BC, and the frame duration is NTSC, then the displayed
> value would be 00:00:06:08. The next value 00:00:06:09, etc.
>
> I propose that one block per ReferenceTimecode not be required for simple
> incrementing ReferenceTimecode, but that the ReferenceTimecode value of the
> next video frame be considered to be either 1 greater than the previous
> value (if ReferenceTimecodeForm is 1 or 2) or increased by the duration of
> the corresponding video frame.
>
> If the ReferenceTimecode is non-continuous then a new ReferenceTimecode
> value in a new Block with a new Timecode (Matroska meaning of Timecode)
> could be inserted at the point of the discontinuity.
>
> Comments?
> Dave Rice
>
>
Best,

Kieran.

--001a1140235e26233705290491af
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Jan 10, 2016 at 10:57 PM, Dave Rice <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:dave@dericed.com" target=3D"_blank">dave@dericed.com</a>&gt;</=
span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0=
px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-le=
ft-style:solid;padding-left:1ex">Hi all,<br></blockquote><div><br></div><p =
dir=3D"ltr" style=3D"font-size:13px">Hi,=C2=A0</p><div><span style=3D"font-=
size:13px">I don&#39;t have much to add except that I&#39;m delighted to se=
e this addressed and it looks like a great addition to the matroska format.=
 Some comments further down.</span></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo=
rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Here is an early draft of Elements for managing ReferenceTimecode tracks. M=
atroska uses the term &#39;Timecode&#39; to reference presentation timestam=
ps, whereas other formats (QuickTime, MXF) use &#39;Timecode&#39; to refere=
nce a time reference that is added to the timeline which is inpendent of th=
e presentation (i.e. a QuickTime file with a timecode track that starts at =
one hour aka 1:00:00;00 would not cause a one hour delay before playback st=
arts). In the context of Matroska I am using ReferenceTimecode (for now) to=
 refer to QuickTime/MXF style timecode tracks.<br>
<br>
TrackType:<br>
Add to the TrackType definition to list &quot;0x13: timecode,&quot;<br>
<br>
CodecID:<br>
Add the following timecode Codec IDs.<br>
Codec ID=C2=A0 =C2=A0 =C2=A0 =C2=A0 | Name=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0| Description<br>
T_QUICKTIME=C2=A0 =C2=A0 =C2=A0| QuickTime Timecode | Timecode data as stor=
ed in QuickTime, e.q. tmcd. The CodecPrivate contains all additional data t=
hat is stored in the &#39;tcmd&#39; (timecode) atom in the QuickTime file.<=
br>
Others? LTC? VITC?<br></blockquote><div><br></div><span style=3D"font-size:=
13px">I have mostly encountered QuickTime tmcd info thus far. I haven&#39;t=
 reformatted any mxfs as mkv yet, but tmcd info within matroska would be fa=
ntastic from my perspective.</span><span class=3D"im" style=3D"font-size:13=
px"><br></span><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_q=
uote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-c=
olor:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Proposed elements under TrackEntry:<br>
<br>
Element Name: ReferenceTimecode<br>
Level:=C2=A0 =C2=A0 =C2=A0 =C2=A0 3<br>
ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[EF]<br>
Mandatory:=C2=A0 =C2=A0 -<br>
Multiple:=C2=A0 =C2=A0 =C2=A0-<br>
Default:=C2=A0 =C2=A0 =C2=A0 -<br>
Type:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0m<br>
Description:=C2=A0 ReferenceTimecode settings<br>
<br>
Element Name: ReferenceTimecodeForm<br>
Level:=C2=A0 =C2=A0 =C2=A0 =C2=A0 4<br>
ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[EF][A1]<br>
Mandatory:=C2=A0 =C2=A0 mand.<br>
Multiple:=C2=A0 =C2=A0 =C2=A0-<br>
Range:=C2=A0 =C2=A0 =C2=A0 =C2=A0 0-2<br>
Default:=C2=A0 =C2=A0 =C2=A0 0<br>
Type:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0u<br>
Description:=C2=A0 Indicates the form of expression used to present the tim=
ecode (using HH for hours, MM for minutes, SS for seconds, mmm for millisec=
onds, ff for frames).<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0: HH:MM:SS.mmm<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1: HH:MM:SS:ff (non-drop f=
rame)<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 2: HH:MM:SS;ff (drop frame=
)<br></blockquote><div><br></div><div><span style=3D"font-size:13px">I don&=
#39;t know if this flag is explicitly mentioned in a QuickTime container,bu=
t it seems to me to be a great idea to flag this message info.</span><span =
class=3D"im" style=3D"font-size:13px"><br></span></div><div><span style=3D"=
font-size:13px"><br></span></div><div><br></div><div>=C2=A0</div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width=
:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-lef=
t:1ex">
<br>
Element Name: ReferenceTimecode24HourMax<br>
Level:=C2=A0 =C2=A0 =C2=A0 =C2=A0 4<br>
ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[EF][A2]<br>
Mandatory:=C2=A0 =C2=A0 mand.<br>
Multiple:=C2=A0 =C2=A0 =C2=A0-<br>
Range:=C2=A0 =C2=A0 =C2=A0 =C2=A0 0-1<br>
Default:=C2=A0 =C2=A0 =C2=A0 0<br>
Type:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0u<br>
Description:=C2=A0 Indicates if the timecode should revert to a zero-value =
at the time reference of 24 hours. Set to 1 if the ReferenceTimecode should=
 use a maximum value of 24 hours and wrap values back to zero hours at that=
 point.<br>
<br>
For storage of ReferenceTimecode values in Blocks, I suggest storing a sign=
ed integer (ReferenceTimecode values may be negative). The stored signed in=
teger would be the frame number (players supporting ReferenceTimecode shoul=
d convert the frame number accordingly to a drop-frame or non-drop-frame di=
splay). So if ReferenceTimecodeForm=3D1, the Block stores 0x00BC, and the f=
rame duration is NTSC, then the displayed value would be 00:00:06:08. The n=
ext value 00:00:06:09, etc.<br>
<br>
I propose that one block per ReferenceTimecode not be required for simple i=
ncrementing ReferenceTimecode, but that the ReferenceTimecode value of the =
next video frame be considered to be either 1 greater than the previous val=
ue (if ReferenceTimecodeForm is 1 or 2) or increased by the duration of the=
 corresponding video frame.<br>
<br>
If the ReferenceTimecode is non-continuous then a new ReferenceTimecode val=
ue in a new Block with a new Timecode (Matroska meaning of Timecode) could =
be inserted at the point of the discontinuity.<br>
<br>
Comments?<br>
<span class=3D""><font color=3D"#888888">Dave Rice<br><br></font></span></b=
lockquote><div><br></div><div>Best,</div><div><br></div><div>Kieran.=C2=A0<=
/div></div><br></div></div>

--001a1140235e26233705290491af--


From nobody Mon Jan 11 00:50:14 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D47B61A8827 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 00:50:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id stHx7c2VKM7r for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 00:50:10 -0800 (PST)
Received: from mail-vk0-x236.google.com (mail-vk0-x236.google.com [IPv6:2607:f8b0:400c:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 10B031A8825 for <cellar@ietf.org>; Mon, 11 Jan 2016 00:50:10 -0800 (PST)
Received: by mail-vk0-x236.google.com with SMTP id a123so189845607vkh.1 for <cellar@ietf.org>; Mon, 11 Jan 2016 00:50:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Hk7X1ec5AjIG8vWQWbiWeCIy/6H/RoaQXkBlPiVUGHs=; b=JruEolyvbE8UEtsxu8JtobMvDQF0ofmHdsr4OQZuSplpcwkrrEO0YA6uB+WR676JgP Tmk0F6Qg3InXyuIfb27ozf1uQBzGl8caBko1ggK4gcs0ewI/h8s7yVkGw5rCK6Uqc+AE ru9S21JFVEr0CkYvxI8qJF55EP/8ACmHOT65na5DhV2RZJVkscUJtOyEwzgzhsJNXHvb TY0POoAy6/lml5Eq1mmnQ7D9Pa6y/OFpKiTVu+aPz03zaEZXeHU2XQiRjPCDd3Oj0QIh eAu1NVStS5phfSFuFwp9QCWk6WjeFQmfg2lcphjR1eXVCFJ4hktPvqwbVK/JVMagZX5+ KinQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Hk7X1ec5AjIG8vWQWbiWeCIy/6H/RoaQXkBlPiVUGHs=; b=bIGer5fdiyS38CoPPT727mhrodMuL63BUc4xlRWUZP/13bHiHLlwVe6O7oLKdgfBFL cff+iq/AaUqRefnnPjaYR4uteNMlZa3o7FLTu8Hmv46xEPjyqlKwDbjWmYvZWdOZr9V2 ZHeWg5NXfr9CSQbRcIbLo4yeqX+8beHpQX1A2MFJenvKzNVpySCcb/+4ac0SALl5JEph 4ckYEnjnIYno4BO3i8ibXCKpp+cs7zUKGT8eHErFXqJQB03timrDpRToJ2/sHELGHKkx 7clmrXeEo0uXti+d7/UH4O3TbMjmgTbqVzlan84djNyjUVsNc1c9TTrUPd6Edv0+sYK5 iF5Q==
X-Gm-Message-State: ALoCoQkJvZoPAKYHSYhyvSPihRGChiYzhQzmTyyXXSScmFSzDk/5smqF0CNZzILAT4veA5C+IAgxvCL1XVwQednw9bAxeCcL9w==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr89220466vke.122.1452502208885;  Mon, 11 Jan 2016 00:50:08 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 00:50:08 -0800 (PST)
In-Reply-To: <59916228-8638-4827-8145-5B0206B74A96@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com> <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com> <59916228-8638-4827-8145-5B0206B74A96@dericed.com>
Date: Mon, 11 Jan 2016 09:50:08 +0100
Message-ID: <CAOXsMF+0aS8Jqh-f2BxyZDr=grM0jrZr9gx-rZwhzXDspJaOVA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/QsK9xAksS6QJTBeUfDswHf1Jp8M>
Cc: cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 08:50:13 -0000

2016-01-06 5:35 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 4, 2016, at 3:03 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-04 4:31 GMT+01:00 Dave Rice <dave@dericed.com>:
>>> Hi,
>>>
>>>> On Jan 2, 2016, at 3:41 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>>>
>>>> I'd say the reference here is libebml. It may be the only
>>>> implementation that handles CRC32.
>>>>
>>>> 2015-12-30 1:10 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>>> The EBML CRC Element has many contradictory definitions.
>>>>>
>>>>> Version 1: The Matroska draft states:
>>>>>
>>>>> "The CRC is computed on all the data of the Master element it's in. T=
he CRC element should be the first in it's parent master for easier reading=
. All level 1 elements should include a CRC-32. The CRC in use is the IEEE =
CRC32 Little Endian"
>>>>>
>>>>> Version 2: An older Matroska draft at http://matroska.org/technical/s=
pecs/rfc/index.html states:
>>>>>
>>>>> "The CRC32 container can be placed around any EBML element or element=
s. The value stored in CRC32Value is the result of the CRC-32 [CRC32] check=
sum performed on the other child elements.
>>>>>    CRC32 :=3D c3 container [ level:1..; card:*; ] {
>>>>>      %children;
>>>>>      CRC32Value :=3D 42fe binary [ size:4; ]
>>>>>    }=E2=80=9D
>>>>>
>>>>> Version 3: The EBML draft states:
>>>>>
>>>>> "The CRC is computed on all the data from the last CRC element (or st=
art of the upper level element), up to the CRC element, including other pre=
vious CRC elements. All level 1 elements SHOULD include a CRC-32."
>>>>>
>>>>> Issue with Version 1:
>>>>> Usually the Matroska version is considered authoritative since that d=
ocumentation was the most maintained; however, in this case the Matroska de=
finition doesn=E2=80=99t make sense as it implies that the CRC Element is d=
ocumenting a CRC value of data that includes the CRC Element itself.
>>>>>
>>>>> Issue with Version 2:
>>>>> This definition refers the CRC Element as a Master-element (aka =E2=
=80=9Ccontainer=E2=80=9D) with a sub-element (called =E2=80=9CCRC32Value" 0=
x42FE) that contains the hash. AFAIK there has never been such an implement=
ation. Additionally this draft does not have an open license.
>>>>>
>>>>> Issues with Version 3:
>>>>>
>>>>> I think there is a typo and that: "All level 1 elements SHOULD includ=
e a CRC-32=E2=80=9D should be "All level 1 Master-elements SHOULD include a=
 child CRC Element.=E2=80=9D
>>>>> The procedure for using multiple CRC Elements within a single Master-=
element seems very inefficient with each subsequent CRC representing the da=
ta of all prior CRC Elements within the same Parent Element. This is like a=
 rolling checksum although I=E2=80=99m not sure that is what was intended.
>>>>> Also the definition implies that the CRC element can occur multiple t=
imes within the parent element while the definition in both EBML and Matros=
ka clarifies that CRC is not a =E2=80=98multiple' element.
>>>>>
>>>>> So, can we clarify the following:
>>>>>
>>>>> - The CRC Element may only occur 0 or 1 times as a child element of a=
 Master-Element.
>>>>
>>>> Agreed.
>>>>
>>>>> - That the CRC Element is a binary element and not a Master-element
>>>>
>>>> Correct
>>>>
>>>>> - There is no definition for a CRC32Value element
>>>>
>>>> The code in libebml assumes the element can be anywhere and the value
>>>> is processed in memory on all the data of the Master element minus the
>>>> Checksum itself.
>>>> https://github.com/Matroska-Org/libebml/blob/master/src/EbmlMaster.cpp=
#L537
>>>>
>>>> That seems not practical, especially because of the in-memory step.
>>>> There are also a TODO that raises some issues with Checksum:
>>>> /// \todo find another way when not all default values are saved or
>>>> (unknown from the reader !!!)
>>>
>>> That seems unexpected to me. If the CRC represents data that is not pre=
sent but given default values from the EBML Schema, then the CRC validation=
 requires full semantic knowledge. My preference would be to checksum the d=
ata as stored rather than as the data is understood (especially since that =
understanding may change).
>>>
>>>>> - Is there a placement requirement or suggestion for the use of the C=
RC element within a parent (i.e. "should be the first in it's parent master=
=E2=80=9D)
>>>>
>>>> IMO it should be first. It doesn't make sense to signal it at the end.
>>>> Either it's present and first or it's not there. Hopefully that will
>>>> be the only element that needs to come first.
>>>
>>> Technically at Level 0 the EBML Master-element also has a requirement t=
o appear first. :)
>>>
>>>>> - What data exactly does the CRC value represent?
>>>>>       All Element Data of the parent element (unfeasible)?
>>>>
>>>> It's feasible, although that implies knowing you need to process the
>>>> checksum while doing the children, if you don't want to do a fake
>>>> render in memory afterwards.
>>>
>>> I mean that it isn=E2=80=99t feasible for a CRC32 element to represents=
 the whole Element Data of the Master-element since then the checksum would=
 have to be a checksum of data that includes itself.
>>>
>>>>>       The entire Parent Element (including the parent=E2=80=99s Eleme=
nt ID, Element Data Size, and Element Data) (also unfeasible)?
>>>>
>>>> IMO only the data inside the Master element it's contained.
>>>
>>> Agreed, but that data minus the CRC32 element itself (as you note above=
).
>>>
>>>>>       All Element Data of the parent element excepting the child CRC =
element?
>>>>>       The entire Parent Element (including the parent=E2=80=99s Eleme=
nt ID, Element Data Size, and Element Data) excepting the child CRC element=
?
>>>>>       All data from the beginning of the Master-element up to the beg=
inning of the CRC Element?
>>>>>       All data from the beginning of the Master-element=E2=80=99s Ele=
ment Data up to the beginning of the CRC Element?
>>>>
>>>> It should also be the data as they are rendered, meaning elements not
>>>> written (default) or with a 0 size (default value) should be processed
>>>> as they are written in the file, and not as they might be represented
>>>> in memory. That should make some CRC tools work even without knowing
>>>> the semantic.
>>>
>>> I haven=E2=80=99t yet found a file in the wild with CRC Elements within=
 Master-elements that contain non-present mandated child elements that have=
 defaults.
>>>
>>>>> I understand these clarifications have an impact on the validity of e=
xisting EBML implementations, but I=E2=80=99ve rarely seen any implementati=
on of the EBML CRC element (better documentation may encourage such impleme=
ntations ;)
>>>
>>> Here is a survey of Matroska files in the wild which contain CRC32 elem=
ents.
>>>
>>> Sample 1 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> File: http://archive.org/download/159753000/blackpool_1-0_manutd-regmo.=
blogspot.com.mkv
>>> Muxing App: Haali DirectShow Matroska Muxer 1.10.262.12
>>> Writing App: gdsmux
>>> Note: This file has 5 CRC32 Elements. All Level 1 Master-elements inclu=
de a CRC32 Element as the first child Element. The CRC32 value represents t=
he remaining data of the Master-element that it is contained within. This f=
ile is done exactly as suggested by the Matroska spec (Version 1 noted abov=
e). But it is invalid according to the EBML draft Specification and older M=
atroska RFC Draft (Version #2 and #3).
>>>
>>> Sample 2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> http://archive.org/download/3asq.comBNXFANTASTECMidoHeRo/3asq.com-BNX-E=
P 01-[F A N T A S T E C-MidoHeRo].mkv
>>> Muxing App: libebml-0.7.5 & libmatroska-0.7.7
>>> Writing App: VirtualDubMod 1.5.10.2 (build 2540/release)
>>> Note: Similar to sample #1 but includes 1,413 Cluster elements so LOTS =
MOAR CRC values!
>>>
>>> Other samples:
>>> File: http://archive.org/download/Al3asqAlfilsofOnePiece3/[Al3asq - Alf=
ilsof] One Piece 0357.mkv
>>> Muxing App: libebml-0.7.7 & libmatroska-0.8.1
>>> Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build 2=
550/release)
>>> Note: Similar as sample #2
>>>
>>> File: http://archive.org/download/BAR2010-2011/LaLiga/05tur_Atletic_Bil=
bao-Barcelona_(0-1)_Keita_HD.mkv
>>> Muxing App: Haali DirectShow Matroska Muxer 1.9.42.1
>>> Writing App: gdsmux
>>> Note: similar to #1
>>>
>>> File: http://archive.org/download/L0rdGwynSuperGhoulnGhostChouMakaiMura=
/L0rd_Gwyn - Super Ghoul'n'Ghost - Chou Makai Mura.mkv
>>> Muxing App: libebml v0.7.8 + libmatroska v0.8.1
>>> Writing App: Cyberlink Matroska Muxer v1.0.0
>>>
>>> File: http://archive.org/download/OP08-Shashah.tv/OP357_Shashah-tv.mkv
>>> Muxing App: libebml-0.7.7 &amp; libmatroska-0.8.1
>>> Writing App: VirtualDubMod 1.5.10.3 | www.virtualdub-fr.org || (build 2=
550/release)
>>>
>>> I looked over about 20 more samples but all of them either used Haali o=
r libebml as muxers and gdsmux, VirtualDubMod, Cyberlink, or mkvclean as wr=
iters. All reviewed samples included CRC32 (if at all) as the first child e=
lement of all level 1 Master-elements. I could not find any samples with a =
CRC32 Element at any other level besides level 2 or a CRC32 Element that wa=
sn=E2=80=99t the first child element of its parent. From this I think that =
the EBML and earlier Matroska RFC Draft definitions of CRC (version #2 and =
#3) are either wrong or never apparently used.
>>>
>>> I propose to refine the Matroska.org definition of the CRC element as m=
ove that to the EBML specification.
>>
>> Agreed.
>
> Here is a proposed rewrite of the CRC-32 Element definition. It is based =
upon the matroska.org=E2=80=99s definition with additional edits for clarit=
y.
>
> The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of all=
 the Element Data of the Parent Element as stored except for the CRC-32 Ele=
ment itself. The CRC element SHOULD be the first in its Parent

I think it should be "MUST be the first in its Parent".

Element for easier reading. All Elements at Level 1 of an EBML
Document SHOULD include a CRC-32 Element as a Child Element. The CRC
in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 standard
and in section 8.1.1.6.2 of ITU-T recommendation V.42. The CRC value
MUST use little endian storage.
>
> The revision is with a pull request at https://github.com/Matroska-Org/eb=
ml-specification/pull/46.
>
> Dave Rice

--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 01:15:56 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CF8451A8842 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 01:15:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.822
X-Spam-Level: ***
X-Spam-Status: No, score=3.822 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_54=0.6, J_CHICKENPOX_55=0.6, J_CHICKENPOX_64=0.6, J_CHICKENPOX_65=0.6] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HaG_cOyHNNjW for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 01:15:47 -0800 (PST)
Received: from mail-vk0-x22b.google.com (mail-vk0-x22b.google.com [IPv6:2607:f8b0:400c:c05::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9857F1A884F for <cellar@ietf.org>; Mon, 11 Jan 2016 01:15:47 -0800 (PST)
Received: by mail-vk0-x22b.google.com with SMTP id n1so66437070vkb.3 for <cellar@ietf.org>; Mon, 11 Jan 2016 01:15:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=y1YY6/7GUDjo9jJuRji8weQk9c+m+RlAZQT9TBr8btM=; b=qQlatlhy80PJ40eaZiIUD1qP4itFUuX/4JGc+/I2PnvTstuHZAT+Ev9cTAjWidV86E H+o9f9Ih2Sgo7K0LrWMgND0IqkyO48N35sbJL+q+5qkgsY7ywmIih8zVm5/8av4bCYsS qpjLiP60ZwoVCa2z+FGmfznrmCmidb/dYitkeJONMH+5isnpyeELgWuDiq6Zocyw/uUG /6hQG4la3God36xsOuxfL6VybgGrxUwyb2VCkuMokVFkFkFdZk1LDISYRk25lP7BRj3W XHa277/tugea5GCn0M+q06ZRNMVfB9R2UKNDd9q+NAjl3/et8FR5b0Ftsvr0fyLpSWip K/aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=y1YY6/7GUDjo9jJuRji8weQk9c+m+RlAZQT9TBr8btM=; b=MLj5Pv59GPf7zySLfhfArYMjK/JQT19babEryBMjwW9luEOtAJ4BbRUWJxqPdXdY86 2ZxTsbZCGeCTHrC7gaIxsfsTRd5Lv9zEAVhByUwKXiVIjlfMbzBq6GRqqOVSeTmk5QUW n7Ve5m+jZuxEW6n5j1swoouvTEOUxpuFlStY0luf9N7Y/7Zq7EqFJ+aWOSPb3ATvVU3g 4YLdUWIapreoMjYY1WU9g23qtDDJ42kJj7fX2PBqGuA5QsShLqOmBQN8/ptMM8U7P4JL Zo/ilLtkh59itsusOLy195UFZzPdLaqrXfq0MKWY5MwhdnaXV/5lEhKaroe/aJxKjUxF tEkg==
X-Gm-Message-State: ALoCoQlm9E9NVfBU9RI3VhL2MfV1vHeUm8b6fGNE3s8w1p0QMoN3FRaGeCni41wJ2GkvfI5FIRdt7PdVOFytbKQ7zCmtHOYdCw==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr88883583vkd.87.1452503746785; Mon, 11 Jan 2016 01:15:46 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 01:15:46 -0800 (PST)
In-Reply-To: <2C5B6A5E-A2DC-46F8-A0F6-F8A11ED34C31@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com> <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com> <59916228-8638-4827-8145-5B0206B74A96@dericed.com> <568D59FD.4030702@mediaarea.net> <2C5B6A5E-A2DC-46F8-A0F6-F8A11ED34C31@dericed.com>
Date: Mon, 11 Jan 2016 10:15:46 +0100
Message-ID: <CAOXsMFJvP_EUUDXVCyc11=f4OnJ_L2D4Gr2ydprB2Aiga6FNEg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/LcVK2PxrHJ04tZNCiBYL8smHCgk>
Cc: Jerome Martinez <Jerome@mediaarea.net>, cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element (and some bit of FFV1 CRC)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 09:15:50 -0000

2016-01-09 22:06 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi,
>
>> On Jan 6, 2016, at 1:16 PM, Jerome Martinez <Jerome@MediaArea.net> wrote=
:
>>
>> Le 06/01/2016 05:35, Dave Rice a =C3=A9crit :
>>> [...]
>>>
>>> Here is a proposed rewrite of the CRC-32 Element definition. It is base=
d upon the matroska.org=E2=80=99s definition with additional edits for clar=
ity. The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of =
all the Element Data of the Parent Element as stored except for the CRC-32 =
Element itself. The CRC element SHOULD be the first in its Parent Element f=
or easier reading. All Elements at Level 1 of an EBML Document SHOULD inclu=
de a CRC-32 Element as a Child Element. The CRC in use is the IEEE-CRC-32 a=
lgorithm as used in the ISO 3309 standard and in section 8.1.1.6.2 of ITU-T=
 recommendation V.42. The CRC value MUST use little endian storage.
>>
>> CRC definition is a pain, with often implementation details different an=
d missing from the spec, despite the fact developers need such details.
>> For example with IEEE-CRC-32, we can see on Wikipedia:
>> https://en.wikipedia.org/wiki/Polynomial_representations_of_cyclic_redun=
dancy_checks
>> that both Gzip (similar to the one used by Matroska) and MPEG-2 are list=
ed as CRC-32 (as well as "ITU-T V.42")
>> We also see in original FFV1 spec "The CRC generator polynom used is the=
 standard IEEE CRC polynom"
>>
>> But:
>> - MPEG-2 uses an initial content of the register of 0xFFFFFFFF and runs =
on a Big Endian bitstream (final value not stored, must be 0 if not reverse=
d, 0xFFFFFFFF if reversed). Note: MPEG-2 don't claim to be IEEE compliant)
>> - Matroska uses an initial content of the register of 0xFFFFFFFF and run=
s on a Little Endian bitstream, final value is reversed and stored in Littl=
e Endian
>> - FFV1 uses an initial content of the register of 0x00000000 and runs on=
 a Big Endian bitstream, final value is not reversed and stored in Big Endi=
an
>> All different despite the fact they are in the "CRC-32" group.
>>
>> I read section 8.1.1.6.2 of ITU-T recommendation V.42, it says:
>> "As a typical implementation at the transmitter, the initial content of =
the register of the device computing the remainder of the division is prese=
t to all 1s"
>>
>> "typical" is not "MUST."
>>
>> And I don't see in section 8.1.1.6.2 that the result should be reversed.
>>
>> I don't have access to ISO 3309.
>>
>> So I propose to be more explicit:
>> "The CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 sta=
ndard and in section 8.1.1.6.2 of ITU-T recommendation V.42, with initial v=
alue of 0xFFFFFFFF. The CRC value MUST be computed on a little endian bitst=
ream and MUST use little endian storage."
>>
>> I already added some details on the FFV1 spec some time ago (when I trie=
d to reuse MPEG-2 CRC code for FFV1):
>> https://github.com/FFmpeg/FFV1/commit/0e67a72a75485b95261be2e1f392580046=
66c4a1
>> (the initial value is 0x00000000)
>> Maybe I need to add that it must be computed on a big endian bitstream a=
nd that the result is stored not reversed (big endian storage is forced for=
 the whole spec, so no need to add such info here) in order to be explicit =
on all implementation details.
>>
>> I am not a CRC expert, just a developer facing issues when I need to che=
ck CRCs, so don't hesitate to correct me if I am wrong on the analysis of t=
he issues I have when I implement, and maybe there are already a "standard"=
 way to define a CRC at the IETF (I need to dig further, but I see e.g. the=
 Polynomial in some IETF documents).
>>
>> Note: checking (not a reference)
>> http://reveng.sourceforge.net/crc-catalogue/17plus.htm
>> V.42 is defined as:
>> width=3D32 poly=3D0x04c11db7 init=3D0xffffffff refin=3Dtrue refout=3Dtru=
e xorout=3D0xffffffff check=3D0xcbf43926 name=3D"CRC-32"
>> CRC-32/MPEG-2 is defined:
>> width=3D32 poly=3D0x04c11db7 init=3D0xffffffff refin=3Dfalse refout=3Dfa=
lse xorout=3D0x00000000 check=3D0x0376e6e7 name=3D"CRC-32/MPEG-2"
>>
>> If it is obvious that "IEEE-CRC-32" is the way it is implemented in Matr=
oska and only this way, no need of details and I guess we need to update FF=
V1 spec with the same kind of details ("CRC-32/FFV1"?)
>
> Based on Jerome=E2=80=99s comments here is an update to the CRC Element f=
or the EBML specification:
>
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of all=
 the Element Data of the Parent Element as stored except for the CRC-32 Ele=
ment itself. The CRC element SHOULD be the first in its Parent Element for =
easier reading. All Elements at Level 1 of an EBML Document SHOULD include =
a CRC-32 Element as a Child Element. The CRC in use is the IEEE-CRC-32 algo=
rithm as used in the ISO 3309 standard and in section 8.1.1.6.2 of ITU-T re=
commendation V.42, with initial value of 0xFFFFFFFF. The CRC value MUST be =
computed on a little endian bitstream and MUST use little endian storage.
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Looking good apart from the SHOULD be first vs MUST be first. But
maybe the wording might be altered to say it MUST be the first, when
it is present.

> I agree with Jerome that to refer simply to =E2=80=9CCRC=E2=80=9D presume=
s a lot and that it=E2=80=99s better to be explicate with initial values an=
d endianness of computation of data and storage of the hash. I updated the =
pull request at https://github.com/Matroska-Org/ebml-specification/pull/46 =
to include the new definition, https://github.com/Matroska-Org/ebml-specifi=
cation/pull/46.
> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 01:37:41 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B46E21A8842 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 01:37:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rs-bVXHuG5Kx for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 01:37:36 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7623C1A8874 for <cellar@ietf.org>; Mon, 11 Jan 2016 01:37:36 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id n1so66676206vkb.3 for <cellar@ietf.org>; Mon, 11 Jan 2016 01:37:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=YH47+Whigiwgydt3O/kLVOQOwaZGt00BYcna2pPidY4=; b=DsE+a8tF1Sv+HYrhfzmC2DK1bRZpUU2Se+IaxUc8EqwLT6c1SKkl0YqucFkj/Y58Uy 9i5W2S4s5S/X/vCKbQOWB4VEkKZdi1FhAxiIyx+Q69BqJcxkhJ7eLsaumZZf9B4oKKR7 6Q52mhWiuyF1i8YcVzXGHe73OWd3xI/srYBBhj+apxnz97CpuHRsTSEKfssqOhs0K2z6 VEHGmSXHrSJy8RFuTxv1WTphlT3WCcMix8kGfVEsuSoDrHwVwyXvIPieRB4WsE7n/bh9 Z4fwoOHXLZFVc6HdmH33UEwadC2d39UVenL8SimVef+mu7F3l5UexresvY7b/UgnHERG Xx1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=YH47+Whigiwgydt3O/kLVOQOwaZGt00BYcna2pPidY4=; b=aE++INRdoHriLbJ8OdWF1Qx3Z+lWwRFyuLKG7lGoa6Uyl+h0dRKuZ3P+KXTYKKRRgq QuVNih82mSE2Z6l5ym/6c7uHzKU86fBGYe4GDAEL08TqM5S6nOWEe/yjd4I60LX1FAPS qkyF8ubDefJolkZMxHuN3Tavehc8Ii/HPL+Z1ajbR49ry1Wvreg3ACSAZuHJcq9H+dSL l5jT1P3Ctls96MjwIjdpQasQp0124lGfRXppkDuTgHmfwo/13rDorND7TXdl6t7eMmuY goPZS+A4BDYfhduO9eC/2nooaClOXcQ/LpLZYWEPmCNVAuGWyQtgp7R4fLCk91VEojnx 6cng==
X-Gm-Message-State: ALoCoQl5lP8yKNWomN/xUkuOgtMLS/gd3HgkhTEu81+raDsd+rkfN80hZSKbKePvo4dLw42I6bbkzsas4+vOETiNpVzOTlpGdA==
MIME-Version: 1.0
X-Received: by 10.31.50.213 with SMTP id y204mr67118473vky.109.1452505055604;  Mon, 11 Jan 2016 01:37:35 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 01:37:35 -0800 (PST)
In-Reply-To: <262671D6-2C76-4D7B-BE48-A5D6909D2A8A@dericed.com>
References: <C4021E89-45C0-4DC8-BD60-9072469D1F39@dericed.com> <20151231083323.GB15920@bunkus.org> <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com> <84C35B47-B124-4FCE-ABDE-A0EEC19E373E@dericed.com> <CAOXsMFKM+KiuAfSPK8huAOvConjxG699-FM6KRZ-94cp3k9nHg@mail.gmail.com> <262671D6-2C76-4D7B-BE48-A5D6909D2A8A@dericed.com>
Date: Mon, 11 Jan 2016 10:37:35 +0100
Message-ID: <CAOXsMFKKzz8usBuckuZ7JCyi9OWGs_dXgamDyiu1dBvTFjWMMw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Z6OavR1VhOrO-nip9Ht30_LtlQY>
Cc: Moritz Bunkus <moritz@bunkus.org>, cellar@ietf.org
Subject: Re: [Cellar] test4.mkv and EBML Elements with Unknown Size
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 09:37:39 -0000

2016-01-10 20:32 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi,
>
>> On Jan 4, 2016, at 2:44 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-03 22:50 GMT+01:00 Dave Rice <dave@dericed.com>:
>>> Hi,
>>>
>>>> On Jan 2, 2016, at 4:06 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>>>
>>>> 2015-12-31 9:33 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>>>> Hey,
>>>>>
>>>>>> The Matroska Test file suite is at
>>>>>> http://matroska.org/downloads/test_w1.html. This includes test4.mkv
>>>>>> which is an example of a live stream recording. However the file
>>>>>> doesn=E2=80=99t appear to adhere to the EBML specs. It the file writ=
ten wrong
>>>>>> or are we missing something in the EBML specification?
>>>>>>
>>>>>> Within this file is this extract from the beginning of the Segment
>>>>>> element to the end of the Element ID of the Info Element.
>>>>>>
>>>>>> 18 53 80 67 FF 0A 0A 0A=E2=80=A6
>>>>>
>>>>> Uhm=E2=80=A6 this is indeed invalid. A master must only contain child=
 elements,
>>>>> not additional data. To put it differently: all child elements of a
>>>>> master element must cover the whole space occupied by the master with=
out
>>>>> any gaps in between.
>>>>
>>>> Did we handle that part in the newer specs ? It makes sense.
>>>
>>> Partly, in the EBML Document section, https://github.com/Matroska-Org/e=
bml-specification/blob/master/specification.markdown#ebml-document, it stat=
es: "An EBML Document MAY only consist of EBML Elements and MUST NOT contai=
n any data that is not part of an EBML Element.=E2=80=9D But this refers to=
 the EBML Document as a whole and not the sub-elements.
>>>
>>> The Master-element definition says: =E2=80=9CThe Master-element contain=
s zero, one, or many other elements.=E2=80=9D But the language is not exclu=
sive to say that the Master-element may ONLY contain zero, one, or many oth=
er elements.
>>>
>>> I propose to add to the Master-element definition the line: =E2=80=9CTh=
e Element Data stored within Master-elements MUST only consist of EBML Elem=
ents and MUST NOT contain any data that is not part of an EBML Element.=E2=
=80=9D I send this as a pull request here https://github.com/Matroska-Org/e=
bml-specification/pull/45. The patch is here:
>>
>> But that makes such streaming files illegal according to the specs.
>> VLC does the same when "broadcast" streaming over HTTP. And even a
>> Chromecast can handle such stream starting with the end of a Cluster
>> (ie garbage).
>
> Here is the current definition of Master-element and a proposed update ba=
sed on the discussion in this thread.
>
> current definition of Master-element
> =3D=3D=3D=3D=3D=3D=3D=3D
> The Master-element contains zero, one, or many other elements. The Elemen=
t Data stored within Master-elements MUST only consist of EBML Elements and=
 MUST NOT contain any data that is not part of an EBML Element. Elements co=
ntained within a Master-element must be defined for use at levels greater t=
han the level of the Master-element. For instance is a Master-element occur=
s on level 2 then all contained Elements must be valid at levels 3.
> =3D=3D=3D=3D=3D=3D=3D=3D
>
> proposed update to definition of Master-element
> =3D=3D=3D=3D=3D=3D=3D=3D
> The Master-element contains zero, one, or many other elements. Elements c=
ontained within a Master-element must be defined for use at levels greater =
than the level of the Master-element. For instance is a Master-element occu=
rs on level 2 then all contained Elements must be valid at levels 3. Elemen=
t Data stored within Master-elements SHOULD only consist of EBML Elements a=
nd SHOULD NOT contain any data that is not part of an EBML Element. When EB=
ML is used in transmission or streaming, data that is not part of an EBML E=
lement is permitted to be present within a Master-element. In this case, th=
e reader should read the Element Data of the Master-element octet by octet =
until a valid Element ID at the same level or the next greater level of the=
 Master-element is found. What Element IDs are considered valid within a Ma=
ster-element is identified by the

I think the way it must be discard is too specific. This is
implementation details that should not be in the specs. IMO something
like "the reader should skip data until a valid Element ID at the same
level or the next greater level of the Master-element is found".

EBML Schema for that version of the EBML Document Type. Any data
contained with a Master-element that is not part of an Element SHOULD
be ignored.
> =3D=3D=3D=3D=3D=3D=3D=3D
>
> Question: Can non-Element data in Master-elements be restricted to certai=
n EBML Levels?

If that ever occurs that should be specific to specific semantics. So
the question might be: should it be part of the semantic definition?
We haven't got to that part of Matroska yet. So we may keep that
question for when we get there. IMO the tricky question is whether
semantic definition should be able to generate code solely based on
this definition, regardless of the format. This is not the case in
Matroska where some elements refer to other elements directly or
indirectly.

>> Given it's mostly compressed data it can be any octet.
>> That's why the level-1 elements are all 4 octets in Matroska, to avoid
>> false positives.
>
> This is a good point, but it is not noted within the EBML Specification. =
I propose adding this to the definition of =E2=80=98id=E2=80=99 within the =
EBML Schema Element Attributes section:
>
> "To reduce the risk of false positives while parsing EBML Streams, Level =
1 EBML Element IDs SHOULD be at least 4 octets in length. Element IDs at Le=
vel 1 MAY use shorter octet lengths to facilitate padding and optimize edit=
s to EBML Documents; for instance, the EBML Void Element uses an Element ID=
 with a one octet length to allow its usage in more writing and editing sce=
narios."

Level 0 as well. I agree with the addition.

>> It was not originally designed to work like that but GStreamer
>> implemented streaming like that and luckily it was fitting the
>> existing parsers. VLC followed later. Knowing the VLC code, it would
>> take a bit of work to allow clean EBML data to be sent. For now the
>> different muxing/sending stages don't signal synchronization points
>> like that. Only the header (Segment Info).
>>
>> Again, IMO it's not an issue for parsers that should be resilient to
>> bad data. Changing this text will not make much difference regarding
>> to that. Maybe the specs should also cover what happens when bad data
>> are found ? Like bad CRC, duplicate elements, etc.
>
> I think it should though perhaps in a new section. I added an issue here =
https://github.com/Matroska-Org/ebml-specification/issues/48 to deal with t=
his eventually, but not to expand the scope of this current thread too much=
.
>
>>> From ba9973706d35934ea4c5e8f50d66d5ac3f725fd2 Mon Sep 17 00:00:00 2001
>>> From: dericed <dave@dericed.com>
>>> Date: Sun, 3 Jan 2016 16:29:43 -0500
>>> Subject: [PATCH] clarify that Master-elements may only contain elements
>>>
>>> ---
>>> specification.markdown | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/specification.markdown b/specification.markdown
>>> index b90020c..4159bdb 100644
>>> --- a/specification.markdown
>>> +++ b/specification.markdown
>>> @@ -141,7 +141,7 @@ Element Data Type:   Master-element
>>>
>>>     Endianness:     None
>>>     Length:         A Master-element may declare any length (included z=
ero) up to the maximum Element Data Size value permitted. The Master-elemen=
t may also use an unknown length. See the section on Element Data Size for =
rules that apply to elements of unknown length.
>>> -    Definition:     The Master-element contains zero, one, or many oth=
er elements. Elements contained within a Master-element must be defined for=
 use at levels greater than the level of the Master-element. For instance i=
s a Master-element occurs on level 2 then all contained Elements must be va=
lid at levels 3.
>>> +    Definition:     The Master-element contains zero, one, or many oth=
er elements. The Element Data stored within Master-elements MUST only consi=
st of EBML Elements and MUST NOT contain any data that is not part of an EB=
ML Element. Elements contained within a Master-element must be defined for =
use at levels greater than the level of the Master-element. For instance is=
 a Master-element occurs on level 2 then all contained Elements must be val=
id at levels 3.
>>>
>>> Element Data Type:   Binary
>>>
>>> --
>>> 2.6.4
>>>
>>>> But is it
>>>> possible that one byte is missing from a file ? If so the whole thing
>>>> becomes unusable just because of that missing byte. If it's at the end
>>>> of a master or an non vital element, it should not matter too much.
>>>> But that's a tricky thing to detect (an extra byte is easier).
>>>> Transfers over UDP may have these gaps of data.
>>>
>>> These suggestions may pertain more to suggestions on a parser than for =
the specification.
>>>
>>>> Also the segment being of unknown/infinite size, anything is contained
>>>> within, unless a new Segment comes.
>>>
>>> According to the current EBML draft spec: "The end of the Master-elemen=
t is determined by the beginning of the next element that is not a valid su=
b-element of the Master-element.=E2=80=9D I realize that this need a little=
 more clarity so I added this patch to the same pull request referenced abo=
ve.
>>>
>>> From 64bc489282a51891535815e0cea4d00b42c25564 Mon Sep 17 00:00:00 2001
>>> From: dericed <dave@dericed.com>
>>> Date: Sun, 3 Jan 2016 16:37:50 -0500
>>> Subject: [PATCH] clarification on the end of Master-elements
>>>
>>> ---
>>> specification.markdown | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/specification.markdown b/specification.markdown
>>> index 4159bdb..e1b6857 100644
>>> --- a/specification.markdown
>>> +++ b/specification.markdown
>>> @@ -71,7 +71,7 @@ The Element Data Size expresses the length in octets =
of Element Data. The Elemen
>>>
>>> Although an Element ID with all VINT\_DATA bits set to zero is invalid,=
 an Element Data Size with all VINT\_DATA bits set to zero is allowed for E=
BML Data Types which do not mandate a non-zero length. An Element Data Size=
 with all VINT\_DATA bits set to zero indicates that the Element Data of th=
e Element is zero octets in length. Such an Element is referred to as an Em=
pty Element. If an Empty Element has a `default` value declared then that d=
efault value MUST be interpreted as the value of the Empty Element. If an E=
mpty Element has no `default` value declared then the semantic meaning of E=
mpty Element is defined as part of the definition of the EBML Element Types=
.
>>>
>>> -An Element Data Size with all VINT\_DATA bits set to one is reserved a=
s an indicator that the size of the Element is unknown. The only reserved v=
alue for the VINT\_DATA of Element Data Size is all bits set to one. This r=
ule allows for an Element to be written and read before the size of the Ele=
ment is known; however unknown Element Data Size values SHOULD NOT be used =
unnecessarily. An Element with an unknown Element Data Size MUST be a Maste=
r-element in that it contains other EBML Elements as sub-elements. The end =
of the Master-element is determined by the beginning of the next element th=
at is not a valid sub-element of the Master-element.
>>> +An Element Data Size with all VINT\_DATA bits set to one is reserved a=
s an indicator that the size of the Element is unknown. The only reserved v=
alue for the VINT\_DATA of Element Data Size is all bits set to one. This r=
ule allows for an Element to be written and read before the size of the Ele=
ment is known; however unknown Element Data Size values SHOULD NOT be used =
unnecessarily. An Element with an unknown Element Data Size MUST be a Maste=
r-element in that it contains other EBML Elements as sub-elements. The end =
of a Master-element with unknown size is determined by the beginning of the=
 next element that is not a valid sub-element of that Master-element.
>>>
>>> For Element Data Sizes encoded at octet lengths from one to eight, this=
 table depicts the range of possible values that can be encoded as an Eleme=
nt Data Size. An Element Data Size with an octet length of 8 is able to exp=
ress a size of 2^56-2 or 72,057,594,037,927,934 octets (or about 72 petabyt=
es).
>>>
>>> --
>>> 2.6.4
>>
>> Fine with me.
>>
>>>>> I honestly don't know that file was created. libmatroska contains
>>>>> programs to create a couple of those files in its "tests" sub-directo=
ry,
>>>>> but test4 is not among them. Judging from the download page you've
>>>>> linked it's possible that the file was created with mkclean =E2=80=93=
 in that
>>>>> case I would say that mkclean produces non-compliant files.
>>>>>
>>>>> Steve?
>>>>
>>>> IIRC it was created manually with a hex editor.
>>>>
>>>>>> I understand that 0x18538067 is the Element ID of the Segment Elemen=
t.
>>>>>>
>>>>>> The 0xFF represents the case where as the EBML draft spec states, "A=
n
>>>>>> Element Data Size with all VINT_DATA bits set to one is reserved as =
an
>>>>>> indicator that the size of the Element is unknown.=E2=80=9D
>>>>>
>>>>> Correct.
>>>>>
>>>>>> Next, between the Element Data Size of the Segment Element and the
>>>>>> beginning of the Info Element there is 134 bytes of 0x0A! In this ca=
se
>>>>>> 0x0A can not be a valid start of an Element ID since for this file t=
he
>>>>>> EBMLMaxIDLength is 4 (via the default). Thus the Segment
>>>>>> Master-element has child data that is not an EBML Element.
>>>>>
>>>>> Correct.
>>>>>
>>>>> Like I said, invalid.
>>>>>
>>>>> I definitely do not want to adjust the specs to allow arbitrary data =
in
>>>>> arbitrary places that a parser has to be able to skip over.
>>>>
>>>> But that's not what this file is about. It's about error recovery. A
>>>> proper parser should treat all the 0A as garbage and look for some
>>>> proper data. That's what libebml does.
>>>
>>> To be clear. In this case, the file has a MaxIDLength of 4 and thus 0x0=
A (aka 0b00001010) is invalid as the first byte of an Element ID. So is thi=
s correct logic?
>>
>> Yes. It's bad data so it should be skipped.
>
> I added a statement to this in the proposed definition update above, usin=
g =E2=80=98ignored=E2=80=99 rather than =E2=80=98skipped=E2=80=99.
>
>>> For a generic EBML parser:
>>> It should skip the invalid 0x0A bytes, because they are not valid Eleme=
nt IDs according to the MaxIDLength. In this case it should then skip ahead=
 to the Info Element.
>>>
>>> For a Matroska parser:
>>> It should skip the invalid 0x0A bytes until it encounters the first val=
id Element iD of an Element that may be a child Element of Segment?
>>
>> It's true that when you know the expected semantic, you can detect
>> false alarms a lot better. When you don't, 4-octets Level-1 elements
>> are not much help. So pure EBML recovery tools should not expect great
>> results.
>
> I didn=E2=80=99t address this in the proposal above, but should we. Perha=
ps we could clarify that a parser SHOULD have a semantic understanding of t=
he version and doctype that it is parser, else the results are unexpected?

Maybe semantics should tell if they allow arbitrary data (=C3=A0 la
GStreamer streaming) or not. That might be added to the EBML header.
So it may even be set arbitrarily in any EBML stream. If we started
from scratch we would make such flag off by default. But that would
mean all these live recordings might end up non parsable by strict
EBML parsers.

>>>> This file was inspired by the live streaming mode of GStreamer that
>>>> sends the header (Segment Info + Track Info) and whatever matroska
>>>> data comes after. Including the remaining of the Cluster that's
>>>> currently streaming. That part should be treated as garbage (and
>>>> luckily there is no false alarm of valid Level1+size elements in the
>>>> garbage data).
>>>
>>> The use of 32 bit Element IDs at Level 1 of Matroska makes more sense w=
ith this logic. A false alarm should be rare with garbage.
>>>
>>> With the example provided, the EBML Stream structure would be
>>>
>>> EBML/
>>> Segment/
>>>        Info/
>>>        Track/
>>>        <<< GARBAGE FRAGMENTARY CLUSTER >>>
>>>        Cluster/
>>>
>>> Should this be considered a valid EBML Stream? The pull request referen=
ce makes this invalid, otherwise the spec is very unclear about the presenc=
e of garbage, non Element Data within a Master-element.
>>
>> It's invalid EBML data. And should stay that way. But a semantic
>> parser SHOULD (MUST?) be able to handle this.
>
> Let me know if you think the proposed definition above address this well.=
 I placed all the referenced changes in this pull request so it may be revi=
ewed in context: https://github.com/Matroska-Org/ebml-specification/pull/49=
.
>
> [=E2=80=A6]
>
> Dave Rice
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 01:46:35 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74CE01A887D for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 01:46:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ycx_Lm68I4rr for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 01:46:34 -0800 (PST)
Received: from mail-vk0-x231.google.com (mail-vk0-x231.google.com [IPv6:2607:f8b0:400c:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4511C1A887A for <cellar@ietf.org>; Mon, 11 Jan 2016 01:46:34 -0800 (PST)
Received: by mail-vk0-x231.google.com with SMTP id a123so190479986vkh.1 for <cellar@ietf.org>; Mon, 11 Jan 2016 01:46:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=jBIekBoGwSeUu2xmfyL1KpHpHpVihxVOoM+J6ip9PJI=; b=IDvcsYGUOFmBYTL97qbJu0zwnPZwyH/sR2+5VR397PuXLuhdusAeniz4Xtl6TCfjRR ONctzw1dmrzt3xZQcecnCeL/KMHLtIc8N24neWSy1myREdfZFo4tlu/SAARry33CUyRy ehMk8fjQfEIiCVgbXt+urjPzv4onsr5cDEBY7HsSWcjOgggBd75mevuibBWzrhItjgcu Y5LeW5kl7Mdw2l2MUDpy/9y1N5bL67XsuClcV70oNvUt18/4DbC+fKfsiLNXbhNt5tPZ moDs4QMe8ANxOudQnduV4ptpGM+wIyzm3406L2+d8A9mbDPMf4NTU8Aznckf6PUsJK04 Sd4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=jBIekBoGwSeUu2xmfyL1KpHpHpVihxVOoM+J6ip9PJI=; b=YGDlBFdVFCZE/jYsyMHzZpozexw8a8HPd2KqEDTTR418LuR5fW4zJp8uZ/cnz49xaK QrRWpxYjAklWc3hLkqNjmQvP9CjHl3n1WSVFVgxCuaU7wadWdUw2D7Dz/EkMnNUzqhem BhgmSiGbWSGt/A840zjqb3InzE6efW4ezOiUPA6X0kK/TaAkJfY2fsZxNuBovJtUgM0J 4JZG7ECLSwUp3LsAKPH1z30jzvA+bV3fen/HhqMueErvd+Tylldvr274PK11v3I0GInz E1gnzJjdWvfgeed20fmgXA0H1+Zjssxn8lYlc3ZRYMDYonwu69ceytjjbjZqpmQU3JDv xskA==
X-Gm-Message-State: ALoCoQlvU+tNboBhmUFst1cFyxs91BkxODRH858eALdW3U68Wg1me4WncLoEBdh1EKxrBMKPNIcfQQH/sEdquYUVGf7Z0auDMw==
MIME-Version: 1.0
X-Received: by 10.31.50.213 with SMTP id y204mr67138630vky.109.1452505593163;  Mon, 11 Jan 2016 01:46:33 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 01:46:33 -0800 (PST)
In-Reply-To: <20160105164958.GB13213@nb4>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <20160105164958.GB13213@nb4>
Date: Mon, 11 Jan 2016 10:46:33 +0100
Message-ID: <CAOXsMFJ73VF9N4KPvm9QpOEKzyiUQ9APT2F70A7S5wktihf9aA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Michael Niedermayer <michael@niedermayer.cc>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/peduK6xD5SRWV9KviU-xwMN_Gug>
Cc: cellar@ietf.org, "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 09:46:35 -0000

2016-01-05 17:49 GMT+01:00 Michael Niedermayer <michael@niedermayer.cc>:
> On Tue, Jan 05, 2016 at 09:20:00AM +0100, Steve Lhomme wrote:
>> 2016-01-04 19:59 GMT+01:00 Sebastian G. <bastik>
>> <bastik.public.mailinglist@gmx.de>:
>> > 04.01.2016, 08:11 Steve Lhomme:
>> >> 2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
>> >>>
>> >>>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org>
>> >>>> wrote:
>> >>>>
>> >>>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>> >>>>> Hey,
>> >>>>>
>> >>>>> I only remember the discussion around Tracks being multiple,
>> >>>>> not particularly for the other ones. Our intent way back when
>> >>>>> was to allow muxers to write multiple instances of _the same
>> >>>>> information_ in different places in order to make the file more
>> >>>>> resilient against damage or incomplete downloads with protocols
>> >>>>> like BitTorrent.
>> >>>>
>> >>>> Yes, that's the idea for the Track Info as it's vital to the
>> >>>> usability of the file, as well as the Segment Info. I'm not sure
>> >>>> it's used in practice though. Since the goal of CELLAR is
>> >>>> archiving solutions it may still make sense.
>> >>>
>> >>> Perhaps to declare that an Element may be repeated but must be
>> >>> repeated identically should be a new EBML Element Attributes, so
>> >>> there can be a distinction between the repeatability Segment/Info
>> >>> and the repeatability of SimpleBlock.
>> >>
>> >> That might be good. After all not elements make sense as repeated
>> >> ones. For example in Matroska you don't want a Cluster (timestamped
>> >> data) to be repeated.
>> >>
>> >>>>> The same reasoning could be applied to Info. Both elements are
>> >>>>> absolutely crucial to playback; the other level 1 elements safe
>> >>>>> for the clusters simply aren=E2=80=99t.
>> >>>
>> >>> But what should happen when the read finds differences in
>> >>> repeated-but-should-be-identical elements?
>> >>
>> >> Good question. Maybe repeated elements should have a CRC ? If a CRC
>> >> is wrong (or not found) the parser could look for a copy.
>> >
>> > I like the CRC idea for repeated elements, but it still does not defin=
e
>> > how players should behave if they encounter two elements, even with
>> > valid CRCs, not matching each other.
>>
>> Also what about repeated elements that are not master elements. You'd
>> have no way of telling which is the best version. So repeated should
>> probably be master elements. Maybe CRC should be mandatory too (not
>> sure if real life files already follow this rule). That's the only way
>> a parser would be able to tell which version is correct, as far as I
>> can see.
>
> i dont disagree but i think "no way" is not correct
> its possible that external means like errors from reading data could
> be used to detect which repeated versions are bad, also parsing errors
> could indicate what is bad and then if there are 3 or more copies
> simple majority "voting" on a byte per byte base could be used
> to construct a "good" version, this too could be done when all copies
> fail CRC checks. No idea if that would be usefull in any actual real
> world usecase, but a player or repair tool trying to be exceptionally
> resillient to damages could do things like that

True, some "forensic" could be applied to recover the damaged data
when all CRC fails. I don't think the specs should specify such
recovery techniques, nor a general reader should care too much about
that. The first level of CRC (find one that matches) should be good
enough for that level.

> [...]
>
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Many things microsoft did are stupid, but not doing something just becaus=
e
> microsoft did it is even more stupid. If everything ms did were stupid th=
ey
> would be bankrupt already.



--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 02:05:30 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A43BA1A88B2 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:05:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TaJPdqbCUO3L for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:05:27 -0800 (PST)
Received: from mail-vk0-x235.google.com (mail-vk0-x235.google.com [IPv6:2607:f8b0:400c:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 84C671A88B8 for <cellar@ietf.org>; Mon, 11 Jan 2016 02:05:27 -0800 (PST)
Received: by mail-vk0-x235.google.com with SMTP id i129so83236538vkb.0 for <cellar@ietf.org>; Mon, 11 Jan 2016 02:05:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=cb66Va4ZY4lb0JF2l7Feks4U07UwiJA9IbFXwehZwhg=; b=MxA0ZcDoErhjEa131V2kgdq5BVvE1YfgjBEeBh0HUI/EXu7uctwmK8skMtCsbHUnkj DX0riB3zAfdsBu6C1vm1M0TNy8hp0FIuZtDm0dFJkJjpdVi9AV3hlK3xbBuc1MZYbWE4 1lx7ibBwwYt+f19uHaRTz7hsD/wbZEFTzVnsDNTwNSBAHMk/miTnb+0BjeTjzpr//hSe IxM65XD9EhekyhxoxtgrhXBmNus1NEizryHZgV1nYpnQ6VGQAWtdk2GcXE3xJabezKcP BgfAvPav64BvEy0vvov5aEsZGB0SSIGPlELElm1jWtWr+dCcdMaydHeftUOy5Rjo3DCt jfFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=cb66Va4ZY4lb0JF2l7Feks4U07UwiJA9IbFXwehZwhg=; b=lGo+8P7sydFtX6FOw4YR8mIP+4EXw5dYnbwfr32XaG7a2x0mZH1rtZLaKy7P7fTjuv YAgmvTajFhqEwEjk4UPYXEtq29rCxVHWyymBIbjQAguRbcsLHpR2RMlFmdYf6CekXx+z 47giwyBG49WZY9LcYei4roY5pB116TMkWsdxpiMOPCIgIZ1fu4NzWU8At7U0YjGVaFmw CE6+L/7xhv83hE9kBpLGlHGuJYxdILpHDt+t5389agI+rm+s3yEzb0HoVJE+hC/b9AB9 qAB5dwb+kbQNGZWgC2xxoNCS16IVn9MeHc2Ff/S37MzXxwwVM+1qELUJCOKbRW0MPkKx qhlQ==
X-Gm-Message-State: ALoCoQm6EKvW49a82bpcZRipB0I+6+VXgFRtic+g50ynoKGU2I7yKClfYEHgOmt3HXP1CJkPPpXmL8xy0eJ4JRzUegtnd4Ls7w==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr89410958vke.122.1452506726621;  Mon, 11 Jan 2016 02:05:26 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 02:05:26 -0800 (PST)
In-Reply-To: <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
Date: Mon, 11 Jan 2016 11:05:26 +0100
Message-ID: <CAOXsMFKzUnSN0z3EdEQyJ31HV_yVJ7ZPfEQVQegojQScngaNFQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/fftE2el-zpZxokPm2cdVjvEaOMc>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 10:05:29 -0000

2016-01-10 19:35 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 6, 2016, at 2:12 PM, Sebastian G. <bastik> wrote:
>>
>> 06.01.2016, 08:06 Dave Rice:
>>> Here is a draft for an EBML Schema Attribute to be used in the
>>> definition of EBML Elements for what I=E2=80=99m referring to as
>>> Identically-Recurring Elements.
>>>
>>> =3D=3D=3D=3D A boolean to express if the EBML Element may occur within =
its
>>> Parent Element more than once but that each recurrance within that
>>
>> Is 'recurrance' spelled correctly? (Not a native speaker). 'recurrence'
>> is suggested as search term suggestion.
>
> fixed
>
>>> Parent Element MUST be identical both in storage and semantics. Such
>>> Elements are referred to as Identically-Recurring Elements. In this
>>> case, identical copies of an EBML Element are permitted to be stored
>>> multiple times within the same Parent Element in order to increase
>>> data resillience and optimize the use of EBML in transmission.
>>
>> 'resillience' seems to have an error. 'resilience=E2=80=99.
>
> fixed
>
>>> Identically-Recurring Elements SHOULD include a CRC-32 Element as a
>>> Child Element. If a Parent Element contains more than one copy of an
>>> Identically-Recurring Element which includes a CRC-32 Child Elememnt
>>
>> s/Elememnt/Element
>
> fixed
>
>>> then the first instance of the Identically-Recurring Element with a
>>> valid CRC-32 value should be used for interpretation. If a Parent
>>> Element contains more than one copy of an Identically-Recurring
>>> Element which does not contain a CRC-32 Child Elememnt then the first
>>
>> s/Elememnt/Element
>
> fixed
>
>> 'If a Parent Element contains more than one copy of an
>> Identically-Recurring Element which does not contain a CRC-32 Child
>> Element "or if CRC-32 Child Elements are present but neither of those
>> are valid" then the first instance of the Identically-Recurring Element
>> should be used for interpretation.'
>>
>> I took your sentence and added (noted by "") the case something would
>> contain CRCs, but neither of them would be valid. Feel free to ignore
>> this suggestion. It might be a rare case.
>>
>> It is certainly possible to have it as separate sentence. Maybe it makes
>> it easier to read. Maybe even easier to understand.
>>
>>> instance of the Identically-Recurring Element should be used for
>>> interpretation. If the `identical` attribute is not expressed for
>>> that Element then that Element is considered to not have a
>>> requirement for identical expression within the same Parent Element.
>>> The `identical` attribute is only valid if the Element is not set to
>>> `multiple`, otherwise the `identical` attribute shall be ignored.
>>> =3D=3D=3D=3D
>>>
>>> The text may be seen in context with the other attributes at
>>> https://github.com/MediaArea/ebml-specification/blob/d108c14d1f1c748d1f=
3f50e58d4057208325f892/specification.markdown#ebml-schema-element-attribute=
s
>>>
>>> Some pending questions:
>>> - Should Identically-Recurring Elements recommend or mandate inclusion =
of a CRC-32? I suggestion recommend and not mandate for reverse compability=
.
>>
>> Backward compatibility seems to be a higher goal than CRCs. I think it
>> should be even possible to play a file without checking CRCs, which does
>> not contradict having CRCs in the first place.
>
> I agree.

The backward compatibility is important so that older files are
handled correctly by future (stricter) parsers. In the case where a
recurring element doesn't have any CRC, I don't think future parsers
should discard such elements. So we could still make it mandatory and
keep backward compatibility. There will be plenty of other cases for
old files to not be compliant to the current/future specs and still
play fine.

>> Like Timothy B. Terriberry points out, reasons for not having CRCs on
>> those elements should be given in the specification.
>
> Based on Tim and Sebastian=E2=80=99s comments I extended the sentence to =
be:
>
> "Identically-Recurring Elements SHOULD include a CRC-32 Element as a Chil=
d Element; this is especially recommended when EBML is used for long-term s=
torage or transmission.=E2=80=9D
>
> Listing reasons to not have a CRC Child Element seems awkward. Realistica=
lly I think the primary reason that CRC elements are not used is because ma=
ny muxers don=E2=80=99t support adding them, although the EBML specificatio=
n has long contained: "All level 1 elements SHOULD include a CRC-32.=E2=80=
=9D Instead of addressing reasons why not I added some reasons for why with=
 references to ong-term storage and transmission.
>
>>> - Is 'Identically-Recurring Elements=E2=80=99 a decent short name for t=
hese types of Elements?
>>
>> I have no objection. IRE could be used when talking about those
>> elements, unless it is within official documents.
>>
>>> - Should the =E2=80=98identical=E2=80=99 attribute apply to only Master=
-elements? I think it could be open. I could see scenarios to place the CRC=
-32 both at the beginning and end of the Parent Element.
>>
>> I have not enough knowledge to make an informed statement.
>
> Unless there=E2=80=99s a good reason to do so, I won=E2=80=99t restrict t=
he =E2=80=98identical=E2=80=99 attribute to certain Element Types, thus the=
 specifications for EBML formats can decide how to use this.

If CRC is mandatory, then it's not possible. If it's not mandatory
it's possible to have unique elements duplicate. But then how do you
know which one to use ? Also having unique elements repeated seem
bogus and some parsers may not like that. It's a contradiction to what
"unique" means.

>>> - I=E2=80=99m thinking that =E2=80=98multiple=E2=80=99 means the Elemen=
t may recur within its Parent Element and means that there are multiple sem=
antics. I suggest that =E2=80=98identical=E2=80=99 Elements not be =E2=80=
=98multiple=E2=80=99 as an =E2=80=98identical=E2=80=99 Element recurs but o=
nly with a single and non-multiple semantic meaning. OK?
>>
>> I have not enough knowledge to make an informed statement.
>>
>>> - If there are multiple copies of identical Elements, I wrote in the dr=
aft that if there=E2=80=99s a CRC than the first copy with valid CRC be use=
d, else the first copy be used. Potentially we could say first valid copy b=
e used, but then need to say fully what valid means.
>>
>> I'm neutral, but agree that if just valid is used it would have to be
>> explained what valid means.
>>
>>> - I agree that an identical Element should not be used to change the se=
mantics over time.
>>
>> Agreed.
>
> Here is a new version for review:
>
> Definition for a new EBML Schema Attribute: identical
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> A boolean to express if the EBML Element may occur within its Parent Elem=
ent more than once but that each recurrence within that Parent Element MUST=
 be identical both in storage and semantics. Such Elements are referred to =
as Identically-Recurring Elements. In this case, identical copies of an EBM=
L Element are permitted to be stored multiple times within the same Parent =
Element in order to increase data resilience and optimize the use of EBML i=
n transmission. Identically-Recurring Elements SHOULD include a CRC-32 Elem=
ent as a Child Element; this is especially recommended when EBML is used fo=
r long-term storage or transmission. If a Parent Element contains more than=
 one copy of an Identically-Recurring Element which includes a CRC-32 Child=
 Element then the first instance of the Identically-Recurring Element with =
a valid CRC-32 value should be used for interpretation. If a Parent Element=
 contains more than one copy of an Identically-Recurring Element which does=
 not contain a CRC-32 Child Element or if CRC-32 Child Elements are present=
 but none are valid then the first instance of the Identically-Recurring El=
ement should be used for interpretation. If the `identical` attribute is no=
t expressed for that Element then that Element is considered to not have a =
requirement for identical expression within the same Parent Element. The `i=
dentical` attribute is only valid if the Element is not set to `multiple`, =
otherwise the `identical` attribute shall be ignored.
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 02:12:46 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BCFF1A88C1 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:12:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.122
X-Spam-Level: 
X-Spam-Status: No, score=0.122 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YSbi8ftiV0Cv for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:12:43 -0800 (PST)
Received: from mail-vk0-x231.google.com (mail-vk0-x231.google.com [IPv6:2607:f8b0:400c:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8898C1A88BA for <cellar@ietf.org>; Mon, 11 Jan 2016 02:12:43 -0800 (PST)
Received: by mail-vk0-x231.google.com with SMTP id a123so190784456vkh.1 for <cellar@ietf.org>; Mon, 11 Jan 2016 02:12:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Pt2hdulXaJjjoyon/v/O5DWPv2ZF/pVA2+GxS2AXxI8=; b=FCLYk712PeJ1mf7oi9fXzSk/RZXw9I52Oc5LmCJrXg+ZkYy5pXbZReLIn81zJjp9H0 VDpgL2a6MzgnLIwAkEH81nBtb3staRTwG/G5Z14IqJf4OuQEAGFdaRAlo+mUycf7joRG cppSuxIpTUSV5IWthXNKV/S9GOpguCIfkscEQlGDsN5hElrG0fwT53dHLdgWcNdkVxR3 LE5cUzpvHtcvsJPOj63KSJ0x+5AsZPc3AJpKdA8LBRSFheLe9VxonMH45m6G0yxLTOVM 53sLJCqsy7edjA2ayQsM1jZMvTHeN3QXZO8ez0Qt0kLdncCVZD5zNPAA+tWav6kYYNjJ 7JwA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Pt2hdulXaJjjoyon/v/O5DWPv2ZF/pVA2+GxS2AXxI8=; b=HSGj3oEJlxsMsV5xMVRxRHEaXKD9+QaYyiz8cw9oj1JbAkg85z/w/zO45vHaKIO3tU k82YhkmLm8Tk3qQHzYpVM/q8V1JtMTTBc/9VORCQqyBtfSlsYMvYBIEqxcVVZ1RZ1Rve VTxs24nf3F1Lq1eCBECd32d8cUGCAKe5ovogixA+fEalsHT/lnwoXduOchsrGJd5vO5K brm6lZb5Y7LM9l/vXDnqoyNWz2p2uSEsXVBF0D673SizMyoLV3tHJ3p0AaTqMwk2b2ZQ vxdq0meZ9DwBfiA7ulNegMbT5nH3rPjM29FIi1SDp8j24yY3Ieitl22kEBxJpiVqS9UH bfEA==
X-Gm-Message-State: ALoCoQkNnE3pg2lxxevGOe7hPRplZen91NaDe1EAP4SToGX7h9krebV/KWxD03xF8F+TashVB8GA4bqlCufRAv7vDKt9qjDenA==
MIME-Version: 1.0
X-Received: by 10.31.134.11 with SMTP id i11mr89109927vkd.152.1452507162742; Mon, 11 Jan 2016 02:12:42 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 02:12:42 -0800 (PST)
In-Reply-To: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com>
Date: Mon, 11 Jan 2016 11:12:42 +0100
Message-ID: <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/6lN4O8bG4oI9mI4WhX650p2yTeo>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 10:12:45 -0000

2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi Cellar,
>
> This proposal continues from earlier conversation on matroska-devel: http=
://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.html.
>
> Currently Matroska only expresses video interlacement in the FlagInterlac=
ed Element, which is defined like this (see: http://matroska.org/technical/=
specs/index.html#FlagInterlaced):
>
> Element Name: FlagInterlaced
> Level:        4
> ID:           [9A]
> Mandatory:    mand.
> Multiple:     -
> Range:  0-1
> Default:      0
> Type:         u
> Description:  Set if the video is interlaced. (1 bit)
>
> An issue here is that there isn=E2=80=99t a distinction between unknown a=
nd progressive interlacement. Also if the video is interlaced there is no c=
larification if it is top or bottom field first (or one of the progressive =
segmented frame options). While some video encodings (such as DV and FFV1) =
can contain their own information about interlacement, many (especially unc=
ompressed formats) can not.
>
> I propose the values are expanded such as:
>
> 0       undetermined
> 1       interlaced
> 2       progressive
>
> or
>
> 0       progressive
> 1       interlaced
> 2       undetermined
>
> I am unclear if FlagInterlaced=3D0 has been traditionally interpreted as =
undetermined or progressive. Advice?

Progressive.

> Then a second element can optionally contain field ordering metadata.
>
> Element Name: FieldOrdering
> Level:        4
> ID:           [9D]
> Mandatory:    -
> Multiple:     -
> Range:  0-2
> Default:      0
> Type:         u
> Description:  Declare the field ordering of the video. If FlagInterlaced =
is not set to 1, this Element MUST be ignored.
>
> 0       undetermined
> 1       interlaced (bottom field first)
> 2       interlaced (top field first)
>
> To do:
> - consider progressive segmented fields
> - consider noting field storage order in addition to field display order
>
> I did consider that bff and tff values could be added as new values to Fl=
agInterlaced, so that only one element would be needed. However it may affe=
ct reverse compatibility since some muxer may interpret only a value of Fla=
gInterlaced=3D1 as interlaced.

Not sure any player/demuxer/muxer would make much use of that flag as
it is now (VLC ignores the data). So it's ok to break backward
compatibility.

> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 02:19:51 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C25681A1F1D for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:19:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.621
X-Spam-Level: 
X-Spam-Status: No, score=0.621 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8vh-IsTQg4z1 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:19:49 -0800 (PST)
Received: from mail-vk0-x234.google.com (mail-vk0-x234.google.com [IPv6:2607:f8b0:400c:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ADFC71A88C7 for <cellar@ietf.org>; Mon, 11 Jan 2016 02:19:49 -0800 (PST)
Received: by mail-vk0-x234.google.com with SMTP id k1so221523424vkb.2 for <cellar@ietf.org>; Mon, 11 Jan 2016 02:19:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=suFtbT1dPqUiRZ2f2hj5MjtA1OWC5VhPMOzJVRMmh9Q=; b=WkNr4OO9507UAdByt8iRkByP6mdIIqjYkR6rXnSekrjzwld4+JKvAWupJo60ROIDWK TP3Q5qFIEE4wq7riyZAZcHJ8lYq51NsHgsK0DQjgsRTzs1Zfehv33NZG13+g4lCDxhF/ Vwvf8NBVqSbPT2hb0HWhEmflVrcbc+BZAVhNEK8DM5ACj8znG/mn638Y9IfVe063FE+x e/ML10iX/IjZ+v1GX3jzcDP/kuqu5r5ICX7MKemD9S+y6QjwcICfVuTyWQAnQL2ZrFaG hilSVEOOjqiOnPEv61EDz7Xm2K02H1fP9Ty9uRyyBtjnewe9Jp9OpFjfeVMkgZGGIbkO 8Y6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=suFtbT1dPqUiRZ2f2hj5MjtA1OWC5VhPMOzJVRMmh9Q=; b=YqhYLVRRt08xk3bOyAMCevmTlO35zvhQwEhrYzSe4MUWNzyDHO7Fh70eyCWCQ0uzCf lYnBaLxjEmBRITmVmkrpfQr/Ub0AKkNNjqqwcRzX5REfYzzuTuUQngvDSV6Kh1MuKiPg S68raxlPBXmLt6Bu/VGdXTyUXrSIT3C3WzBLSv6Gb+k3m++31uXrnpYhYx4oKm0u1+/1 5S/9Pv+iASyB7vorqPzLpYU/YcnoXjHzKP18XvPo9kOIoU7rbYA2pBt5LRA0NbcYylPM BxQFp1ErpOhO7oydJQj8cvZQ7yK55Wm1czId197ooLa6OkBxIS2Zhbemm5r5yN+KL8lQ oY+A==
X-Gm-Message-State: ALoCoQmCXuSJWyML1InGYsCgDvSp9cEJyIL1OlT5URt3iIIpCNrI73eRoYBwzjPZmOH6qankNIH75ZNgJKk2FQiPq82ArmTrAQ==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr89450251vke.122.1452507588863;  Mon, 11 Jan 2016 02:19:48 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Mon, 11 Jan 2016 02:19:48 -0800 (PST)
In-Reply-To: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com>
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com>
Date: Mon, 11 Jan 2016 11:19:48 +0100
Message-ID: <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Michael Bradshaw <mjbshaw@google.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/96tFf_UVYgAEA1MQoCaDkwISXkQ>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 10:19:50 -0000

2016-01-07 23:39 GMT+01:00 Michael Bradshaw <mjbshaw@google.com>:
> Blocks can have a negative timecode in the following situations:
>
> Cluster Timecode + Block timecode < 0. This may happen if the Cluster's
> Timecode is near zero and the Block's timecode is sufficiently negative.
> CodecDelay > Cluster Timecode + Block timecode. I have a WebM file created
> by ffmpeg with an Opus audio track that has a CodecDelay of 6.5ms, and since
> the first block's timecode is zero, its computed timecode is -6.5ms. mkvinfo
> shows this frame has having a timecode of 0.000s, but ffprobe shows a PTS of
> -0.007ms (rounding up).
>
>
> The notes say that "Blocks with a negative Raw Timecode are not valid."[1]
> This page, however, does not mention CodecDelay's role in computing
> timecodes.
>
> Questions:
>
> Should the Specification Notes talk about CodecDelay's role in computing a
> block's timecode?
> Assuming the answer to the previous questions is "yes," is a block with a
> negative timecode due to a CodecDelay still invalid (i.e. is CodecDelay a
> part of Raw Timecodes)?

IMO it should be invalid. Does this 6.5ms before 0.0 have any decoded
data at all ? If so it seems to be an abuse of the CodecDelay
(although the definition doesn't cover that).

> --Michael
>
> [1]: http://matroska.org/technical/specs/notes.html
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



-- 
Steve Lhomme
Matroska association Chairman


From nobody Mon Jan 11 02:57:06 2016
Return-Path: <lists@reto.ch>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 152811A8905 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:57:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.702
X-Spam-Level: 
X-Spam-Status: No, score=-2.702 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jf8D_J09veuX for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 02:57:03 -0800 (PST)
Received: from smtp-sh2.infomaniak.ch (smtp-sh2.infomaniak.ch [128.65.195.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AF7741A88FC for <cellar@ietf.org>; Mon, 11 Jan 2016 02:57:02 -0800 (PST)
Received: from smtp4.infomaniak.ch (smtp4.infomaniak.ch [84.16.68.92]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0BAv0Pu030640 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for <cellar@ietf.org>; Mon, 11 Jan 2016 11:57:00 +0100
Received: from Castor.local (159.146.4.85.dynamic.wline.res.cust.swisscom.ch [85.4.146.159]) (authenticated bits=0) by smtp4.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0BAuxJO019345 for <cellar@ietf.org>; Mon, 11 Jan 2016 11:56:59 +0100
Date: Mon, 11 Jan 2016 11:57:00 +0100
From: Reto Kromer <lists@reto.ch>
To: cellar@ietf.org
X-Priority: 3
In-Reply-To: <CAO7v-1S2dmx6acCrfrYkcNaGOM2j5Pv5=O2WA6W3xFL4cdtYwQ@mail.gmail.com>
Message-ID: <r470Ps-10112i-3CDA25B3FF70446D8DA65088DA669E4B@Castor.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.4 (470)
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/izR5hT0ZCFw2APxwsT3FvcdIWio>
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 10:57:05 -0000

Kieran O Leary wrote:

>> Element Name: ReferenceTimecode
>> Level:        3
>> ID:           [EF]
>> Mandatory:    -
>> Multiple:     -
>> Default:      -
>> Type:         m
>> Description:  ReferenceTimecode settings
>>
>> Element Name: ReferenceTimecodeForm
>> Level:        4
>> ID:           [EF][A1]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:        0-2
>> Default:      0
>> Type:         u
>> Description:  Indicates the form of expression used to present the
>> timecode (using HH for hours, MM for minutes, SS for seconds, mmm for
>> milliseconds, ff for frames).
>>               0: HH:MM:SS.mmm
>>               1: HH:MM:SS:ff (non-drop frame)
>>               2: HH:MM:SS;ff (drop frame)
>>
>
>I don't know if this flag is explicitly mentioned in a QuickTime
>container,but it seems to me to be a great idea to flag this message info.

As long as I know, in a purist world

   : and ; should designate the field 2
   . and , should not

(Still as long as I know, SMPTE has defined:

   HH:MM:SS:FF:XX

Sadly I don't remember exactly the letters they use for XX which=20
designate parts of the frame. However I never saw this in the=20
real world.)

Sorry for adding confusion! Reto


AV Preservation by reto.ch
chemin du Suchet 5 | 1024 Ecublens | Switzerland
Web: http://reto.ch | Twitter: @retoch


From nobody Mon Jan 11 03:36:40 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BBF51A8949 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 03:36:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7g0QHo9oco9B for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 03:36:36 -0800 (PST)
Received: from 9.mo69.mail-out.ovh.net (9.mo69.mail-out.ovh.net [46.105.56.78]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 53CE11A8944 for <cellar@ietf.org>; Mon, 11 Jan 2016 03:36:35 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 32A83FFC1DE for <cellar@ietf.org>; Mon, 11 Jan 2016 12:36:33 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 11 Jan 2016 13:36:32 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 11 Jan 2016 13:36:30 +0200
To: cellar@ietf.org
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <569393BA.1080006@mediaarea.net>
Date: Mon, 11 Jan 2016 12:36:26 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 10645946570881175637
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeduucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkedugddvvdcutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/_e-ib6LgBdNX34i5uZ3f4AwbrGk>
Cc: matroska-devel@lists.matroska.org
Subject: Re: [Cellar] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 11:36:39 -0000

Le 10/01/2016 23:57, Dave Rice a écrit :
> Hi all,
>
> Here is an early draft of Elements for managing ReferenceTimecode tracks. Matroska uses the term 'Timecode' to reference presentation timestamps, whereas other formats (QuickTime, MXF) use 'Timecode' to reference a time reference that is added to the timeline which is inpendent of the presentation (i.e. a QuickTime file with a timecode track that starts at one hour aka 1:00:00;00 would not cause a one hour delay before playback starts). In the context of Matroska I am using ReferenceTimecode (for now) to refer to QuickTime/MXF style timecode tracks.
>
> TrackType:
> Add to the TrackType definition to list "0x13: timecode,"
>
> CodecID:
> Add the following timecode Codec IDs.
> Codec ID        | Name               | Description
> T_QUICKTIME     | QuickTime Timecode | Timecode data as stored in QuickTime, e.q. tmcd. The CodecPrivate contains all additional data that is stored in the 'tcmd' (timecode) atom in the QuickTime file.
> Others? LTC? VITC?
>
> Proposed elements under TrackEntry:
>
> Element Name: ReferenceTimecode
> Level:        3
> ID:           [EF]
> Mandatory:    -
> Multiple:     -
> Default:      -
> Type:         m
> Description:  ReferenceTimecode settings
>
> Element Name: ReferenceTimecodeForm
> Level:        4
> ID:           [EF][A1]
> Mandatory:    mand.
> Multiple:     -
> Range:        0-2
> Default:      0
> Type:         u
> Description:  Indicates the form of expression used to present the timecode (using HH for hours, MM for minutes, SS for seconds, mmm for milliseconds, ff for frames).
>                0: HH:MM:SS.mmm
>                1: HH:MM:SS:ff (non-drop frame)
>                2: HH:MM:SS;ff (drop frame)

I don't see the purpose of such flag.
a time code is not a time stamp, so no "HH:MM:SS.mmm" in the stream 
directly. From my point of view, it is the role of the player to propose 
either HH:MM:SS:ff or HH:MM:SS.mmm display formats for the same content. 
the container should not contain such detail.
non-drop frame vs drop frame: it is already in the private data (not 
only for T_QUICKTIME, such flag is in all timecode formats I have ever 
seen). Is there a need to repeat it?
If you want such piece of information for being able to compute the 
timecode without the private data, you also need the frame rate (as an 
integer).

>
> Element Name: ReferenceTimecode24HourMax
> Level:        4
> ID:           [EF][A2]
> Mandatory:    mand.
> Multiple:     -
> Range:        0-1
> Default:      0
> Type:         u
> Description:  Indicates if the timecode should revert to a zero-value at the time reference of 24 hours. Set to 1 if the ReferenceTimecode should use a maximum value of 24 hours and wrap values back to zero hours at that point.

it is already in the private data. Is there a need to repeat it?

>
> For storage of ReferenceTimecode values in Blocks, I suggest storing a signed integer (ReferenceTimecode values may be negative). The stored signed integer would be the frame number

which format of the integer? EBML? if "32-bit signed integer", the issue 
is with (theoretical) huge values: if QuickTime settings are with 
NegativeTimes=0, you can not store the big numbers.

Actually, I don't like the idea to "standardize" the storage, because we 
define the CodecID as "T_QUICKTIME", so we should just raw copy the 
stream from a .mov file, without modification (and without specifying 
it, as we don't specify the AVC stream for video. Reference is QuickTime 
specification).
And with "T_QUICKTIME", we don't define our own format, so adding 
"increased by the duration of the corresponding video frame" in the 
definition does not make any sense: either we define a new timecode 
format, either we have the goal to use QuickTime format, but mixing 
"T_QUICKTIME" and our own definition will create a lot of confusion.

>   (players supporting ReferenceTimecode should convert the frame number accordingly to a drop-frame or non-drop-frame display). So if ReferenceTimecodeForm=1, the Block stores 0x00BC, and the frame duration is NTSC, then the displayed value would be 00:00:06:08. The next value 00:00:06:09, etc.
>
> I propose that one block per ReferenceTimecode not be required for simple incrementing ReferenceTimecode, but that the ReferenceTimecode value of the next video frame be considered to be either 1 greater than the previous value (if ReferenceTimecodeForm is 1 or 2) or increased by the duration of the corresponding video frame.

Actually, technically and except when the timecode is "burned" in the 
video frame, the timecode stream does not depend of any "video frame" or 
"video stream". You could have (in theory, totally useless in the 
reality, I know) a 24 fps timecode stream with a 25 fps video stream 
(actually, in .mov file, the time code stream has a frame rate defined 
by the time scale and duration of a frame, and also a "An 8-bit integer 
that contains the number of frames per second for the timecode format. 
If the time is a counter, this is the number of frames for each counter 
tick." so you can have a 24 fps time code at 30 fps beside a video 
stream at 25 fps)
So linking this way timecode stream and video stream is risky. linking 
duration ("time stamp") and timecode is also risky.

I propose to not try to "adapt" QuickTime time code, just dump it as it 
is, without trying to "limit" the possibilities offered by QuickTime: so 
a timecode stream has a value (32-bit signed or unsigned integer) with a 
timestamp (Matroska "timecode") and a duration (useful if we want to 
know if there is only one value or several values).

Example of metadata from a QuickTime file
- time scale from container (mdhd): 30000
- total duration from container (mdhd) (in time scale units): 335335
- sample duration from container (stts): 335335
- tmcd time scale: 30000
- tmcd frame duration (in time scale units): 1001
- tmcd number of frames (time code "frame rate"): 30
- tmcd drop frame flag: no
(note: I don't know the behavior of QuickTime player in case of tmcd 
time scale != mdhd time scale)

so we need to keep such data in Matroska, e.g.:
- CodecPrivate: tcmd content
- no need of extra setting in the track header (drop frame flag, 24H 
flag are in tmcd)
- Matroska TimecodeScale: 30000
- Matroska Timecode of the unique frame: 0
- Matroska BlockDuration of the unique frame: 335335
- Block content: the 4 bytes from QuickTime timecode stream.

>
> If the ReferenceTimecode is non-continuous then a new ReferenceTimecode value in a new Block with a new Timecode (Matroska meaning of Timecode) could be inserted at the point of the discontinuity.

It is not so easy to insert a new block and being sure it will be 
correctly displayed, due to interlacement (when can we consider that the 
the next block is not present?) without BlockDuration.

Jérôme


From nobody Mon Jan 11 04:44:28 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 07FDC1A8A03 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 04:44:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level: 
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[BAYES_40=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DGbI3MklvRd3 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 04:44:24 -0800 (PST)
Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [IPv6:2001:4b98:c:538::195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8846F1A89FC for <cellar@ietf.org>; Mon, 11 Jan 2016 04:44:24 -0800 (PST)
Received: from mfilter15-d.gandi.net (mfilter15-d.gandi.net [217.70.178.143]) by relay3-d.mail.gandi.net (Postfix) with ESMTP id C0741A80F1; Mon, 11 Jan 2016 13:44:22 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter15-d.gandi.net
Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195]) by mfilter15-d.gandi.net (mfilter15-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id Af3RcjoHdHkl; Mon, 11 Jan 2016 13:44:21 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 975EEA80D8; Mon, 11 Jan 2016 13:44:19 +0100 (CET)
Date: Mon, 11 Jan 2016 13:43:24 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Steve Lhomme <slhomme@matroska.org>
Message-ID: <20160111124324.GL13213@nb4>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <20160105164958.GB13213@nb4> <CAOXsMFJ73VF9N4KPvm9QpOEKzyiUQ9APT2F70A7S5wktihf9aA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="1MV0VfA6Y2yiVCnw"
Content-Disposition: inline
In-Reply-To: <CAOXsMFJ73VF9N4KPvm9QpOEKzyiUQ9APT2F70A7S5wktihf9aA@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/i_fOPISs09nHsKbaEwbszBJ735w>
Cc: cellar@ietf.org, "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 12:44:27 -0000

--1MV0VfA6Y2yiVCnw
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jan 11, 2016 at 10:46:33AM +0100, Steve Lhomme wrote:
> 2016-01-05 17:49 GMT+01:00 Michael Niedermayer <michael@niedermayer.cc>:
> > On Tue, Jan 05, 2016 at 09:20:00AM +0100, Steve Lhomme wrote:
> >> 2016-01-04 19:59 GMT+01:00 Sebastian G. <bastik>
> >> <bastik.public.mailinglist@gmx.de>:
> >> > 04.01.2016, 08:11 Steve Lhomme:
> >> >> 2016-01-03 16:53 GMT+01:00 Dave Rice <dave@dericed.com>:
> >> >>>
> >> >>>> On Jan 2, 2016, at 3:47 AM, Steve Lhomme <slhomme@matroska.org>
> >> >>>> wrote:
> >> >>>>
> >> >>>> 2015-12-30 10:18 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
> >> >>>>> Hey,
> >> >>>>>
> >> >>>>> I only remember the discussion around Tracks being multiple,
> >> >>>>> not particularly for the other ones. Our intent way back when
> >> >>>>> was to allow muxers to write multiple instances of _the same
> >> >>>>> information_ in different places in order to make the file more
> >> >>>>> resilient against damage or incomplete downloads with protocols
> >> >>>>> like BitTorrent.
> >> >>>>
> >> >>>> Yes, that's the idea for the Track Info as it's vital to the
> >> >>>> usability of the file, as well as the Segment Info. I'm not sure
> >> >>>> it's used in practice though. Since the goal of CELLAR is
> >> >>>> archiving solutions it may still make sense.
> >> >>>
> >> >>> Perhaps to declare that an Element may be repeated but must be
> >> >>> repeated identically should be a new EBML Element Attributes, so
> >> >>> there can be a distinction between the repeatability Segment/Info
> >> >>> and the repeatability of SimpleBlock.
> >> >>
> >> >> That might be good. After all not elements make sense as repeated
> >> >> ones. For example in Matroska you don't want a Cluster (timestamped
> >> >> data) to be repeated.
> >> >>
> >> >>>>> The same reasoning could be applied to Info. Both elements are
> >> >>>>> absolutely crucial to playback; the other level 1 elements safe
> >> >>>>> for the clusters simply aren=E2=80=99t.
> >> >>>
> >> >>> But what should happen when the read finds differences in
> >> >>> repeated-but-should-be-identical elements?
> >> >>
> >> >> Good question. Maybe repeated elements should have a CRC ? If a CRC
> >> >> is wrong (or not found) the parser could look for a copy.
> >> >
> >> > I like the CRC idea for repeated elements, but it still does not def=
ine
> >> > how players should behave if they encounter two elements, even with
> >> > valid CRCs, not matching each other.
> >>
> >> Also what about repeated elements that are not master elements. You'd
> >> have no way of telling which is the best version. So repeated should
> >> probably be master elements. Maybe CRC should be mandatory too (not
> >> sure if real life files already follow this rule). That's the only way
> >> a parser would be able to tell which version is correct, as far as I
> >> can see.
> >
> > i dont disagree but i think "no way" is not correct
> > its possible that external means like errors from reading data could
> > be used to detect which repeated versions are bad, also parsing errors
> > could indicate what is bad and then if there are 3 or more copies
> > simple majority "voting" on a byte per byte base could be used
> > to construct a "good" version, this too could be done when all copies
> > fail CRC checks. No idea if that would be usefull in any actual real
> > world usecase, but a player or repair tool trying to be exceptionally
> > resillient to damages could do things like that
>=20
> True, some "forensic" could be applied to recover the damaged data
> when all CRC fails. I don't think the specs should specify such
> recovery techniques, nor a general reader should care too much about
> that. The first level of CRC (find one that matches) should be good
> enough for that level.

i agree

the possibility of such "forensic" techniques should be considered
in the design of the spec though at places where it might be usefull
iam not sure CRCs are the only such place ...

[...]
--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The worst form of inequality is to try to make unequal things equal.
-- Aristotle

--1MV0VfA6Y2yiVCnw
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaTo2wACgkQYR7HhwQLD6tn/QCbBw/9+5bq2RkRIDmkPQFP80gi
jZ8AnRfP/6DNnY6yiMAgadWsFWxIvsOE
=cjR+
-----END PGP SIGNATURE-----

--1MV0VfA6Y2yiVCnw--


From nobody Mon Jan 11 08:18:36 2016
Return-Path: <tterribe@xiph.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 378871A702C for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 08:18:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.313
X-Spam-Level: 
X-Spam-Status: No, score=-5.313 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uXNXxhWj_044 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 08:18:33 -0800 (PST)
Received: from smtp.mozilla.org (mx2.scl3.mozilla.com [63.245.214.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E09641A7021 for <cellar@ietf.org>; Mon, 11 Jan 2016 08:18:32 -0800 (PST)
Received: from localhost (localhost6.localdomain [127.0.0.1]) by mx2.mail.scl3.mozilla.com (Postfix) with ESMTP id 5BAE7C0952 for <cellar@ietf.org>; Mon, 11 Jan 2016 16:18:32 +0000 (UTC)
X-Virus-Scanned: amavisd-new at mozilla.org
Received: from smtp.mozilla.org ([127.0.0.1]) by localhost (mx2.mail.scl3.mozilla.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Hs-1kSZc0kGj for <cellar@ietf.org>; Mon, 11 Jan 2016 16:18:32 +0000 (UTC)
Received: from [172.17.0.35] (50-78-100-113-static.hfc.comcastbusiness.net [50.78.100.113]) (Authenticated sender: tterriberry@mozilla.com) by mx2.mail.scl3.mozilla.com (Postfix) with ESMTPSA id 27223C0665 for <cellar@ietf.org>; Mon, 11 Jan 2016 16:18:32 +0000 (UTC)
Message-ID: <5693D5D6.6030709@xiph.org>
Date: Mon, 11 Jan 2016 08:18:30 -0800
From: "Timothy B. Terriberry" <tterribe@xiph.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 SeaMonkey/2.26
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
In-Reply-To: <692F039A-180D-4535-B4A1-529A777573F5@dericed.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/MsVc6ME7jpDyNST9AI_FSAoj_Dw>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 16:18:35 -0000

Dave Rice wrote:
> Listing reasons to not have a CRC Child Element seems awkward.
> Realistically I think the primary reason that CRC elements are not
> used is because many muxers donâ€™t support adding them, although the
> EBML specification has long contained: "All level 1 elements SHOULD
> include a CRC-32.â€ Instead of addressing reasons why not I added

So this is really, "SHOULD, unless it is too much work for you to bother"?

I say this as someone who has had every SHOULD in one of my own drafts 
systematically dissected with the question, "Why not MUST? When would it 
be okay to violate this SHOULD?" late in the review process. I am trying 
to save you pain further down the line.


From nobody Mon Jan 11 08:24:38 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D4BE61A7113 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 08:24:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.778
X-Spam-Level: 
X-Spam-Status: No, score=0.778 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eOaM5s-C14-w for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 08:24:34 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C104A1A7012 for <cellar@ietf.org>; Mon, 11 Jan 2016 08:24:34 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:38053 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIfGh-003WSY-94; Mon, 11 Jan 2016 11:24:33 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com>
Date: Mon, 11 Jan 2016 11:24:29 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/XdYQYDTTHcmBEjCKArt36MpnNKI>
Cc: Steve Lhomme <slhomme@matroska.org>
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 16:24:37 -0000

> On Jan 11, 2016, at 5:12 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>> Hi Cellar,
>>=20
>> This proposal continues from earlier conversation on matroska-devel: =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.htm=
l.
>>=20
>> Currently Matroska only expresses video interlacement in the =
FlagInterlaced Element, which is defined like this (see: =
http://matroska.org/technical/specs/index.html#FlagInterlaced):
>>=20
>> Element Name: FlagInterlaced
>> Level:        4
>> ID:           [9A]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:  0-1
>> Default:      0
>> Type:         u
>> Description:  Set if the video is interlaced. (1 bit)
>>=20
>> An issue here is that there isn=E2=80=99t a distinction between =
unknown and progressive interlacement. Also if the video is interlaced =
there is no clarification if it is top or bottom field first (or one of =
the progressive segmented frame options). While some video encodings =
(such as DV and FFV1) can contain their own information about =
interlacement, many (especially uncompressed formats) can not.
>>=20
>> I propose the values are expanded such as:
>>=20
>> 0       undetermined
>> 1       interlaced
>> 2       progressive
>>=20
>> or
>>=20
>> 0       progressive
>> 1       interlaced
>> 2       undetermined
>>=20
>> I am unclear if FlagInterlaced=3D0 has been traditionally interpreted =
as undetermined or progressive. Advice?
>=20
> Progressive.
>=20
>> Then a second element can optionally contain field ordering metadata.
>>=20
>> Element Name: FieldOrdering
>> Level:        4
>> ID:           [9D]
>> Mandatory:    -
>> Multiple:     -
>> Range:  0-2
>> Default:      0
>> Type:         u
>> Description:  Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored.
>>=20
>> 0       undetermined
>> 1       interlaced (bottom field first)
>> 2       interlaced (top field first)
>>=20
>> To do:
>> - consider progressive segmented fields
>> - consider noting field storage order in addition to field display =
order
>>=20
>> I did consider that bff and tff values could be added as new values =
to FlagInterlaced, so that only one element would be needed. However it =
may affect reverse compatibility since some muxer may interpret only a =
value of FlagInterlaced=3D1 as interlaced.
>=20
> Not sure any player/demuxer/muxer would make much use of that flag as
> it is now (VLC ignores the data). So it's ok to break backward
> compatibility.

It does seem unconventional to have the default value be progressive =
rather than undetermined. =46rom the prior definition of FlagInterlaced, =
"Set if the video is interlaced. (1 bit)=E2=80=9D, it doesn=E2=80=99t =
not indicate whether a zero value means progressive or undetermined. For =
instance, if I create a file under the rules below and want to express =
certainty that the file is progressive I can set FlagInterlaced to 0; =
however that file is no different than an older file which has =
FlagInterlaced set to 0 because there is no certainly about that quality =
at all.

I updated and merging the concepts of FlagInterlaced and FieldOrdering =
into only FlagInterlaced. I suggest considering 0 as undetermined and 2 =
as progressive as I think this more clearly reflects the level of =
certainty used in past files. Also note that I left FlagInterlaced=3D1 =
to still be considered as interlaced although the field dominance is not =
clear as this seems semantically equivalent to the current specs, though =
maybe its usage should not be recommended.

Update FlagInterlaced  version 2
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Element Name: FlagInterlaced
Level:        4
ID:           [9A]
Mandatory:    mand.
Multiple:     -
Range:  0-4
Default:      0
Type:         u
Description: 	A flag to declare is the video is known to be =
progressive or interlaced and if applicable to declare details about the =
interlacement.
			0: progressive
			1: interlacement (unknown field ordering)
			2: undetermined
			3: interlaced (bottom field first)
			4: interlaced (top field first)



Dave Rice=


From nobody Mon Jan 11 08:40:35 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 97BC61A8A81 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 08:40:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id E6Dt40lIvSdV for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 08:40:31 -0800 (PST)
Received: from 4.mo69.mail-out.ovh.net (4.mo69.mail-out.ovh.net [46.105.42.102]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C58211A017F for <cellar@ietf.org>; Mon, 11 Jan 2016 08:40:30 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 23172FFC1E8 for <cellar@ietf.org>; Mon, 11 Jan 2016 17:40:28 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 11 Jan 2016 18:40:28 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 11 Jan 2016 18:40:25 +0200
To: cellar@ietf.org
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <5693DAF4.7090803@mediaarea.net>
Date: Mon, 11 Jan 2016 17:40:20 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 15778642770996367506
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeduucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkedugdektdcutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/qWCYSieecN7fbviqoJ-lnjh_E9o>
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 16:40:33 -0000

Le 11/01/2016 17:24, Dave Rice a Ã©crit :
>> On Jan 11, 2016, at 5:12 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>> Hi Cellar,
>>>
>>> This proposal continues from earlier conversation on matroska-devel: http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.html.
>>>
>>> Currently Matroska only expresses video interlacement in the FlagInterlaced Element, which is defined like this (see: http://matroska.org/technical/specs/index.html#FlagInterlaced):
>>>
>>> Element Name: FlagInterlaced
>>> Level:        4
>>> ID:           [9A]
>>> Mandatory:    mand.
>>> Multiple:     -
>>> Range:  0-1
>>> Default:      0
>>> Type:         u
>>> Description:  Set if the video is interlaced. (1 bit)
>>>
>>> An issue here is that there isnâ€™t a distinction between unknown and progressive interlacement. Also if the video is interlaced there is no clarification if it is top or bottom field first (or one of the progressive segmented frame options). While some video encodings (such as DV and FFV1) can contain their own information about interlacement, many (especially uncompressed formats) can not.
>>>
>>> I propose the values are expanded such as:
>>>
>>> 0       undetermined
>>> 1       interlaced
>>> 2       progressive
>>>
>>> or
>>>
>>> 0       progressive
>>> 1       interlaced
>>> 2       undetermined
>>>
>>> I am unclear if FlagInterlaced=0 has been traditionally interpreted as undetermined or progressive. Advice?
>> Progressive.
>>
>>> Then a second element can optionally contain field ordering metadata.
>>>
>>> Element Name: FieldOrdering
>>> Level:        4
>>> ID:           [9D]
>>> Mandatory:    -
>>> Multiple:     -
>>> Range:  0-2
>>> Default:      0
>>> Type:         u
>>> Description:  Declare the field ordering of the video. If FlagInterlaced is not set to 1, this Element MUST be ignored.
>>>
>>> 0       undetermined
>>> 1       interlaced (bottom field first)
>>> 2       interlaced (top field first)
>>>
>>> To do:
>>> - consider progressive segmented fields
>>> - consider noting field storage order in addition to field display order
>>>
>>> I did consider that bff and tff values could be added as new values to FlagInterlaced, so that only one element would be needed. However it may affect reverse compatibility since some muxer may interpret only a value of FlagInterlaced=1 as interlaced.
>> Not sure any player/demuxer/muxer would make much use of that flag as
>> it is now (VLC ignores the data). So it's ok to break backward
>> compatibility.
> It does seem unconventional to have the default value be progressive rather than undetermined. From the prior definition of FlagInterlaced, "Set if the video is interlaced. (1 bit)â€, it doesnâ€™t not indicate whether a zero value means progressive or undetermined. For instance, if I create a file under the rules below and want to express certainty that the file is progressive I can set FlagInterlaced to 0; however that file is no different than an older file which has FlagInterlaced set to 0 because there is no certainly about that quality at all.

+1 (we have no way to know if the muxer wanted to say "undetermined" or 
"progressive", and I prefer "undetermined" in that case)

>
> I updated and merging the concepts of FlagInterlaced and FieldOrdering into only FlagInterlaced. I suggest considering 0 as undetermined and 2 as progressive as I think this more clearly reflects the level of certainty used in past files. Also note that I left FlagInterlaced=1 to still be considered as interlaced although the field dominance is not clear as this seems semantically equivalent to the current specs, though maybe its usage should not be recommended.

-1.
 From my point of view, they are 2 different pieces of metadata, so I 
prefer to have 2 Matroska elements, with 2 different lists we could 
expand in the future independently.
BTW, what about 3:2 pulldown? set as "undetermined" or a specific item? 
This is an example of the reason I prefer 2 Matroska elements: let's 
imagine that we don't put a 3:2 pulldown specific item now (set as 
"undetermined field ordering"), but we decide later to add it (let say 
5). with merged concepts, an old reader would lose the interlace 
information despite the fact stream has not changed but the element has 
changed from 1 ("interlaced undetermined") to 5 ("interlaced 3:2 
pulldown", but "unknown for this old reader). With separate concepts, 
the old reader would still know that the stream is interlaced.

>
> Update FlagInterlaced  version 2
> =============
> Element Name: FlagInterlaced
> Level:        4
> ID:           [9A]
> Mandatory:    mand.
> Multiple:     -
> Range:  0-4
> Default:      0
> Type:         u
> Description: 	A flag to declare is the video is known to be progressive or interlaced and if applicable to declare details about the interlacement.
> 			0: progressive
> 			1: interlacement (unknown field ordering)
> 			2: undetermined
> 			3: interlaced (bottom field first)
> 			4: interlaced (top field first)
>
>
>
> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar


From nobody Mon Jan 11 09:08:12 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 252D31A6F9A for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 09:08:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4KEDAk8_SQZR for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 09:08:08 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AD92E1A8AC9 for <cellar@ietf.org>; Mon, 11 Jan 2016 09:08:07 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:45910 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIfwp-000FHI-KN; Mon, 11 Jan 2016 12:08:06 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <5693DAF4.7090803@mediaarea.net>
Date: Mon, 11 Jan 2016 12:08:01 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net>
To: Jerome Martinez <jerome@mediaarea.net>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/u92p_QYwwOs57h6izMDGFol3XQc>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 17:08:11 -0000

> On Jan 11, 2016, at 11:40 AM, Jerome Martinez <jerome@mediaarea.net> =
wrote:
>=20
> Le 11/01/2016 17:24, Dave Rice a =C3=A9crit :
>>> On Jan 11, 2016, at 5:12 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>=20
>>> 2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>> Hi Cellar,
>>>>=20
>>>> This proposal continues from earlier conversation on =
matroska-devel: =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.htm=
l.
>>>>=20
>>>> Currently Matroska only expresses video interlacement in the =
FlagInterlaced Element, which is defined like this (see: =
http://matroska.org/technical/specs/index.html#FlagInterlaced):
>>>>=20
>>>> Element Name: FlagInterlaced
>>>> Level:        4
>>>> ID:           [9A]
>>>> Mandatory:    mand.
>>>> Multiple:     -
>>>> Range:  0-1
>>>> Default:      0
>>>> Type:         u
>>>> Description:  Set if the video is interlaced. (1 bit)
>>>>=20
>>>> An issue here is that there isn=E2=80=99t a distinction between =
unknown and progressive interlacement. Also if the video is interlaced =
there is no clarification if it is top or bottom field first (or one of =
the progressive segmented frame options). While some video encodings =
(such as DV and FFV1) can contain their own information about =
interlacement, many (especially uncompressed formats) can not.
>>>>=20
>>>> I propose the values are expanded such as:
>>>>=20
>>>> 0       undetermined
>>>> 1       interlaced
>>>> 2       progressive
>>>>=20
>>>> or
>>>>=20
>>>> 0       progressive
>>>> 1       interlaced
>>>> 2       undetermined
>>>>=20
>>>> I am unclear if FlagInterlaced=3D0 has been traditionally =
interpreted as undetermined or progressive. Advice?
>>> Progressive.
>>>=20
>>>> Then a second element can optionally contain field ordering =
metadata.
>>>>=20
>>>> Element Name: FieldOrdering
>>>> Level:        4
>>>> ID:           [9D]
>>>> Mandatory:    -
>>>> Multiple:     -
>>>> Range:  0-2
>>>> Default:      0
>>>> Type:         u
>>>> Description:  Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored.
>>>>=20
>>>> 0       undetermined
>>>> 1       interlaced (bottom field first)
>>>> 2       interlaced (top field first)
>>>>=20
>>>> To do:
>>>> - consider progressive segmented fields
>>>> - consider noting field storage order in addition to field display =
order
>>>>=20
>>>> I did consider that bff and tff values could be added as new values =
to FlagInterlaced, so that only one element would be needed. However it =
may affect reverse compatibility since some muxer may interpret only a =
value of FlagInterlaced=3D1 as interlaced.
>>> Not sure any player/demuxer/muxer would make much use of that flag =
as
>>> it is now (VLC ignores the data). So it's ok to break backward
>>> compatibility.
>> It does seem unconventional to have the default value be progressive =
rather than undetermined. =46rom the prior definition of FlagInterlaced, =
"Set if the video is interlaced. (1 bit)=E2=80=9D, it doesn=E2=80=99t =
not indicate whether a zero value means progressive or undetermined. For =
instance, if I create a file under the rules below and want to express =
certainty that the file is progressive I can set FlagInterlaced to 0; =
however that file is no different than an older file which has =
FlagInterlaced set to 0 because there is no certainly about that quality =
at all.
>=20
> +1 (we have no way to know if the muxer wanted to say "undetermined" =
or "progressive", and I prefer "undetermined" in that case)
>=20
>>=20
>> I updated and merging the concepts of FlagInterlaced and =
FieldOrdering into only FlagInterlaced. I suggest considering 0 as =
undetermined and 2 as progressive as I think this more clearly reflects =
the level of certainty used in past files. Also note that I left =
FlagInterlaced=3D1 to still be considered as interlaced although the =
field dominance is not clear as this seems semantically equivalent to =
the current specs, though maybe its usage should not be recommended.
>=20
> -1.
> =46rom my point of view, they are 2 different pieces of metadata, so I =
prefer to have 2 Matroska elements, with 2 different lists we could =
expand in the future independently.
> BTW, what about 3:2 pulldown? set as "undetermined" or a specific =
item? This is an example of the reason I prefer 2 Matroska elements: =
let's imagine that we don't put a 3:2 pulldown specific item now (set as =
"undetermined field ordering"), but we decide later to add it (let say =
5). with merged concepts, an old reader would lose the interlace =
information despite the fact stream has not changed but the element has =
changed from 1 ("interlaced undetermined") to 5 ("interlaced 3:2 =
pulldown", but "unknown for this old reader). With separate concepts, =
the old reader would still know that the stream is interlaced.

Update FlagInterlaced  version 3
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Element Name: FlagInterlaced
Level:        4
ID:           [9A]
Mandatory:    mand.
Multiple:     -
Range:  0-2
Default:      0
Type:         u
Description: 	A flag to declare is the video is known to be =
progressive or interlaced and if applicable to declare details about the =
interlacement.
			0: undetermined
			1: interlacement (unknown field ordering)
			2: progressive

Element Name: FieldOrdering
Level:        4
ID:           [9D]
Mandatory:    mand.
Multiple:     -
Range:  0-2
Default:      0
Type:         u
Description:  Declare the field ordering of the video. If FlagInterlaced =
is not set to 1, this Element MUST be ignored.

0       undetermined
1       interlaced (bottom field first)
2       interlaced (top field first)

For "interlaced 3:2 pulldown=E2=80=9D, wouldn=E2=80=99t such as =
expression require additional information to align the ordered frames =
with the pattern of the pulldown? Additionally if the content is edited =
the application of the pulldown could be offset within the timeline. =
Perhaps we should consider extending FieldOrdering to encompass =
"interlaced 3:2 pulldown" as a separate issue and focus the thread on =
clarifying progressive, interlaced, or undetermined along with field =
ordering information.

Dave Rice=


From nobody Mon Jan 11 09:12:16 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A51081A8AC9 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 09:12:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eIehIlKi3P_p for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 09:12:13 -0800 (PST)
Received: from 6.mo69.mail-out.ovh.net (6.mo69.mail-out.ovh.net [46.105.50.107]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B54E1A8AC3 for <cellar@ietf.org>; Mon, 11 Jan 2016 09:12:13 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 85670FFC2DB for <cellar@ietf.org>; Mon, 11 Jan 2016 18:12:11 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 11 Jan 2016 19:12:10 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 11 Jan 2016 19:12:08 +0200
To: cellar@ietf.org
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <5693E263.2040009@mediaarea.net>
Date: Mon, 11 Jan 2016 18:12:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 16314289651149115538
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeduucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkedugdekjecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/EjAUEmS7Bu4d7GxSfALPrbD8KNs>
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 17:12:14 -0000

Le 11/01/2016 18:08, Dave Rice a Ã©crit :
> [...]
> For "interlaced 3:2 pulldownâ€, wouldnâ€™t such as expression require 
> additional information to align the ordered frames with the pattern of 
> the pulldown? Additionally if the content is edited the application of 
> the pulldown could be offset within the timeline. Perhaps we should 
> consider extending FieldOrdering to encompass "interlaced 3:2 
> pulldown" as a separate issue and focus the thread on clarifying 
> progressive, interlaced, or undetermined along with field ordering 
> information.

"3:2 pulldown" was mostly an example about the reason I prefer 2 
separate elements, I am OK for postponing this subject (such stream is 
currently not handled by current Matroska, so not a problem, it is just 
"undetermined" for the moment).


From nobody Mon Jan 11 10:12:59 2016
Return-Path: <mjbshaw@google.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E9D501A8F3E for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 10:12:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.379
X-Spam-Level: 
X-Spam-Status: No, score=-1.379 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bfGqmKeG1VGA for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 10:12:56 -0800 (PST)
Received: from mail-pf0-x236.google.com (mail-pf0-x236.google.com [IPv6:2607:f8b0:400e:c00::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7CFA11A8F33 for <cellar@ietf.org>; Mon, 11 Jan 2016 10:12:56 -0800 (PST)
Received: by mail-pf0-x236.google.com with SMTP id q63so49701442pfb.1 for <cellar@ietf.org>; Mon, 11 Jan 2016 10:12:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=8/xCqmjVgROuNTm7g3cZSyhGs77uKfHVE+oP5tL4VQ4=; b=na1lV6EH34GF3imFkqLllEWJozIzTTzjwjYrUffQukl0yL4w662Zg7e/Aam6yMKubS gmO0h6PnJjHzjPrRMQN/rsjMt8wJ0EfyAmQOKHbD1hRln6Oz3WOfl+L8nm6gaN9fZ3D8 hLGg76zbUZuXJx+kipLaAPRoK16NwusqvlsJvDXE8lgUJM/TR/HZ3g1cgLwjc8cFbCea A3DJ7pTYM29KiJnHPvTLWiWxHJacKTulgRmwkeMUjtvbQQjszzXhezN4ztDDxduYR6SD T2BL/a6wr5Ghp0hWRD26n4oYLxoNDUQPXDBxD3aGHqiWoAKMv2stnzXf0eUV6vFsUR4r LUfw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=8/xCqmjVgROuNTm7g3cZSyhGs77uKfHVE+oP5tL4VQ4=; b=eJG9CMfvaDxyr9CldTgpO/kBXNfUfDxrrS8suQJ/pp7w5ebfLvNLn1Y3slVZgrO/IK gXUrDYpZcDAwhUjaF5jSnWa7959aLnLoR+qMhdUe1zgr0Q6hRyAOsmq3Tg5nFjxhovX2 J1v+pbASUligzEX4o/xU0xhn+dKSkCcTpnGjyvhmJepkb/2khIsDrum6+BOXdiirqpwm G4tfktlTQBYzGwAbJN5Ki0x9Ueyn4L03fKSYp3amO23WNDKOAfdoDnLiCTTk2rH5yf37 RR/55huMFhzmrd4m0LfxQy/AFsXpSlnHBflE8e+GAoXQyMb3IwaU6dpArug9YrpdC1o5 oYQw==
X-Gm-Message-State: ALoCoQk0PXvJennNERX54gAEP+HoPPlxF7qXhFSlunNL+V/jmOeCN+Z1+IHBm1cDASgnNOV9RnN8o+qJgV6yRgok6Gu15BSCB5ZrVgSekWxEWJj3Rg3+XwE=
X-Received: by 10.98.1.21 with SMTP id 21mr28013809pfb.8.1452535976038; Mon, 11 Jan 2016 10:12:56 -0800 (PST)
MIME-Version: 1.0
Received: by 10.66.156.165 with HTTP; Mon, 11 Jan 2016 10:12:36 -0800 (PST)
In-Reply-To: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
From: Michael Bradshaw <mjbshaw@google.com>
Date: Mon, 11 Jan 2016 10:12:36 -0800
Message-ID: <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com>
To: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Content-Type: multipart/alternative; boundary=001a11456d0ce05dd6052912e293
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/MpUVUzLfrKfbrFti8Hyg1HeCOo8>
Cc: cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 18:12:58 -0000

--001a11456d0ce05dd6052912e293
Content-Type: text/plain; charset=UTF-8

On Sun, Jan 10, 2016 at 2:57 PM, Dave Rice <dave@dericed.com> wrote:

> Hi all,
>
> Here is an early draft of Elements for managing ReferenceTimecode tracks.
> Matroska uses the term 'Timecode' to reference presentation timestamps,
> whereas other formats (QuickTime, MXF) use 'Timecode' to reference a time
> reference that is added to the timeline which is inpendent of the
> presentation (i.e. a QuickTime file with a timecode track that starts at
> one hour aka 1:00:00;00 would not cause a one hour delay before playback
> starts). In the context of Matroska I am using ReferenceTimecode (for now)
> to refer to QuickTime/MXF style timecode tracks.


Will the current timecode elements (TimecodeScale, Timecode,
ReferenceTimeCode, TrackTimecodeScale, and block's Timecode) be renamed to
"timestamp" or "presentation timestamp" (or something like that)? I hope
so. I know this is tangential to your post, but I want to get a "big
picture" in my mind of where this is going to end up. I'm also slightly
concerned that using the name "ReferenceTimecode"  will be a bit confusing
to developers, given the old ReferenceTimeCode (DivX trick track
extensions) element.

--Michael

--001a11456d0ce05dd6052912e293
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On S=
un, Jan 10, 2016 at 2:57 PM, Dave Rice <span dir=3D"ltr">&lt;<a href=3D"mai=
lto:dave@dericed.com" target=3D"_blank">dave@dericed.com</a>&gt;</span> wro=
te:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;=
border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:=
solid;padding-left:1ex">Hi all,<br>
<br>
Here is an early draft of Elements for managing ReferenceTimecode tracks. M=
atroska uses the term &#39;Timecode&#39; to reference presentation timestam=
ps, whereas other formats (QuickTime, MXF) use &#39;Timecode&#39; to refere=
nce a time reference that is added to the timeline which is inpendent of th=
e presentation (i.e. a QuickTime file with a timecode track that starts at =
one hour aka 1:00:00;00 would not cause a one hour delay before playback st=
arts). In the context of Matroska I am using ReferenceTimecode (for now) to=
 refer to QuickTime/MXF style timecode tracks.</blockquote><div><br></div><=
div>Will the current timecode elements (TimecodeScale, Timecode, ReferenceT=
imeCode, TrackTimecodeScale, and block&#39;s Timecode) be renamed to &quot;=
timestamp&quot; or &quot;presentation timestamp&quot; (or something like th=
at)? I hope so. I know this is tangential to your post, but I want to get a=
 &quot;big picture&quot; in my mind of where this is going to end up. I&#39=
;m also slightly concerned that using the name &quot;ReferenceTimecode&quot=
; =C2=A0will be a bit confusing to developers, given the old ReferenceTimeC=
ode (DivX trick track extensions) element.</div><div><br></div><div>--Micha=
el</div></div></div></div>

--001a11456d0ce05dd6052912e293--


From nobody Mon Jan 11 10:21:41 2016
Return-Path: <bastik.public.mailinglist@gmx.de>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3F4041A8FD2 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 10:21:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VVhgPXabV3rs for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 10:21:39 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7A71E1A8F51 for <cellar@ietf.org>; Mon, 11 Jan 2016 10:21:38 -0800 (PST)
Received: from [192.168.2.129] ([188.100.175.162]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0M0gww-1a3eJy2Iu6-00usTx for <cellar@ietf.org>; Mon, 11 Jan 2016 19:21:36 +0100
To: cellar@ietf.org
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
From: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Openpgp: id=BFE90DE515B6F548CDE298939902921C2B944DAE
X-Enigmail-Draft-Status: N1110
Message-ID: <5693F2AD.4080206@gmx.de>
Date: Mon, 11 Jan 2016 19:21:33 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:6YDF+usghD8QYC+qxpMhN84xLSFKmcdy197rnKFaECIg8pNQSXp LYu1otVCQiTVPyZx8BfZ80APxESrPUVf4T5KDqcGWVY5UOdZGtlHCbRKRGuy57AU0EkC3hy 161rSxs3OyaeSx2EbJ0Zx/PqK+45pQ8V07PZ7PBKyUJqj72bZEnW3ZftflE9hPF/A0J+VDn P7ys8CpFPrxBbG1DG/Veg==
X-UI-Out-Filterresults: notjunk:1;V01:K0:e61nHJ9KMcY=:R00KmigDck3VgtNwclz6gy N72hxEUhMoSfPEiv3qM/bKjaEMtA9VYJQ+YieFMW3Sh25yHwtdLO2VF21UrAAgKYlBYsGmrGL q3F0FZW1CC3mkICsEQR2E9l6KGjRgF/aDnrjmIoLhHw2LnfUENc6ON6G3Gj3wPIVTLegpXJRC gIgbdOma0A9gBIMvulSEQD6hV+peBvjMl3Z7FDfdANFC3qoFeB2IjK66EtX26ldAm9WQFg1uL uNT3nS2O7GZhM/TKlKNiBAxou3M+AS5+QpwN/DLf0vhlSzeIfRVXqjkBZFmURtcElxaxwo4Kt gkl4kALeJrtJVdIyqw3DA++ybJlTk+DfePV3247ZhY3esZQjBx9TwTThie8Uc0xfIiyRVS6mR FzzEXJbFLpwcVESfBxxHoikdjDPsUB9vB1UbKQjnC84SUW1MrC3sx+Tdjx3Bjc+gbZjUSl0S7 K7nm3whxyMN/qJRxLfsR1tzh26RhV11IP/v1gIdNZbD0+DHk2XAPyo0ZR3iefuoZZN1lVgkZW LswccCPOj/K43l30cRBTo+ZAQ7WS+KvChfcjAkUH5cky2cXWe3z9kFEYffqvkego1zr2UHx5F 8w/3vDcK3TFklUsCOrLzzBiU5dNokNAFbY5ZFcfSRn7gdqbwvFdJaGKwP8wa5w9hBFNr9LyyQ pfNf6yLa+TGHL4l7TJ8qu/lSFooHfxWRD9SYMqXhJMNEb9UjVessitCVJ0aDp6NWfkYV1RkUL iXVfHKlqn8HAtuvkLVQMlJor+BpKQcfH5385iIa+tqK61oer4FgvJ/Fg3j8e7jYApYgM1svcJ mJ0OM/0
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/AurY-bXKbEEN6oz2j_P4lcy6xRc>
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 18:21:40 -0000

11.01.2016, 18:08 Dave Rice:
> Update FlagInterlaced  version 3
> =============
> Element Name: FlagInterlaced
> Level:        4
> ID:           [9A]
> Mandatory:    mand.
> Multiple:     -
> Range:  0-2
> Default:      0
> Type:         u
> Description: 	A flag to declare is the video is known to be progressive or interlaced and if applicable to declare details about the interlacement.
> 			0: undetermined
> 			1: interlacement (unknown field ordering)

'(unknown field order)' is not required if it is split into to elements.
I have no preference for or against splitting it up.

> 			2: progressive
> 
> Element Name: FieldOrdering
> Level:        4
> ID:           [9D]
> Mandatory:    mand.
> Multiple:     -
> Range:  0-2
> Default:      0
> Type:         u
> Description:  Declare the field ordering of the video. If FlagInterlaced is not set to 1, this Element MUST be ignored.
> 
> 0       undetermined
> 1       interlaced (bottom field first)
> 2       interlaced (top field first)

I think that using '0' as no statement is a good decision.

(I always wondered why two ways of interlacement exist as it makes it
more complex than it has to be. I'd like to have full frames, anyway.)

> For "interlaced 3:2 pulldownâ€, wouldnâ€™t such as expression require additional information to align the ordered frames with the pattern of the pulldown? Additionally if the content is edited the application of the pulldown could be offset within the timeline. Perhaps we should consider extending FieldOrdering to encompass "interlaced 3:2 pulldown" as a separate issue and focus the thread on clarifying progressive, interlaced, or undetermined along with field ordering information.
> 
> Dave Rice

--
Sebastian


From nobody Mon Jan 11 10:47:52 2016
Return-Path: <mjbshaw@google.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3380E1A9031 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 10:47:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.169
X-Spam-Level: 
X-Spam-Status: No, score=-1.169 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k9LjJDOQ8W7U for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 10:47:48 -0800 (PST)
Received: from mail-pa0-x22f.google.com (mail-pa0-x22f.google.com [IPv6:2607:f8b0:400e:c03::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4DDB21A903A for <cellar@ietf.org>; Mon, 11 Jan 2016 10:47:45 -0800 (PST)
Received: by mail-pa0-x22f.google.com with SMTP id uo6so308501624pac.1 for <cellar@ietf.org>; Mon, 11 Jan 2016 10:47:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=74wo9WQ4zgzn158pXlmvjadu4LQmUesTh4CarMteYDo=; b=M4IZNAZD0Wqj6j2CChoxCjQ2pIPKh14szwT1Bon8lSS0/nW8WIqzidkZZr1G5Mecyb u2aAqoMDmp91+/XA50VguX3K95LFlkoQVaocW2vfLVZuZIBC6tCI+tMx2M3/7SVvjO7X UIG/2vX4d6sBzYgV9I602ff6b8H4A2zLbbfbSrEw1Sz0ciFlm9h+mt/HaR8Lz26+Vua6 Bdx3SpXNNW5+eVSq5YOOTmgsgHqhnOtD5XWAcVSmPmlf7eU7gjSCUvVqluCLE3b4R163 C/KRsq1RU+WwB3Z+yaWULd0os0eeqfDJvJ8zJ8dpTduFeK4xMoB6xgaDI9ZW0lMit+bj oo6A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=74wo9WQ4zgzn158pXlmvjadu4LQmUesTh4CarMteYDo=; b=ItW2DWXZ4JI50B1I5cKr7+WVVFgnVVbD/9kcB+VbG9AbRjQn/A3knlepXeS67plBW4 noRP+EzHvrq+gjD5gH/p8euT8Bjmfo0QnXfnnKGS9bWFfXESCmvz4Ip6G+IjlnJlLCvh M29iu4kFcVcYqB8HTrF+crtMqQ9HDbQ7zXeYEzJRWGfcm3fyV1nMqrVgzAggrZBbcVAk s6/xxeg5nU5Fto9CSijNprfbgJYvqHx2e34cYFJq/inOJiV7UQTtThNnkV04ceR+1Qye P3Ru+FJ81jw1AtuEZBX5GhATyplnxc2THvcbnNDuSEfDXHvUHayouDXnhEVqxJkESahS RsSw==
X-Gm-Message-State: ALoCoQnIW+c+DnhIpTEj+iJ4wApKPWMKB8lwTqFpQYtNVvVsoh1QGJqBjNyI0R5RXY6L3SCgNdoMCF5lYRrpRy4jCiggE+H3JscCnQBzNAZhBSnpuIGRcLc=
X-Received: by 10.66.219.232 with SMTP id pr8mr16530166pac.104.1452538064625;  Mon, 11 Jan 2016 10:47:44 -0800 (PST)
MIME-Version: 1.0
Received: by 10.66.156.165 with HTTP; Mon, 11 Jan 2016 10:47:24 -0800 (PST)
In-Reply-To: <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com>
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com> <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com>
From: Michael Bradshaw <mjbshaw@google.com>
Date: Mon, 11 Jan 2016 10:47:24 -0800
Message-ID: <CAHUoET+Z0Njek5-uS6DcGsNeWU+1LRVURQBWttAr0wHjesm04g@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
Content-Type: multipart/mixed; boundary=047d7b5d9f3b5e09500529135f93
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/CRyLlAp_FbCJQ78-Mw0hZO100cs>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 18:47:50 -0000

--047d7b5d9f3b5e09500529135f93
Content-Type: multipart/alternative; boundary=047d7b5d9f3b5e094c0529135f91

--047d7b5d9f3b5e094c0529135f91
Content-Type: text/plain; charset=UTF-8

On Mon, Jan 11, 2016 at 2:19 AM, Steve Lhomme <slhomme@matroska.org> wrote:

> 2016-01-07 23:39 GMT+01:00 Michael Bradshaw <mjbshaw@google.com>:
> > Blocks can have a negative timecode in the following situations:
> >
> > Cluster Timecode + Block timecode < 0. This may happen if the Cluster's
> > Timecode is near zero and the Block's timecode is sufficiently negative.
> > CodecDelay > Cluster Timecode + Block timecode. I have a WebM file
> created
> > by ffmpeg with an Opus audio track that has a CodecDelay of 6.5ms, and
> since
> > the first block's timecode is zero, its computed timecode is -6.5ms.
> mkvinfo
> > shows this frame has having a timecode of 0.000s, but ffprobe shows a
> PTS of
> > -0.007ms (rounding up).
> >
> >
> > The notes say that "Blocks with a negative Raw Timecode are not
> valid."[1]
> > This page, however, does not mention CodecDelay's role in computing
> > timecodes.
> >
> > Questions:
> >
> > Should the Specification Notes talk about CodecDelay's role in computing
> a
> > block's timecode?
> > Assuming the answer to the previous questions is "yes," is a block with a
> > negative timecode due to a CodecDelay still invalid (i.e. is CodecDelay a
> > part of Raw Timecodes)?
>
> IMO it should be invalid. Does this 6.5ms before 0.0 have any decoded
> data at all ? If so it seems to be an abuse of the CodecDelay
> (although the definition doesn't cover that).


I've attached the file (tos.mkv) and the first 6.5ms of decoded audio
(first_6.5ms.wav). When ffmpeg decodes the MKV, AVStream.skip_samples is 0.
These first 6.5ms of audio (312 samples, to be exact) are not silent. I've
repeated these first 312 samples 400 times (repeated_400_times.wav) so you
can listen and here the data is in fact not silent.

ffmpeg produced this MKV file. I think this might be a good example that
shows it's important to clarify this in the specs.

--047d7b5d9f3b5e094c0529135f91
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On M=
on, Jan 11, 2016 at 2:19 AM, Steve Lhomme <span dir=3D"ltr">&lt;<a href=3D"=
mailto:slhomme@matroska.org" target=3D"_blank">slhomme@matroska.org</a>&gt;=
</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px=
 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-=
left-style:solid;padding-left:1ex"><span class=3D"">2016-01-07 23:39 GMT+01=
:00 Michael Bradshaw &lt;<a href=3D"mailto:mjbshaw@google.com">mjbshaw@goog=
le.com</a>&gt;:<br>
&gt; Blocks can have a negative timecode in the following situations:<br>
&gt;<br>
&gt; Cluster Timecode + Block timecode &lt; 0. This may happen if the Clust=
er&#39;s<br>
&gt; Timecode is near zero and the Block&#39;s timecode is sufficiently neg=
ative.<br>
&gt; CodecDelay &gt; Cluster Timecode + Block timecode. I have a WebM file =
created<br>
&gt; by ffmpeg with an Opus audio track that has a CodecDelay of 6.5ms, and=
 since<br>
&gt; the first block&#39;s timecode is zero, its computed timecode is -6.5m=
s. mkvinfo<br>
&gt; shows this frame has having a timecode of 0.000s, but ffprobe shows a =
PTS of<br>
&gt; -0.007ms (rounding up).<br>
&gt;<br>
&gt;<br>
&gt; The notes say that &quot;Blocks with a negative Raw Timecode are not v=
alid.&quot;[1]<br>
&gt; This page, however, does not mention CodecDelay&#39;s role in computin=
g<br>
&gt; timecodes.<br>
&gt;<br>
&gt; Questions:<br>
&gt;<br>
&gt; Should the Specification Notes talk about CodecDelay&#39;s role in com=
puting a<br>
&gt; block&#39;s timecode?<br>
&gt; Assuming the answer to the previous questions is &quot;yes,&quot; is a=
 block with a<br>
&gt; negative timecode due to a CodecDelay still invalid (i.e. is CodecDela=
y a<br>
&gt; part of Raw Timecodes)?<br>
<br>
</span>IMO it should be invalid. Does this 6.5ms before 0.0 have any decode=
d<br>
data at all ? If so it seems to be an abuse of the CodecDelay<br>
(although the definition doesn&#39;t cover that).</blockquote><div><br></di=
v><div>I&#39;ve attached the file (tos.mkv) and the first 6.5ms of decoded =
audio (first_6.5ms.wav). When ffmpeg decodes the MKV, AVStream.skip_samples=
 is 0. These first 6.5ms of audio (312 samples, to be exact) are not silent=
. I&#39;ve repeated these first 312 samples 400 times (repeated_400_times.w=
av) so you can listen and here the data is in fact not silent.</div><div><b=
r></div><div>ffmpeg produced this MKV file. I think this might be a good ex=
ample that shows it&#39;s important to clarify this in the specs.</div></di=
v></div></div>

--047d7b5d9f3b5e094c0529135f91--
--047d7b5d9f3b5e09500529135f93
Content-Type: application/octet-stream; name="tos.mkv"
Content-Disposition: attachment; filename="tos.mkv"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ijaav2ow0

GkXfowEAAAAAAAAjQoaBAUL3gQFC8oEEQvOBCEKCiG1hdHJvc2thQoeBBEKFgQIYU4BnAQAAAAAA
Y7IRTZt0QCxNu4tTq4QVSalmU6yB3027jFOrhBZUrmtTrIIBME27jFOrhBJUw2dTrIIBnuwBAAAA
AAAApAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUmp
ZgEAAAAAAABFKtexgw9CQE2AjUxhdmY1Ni40MC4xMDFXQY1MYXZmNTYuNDAuMTAxc6SQmB6yDny7
Ygq0fWomKLFSmUSJiECflAAAAAAAFlSuawEAAAAAAABirgEAAAAAAABZ14EBc8WBAZyBACK1nINl
bmeGhkFfT1BVU1aqg2MuoFa7hATEtACDgQLhAQAAAAAAABGfgQK1iEDncAAAAAAAYmSBIGOik09w
dXNIZWFkAQI4AYC7AAAAAAASVMNnAQAAAAAAAK9zcwEAAAAAAAAuY8ABAAAAAAAAAGfIAQAAAAAA
ABpFo4dFTkNPREVSRIeNTGF2ZjU2LjQwLjEwMXNzAQAAAAAAACljwAEAAAAAAAAEY8WBAWfIAQAA
AAAAABFFo4hMQU5HVUFHRUSHg2VuZ3NzAQAAAAAAADpjwAEAAAAAAAAEY8WBAWfIAQAAAAAAACJF
o4hEVVJBVElPTkSHlDAwOjAwOjAyLjAyMTAwMDAwMAAAH0O2dQEAAAAAAGFN54EAo0FygQAAgPx7
EDsOLWf0nK/qqlmQs32mOVAHq6EeVANssNUe8G6yFrByJLnwP1ZuY04Ltz5Gy3MRwPArivYJuLOd
J5V5IyuS1fT+6qbGqCocggT4XPZxSpsECr0AxoTgkTQ1y6jCjCjPo4rjIXhrp434FYSMOubMDLGg
WKZ+CAbIQoO59gt5AEAmcy62+GMnhd8ZTrry7qN35FNYTt+ZyOwtZQDEW+WxBhv3FhU9EjRjBDPJ
89bji0k56Ym1uc1CmYm1sGSzgT6yiPjP3kO02vh3fnwc1ypjVaHibA5/QrSibA5PkogB7ynrGm04
sUdmUbmnBn05z71p091AQ7+O3wnQslONDgMGGiNzbQ6ZYVowcc5ZJqMZU7BZRCHVp3/nQVIvGJNA
UJRM3YD0G23ZGNmowO1sS3E4yUI7hrufgl67Lx6SZZxYZV9brBMWrPya4ufMV6loFC7wXJLDjgs4
hx2KehEw7a4ASsScTSTkcSk3ylpFi6NAyYEAFYD8wfB4PCTo6qqcRv9ucYNepDgSL7IEVEl2/n7d
xFPW77ITPSiJjA8KcOj20FXy6B+MpNq8SRn9nI6ptKzh2Z0i6dcPeSWs1grvFiwO+tbxadPWGrc9
b0vG5aRjJCvuk5I80OJwqrmus4m2G3z+s3dO+kbMPOfMBK2fGeyYxGpodcb8q+r61b/tO1e/A711
LMQ8ESDde3c4hEv2m6hH0jf4R/rn4FYYhCrPmyVVdOnqsHKlXwk1bTXNUS3c44zmvBsn/DnpTaNA
yYEAKYD8v//mJgG1SkjFFn4NDexgGVSrlVQtLhefl7ymZgD2MN6tJVUxiPRUZhujs7eJJuUODhI5
URWtf8Uv2k5HbR/6BOu1WECgIkqplauWGwxh4KTBIgGrONyE4nsvRRE1tTirvDeu+3BJdLIVDIlw
U6SuuG8Q1YYfP4y78Ik6gQ3XBsHs8XfNPnvCLR33eMlaRo2fQ8nVcNO19ATqiUdcl3yGV77KZvko
svvLu0V2jniGhtnmtWdhL6QsEhJRc9Nv6g8WBIFBwKNAzoEAPYD8wzRok5i6krBCmdukiLa0TWsN
wWYUOihDQsvdHoT+ntxH0pE//lFr8lTMkDMudZ1zaLItpP9g48re3E1KY3t+h65QS2z4h2Sp9jOG
Mjz2I49xQi5ikvp5ILJ3WsYakm1ZT3JOElI58r8x3w8ItXZrFlEGox60SLK6UAIT9fZeVLxuVlnW
VaO2vGOXNT4fX0IFSETomIyrmehWlYDN80XihkU/A6wW+uREtF1X6PNgmBBnSrK1W7K1Eo965u4J
7i/DM4u82BPP7HS6o0FagQBRgPzPyQMkzI+9h0M69NAIqH23MPJ21AXB4JrotQXAhHTxQX+bn8Hd
TtvopTc+b/s3ptFpmwQMe4uRZe3ZQtmJ4d/C9zAaLolihMWcCu9UNnMaTQSN2Y3iDW7IADVLC08t
Qg0bRAMAFzNR6aS3e+QHcIKL2Xx1FWV0RppxQKMsvfFkv5XleGcBek5kDiN1cXjG1BLfIbBjMZ4W
qpqtPlAy6aCTvmh2sGVMzSdmp8SFLggQ0+fLsIzCbL6HG+wDOKn3DdpAuozXwADTVIf0yEWbfsWS
le4jYSsALGPick2WAUAzW9u0rY9Ic4yehpDZGwj5DAy2gupvHvRpv9OgTGp5i5i5uy7b2Xn5Czqk
RGQtUHtxljO4NH0bhz4wWTqteMfOBYxif95g/sM9u6sNDMD4aUN16w0yDUNytcfx0QquozlzBZch
NrNp+C1vYr/b89aQSLI8Y49IwaNBOoEAZYD8dxb/HdzbeK7c9VVJtzx1Ih7p76GV03sXYk0NN7CW
6amnMNJxhn+PfDIdI/FGAfuRAzVf/kbXuEICrsHKaOJenLUrbgu5Stw6lk55d4cQcmIShH95ebXy
+NbEnuRaGT1ehX5b6PjxDbJhK/4eB2ogOfbqWPdFRtXjy75gXGqaeWs7XqelmTPeksrN6F3ZrfA/
cAjZI/tyuoo1l7fNSIlvYUoFEpqanWGEu6whTMB7MdEPYWiWk7Y577bVslM8hkxvn/t+fHAW7k6i
9AV6scxrjTVtOxyAZjzo9fVlqi5zsnH9XAmQ1tcG0w5XUoamRQ2yQmu2sASF9J7jKQkZH1DKfdlL
42KwAt2vypY7qC4gbZ9yUwaZuiqtjLK9NoLTjAUQcLvdYzsfoA6nKk/S2CnLum45TLluo0FIgQB5
gPx2lPg8pUZ/XfRXysxYpq+yYKuKv7n2zijeLO2hcB18Gg56PKBG7hFAtydjvimtaHT86UcL7cXp
Kc9VAYVShp50Dx8yW1wvhfhIQCAbLjmjb7Mr4fczUsUzEEibd/gckAZ7DwuNKgLPdybLqr2H/OHL
eFd/hrRbCMdizA+dzvgjbXbseuYkj/ybP+0/MzZwwywlF3b45qd5Z7DsBaNmyZ4KfUcaL1IHVKtG
jI6dWU0uPv4yvd49fQIdYc8fhJJQzWCwt3x8YPtOcL5I0XfJlNDgETxVNeYsssgql7ZbHZRwweut
9BmVof4vWq/toBgdJxlj8cRVbWjGfM4/DjBP2nPkKN06JuQrm+nPoucKNlt8wz7lpnz56lsQ5k4j
P0Ugm1v3ha7aYfpTGG05duCfd5ChzzQjPY+smYwANv2xoTrV0hnOgqNA9IEAjYD8AYPu0g6ViCGU
3VAWuuh33khuqD6gPAhNW8R2oluLZFlDTFjHfCotPjywy+P/iDkgoyqjOH/2CJJyikee/6uqyb3/
CX9NhNw5CmEir90GfQ38wGYd8wpcBBWp/UxcfW/yphfnuG363gvclrG6wbIM0ynp9t+AIcRhT+O2
wx9ZKrK9qGhtPI039BnZO41LdbALXOeBjATzSwt/R/9Cv/ZcOOvRfpE8Cxj4GVAWyO0F4xKl1XYP
c6L9nioScX+z8RqjW27TImha2fCfhVZ82OQBtissLzVL2rTvnIVWS/B2vXMPy1SDzYwLPJQK7+DD
nsKjQMqBAKGA/C4DRNDWSNea9Nx33peFtzrAfdfFIG5RCYtUwYIF3V0fHYCRty+W0fN4Snq1FOM9
TnpBdFOFK/wbRI2Fe6autfN6U+MO2IzZJaoO0Z7mlGzQqbfW0v00e5vEQIAuFqkKh6oxCc/NuF8Q
BfcN7wr/MowCUsCsQs4J4VmUBuSn+nDC8oBBYLzH6+lPUE89nx1mFC0at2viBDI2Tjy1N3cIzTVo
kVBFSYVWboB3SEL7gI/D1FCJF8QglFYbAm7W99kB5dB0hmpVo0DKgQC1gPwmqTtbbPJzzlnuU5dM
X7N+mvr9stVLU3NXPoCoyFTfq/RiGU+meQwOvlWeA/n7ZNzxJVtzuyocQisJbPxZC18b0pqgMkQi
Csc1ZHFvKGioGNfkfQcFgK23LZ76a9IstQAcAHm0EPPMyvknXCnxe7ec2GnHXfS0ZHbFYCDs2Rp2
q2XlJ4AcxVQMxzgYHuvVKFffr4gGw1e6PR0X3wnm9YigB6o5/7qIL9iLDGzGsID4wDKHLJdBkUMV
sgwuAJJALG3wt80sHKNBIIEAyYD85PRWoCJXL1zRxJNeWHMI+YZy4M7ybN2CKTlT1K9+jBsPL6xu
JkEPQZ0Gr8jzzY2NUqjUmsRT7kG34XBMNz9cfzqz3k73+/j/dAcbelnR+a+XLeYxcgEEBviFvdgO
L0VmXvh1KfC+TxRdSKQM7nNgf44KQJDT0l+ByqZa1HQ9pj7UfzKJ0nJHQWAWPoQTXG0EWSBbqHCy
Hrmu2vgBtKdEoFsxDHQX+xCEqSUaUtY6gXRP2lb1nIi//BJM5E1R96/Q2wgLAEjf+WgBUzX0YCii
sdhFtBOPoLQqdsPkYMb1AJ3mGDqT2ex1wHCGYP9a6HUI+MP1nPlkLzmwA6mO4BeHW2D63qP/BpWT
2Yd2zSCVbaBs8XaCXWLPDWopG6NBOYEA3YD85O+7gnEP7/AJBK/kYf6fyS6F3GHCVrQw1b8x/5Qg
fJbkMupvq9y6VLLORUZ5pOQjpTbE9wq7dB/Uj6EOEjAPsEIdUjPFkZqEYIYgU+L3tCn1+gc5Vrap
l+bTdqtcw8ob7RVVxYzGyj+ULgCcffPai4RmRXyr9gYysjsDh0OSHgB+bvE6iE0yJLUQfCPYsDpc
Ac+o2wPGvYw0FTItCE5caNYQO27kx65M55LhsCbILR28MUoi0C7vwhqL7QElLJuMDyKyy71w752c
U0FSWTfcZXSR+i2Fvgc6xVQ+T8TGHqd8i1UagD55m6N4RqMI3IX75iqCiBQhhutmLQWRl+rahAUj
bG1iahY1tXlkr5G1BH+xt8ULgaB/KzmKwqTm7xnG5KtBeo627N2ySgrjs95X2Fsf+RSjQMKBAPGA
/OAAU0Op+Xx15DDzxhVLeU32NrFfHGtTDj29qm260SQbU7S6xG4nnIMESArnt9o8PORtsi/rG45x
MmR17AXs07SVRm4Hc6AF3SFCt5S11u1+viGwoQMhIHNued5ZqrXDkNPy2w1rnryuA30CSDNAhyKD
AbJ7dFxn+d5yBFxDzsLIiK5zvHY1X2QNngW9r1KGTeoFIB36MIUna5kUPHm2YUVYg9xlhfNKGL+H
MlkqKwEx85NiccMHC2Ldt5UsHKNA24EBBYD84ek9OlovPGBZPOObx0zT7QLoJ3rGqpdJwn73ULXS
dCT6TJgC0IKw9M8BqyYhI9G7z0yhKFraOUfzVEGW9RRmKgg8e1cidzOozlYVccslcylky2CWuSOI
kjto9g1Kk/miL6yWfLtp8BKZN6BtCPkOCcKrmMVjgf/H8BYtgvszeLyfSwz9AEopcyzyL1lOsFhR
CxWty1AK6qcLLq2wXr47btSFh4vOajyQwBRUXit5esu5f7EovYOpYqDVqzlUCIlGjTrTvP0D66b3
CYGqjMgVpV/WdakEFaNBJ4EBGYD8yj/vtOlj6r0nJu8OSYJE8XWfzxYj6bI7yjTB5ZSNvcXNSyDZ
kQWmnP9y+kwbhjo1PcGqK1VufIGgTFZlQLP4Gn5DgJNaHEG4kJdXZU1iAc8P9T1wx/pthR/h0ldV
wach1FcBjGzEpQftMe2VuSEG8bzNTu+r0AMrqfUacEdYmxua5tjdiFEScJhAF9b385jUYOWIUMOZ
6w8vEkKv/usRfpzZJYMPkRSRl/HRUR/rMj/B32/l+Hb9MGm3lDTMTKydHC65wJtLAg4dlcDlU0VY
zFEavOn2FnPL4dy01Yx+jicBPxPnYlYA72zny7zwyoHR00WemwqdPbe+NQpyeldEGhijCQqlgkBL
PX/jDqrjsRWM/hu7gklOPa61NeyaK0fj3nCjQS2BAS2A/MG4iXwA59HZr+Jw9PoIRJmUPdxDns11
EVhGSiMimQYcRtXgcVKQ6j0MjypWnfOPnaAIdggsG3ZNI0eHFNbeGKphAqaXI0kscpf67M59YT/P
VEJBTN27zxVoykw8n8dlpRPXa6wL2u0a/rmnlJxXY7bzbauEkhmcQmYoh2MCIBPVmwlyXZtfsV/K
Ojh4cGUNmOFsQ/ivvXWqzzHF6ZXxTUDFpNyBQu4+/DkxkTdW1kLy3A38zIzkgR0iqXB88RY8W95N
Ely1JEfZ4RFDWLGbOx5/SqclaAtj8fH0InacWDA0K4Hwpzhkd+ygJFp67T0paXortcYWlOeVCoJX
tlm6F5K4Ou6JXDrEM8wBSErU33hLAPtXw4GX1/0r67+xH35pnW9o493BKK3qo0DZgQFBgPzDNGqD
sKXb7IbCGsV7NtWgyykpGjlycfDY/7sFz4Z8fQsXGQ6xZnr3lhRthUjqLSMAr2hNkBC1oogmGqND
IEvJnmNY0O4bj4SCBtR4xjJCom1BJjVARgn0cK2NmL7pgiGS0e3wxH3hrwmERN3a1v6t4RQiRITB
3Ja/E1DQEB9WPVxDlC9ghqNCks5vY/ExV88EVB4jkn0l9nRtdcLEm51CE+GsDos6+QvBXu1AoQXM
zH4oucikNfExSULYRjCImGzZmhLDrN1P9bSfStuSfTKyRpxh5aNA0oEBVYD8wA7DiFmf0OF6IM6p
RRNmJgs6yMxzjQb/w1fK4uBWC7yUSFepB+ou/Vp7R7xHzqxmR4J9VVLifPG2CEEiD5yfy8Sb8cxs
9m2dPx7xTjnTJlDaq5RhK94Tu3V9EQR230tOcCmHvhzbyDl3tCCkqeET6z095DHcFCSfdL3wRNvc
7jKHton5yzmLZI+a/n/hfoFnLes4j5OB8Yj6n/H6YiUW+imLwfSyEz+xpvbwA2r71wYQn5rISgZG
R6LABH/66Uejbf/9xdpOX5FaO5XBYKNAyoEBaYD8w9NoU2nyzWgPpI1Vqwbo2ddv9nQ/5DseQp1+
LfYfG4RdFuz/gvw7OE2ZVfgxjw/p/DRmQ73dNdtpZqFIdiq4YoxFGpSO+r+epwvQECsayGEjbglo
B7RdfM9q2zXEifwS8z9lG5KjdYlQp//0k/L2qC2+vR3J5LimDy/6uN7qJ5nfEGZkCnk3Th59JJds
elpQpz+XeAJ0IRTTHGukWFBZN8pcJEAPZ3PibQEi6tWYvvaFFpsaj2fxbU3klj/4peVW+QHgSWSj
QNWBAX2A/MMzyDpIZTftRoMjiPFuhUpvUD8075n4mAstZK2aht2oAWEcQ2R5WTe6IHcVv/tk+DiM
Ggkoyq0qmB+lPXLTftxScu8cvCL5nnUJb2YyrPJsCi4L8eLkpKhoBVoC1WereNgRJArzxrejSDFx
DRCiIx2Lp5DOAIk+S9u0WX/r7D/nlBtE2KfBLCSXjGx+8heqEpUpOq+LYkjXAk50A5BzpqwVXgzF
3SBbdcO3UAa6ajaMjcp5QbalXNul5o4nKJe+20jv/e5RtSAmonUfbdP3MW2jQPyBAZGA/MArbR0E
nKC9xXNE6/2n1QNAowONpWf8K0DK0ynVzfGlHeyxcrmDbv57STb4tZHvwyj/pkGkEtcJlyxhOLKa
I9C7WTnBxmowMJqiTCGVyuFpPEGJ7qNyaAkUGnW+kOj6i0ndV27zm/ITIpQLokuYP91ZEVSfmRRL
R5Jrt/I1H8anTmRQHTesGL2O6ZNx0g34kdhtSQQVYoL7WzHZb6gZrcFZi0vAXfKoJPk/GLb3ScyV
9DQpY1FRBA9E83L5cJ7+cYx4fJ1kiGCt1gtmfyM9TpJ6ukmXdHcNa1/Z5O40KYYiHfg5IesLoMaN
oZbtbi20BfyK9jUPSXSjQMyBAaWA/NvCOLxPTeSj16UvJw6GwKvFBKWb7TwMJbACGMKJ0WXDCZgL
NVjLmMm+Q8nk/5JW2hBJrJMJiJ3L7AgVekSj4at1Ds5JpzB0PwVV4wGtzGSCfWSmcaMOs6X2MAAO
8HfkMTuLQZ9xVYAYANL5niKPCeZQJxcV/ibqYzQFEQrfXyS33quAzOtT9DaHoqNWm35xrvQCcoJO
wr3ToCw/aACWb+iP6qdYsMx6hWeDdYzv4kxIamlh4QdNcaxbqpfb7TPhhvRLK3bUmgSjQMuBAbmA
/C6TZNXtxkFtqhAiJ/C85Prro7YGGoKFU3uGvvxOgo5IAYlp49MtZ0wDp3wxxMltQX96a1ChxJyf
17X2Kxno6Q66aT8iBET9GWJ1JOpgObPcd3apcKiYikNgxLUHnu8Fs8L9WJtH4YWDp6f0u7X+3t4A
0fIDD8p6W7Zujj84MeL0fRsw+HElHdSuVnxXOl2WsXK8WfQ+isBFWA5Al8iNiC8hzsNESUFh+gnm
k8fOes2+JLgSFDvLCf3mzZiQYVSB6qR6gVXZpKNAq4EBzYD8ADKYCBwhhcsG8733soX+Zdx6Fca6
34WBLWYDMfwPdKPaEqrbAVBmLJzrpEqL5dMe8wBBgvOTn7UumtOWTFrNDpd9wn/+u3h3MY3l7L7w
pRBqb+0RwEsBnjOtsm2DGSGzV0qetHjH0iugZoST6M8gaQ4oYBeGTzDlLmMOCR/tR5/VXDJPwPKQ
y5wyVIC23fqpK1kAeVSOliuiXC3bdTC/ATO4pYa/p6NBNoEB4YD8evleYRxS+/CXnrpkUE9v0+lC
HolstYTEOuX7gLNXRaW2jyLiWSFQ/PKhJyeiv+wrE+lpWX4uOZqEzS9JcR4OFr9MfqA4QwATT/l9
Z19nWTCX4VdQfiRa9gRkchLUDdI2l/Xs417xbNbS9dA2CfbsCFmkB70FK3ytcDPZwjQRWeTYWZy/
nAInalXOXxnKi6j7DmHFuqbS7ywC9lrWcg1tbeSQ+Y/qKjanWfqBA2baLIzB2vtUWx+9ldWQvpAk
H3VIxc9Dl2fnY3pl632tR36157oNeYNYwNcl2xl5kpOMu4Oiy/XbGfOxXKSrClsW479ypUMsKlp3
4pB24KzigATO+pKJ6lolREo/dukdEr1KzBoDmVP47vxvnbIG8rOG5tn7zp6VyVINq6k4UZe20F+b
aEujQUOBAfWA/N9AvQGwDtWMJWwB4sMpbWupPts1kYflFVfiLf03tKdvg01F3sXUchX2uREJ/Hwc
mSq3zmRvWqM2AktNFwx0qEWNedAngwgwfNLd/peeu58tHWJP4kK7V+L4QiBfkOMt4Yyfh30TgUyD
GQA3sJ3IVrxDoJq7qt/cQCla7ahqwDd9st67g3sveDZdNQRPcIDhghjM5DLPzYCDgV0cAR8PA14d
5ZfV/2XBkLd4Bx8gSt0rlvEvy89e4e6knErX3qiSCTabJ46XFoRZqIsvPDv0aorJJY+Eet2LQGTb
PSIYJeExeBuPbJ28eBmlM+7HuTmn3FrAywie4+cLeJMvqCZ2G0aZSct+NrfyNcQe8D61i3nYC4vG
MVV/q39XF13HNjdiKANIJchfQaM44PUn8FC9bcP7rdcmDuS0O4to30aKAaNBPoECCYD8ykAGLfrK
e2bjLQxT7XuBt0ydT5e67Qve4Eer7EcUP7nWbzM8cyDstxMxFOv9U4rdKDpqfYUssFsxVgprHMAb
UfQUbFjA1gvuCsQ8TgcogMZcQ0tMZbesT+YXcaCIe+qoXzQ5twzMf0iReo8RFZX8MS4EPU0WlAbL
dn0GcgukZ3zrx4PDOsnkJt4jrL2DQ2TlxDqj9csuw/+i8A85IdCViBE3kg5FbDw4zjZd5NughTd8
U2EiqgIw1Du/H6m8LfdEKzKvyijZ/ZGh14A9QenMuGk29JY767Y97H2tOq/Mu9ZZrH5oWO4lrZrL
Xrh6nmbNG38Kwv2Bk0lHWL4pTClHsbhWsl7v9kCySN0vOSeOkrZfRAzPzQUSO2lHyxlis5i8ll/A
MFo+DPg36Ta0BFDb/+L9nxTskonWeaNA8IECHYD8we3XLiVh1WsbKX4+Vl/uDbQH1L6ySQ0jceLR
mKJXu53G80Nru5enHKKFs/J9H78IgECtp40g9k+ss892U3GHnF6n/gO5/UZhgn4e//KWtz73Uqnx
XRH4Wfz2Bx8YosJb1JoBnBoqgBeR4N32UnJvvHUEUObTHg6QVtKx8/6bIDFGBd8p46NR3xZDfNSJ
TDaMm+sH6BnGM99qjxbdUtlRvg2Gw4WKzSq/OnCSGw987K1w6KxhqqFjd3fA59vuwgTozsd89E0U
KyCdZpHCMPHX6x8pGCFmlSa0a3KkLPdsMBjk2ZPneIxVkRqSd6NA84ECMYD8LfYKmHxr3s6RsyLo
B1XPQxYIEFVK1JviNB9hMUbjxBe1uJ4f45hOESF5HCoJjmcF4EEz0yycpiVYMbanMhOIg/yDBdsL
CVTJE8gXwiRetQFGigdUOUwi5FcgvChh49NIyddrrfRn5P72zB95qPDdsjzhs+Lz9s3LA7FVIG0E
D69Ey6l19UpvKrMllVtMBPoXfrM1cZI4241PseY6C5l4ou+esrFbiiK89S9cfLXo1WAfWFostfS9
Mo1zINP0JszSAvIquwfBVl+ulCXtHPWPRGHG7R+1/CRWllA3aVTGsCzN2+yYtht4sazKpSPelaNA
4oECRYD8JetOlJ6pnV+L4CpGKwWgHl8/UONMQIUY0vqI/ZK1kzNeOWaXX4S1ylhjNwOO8sxx6SAu
pBYM9dPXsioPp16AIzu7tdsrg76B6svoXSmPV0xAvc+xEj33aBcV0W7txC0U/xn84G6WXBjmrSFw
Ta/RDvV4MJVrxmeVZAbBMUVNb4ZXBqD2eARLpkIrESss6IGjDRxiFyPjwrlIrY1KCdb9HS2X4Z7+
ZvQTKU37U6Nnmk7/5QduprWv8zdQUxWOXnRQI1aSUA0YI/rN8hwT0wBwmN/HK1jHcFrGruQtyqKj
QL+BAlmA/AQ3/ZPPMF34hLHVIF8pEMAtR1EPaHnk+NxoErgpCVRukWOeDwkWxU/P0Ph8MI5/KhKb
WdRC+lfgi0hp27kByXNqLBETtH2wZGO4WfNpO54BQYkpEkFlP/5ba9OhdKsS+UA9fgRZXtD4ymHA
xe+lQ8xuIL1LUNZaAiAaMZJJDS/Cznidmf6vRo5NRaCjMGkDqAklF61/MNUSgPLR24dlc8a/IEKU
VjqkKl7PAGyoJjO5NpBSy/1Bw5kTuaNAv4ECbYD8BtmU1ParyYO7+2iYJli5XT9Eirn4RqY46QQC
3FKQKs9TTBwEJOypKEkQ7fvsFwtZ4wIglRhrRdWxNup53XPNM2VFe/e/kNmhN1fiMVk2kZG74LkB
0YIc5O41wr03YeH4XBFKN/DK36BEGrAYepPu5btL1m4jk1EgUXlQigjmi9jvqN0IXW997WovpQ9X
sz2jQoyLrPbiUKJHW753WfZY7Zr1/9LCY1TagkKCTP3D6Nz4cJ9/AJbIdyzGo0C+gQKBgPwAFxRV
qjuA0ILDBQlwkTwqxHq8LG9i4SeQ1fsBpuTSIurNTDrr4K21h2b4nQfNH2gAmwBZpmrakWxwHHu4
rETGIPQzaB6uH0HYyjK6vuJRA/UfawPtpYc0lFGPnjm/MdWOeU1XIw2ITbEKjl0wVwtBcjnEiVBL
wJaF/6a/8/v0NM+oCU1MtGh8gNycJgVWhLb88NM6DJ4ZyvKNf6grDlQnS35kLlLprF0HN0mX17FP
UUWmQw/TkcNZjaNAuoEClYD8ADNFbPQ9GYOMG3CVLbez+SoVow5Yu0CFMLtMPbpusASblDJmr5lu
XtU7qi3jY1aTGjzwHOvI7xCYJPsDCakoCFXhyUmyvWMA5fcoHvcgp7Yix6qN41UHkt9iToodR3Zf
tvVnibRVyIYep01C7+awHotjidP4OPwLnADqvPCM2s6ZiOcnnwf4wzgOmANmXUmJWeDnD3WXwi3G
2ydVAiXZlfTJ8h9b5GffY1i5NhxP8HD5chrC2qNAyYECqYD8AVtXhFqORCeJoDTF5MLvadH387wF
LbH64AuiydVnQkTgBaPFQDJF6owsV1Yjoi6ymRi8cAZG3aCB/OispX+aMUbRohd/nG0dsWBx9CXE
vEfBiAdPXmFTYhOHNWG2uAr0IUlnPaSlmYTtR+j+lAv1bHahhfvBA6V2wo9BVOpMcNIgMlQaDDmA
oiVLi+Aa6ieI/wJRhB/FOWzRDNRDLbUR9pYifKhVB7iZiiu3LdNp1zXYJKCqcrPblMvU0aw9WrMG
N7flp6NAyoECvYD8F2jjAFJtMAcgJ9FvdwmXiOtTRjW8yGY2FeuuJGf5CocmkIr0FD4/au8sePwj
wDEwd39zFi45DIGaNSSyKPAyqZSH4meE3YJsySJ/7c15w+I2X05NJWCUgBdZvFZ4PU7sqyoFxf3F
iOMLwbTWdqF5cCalIQczpkuokj83lP5Fp2T1UbF3VpEriRVUI1gd7qZJ+T/6JqRtNjYZ9bLPhKwv
VVoh1clLCzADeJtIyFaCTDdWM5TiLh2RpQ9U2iBE/bvv2WJjeBqjQNWBAtGA/AAIiE2ceQccdt8K
GZ0PtXQpitfV49M9caQcczNngBbemMWT1m2QYkRUGG6zC+aR2QavJtOU5e/RqNWcJR3bCthDq72G
cBOhHRCS0HSYj1xYORiMIJ0KXW7eu5mUB3hT+C0qDcqacEE5/ifDbtgZlCZtEhs1RrdiB6shBFF1
fU8kEnXhIKTpTxnyn1cZtzKUerPdIkUw9pQIKGzQi24Mh1XcNYqtxzL/Hfllf93W3OOUfT110YLO
xFAPQPH0srMSXkEF9XXT7R2bp4xwgiMa1KejQMeBAuWA/BdQbV+B/ofU+QQqUnX1na1vAESKk3Ol
xcbVR+3uvvps2ppYlC3ymGyC/VK/+vn4l5V7ExpWyaxo7+WVkgRuI08A1A2/7TytZtZRRqmPgeYu
t2BbWG06mwtqlJlIsiQthtFtfDxlDeu7YHGTlmtBkxL+01R2uddUlqAK9Tm6nhzTfF6A8dCXEu/a
SlV1Dd6oQ65tpFer9BkNUoHEKfvbLefItwZ8SpafK3BBHB98w4LwodFC2vKvPH2w/pOV4FV+Shi3
o0DdgQL5gPwAAF7kl0lBU71iFdF7bE2OsPdcd1tM2fYvq8fg/q4nZ/Ti+mApkiiIKbtVvBy80yD0
71CR0jHQ9CMVJ+Wcjs+0TzOP5FZ3Qg9m+vQFEjFgG1gq8Udpk97JDZwZzwrtijeaS5Sg6+O9i3h1
5y4zE+EmlPSmQ7BKVTBJIcppNMuclrTR4mPTVrK+tS5Im0xeWWWlI87iHe2Wvak+LyB4H5MZ+JwS
5/W3hdKU8tSv49Dt0fBEILEvgQAkNePXvMU1gccvQw+qbDkRgtDuBM0vbl4WPxkNGOJ1+KqjQRmB
Aw2A/H6DbqNEOlHsxRXZ8t5mzspLGVabWNHZ/EteQROqbF7hBgg2v767t+XQXnS1JV6PUsFAnFRJ
DC1P0M7/1xlgp8ha/QUIMJwPJaH3y1UVnX6GJ0R81EjVaiJpgWKhnFosqbbGIsUpvYdiMM4pP39F
FBFTVd7Wl2Ebkpzi2pXcYyaioPZ/jkpYdQ1Lar57f7HdYurveqeqOV6PJkazGpkVNP/XSd/lidj8
xuY+WeUZbc9gtcXpx8MZHDqXU4lY5q4n5N9eO60VKz5ah/Bgz8g99um8m5IY4W21OI9UEoGDmqwd
0bAOW8TZ1x8GigWHkUNVw3/rxs+Sob/tidefFRgZ6fMb7jF2nl3kUo1E7vpVsIUld2wtp6NBN4ED
IYD8nzoL9pB8OQTxili2Qy1+f8G72x6n9gxKp/zhNrUApCuhcwbey26Bc5RUsMAXMouYz5Nh1PbC
hM74w6ynK7nX9wUUbZ9XlP+LOM5ipl7U9Rpw28AylFPONLIBLGGPwHzBSMsjQ8AxSztobUqyUbSW
n2OdZkup4qAqOxC/RHHbFwja1Hreha1/1dV/7IUEXLcO8h4gP0lyY+mwbL/M56QWjjwbziSxs9UQ
uCOmX59NX6WVCl5/EAmQED7TWw6Z0RE1aLKr5aNRzGuhq6MywCvr9NKs2lGGOTQC0tFzPrTE2BwH
RllS9bnO1e4HMEqjycjrtOh4A4DYdZT8Nf/eiUF0vbjK2r/iw46O/5g3r6+4o0fqbsIiFNTnPNQS
sLuLExW2PJblLWSVD+oBGQBNKvklIHGTo0D1gQM1gPyVcP1y5MBM1hUsQJGaXwOcqyixmPGMSRX8
mzB4R4Z3nWL3JXZMT8+zDNEmn0XYzNAzw8rH+zgnbcJkQm51OYT+IySeMPQLLqQIZ4ByJjCUaT85
OWHO7cdYLKCceb4x+DJxOjlBcN9uSmx8eHTrJA4h+ZpNy8vXMj5aGJpeSedNUVayZLpT2VK/MLkn
XtDI5BuASY/Z2tgy9VA62hMV8U2exEPiMertNxLRoYF4TYLjvk7nxurHRFbkWh66XojrvqdEsqvx
e/3lKyXT4j9dQEVQO+5rW+2MvTI0O4EamNXL1pfN+i0FyQv+lBJW2blLGjKjQTmBA0mA/Hr3wwsJ
OFzab84eRsgdz1TVQGCFvtgvwpwJTJO0F3/gjKd4ZP4lvhwrK0uID6Ozt7rAkRWt3naB/O3YD0x/
ki+HHH1wY+YByPIKAx3aptk0qhCaJfVB3U0OmZaQPAQ/8OQs3ceqf3izEMrwk4f0EYwlHCnV49oh
QwbkOr0wYXsbihhHCHpUmm6GWd7s5h/ZHg4TYIjL8QwjOl2XmjOBubV289VwkDW4X/FM8L0t9W78
fjTlLW2Cogakr4I+jHazwnqJzK990O889EPaScddwe9f/AbSy6akdDbd7OR3C+yxHDA6BSnvnSIq
JlAevBMdaACTFLzSGapt8APSDndeLgIxt+U9i2AxVxMW+HBPGqGSZCM9KR3LtoJNIh/YmoTr15E1
PSNjVkQAQZ2t2ABab+u1GJbLo0DmgQNdgPwXURyN9FT6u4ZQu0QqAyVFXIvht+N30fN46nVWTIyd
E3b4iNA+7MZYlI4oJxMcQchxfgzWO8kGXRlCQKWXIL+Kt5JsdbE2bQj021glTjhJw4y1Ao+VUlTL
HsX2AHUbS0SVzPaXScdG5/EMkpaw0t9zfvH9sA9jw3jdkmwTtgzftmDfTnC9Yk761GxCSbJXwl/E
PHiL3RISUgFzAQXn9wdpBzZr0ph5ya1qf4ouAht7VPJuevQ1CQ7/3zzBAgg0TarNvuXxb7rwh6Bh
QVTHDUvY/bad9/di/jGOTwQLdlOcImqjQOWBA3GA/AADHymRa+5Hlv2CNRBN+J6LssLhUVuXXRE0
+DBFPGbcQUz6swUn/CUAUtnN1TV+tSzDpPUpqW2R+IFYx3lRThKmaOWk5Cif7Ho7JOszkRgOW0KT
QbYZqTvzEzThM8YaoBxmT1u23tbV5mhViqoVtVOq6DwPuvWB51c8RzjNPxjz9yQt/D2f41Oh97Eh
Y+fo0pz8ldt24BUxKXH0Gf3SudGFkhuxUKbKAJBJnYBasla3gPO3Hd4xYny8GxgIxT6vQ9gc4ZCy
v5Zwfo4gPOg4Uh1F5B9SOc7f3ZVvea/BGltmo0DigQOFgPwADuUk1RQZ9fDmoYE44/XkFaoiUO4x
bQ6NOVgMYKzHn7McJ8S7mZxkz4VFmxQV8R2mBPfibStx+nk6/gy2xWD06zOy1T3/zNLLM2kGFET2
MrCAie6672ueIz1Z2CfzqORFc7fUTZD7KMRXbjQLeVt7P+l65Sz5s9UFV3yCJOKJCud/y//cvfzm
MORyNoO8SY0ZpfnYdC8iVGBm9wGijR/ZFWikoezQ8cuOfmsTXt7zL1iLP7w4QDMhDRbx+m0AHFZl
8mYeJQ6krlrWHKUp8sgtqaCIbZyqqmM5UuQmJqNAzIEDmYD8Bq0owrE7MfCi7FD6ZCSIXrbTuf9k
KTemHgMuPtCs4awK68BArPaKvdr6XtioC9L1RC+6e1JTCS3y7HckgbaJ2NdRKqPb7Sfkv3M6n9fb
ViSJxlLOLv5K2tXchOcw1LwllnYOKEbRNTBpGlRAQWLiyU+A7s8yF+xApjD9R10HGsexWFtJ9Lfj
ht7S9FQQdJ30ba503z9Cf+2x8WNWJZaciOc4H4Iqy2KZMupAl74LbdrZXmNp/1f6Qf7SZOkXGi0/
lD15h5quh6NBjYEDrYD8ewPD6XNUdmiJaqH8nIT+5MTJE0bdQhlVQBjMMnoqyGVQ826pMmE9I0+V
P5LZKP2DSSciAINAxLfQ1/T3WjjvlNOmsAK83J6f1Lf98s25HnaT4zeYlXcyvPtxFhyzh6f4XRtf
57jwoeleeA1VT/wzQc/VeY4iWFxwiIWHtnY2MYDIw1ww809/gXIIt4Um4jnt5PaIpwbnJUdNiViq
TxmusEHezkNcI0PkoqeEPAv3IPaSdL7S5Od29yyJs/6YNKTZJW1YK/bmAbBOvdu8fwCBpGfsj1PX
NGazdsFDNboNd8UuNySEn3J8DjeBnGhMlDWoCbnFAa/+VlieaikrADqjYAcIDFhW+dEuF3db2yMa
vOsRoGIbUNZ+MaJmZfkBfEKl3NUM67s3BomuuaJ3fhUWDn0JSQRyEDxa+F/a9OuGhTQaVWwcxjQ0
vCBf+n6+ut0RbS18ZouVxQnNCndcjS6t59e/B4gGkf57cqqbQzEdmX9Vz+BIDOZkUSCvUf9Nslsq
VpsE/1KZl8mjQNKBA8GA/BOhq1TvZfLDQNbhoQbNt28LgpDJNu2AeUrP/5xuJ6YVU5OmhX4jEWdF
b78stQEnhGkyrL29UkMQi1axrsuGNtNt8je+BlhxYKKhqkMJkRkQJTV2CwAGePl8o92WS8LMF/ol
FUHCD2CZF3lrHfB51L3yuhGtcwmKx35Y7DAnAidqaVh3uNLQ+a8cwtQfD2EUB2OI7civ2ndEXznF
UKaRmykLvX4LUszaz0OdCPdZKM9OkT82huhfDxULvdnsQtCgSNEqUFIhO5JAFY3zFmajQNaBA9WA
/OqtFnQgYvLfZLftj/nqViJNwcGhpoi2rg6zbNS6cYHXQ3+ZLwYp7M+YPNdn8+BTkYGJG6+O8cmQ
6Wp4XmL7A287yKshEq1mEdkTaFzmX26kZMuYgx9/OTc1GbufCm8ALbdGjBw7s1ZozZ0WAlzscJ+K
kroCl+diwWmh/D7X35v51b/LuLeAKcyvLcjY6tv49ZJ4kDK8DMoXjubt03noMcMD3Av3GIwiQn24
vYO20igXc/R946pCtRMzB15GCg4ZV2BIl/+bv0gLPI6xuwYKpmPBo0DVgQPpgPwwJn3FiQoUuGvK
X8GPaEGsr3r9dCZapeD7ZtEFCP2GPz7MKJjwX6koauLnET2gZRVxv2EKay9A4NkjKcpB6thQtd3f
vy3zR55htLSpZTH+C/lvOuPFxsJguZoSqSEc8xzmX++w8RufAaQwB82LJK0EbF+edcyN2xlk9Kfx
ttaO8I69tD1MZLbBHQgVPZnhfDk/P/M1bMQ7O0036W/FAK3Q5aE9ixpBOGFVscuZ2VsPijC16jFT
mMIAaFoQArFODyaweN8qj+Jbk/tkEJdE7KDho0DWgQP9gPwAM7iBkfu0ntiapkgiM+lvAkTKP4ZS
GlbPwu+xB8FLx+xkCLJrIfZCZhEx1zlDrIN8bP/2hK4euGaNGZh7DkNN2Q0jd08GB3Itod7rvDMg
RHH+tKTV4Y/NfAH1jHehEqnlgzgyI/41L8jiApLfFK1vzos6gaEj/8U1xzpPEou/AZlGNH4Af3EV
AAoSQ3LBGAKn7I5fmp0nK9LWlBZyCKKeatDT0V95rdsWbeU/jgDN7L+a42qJmDfEE9WXxZydQtiO
8ddhqRY5AEpfkgr53vQ1UaNBU4EEEYD8ewaYKwdMy2zQS5Kw64/F9hF8dsI57KxPQgVZbE4sTfYH
OnPA2eXuy5W40R8yiRQOC6ZR3TEggs8oDs6uSBPjtX/DqPoqvDGcWkUAdwwPC2/MV4Yhf1KggW6Z
F/UnOARtGplbi5ODx2vcwizl8pUXfoyVt5CzR0F9xggp8ryqjvkrReEa8iivyJop5UIei2w3IQQE
vsD1LU3iPp6O//Yh1RzmjHZCSToc9jip3mf9RtJffoCE/ywLdOTq+FcCQzjdiMuYat3fk3DldW5d
YMuNC23iy4rr/eCtkbqxASy1stDo8RVjSypOg2BJaucCIR6wwgfyT1/BlLVZ+VbDpPe4qcXtQu1a
bim708++c9y6xmzQD8kjqI2el2anKl3v3Vv3WXxZM79zoE/6ej2yDL7Z25ywP+BbpWpBmIjnRAOs
NcKs8jt22aB1a5JZAiiHQqNBJ4EEJYD8ye3ijRTFjc74+mJQnUx3cb2jmldKeZ4nv5NsAZm8O23P
de3g4Ck9YCBMh+xIEqTPYnhisZre4gwBtDI95c8hat9Dn+zAUZM2CgO0BYphyzimb0AJ/V/mFGQ4
bHAIU29sTnxZZ0ZQuAFCiKorKIYDb1aVPOBUDeQXwbsS3iWvKn6rVwB1p9pZFS7kOtjA0j3rva8K
m2uKKoJzkYZs0joJ5A8rE+f7n4AdmGdONJGW5SWMt57nqKY4sJd/0SptXb8BoAzVa0Jpgc9+JeIm
W3sfvp+eeuE+8nfbc9Rp5dXsEc0penrhLvrAoi6ovPaRoXn9V6AapDgf/z3JofjFHHyfp2uG/EI9
GUFqglzgxhsLnn6zEJcSbV1bUo4AmxWtiYPtal+jQNyBBDmA/MAFUYST1bfSTE77YZ0PiqTGpIJH
MGLLsT+ziTwu1X/5WLMinsNCsRlbwsLvq9tRsfilexGaEOfOxPQmc9ZV7HoEV1r9d6GYvYc2+jv1
1Xbhb4zgUhcEDp14mSsXPkSYjc9i6gPoRH+ZqizPffwoo6clPMbRyNjD+LxCXsPGtqoMi7Y+mNLf
VeN3qOFhtfO+KD+IMTa6p0SKghuYkY5JPGAf+lNiFwOhLkyCKIrC/v7HK/GJX6tLmO93oO84Ulgd
QAJewuGSdTSGj51y6hlJdDOR/vfoH4Zno0DbgQRNgPzAsLvJzEZFtiCQPQ+QgIwC6zXXe+MtL+oA
9UDyJYxvBKO5JseZqdvfC56cgpemF+mX7daNBGkFcsNSYyqi85/YtsH9cRbB/1AY9UUuQ8MAlmie
2mDtlxlvbX1fbOVXFLwM89ijq3ItOWWqKBd5QR8Jzn2ObcLYn8FsLRisTWVtnFsVvNhoic+Q8XA5
SAb/RZV9snYcyZnxTfUs4VCVtxahsy7avDVAnYSGZsR4zPZusra9F9u27JAWkaJeG7FdCYhgUkV1
JCyfx3Zc1qpLb8D6japST419o0DTgQRhgPzbgvdMD7Fgah1S2++7Xjxf2aXkkZFSFIvRjMA+NkgN
sTs3YhL+I3sXcxB4iapJWLT5uMF8nGP9YOGPZh4V5SNWJeI5fNbLEJOpyHrzKU6kmkVW8i/+Nvp9
bPPYiAhVzCH16gm5naBj410+PmuDsrc5xzELuMVM1+0Zb2zgs/cL8o2IFzWOyFedfTXdaNx3cFfq
CSAPFeKbFc/KCy0XqZy/D4Wua1DAexJavjbuBihoDB+DAh1Hjh4T6dZsw+1YJAHvYWp/za3ykpsZ
VKVCE6NAyIEEdYD81ef7uvH+X3cViufnfv79jpCUGFaWk2R5VLxpyL5iNgUJ/VvISepZbNoP6F/V
GewuMAeacXAIv07sm2HJQyIpSEDW+CWpe3M39rDkGcMGwksrXhHmSgTPaJARYWxeg/0vMY5YQzOi
izUYw2IvEu3f7yhYbw/ZqDX5lWmnuqLY2/uq7C7IJAeh3v5juediZsj1VExemYCrjQNkMLPtvAtI
zvJ2ZeketQ6GC0MJgA3+1wF0COOrPn8u0B+ACQArek59bDolo0DcgQSJgPzYepPCRD0P02LqroBO
4hmP7PDlxwNsGkEYQwSAQYin/jnZAE/+MkvlIhYOTXRDU5UOP7h40jQ432nyg91CZU94gxgSAs8f
HMcbeRxABBC1Zrg1sw9dPhfeEiiemk6O4/XUGOV+PWkKhxgf/Ncd5JLcP7gBdZB1ZZUjhmkNIcWi
jtCy7nEczN222lQFi9qqBFudsdLPpF2pLRums2eDzmcRtLn+nqLdWBC2gm8Icd5fZwHOlgHGOAlq
T+Gxsl8WNzIGjC7chGAtsY6/WpO2xE+JxoSPZLRqLKNBR4EEnYD83++a48pPY021xfcISkuU+oDc
mGiug5S5PBGPdDVoNu3EGIl56qava4BZ3oUmGYO4iPrWYt5WsclcHsVHD87J4zeFSaMT9oK3tdBp
z4M4lqJmkLEiWzW7rjVRajXVxXnVfhu78f2JH54j2VA85RhxGdLGR3bK0qQIuy5VkfCCEhnIw/eN
psnwZe8rpTXXAwv/LZeMwce+rW44mmOZ8qs/1mobM+tGiRl8ymNYIlnX8zG2gvh4KvdEOp3jjs53
Whxw9pL3/NxlxCI16uTHlRjuqyaVxblj53zomjo0n8GiXLIsIGK6L8Qo7KQodhJytq3iRPeU/xti
oJOVWDhCscZRN2fOzh/w1zOaluFTCXiHyGVI4et2+0LTk4zacW1SJoharNGha7IduS2J/2IGYOlF
sAV3Mt1m5r/sUXtBQ10m3j3CKKNBe4EEsYD8dtIOOXPQ3/nB0+qErVDija5ZYNWuyL284mA9QiJe
hJJHGMdt0n1R90LENQMM7yPw/oiyr+kpcbzDZJUOmajlhVNk6wGKwvCN2X0SLIlPOL8HkJqejjh1
/eo52sI8OgIaeAvJQvwHsdkOg25iFTwfJBmvbkERm56bVEHZQFSt9Nf7l98DBff/+4TS03lw6+Yu
/DWjSfuY1SSVC/EFqHqoyDlyjAA7cvtxcVuX1vbSt3jqwILiAQuF+Zbk6H4vrBoO7abM99uzp+jV
adX48UOjMilG7mwc7zkCH4J4dFegnQ8dLVtkCvJ3My5K6Glt5ruzcGPRArL0cEp3y77tAc23qnFM
z+E2PEVl4wBzYtiEfq0paf493XFpjP2ZVr1QRtBxk5a/pA7DymhYEBEqyT4bqnqrYVAjjM9ShVNw
rdgisRsXmOmIf0EY7W8rP08xMvvc+qn7yfTFPRMEP+nnkVu4K95rLMFyQ9R7WZ2myW4wp3BlWPlc
M+WjQNCBBMWA/AFMlfmUDd1KYqmSU0L+7dpM0FDhYougvv2/a5JXP2Z8N1fhPzKP/gbn1WxoXj+V
laXBriVzLODJAVsXwrRn9R+Efr4cbDn4KWsoJCcc771H7QfLgsJSGHprHU4yyl5Xw0G4agQc0jvO
rQ+1re+4tEGZ6q8VOHSNUDu3OdM9VgBLMzWgtgTlPMOm6evZdJ7PJGHjV530IjpyLSbwMWaCgtos
jB72lNRu2442YrxPh/rWprDUMkpzWyyN1FNvTQidN62wbUg8M2nUrpsFo0DXgQTZgPwBSvQVEP34
U7uDgjZCgLPD4SJMUVxzmS7OpxkNlKmdX1sQzlfkufg8ZwndeReo6nYGbIKz+vCQ/pWVPvU0fQxf
jia2N7+VzZh60FIXCJqXvNCPlsnR/7xMJ5q8Swie/3+NnUahxo5EABNzUTbqio9m9nxmtmj10EuC
h+vwQPtp7E+Ody/A5haeuiwIzaHnLOybqn+FsMQ7CTnN7HsOHSfe05xLHCq4xDwDx1x1MSORqyMK
CdDULQE7r4gW6Fq/o7RYsVqkdTYOAabkbsHK0qcam3ajQNuBBO2A/AAB7dxNDJRG/Fyj3HnBqeQB
6Zc8lsEALdBd9ENhhnOEYuysYjshAqcTaY26q7JV8Re9tLdFjiuLEHZN/0JYr1WTchwH8I/huuhO
//V/1s4kAaSPtH91WJWZWVM9Clrf7kMToCjUm7Ei+5WaJxKL1vR1Q93pG7AjFlxwtaygHWL0riFi
3WhQMoCkJVmeuRzH1t1Q1I1d4hMfh0K6/8jO2pSU5RC5IznH5ZRSaa7ig/qEy63nNyEjtD5pxG/R
4c5fJsWhCz9GxvwvjKfK3gBsrj1KmgI+VLGjQVOBBQGA/Hr52/M3M+BcqNSWgxIFDNFwbvba4IZN
bjmbYZB1E85QkLvQen/NExBrU39FGShTwiK2UIiaMqajsO01+0j+Aut1FAlfaPmmkBrqkghhVBut
Kx0GbK5fZsItaffF+cc3KtgWzfvRy0fTknNUiEuM3cJL80i78j5Z3c7C2kDRJomtBrrgVhYejUet
d+oL0iZdG8N8cjx9S3exG/dLjkDv+Vsaym6v3Sm79h9BV0Ll3CxcVg6kqnugN6fcOSvGYJIaixwQ
I5doyphF18eUefBy5Fu3Pdy1suziEd9buGFcqV/M0FQVmIVfxFpZAmelRL1QcLmJ9r3Th8KV4T6A
ku6jwYA7B8c98Kg1ODT3FiwVuzvJu1xSIwhNTntMwlDh6eytksqPlsxCTXzBUn5eoEdFC+EK8sUm
MWzfzIkZGv1jeGifTewv07QEt+sD+2lO68GjQMeBBRWA/BP5yzz1DMK/QfT4DsgSmxQEyzd2WAnD
lshXYroA+MZiyCSRk2mdtt3Q+8jzsvG2yDKl/UMIjUyt0VO3Xyg7s+GZwPaZ1OW/jLT3Su45L10J
I72Penm5JSMJd9Hu4PKEQzXyc/o6km04I4VMCvf4hpkkLk9xDlp9MznWKq+dgYg9poNxkiZv97ig
mRa9bu51mAP1SdFhffRK76WLQUQW0jLLHjSMUKvL6ArhluZXIONrUAtHPYmQYLx0sCqd1UcIX1YA
o0DRgQUpgPwAFXqiLX5l098EIRsyb21ABsoLop4llITv0GvTbqFlFHa0WAhr6O8IdlovbVombo4X
cKW1JZppR4YogeXLnkv8ie/wrcDvqvVVBqx4F8T3BC8/Zd7Aoa3UFbKxMcstit+Y0Yh1hMOC0QJR
0wVGXEbKX0rIVlWyNXe3ZlzFjbhHDw4sB55tdY04bMVswsKcD4tjND7NhG1mcB935Iiz4fo/Qy/C
yDfh7ivNaYhrfhn7PC70fk6ow2z3gRjlJbU4TF226vsNLsqc1uYH8WejQNOBBT2A/AFV2HuBCXKU
aViflOxSM2NRDG0nw2QGVjkiEgn0924le0bhc12G/XnZf7CTA2Tw8dy0ZcHnDkRFzUdGLFThwjaU
rgdEUDxewmIY0Q69AD/SWGjdAGw6lLhG4TAKiAsj8aDuaKMgYHkFKn2vOuPUmt+exLM5r2hNcY4P
tfVi38Y4W0GZTeuJu30pVoDFhoPlc1NJTduq5mXjlKHM05jlUJld9qSj49z15XbpBPH0m53Cw20o
XSOeyTuhY8zoH6KiY+ULU2dZ4xFk5r+LWERCo0DTgQVRgPwmHqMVS2djJtcvgT0+HseGuNzO9HHm
ZUVYB28ITmn4FRXehENLFumIyUG+/c23j/sEZqmbhvDYh8JWmJEhGyAV64hD/CHr+q3dthCtO2UJ
X2RkgTDv2N8p7uf9/Mx3PDyYCnUt+PI1duwrtgGljOgekCtODPEamJvB7mCDmwqYZ5jrMID7+E3o
7JistScz7OpsvjXYg578Ed9xUS7AYGICwUn0JNYe1chvpSsRyMzDQN8Yc7UDzCNHObHNRNDILgyu
Aghcx75t/j+lsqo2KKNBZ4EFZYD8ew14W4jlQUbAe6gLf0JmgCWYIrvb53zyQaS3RPTLyY/FeQJ0
l7MvAcf0inVeFnMeLoihotwy0Vsyf9nTrO4uxM1LNaOz6SPAhOXTsstLkqxlWeNx4PGbg8cksEWZ
d4+VSYYBkAMcNVib9JjLmik620adgQE0ZkyqEtWQA2NKJ3SEv/7/zSqbhG8ncyuf5nwQ+vh7kRtI
SRzFCrKZVM5uewMjuDVQdVaeO2fU/MitHMD0wo4aUDsYP4YAczf2cGD5UVOE2s8jbECxhWsj1xzI
KBm2M2Cxb6eNudjRAh9ucIbZJAUBAjzY4Zc60OgztlwXymBE9yH0p6rhsx57EAvhcy/N2E/QjmK9
pyiA4UUiD+FXVQ67kgBp0uRw6DGkD/GfgnW02NvGnYZjHf8pJeqAla/0khBJZTBRBDCplvFBaE9A
5jSydNBK3xLQl+DzWzoOjGK79Kby1NwhJbnC4F0EDmLAo0DagQV5gPwCGCoi1ACnRwlbaZzGL0f9
j1qpOzQBV+GjV2S25xmKyyFyBfzgEtZGxWi6EalPB5HVIufBDWnLUVK8cDIthwloqX55GINxysm0
cHmvVrQmgaF3oM17UA1Jj87iiaCExoKaAyK1G9NzYzHQokcQ3wNXITNrJRQ3tDZpVrBwQxgop+jG
79lUCD+jzuvrXRJyE6AtE2aI1XWn+PADIwaIghCEynoUJees6DDmyLdlF5rCCyD4iVmNFN0K8Fkn
Z3YNsGN/vZ8K/JeUJwqupv33k/8KVfBRX5ujQNiBBY2A/AIXjMau9xtkA3E4IO3N6orweBm2WdTc
Lb7GDgr/FVm7asUvu0TBU4g63erebURNL18+7SXECsw+4o+kCxDJrQW2q4eZ6J/qyeNDLzkOBdqF
iUHIduaRF7//CmnUR7iQJqcPtbgWAUTfl2S20HRk6vkRCQLwcth0b7pP+W2gYY35vjC9m3yf0sD6
PRoGfOaLFL4AbXkwvHEhE+CW4A7M0lti5o3OqQ3FrD1juTRxUMWz/vq1kyelp8QIMi2qWHjG+mOP
lyLNNL0qKw49sBZW0ETl/aOjQRqBBaGA/AIWlt2zmM0CKycAmoR1Fw/HmYn7H9zmEUrc+W0YSiZN
3K1AaR/ihQk+pExn0BkkxPgfqFjyRPBJqGRB47PGmOaWelcO2UItJzOLNeROsXrMUm/Pfuso0OBe
MhjyjJTjnJQWKvKguaDzTRhpsG8XeObAj1ZuYLO8aZ1/LIa40Ohih15mwpBh4tI7kg4jlpIby1Fi
eu58C28Q1+upN07IXYXoxeuSDk7yT5wepiYyXzOukujwZ6Re8bwTp1aH/gIcstjvj+WNBE08vsqW
KRCgcOlGdGfEpEWb6bA6M5C7pLDeP6IiozZTnuD4/NYezl4fTJlTrJapE4+BFc0Ciz3DZyZuh1mV
DbbeGrPwpAm9r4+bBK9uRtSjQOOBBbWA/CYT5cQlomWtrhheffffIAPVA7b71QwTKVmtcBhY6HIU
X7PL1TOzvETWadrE7uSfmrknN2wz3Jyp+Lkl77K84cKTSf86iz3vlQEvLXSkmkQK9tIr9cmwCqHy
LIwVaHgMK6yN2f10W9Zk/InW48weDawd/L0LLhcPekILnytyUoizYEZcdllZvUQMBP8bGWWrbXtR
oByE0ygJBvD1BSEMReCkzRvFJuXbkdqG/r9dnwBLRipHhGWXhZbm0rOgg83yTfQLXWKf+qS0E21+
HpRazncL9jgJ21+KFU7sWqDmjKNA4YEFyYD8AheManldHdQnWLY4k89mRj4F0pkztJc0ppIABLHt
/ia7AFOTM1e+05CDha5FMZ0EGG8TKkU51qbYBG8qwjymQkifEv3oVA6G7LHsOemNGCLuXntJI1ip
FQLknmOg+v3ecNWgLLnVO7iMt0+8FKZtHbpOSlczydvAWcR2zzCLf6dTk+rd9c7iOAUyJ/KjO6SR
/2DTxDAZxdquKtGnhcrsgU6AU1kVBgfXnHDQVVzWWzQGnyGPBuEHKCo98v59jp/1vkC2m9KUP7xd
h5Jeu2aosmGc/rETj+3torABIaNA4YEF3YD8LlFwI2mMPIKsiK3ctpyZY49PGRDBdT4jKZeFCqJz
/a6VOGBAbbLd+uJfK4QGAq/hgthgFjE6P9plP/bMdm8VsTqvN/oRXJ9LdYGhP+v6pqZ/ZUNHemDc
CBv9co1vgJA4s9gofe0SHL9NrIW/Ma4AxnYRNIApwyHrZ1q+tjs4R6bmYqvydlXyG50doPbTrdWe
mt5yYA3Q9jzRw8XV1Q/OA+N4u003G2qehch993UZjblzGop3hQ8/eU+XxMU0utUAUgwdLERHazGB
etxfOsPfO9PEtJf8PvgK5iPbZKNA3oEF8YD8FCyE79XqP4LJpf1X5k7FUozV7Czt3+j1zjS1R3cY
JFReAPOe9x9ZBD0/MKSvfXlGEwMd+xIhuMJPx/MG9+ipAazGsxTStNmWvgFKzrry4uEd/SSv1Di0
AXK4JDNGCbPE5ZHzXvLlIUPMnsU4DxyaFDNoEg1642lx1yn/JdoLfZDG2deKvgJ2fvpsRGNvASim
QP00a2Xu7DR9yWV0j+6UuxZEdoEBtcUCbwpe1NutAFmbDCqfx1G2KZrVV/hxte3PI3QQvoRTxgz5
PtwJ2yu3/Bu9FUYb46pX+6NA1YEGBYD8LtChI0f9VW2FhGYwMyYFtsTlhd8EmwvWf38k/SvR+XPJ
0xYvm0uCZcQhpRq6p3R5h89EU9lLwVFn1sNcKdz8ZLJPVn7nb+zRL/81G5tmpthsO3dFmqRulLnb
REijghkZO55A3qmo/VwUnJj29d5LCWfpMmyhNh/264gsyvmGI+8aacqyYHG2jBe1HF2IF7tvLgqV
hvIMF1w/bL8rTTUDFHij7UEjKGKbB2sKcE1ghU43JLMFTyE1MYJrnNlloFf9nMVELLuBITjcEBV3
Ac/bFaNBQoEGGYD8ewUfvIrRI5s6POTtoLLY/ve2oBkTBP9dwUeaW1hYIhd0MBPcJQbbWck3GE+n
H9J7YQfQQRnl1TMh+Uldl+LMzW0//hiBqLqH4k1KHPfl908AF3Rkb6Wt72VSq9EhU1BTzjSYi5A0
OwAF7aUICdPjfJf1wGoGEq09/W8BkX5HdnNZ7eM9cOBZgePXugBpK06k4D3KZhFdm9ysdaAePxUX
ixpSaTPzgWAtH9F9UprWkuG028yCKXYVk22/wdAjgwJH1NrzQ5g55iWK38PQ70NHQDr67Di1G1Wk
NC7jqN2zx0zw7TXr8aTrhVchsofhdOi9Pt3TzStESUXQQ7yOZuHyG5VxZmZ1LyRCGrZqFv1OukAm
v4LofVNsz4ktqownEVDsg+Neioz7vx9pb0ajHCedfoBuA0AK6z1YMAb5r0ujQOGBBi2A/AHQ3Djs
ourzPFME1bu9+BChAZAjZ1xnl5GJLKFHHo+0A32CzjyOCV7cEQcDWGicweGFNaa/76abAGgtZeR7
M4XSlHtbe5mp0dNu7jc7XuloSnUKxSnJ+CyJCY886Q2bIC+ihI/BC/KyV0skB8Y8E2PWZyisDI55
GVqvHIFXYEBtngF+4X+I/Qd6WmniHqpIYeBvjziOGwNQYjPWJ4zl3DwVIJ0myuwrl8o3UZ3ba0Pb
kkc5HPNCy8RaFIe2lYdfDVtuBCQnH/7Kr9zun9sDpVHAc3FMOCHBMQ2ZNkOjQR6BBkGA/AAJDMed
kr8D0ABFinzbIGm4GQuJfize1bxng6e5f6SmOTyesnqA/GuPb6O9gtEeOwaCtfBMmKb3u9AgVit2
qyC+3y5eMJFwOPegGV+OD8fM8YOkV3vVe+ygKKBZ4pYCFTwafzpzkaqBfqPULt6JNhbSmXFVAbfT
EQzQl7UJtkQbc/XYNboVVyWyPGJZ6h9GCsQAFdMbADRgSirItx8szAqz7v+oOz/J4X6jjT5vDMdt
FgJNEh4g2K8dmprRbYLP51VxHumUizxnv83IlAG4q8eR4rIJk1ALuZE515H6fDwpZMCtxK+ka7dp
tGXLEoCLrdPnvNecFQej/vzn5zDUce68RxXBxNnquMXLmUJ4//iNsDQlmkJ4gZTro0DLgQZVgPwA
cMMBp6+/iwvEE7HPBbGauVB0hPB/pZczt4nmhwQNVHg8qe0MBj8W+Jelc1hLTn4esH/m735Pivcy
8/Q0kqG83FLvEGeAvMTSewwa0+4QVBssJa5CnkhqzhgEt0sq5vG5xmAcAhJUmszu4V5wM4ujZHNI
nItMLG0Yufw7uCTIlGy45jzjwIo1UsygLAaaOTthEeGV7ro7JimJ0NGQRQCYsDtAtdhABZysVuWp
D+PkBPwnSdGDkpT8LxpcZuSMnZB+1e70gcGjQOGBBmmA/AE4eCG5J8Jj+rsg5hgVYK51m6fpoHZU
wGOu2H4gwfb24Swn8but7BTwDkLi+05SaXB8Y7M/JecT+eTqk0iYzTc4ni+DqXO4zEBy3oBTrxOD
kF/Y/JqBLy3KzZpMIlzBIDm3f437TDl90G/g9gOU/1E0ffC7+woisa3oXNMPZKMFdfscbkmpBHO4
+YQ5GbbI35Adu1Nx1R83uO8GIR+Iz3MiJxJmw7dpkWn88cgMN4Na/qgLrU8xMCWBbRWW+7xkOhmm
MKernJFpJo2kZT7W2pVFsnaQolL/lWBt2vWjQPCBBn2A/CbAt1uW7obiZ/i9ek3imyhieynRSQ0t
7jVI6VCJc8nyrafVbkOArCvDoXtjy+JNDiwuhOXhH0/TVQK2Nn2Adn7Dvqfu6GPAe7VFkDrYPtjp
63tKmjZTf6vDfBDabhL9PeBaQttHQeIFEnvMnguiGfd2goXyH4PL254Je/TnfHgRbImHcAZm6rOL
YSqV4rkOSSBx22Ii9zPaHSI/AgUBk9KB3XVnPaf+lq0M7SN8m54TxY+Xo3hUeLZpgILLLx4KnT0l
wTG9K/ogLtssXhIx2aRcRRNnQuvAmonA81dClV3JC/2btSbTm/KMCSijQNyBBpGA/DIurYvbK35i
6xzYq4OpYP3MXx+CexG8VnJ8NbYPxXqeNAIo9eA2X7YHHMAU3MswBR+AbvPt4ZKQOQGl2QkdoUi+
2MuYfMq+hAZLZB7m1wwsgqi9WCG/VC2ZX0pUvEX75rgaocybhb4u+KAtsNfvi8OAiw6chgHSqmyT
kW7YdHGbW4JugUQaghEcd/0PDbLHHHv0NNbDM7ROTIvMZSY9lDQRpoiltIF+LedQAI1DprHRIKE9
ItgK/jIviFe1I3d1DXq+auj/awgfgRSRWoTu/JSk+itIZXH1o0DIgQalgPwBOGhp0gztLMo+vh3c
z3lhO4Pot3TM//xRQ1iqu+l7gicboi/V+HetNaDoktCFPSYWIV8fwCe8aCywTwJPN4XvAqq1gdZX
E0uSPBEf//RpSUmch+Su61m990LYeY7YSCbYKh03yvkLeMJ9CRdj5V/SKeMY78mBmE/Wd7RckDzq
XjMYYKy/3WOay0zECI5ZsGoLhaBe07SdWJUh9hx+leaFkVypHfl9flo2OpjLp5Yh7CA0qvTJVh5c
2KRb1PXg/In/jKajQT6BBrmA/HcT0U9hIEvIVX414/Q5u/NSMlWVYCjfyO5WXjLdpN98CS4kl5+e
tMT7FsAFPYq65kZoFAfES6609Q9X82tPRkaSkEc33v84wbsiGpw9JAsYELczXVCn8wugJwwZL56h
gc7dzmnEp5anMwWmBvBv6+B8OW40o4kEvpF9+rZH8kMxHq5aRNbWnBRFPSb8el0feNhbSBO0/xtg
adsicUasIrwYnCbFDWQocSNRBCWXKeM4fqnJtMwJ/ggIAEizAqs3fjjvOTUyDTPzGVOHRDnmieeA
RCZDwMb3BS6TNy0iaO5UtvY3pArK0ZXVXylJAQF2D/GbyS4gnvuRApGGrAdhH/dqjcSzEm8nouZy
ESwqqAY2gNhCtXy5/7RXbrcPn1BX8blWiW+NUUSoTHpteAwsW4T5+99C4mWN7lujQMiBBs2A/Baw
zt9JE91kNAMY/R8oWLxUvtuzSlsEidWGxncGJoaAQuhHqSBtvdzOIvOjnH/MEsti4T2N0weRZtee
YOSKGausbd2KBOD3S8RspVRCrCCJ0QeD4IaAVbYYfFX2MDtzoalp+X7iGZmAkuCs+MiAInROKxC/
YlALLqhk61OVXzu+R9hl3RTHkGUNLRBOxmBkurhV2TLB1xJU26cOUcgBuRxdIMLBrdlAqmnyHqZZ
Xyb9+jFCPpdujGR8WwEE9Xh5KIOqEqNA2IEG4YD8Ak0HlIWtmG8kythCzKVq8rEA4+jZIK4Uz7wo
o/f6wv8VdsM0qwFGnTnb2xFq1Ogx0bipEMIjaHrzzth0namN5tkuGgaD3xg7uXsfHCLH2e7+jUaC
ykoxAUbkrTHX03G5tkk4NYUjxSCuZE7EnJJAFnAlrBB7mWRyHjokJWxVep3P+d4Srmgz7xW+OiE+
gsANQgnAES2uxkUXNegB/eZ8/3NBWBdKuMj4rgEckDvp5tDWRRVOcyqff700wpi3vtPgXr/eFrAX
zJUdAyQffqYPXNxQtqNA2YEG9YD8LtDEoxJVrLRCVdZlJoPlOr2iR6jYrUkzE9Bp8vufR5FaArnB
svT/WFwXIn6FMzyg0M0YjXwG/4lu4rw2Q8fvqNl3NHLHBL0X+49AluQu2QG/hVYdVTANc1RbWFDi
b6K3IvYbVKs05k2kUwbs/geK3/J0nMYKkGLhcvaF7oqjm5qc4V8NmUNWHfLXgoRBWSsM+wVkD9+d
+uMzh5JVug7fRBfsuC5F/yAjZbEXW6r6UcIKKEPE9ZjbPRJ2/6jYvjMTf2OhE033LhlsqMkgb28M
quPPT7WjQNmBBwmA/AOewB1e8wEByD5e5i4VDvwj+UZEIdmBa88PZd4+WDky+S1u6v8fh/yS6NXA
MSfRLS8XPnajLjaxtNNXbSoTdFsVUyUWkVYDGIlx1McfSzz3dbvPhkEs8u/rVE/uJFGSb1bjKIJx
pAUAVzvPCuzS0XZpqvGo6LGY35hpMQ06J0BOjeqNE4vrc19dE3uoL4hB3JZA+BLElF4iWg0dH2Je
sO/sZM+YOgA0Yu5yyH7dYJ+jjhw9KrzY6Yhh7DJ63JanOyozxIVbr6/VI4ZPBsEf05AD/758o0DP
gQcdgPwWrpiT99LnXCKUqx/Y9Oy7xucV9SkubfyXqdaewfXhVInYzEgrZ7GCkNxYbR7QqLNXbsw+
V1yN1mCs+kRVUpfjoxhyQmK3lehon4/O/VtTOZGjMO002vk6kDHp12716qmecOOWTkrrfrn0W73M
f8P3s0g3P3tIB9Fi+Pu/Qdp5A5KMb+oXSLi1JLl1oEe80nr75xoxOUxRRtzWnpHuoOeaqF6ZDkN+
6IgDKm327qk0Y//+ivtdw5NCMycbuyv+zf6ZO2X78bw83qcbo0E5gQcxgPx8m/sYbFNmkvVjX4WV
HLsDZxcUMcO9B2JuJ5BOuPOCc8pPxeP3oym642HtdXe/N5gYu3WMIv8gYxvJyMdMG40N7t0ekVUY
Aa7s48Bx/3BjIFseX+Nhtne7RakCirfRvksdzJIRgDJfYta1MOTPTGHBZN2T5sT/YvcQx13WS0SK
WXLujyc41WZQ9FiFnRRoB67I2lkf1UdasfxXUNYZkB1X6GknrDfhiCZ6OVrwWzWAPD0knE6EGTRv
sN+DoqO07eTVN/bTH7j15a+Zg0SkyOxvbCkZjeeBngy5vnkpFVNvJaO0MtFKzmXN1uY/Z2wauvpj
7ztR3iR2BBS7cVXzn86x5Pq3234vQQsDi72d+QN+M7Jc1QOMF4vIebUrJdR5EvPu2FgNJ/GfJlCw
bsw7YiY4Zxzj6KNBRoEHRYD8dpbyfc3dgGi7mg+sGbvhijJew8rdFZ6qTL5P/+lA/0zT3OtJEJQR
AlK5Iy4Zzgxw8G4RUYZu/rIVYHIPcQOpjO0DcvKBYZd55eiSNwVsxOyc+T+gi809sbRSHr+zzWGc
Ef1iXUUzi7AZHA5wbRd/C+lr9xHxVbIUxJQLosEEL/0Jf+I4nxyrK5ahdtjIK5J2hZU2KeJDWNJN
iMZ3BG27fqLh/0mbnQ7JoBuFduhvIQLQF971u36ajB/AaBsCyA5c+/1+Wfwn1vvuFGT1t4CTcLJp
nhGakg6QWq4LRRHA9n/JyrRwOM+ZTE9YykzYqJ0gSLJliX5unEwCnfV0j2V+QKKgrsA+SvxJlKc/
ixoL8ssm9FEFzhfqKyIo0wNERgK2qKE25kEURIxDcvOeXXzMDjGWddN5HnEn0NxuxM0S0c/Jo0DJ
gQdZgPwV5CHib8JWX3zScX+45gsk3AkMwPLknpiy37PoHEHvhbDz+RVQlpmgT1xB5n78BOskCkCh
1RQ+tsatUQuBTutMA5/4NyEBSrbd2jwMv0fhD8NPle4xGmXmVRJmT9pYNoWPam4qxNmtg1fOyKJO
BL+VLpLo6HIEkJFmOLj2CZLoEt1A0ad4MKQ/RGKvDDIEyMmVAVlC/OE9GjIASUXJADCZMa3MXP81
ja0sh7cuwFK/1AS8/z7hmC6fCMtkV76mn2tX+YbLo0DXgQdtgPwANXW7ttvePqCQTbFSLZI0uY9B
JxNpCLRFdX8lDNan7LwjfNe/DAPLgRXVwwqm8X9HUsqYcJC8SW+6d9I/3An3KgSspFBKfriyOTFM
KcEGp6Ip10rBn4z9HixC5fLcNTU6BrZWsDwVFwB7PUHtUMs0hFZWMLJQcr7WbAsGEOyV7nSjIbHU
C8hE4FHqA2Kf93399+hj9asBYkf8ONtSQg6rBQmqb9f6MzBmOi4+i1laUW5N6AqCQvm+u7sxNjsq
vHQgGKQcXZMsBNTt2WQ50VjIvJajQNSBB4GA/AB5u3VR7D5D2qNb2lm3paCoP04B8OgYpmhrAGSW
q+humG/MLIO8xhO3LdtAu3s+UgBVgskTQF8niCPH340fafNFDV2jck3Dbjg3dL/ROyP8zIzSgdgh
2pA6/0g3QaJmwKm8kCgxNr/Gx6T1vmwhqszChRGGaa86VFOnpLXudlJavEdqzltih2zWHUtXHkUU
LMTsyHkL7YEbG+uabqT+0iQigynsS7PoaaAxI3cbsAJKR2Aizbu9JzdKOLp1HjWWVFBDvKDACZ26
tfFJpVJTD6NA24EHlYD8Fyu7lSvtWmzK2H1Mvqb3qVn4ZBbZgLtFKfufAEl6nLXz8xiI0f59/N6y
cTjk/SKrkmmgEkkLRMC4KoOE16IZACvfe5MB6Lo2yEVfUVlK/X2saZ7mmMJKAJj/O/jx4ToG4JEA
QN0OPAwmuY8vvjav8KOUx9YNwP+aJcGX/KxuObpjSlxOP++x8QHzKmazllntE5YjjxhMjKO/CYfF
j0fj+BI6qJBQbgCIB7oZbDS4FBi3HpKG55mPrABBsLbzWAtFrQi52qO7eWjOxHygS0k5KMBu6OCE
H6NA0YEHqYD8ADV8FdKi6J02FmnQqYaTygwJ3VkYrZqxTlpmUItgST19wie8Mr16/iMWKNJMpSsO
uRiyh8MAv/xSpxrIUdmE2sezArS2GpBk+N26NoIzrzHry5OWo4zKMazmuNAXdprQfWPkCasZQbZb
U1phJRZNMYaPztcEHfj/2j2Q3ozRr7pTRyYJ/sHMgAMSy/gTJfUlfxaNzu5tH52xViQeGRRRsSCL
j4oEmQY69qYyGP5x6zjUzhlDSK5m3GV7j64qtrxl783uctzwvI/FJjmqo0DcgQe9gPwBtKLjLmuD
rv8iwg4NfjBP3M46AQ0VRx9QFkE9yJY5EgIRGbNYQIYEFGIobzDMA2xsMObe+OGCIUJOvEh+G3Vt
VESVbEzwGh9uKX38PGO3sy7KTKLg3v9KqSeIJFVz4lrRsOwbNF1VU05OO0t672HFIyzJxoG4tEiq
dBrH9cb7F27D1gtzvt2+yyV8tzyMGOF8XvCEGc6Z4Y7yTvm+iXpKv3Lo9HF5C2z4FPKuh0YOmFks
Isn71ALYqt6ZhfutAls+PvnykzU5g//9xjN9ZJSdKe/eDXKXG6ABAAAAAAABVaFBS4EH0QD8cEyR
mHSG//A4yqiLfYvqyMgKZnrcqoWUQjgHGFGua6CSSQpUMQyHqFn85kXAGTvaklH7WDSfAH7l2xW9
bi+ayO0lyukuFxogoEN0Huu7TQ5DdE/nf8Rwe19uB4MuVoXtZjmzvknL2G2TkxHcGfFcm9n6Aeao
1m5coDjz/zWNt2w9gKmicJTVuIV1XXQ4UWAlSSIe9DQIAAAxVY7kfiixB6Ej3sRPSMkjx3u0g3LU
rx/G1VgN4RdkiAVE/PzYUzGgVn1EZsLe1ApUDd0IXDgiIPig0Mfp3eJHFMlFpWA28x/8k4t1hWi6
oDl+VfbkHVKQapx930AbHIM0FkrwMrBVjNbeJqO2uPvCPbOFbWITlzf1j0D1rbRDi8mE/ZIbsqZI
EwcUgzV1ZACETX2FtsK+7uMCUty4NArOTEElcCP9ec82H1H0xBN1ooQAzf5g
--047d7b5d9f3b5e09500529135f93
Content-Type: audio/x-wav; name="first_6.5ms.wav"
Content-Disposition: attachment; filename="first_6.5ms.wav"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ijab9c5j1

UklGRiYFAABXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAATElTVBoAAABJTkZPSVNGVA4AAABM
YXZmNTYuNDAuMTAxAGRhdGHgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9
--047d7b5d9f3b5e09500529135f93
Content-Type: audio/x-wav; name="repeated_400_times.wav"
Content-Disposition: attachment; filename="repeated_400_times.wav"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ijabhk412

UklGRkaeBwBXQVZFZm10IBAAAAABAAIAgLsAAADuAgAEABAATElTVBoAAABJTkZPSVNGVA4AAABM
YXZmNTYuNDAuMTAxAGRhdGEAngcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEA
AQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3
//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgA
HgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R
/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8A
JwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q
/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/
CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZ
ABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/
0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABF
AEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/
uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1
/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAA
FgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDe
APQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IA
sP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT
/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/
yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g
/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AA
MwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGp
AGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsA
OQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R
/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEA
AQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2
//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8A
GgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V
/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8A
QAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K
/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoA
FgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAH
APf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/
5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3
ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/
pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z
/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/
q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEu
AVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/
9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89
APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/
Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g
/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA
8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAc
ARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcB
DgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A
/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAA
AAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4
//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkA
HAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K
/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYA
OwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J
/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMA
OAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m
/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/
+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAO
AP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/
0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6
/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/
cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFS
ARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/
Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAt
AJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/
v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d
/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsA
egAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAM
AKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8A
VgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA
//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7
//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkA
FQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U
/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0A
SQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v
/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQA
OQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d
/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUA
FwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g
/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/
xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l
/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/
Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHy
AAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//
AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQ
AegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/
rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X
/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgA
ywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9J
ANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/
uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7/
/v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+
/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEA
DgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V
/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcA
PABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5
/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEA
VABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8
/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQA
HAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H
/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/
BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8d
ABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/
Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDY
AJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wA
bgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEe
AaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/
RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCA
AHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcA
NQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc
/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/
5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/
+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAG
AAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcA
BgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j
/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcA
OgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v
/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcA
SQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+/
/6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQA
OgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v
/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A
9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8
AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/
Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7
AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEA
CQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/
ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EA
JACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5
APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/
PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j
/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//
hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/
+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAI
AA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA
9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y
//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8A
KAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B
/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkA
VABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o
/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUA
NQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2
/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//
8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/
AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/
af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCc
AGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8B
OQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHl
AGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEA
sQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8
AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgA
BgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4
/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/
O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/
9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAAS
ABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//
8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+
/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0A
FQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K
/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0A
QQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2
/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsA
VABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++
/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//
w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1
AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/
0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBk
AL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcB
UQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQAS
AVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsA
IABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZ
ACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkA
jACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+G
ABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/
v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQAB
AAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/
+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgAT
ABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/
3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAX
ABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUA
BQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f
/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkA
OAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z
/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoA
RwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C
/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//
vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6
ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMA
OwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6
AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkB
XwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz
/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/
DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDu
AAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0A
pAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBW
AGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/
wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQAB
AAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/
9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAc
ABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/
3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAe
AC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/
5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4
//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkA
IwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H
/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkA
WABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8
/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/
iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAt
ABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYA
uQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw
/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcA
XADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2
/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/
af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw
/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsA
UAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBi
ATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/
bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQAB
AAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/
9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZ
AB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/
zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4
AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/
3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAI
ABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUA
CAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X
/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwA
OQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q
/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/
x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl
/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQA
GQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8o
AHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA
4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r
/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/
kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDt
AEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQB
TwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+
AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwB
q//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
AAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/
9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAe
ABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/
0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2
AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/
v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAq
ACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/
+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r
//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYA
GwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D
/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/
t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0
/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVAB
OAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L
/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/
UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w
/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/
Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBK
AOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA
3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCV
AA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAA
AAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/
+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAY
ABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/
y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJ
AD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/
wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAv
AEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/
1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8I
AAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/
9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3
/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f/
///l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80
/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgB
LQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X
/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQA
oQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H
//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/
8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAF
AVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA
4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq
/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA////
//7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z/
/v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAU
ABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//
1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+
AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/
rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBN
AEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/
0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwAR
ACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/
yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3
/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA
8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s
/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkB
uwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4
/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegA
YAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8n
AMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwA
JwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBW
ALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/
BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d
/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9
//3/+//8//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIA
AQAGAAUACgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAM
AAcABgAAAAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/
3f/j/+f/6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABC
ADcAOgAwAC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/
uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABH
AFcASQBXAEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/
sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAv
ACQAOgAsAEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/
uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo
/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEA
RgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z
/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYA
vgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCz
ANEACQEfAU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaAB
NgG/ARwBpgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu
/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEA
uAC5APgA8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCM
AOj/PgAAAFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/
vf+j/9P/0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d
/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8
//r/+//5//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUA
CgAIAA4ADAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAA
AAAA9//5/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/
6//y//T//v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAw
AC8AKAAjAB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/
tf/B/7//yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBX
AEkAVABHAE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/
uf+o/7b/qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAs
AEUANQBMADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/
tP+2/7j/uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8I
AO//8P/X/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8A
ZwB/AHkAeQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X
/23/af+S/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4A
WgCcAGMAsgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEf
AU8BOQFpARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwB
pgHlAGcBnQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACa
AFEAsQBFAIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA
8gA8AewAUgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAA
AFgABgBcADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/
0P/4/zEA/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p
/0v/O/+l/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5
//r/9//5//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4A
DAASABAAFgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5
/+//8f/m/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T/
/v/+/woACQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAj
AB0AFQARAAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//
yf/K/9P/2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABH
AE0AQQBEADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/
qP+2/6z/uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBM
ADsAVABCAFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/
uP++/7z/xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X
/9//w//Q/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkA
eQB1AF0AXQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S
/5b/0P/f/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMA
sgBkAL8AVgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFp
ARcBUQHDAAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcB
nQASAVYAuwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBF
AIsAIABRAOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewA
UgGZACQBQwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBc
ADkAjACUAO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA
/v+GABUA6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l
/1n/v/8p/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5
//b/+P/1//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAA
FgATABoAFgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m
/+r/3v/k/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woA
CQAXABMAIwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQAR
AAUABQD2//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/
2P/f/+j/7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBE
ADkAOAAvACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/
uf+z/7//vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABC
AFoARwBcAEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/
xv/C/8H/uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q
/6//vv+Y/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0A
XQA6ADwAKgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f
/yMAOwB2AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8A
VgC6AEAAqgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHD
AAkBXwCvAAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYA
uwDz/0oArP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABR
AOf/DgCM/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQB
QwDuAAMAvwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACU
AO0ApAATAbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA
6gBWAGABSgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p
/7v/wv7TAHX/bv/R/TwBq//A/oX9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAAAAAAAAAAA//////7//v/9//3/+//8//r/+//5//r/9//5//b/+P/1
//f/9f/3//X/9//2//f/9//4//n/+v/7//z//v/+/wIAAQAGAAUACgAIAA4ADAASABAAFgATABoA
FgAcABgAHgAZAB8AGgAeABkAHAAYABkAFQAUABEADgAMAAcABgAAAAAA9//5/+//8f/m/+r/3v/k
/9f/3v/R/9n/zf/V/8r/0//K/9L/y//U/8//1//V/9z/3f/j/+f/6//y//T//v/+/woACQAXABMA
IwAeAC8AJwA4AC8AQAA2AEYAOwBJAD0ASQA+AEcAPABCADcAOgAwAC8AKAAjAB0AFQARAAUABQD2
//f/5v/q/9j/3v/K/9P/v//J/7b/wf+v/7z/rP+5/6z/uf+v/7z/tf/B/7//yf/K/9P/2P/f/+j/
7P/4//r/CQAIABoAFgAqACMAOAAvAEQAOQBNAEEAVABHAFcASQBXAEkAVABHAE0AQQBEADkAOAAv
ACkAIwAZABUACAAHAPf/+f/m/+r/1v/d/8j/0f+8/8f/sv+//6z/uf+o/7b/qP+2/6z/uf+z/7//
vP/H/8n/0v/X/97/5//r//j/+f8IAAUAFwARACQAHAAvACQAOgAsAEUANQBMADsAVABCAFoARwBc
AEkAWABFAEwAOQA3ACYAGwAOAP7/9f/g/9v/yf/H/7n/uv+v/7L/tP+2/7j/uP++/7z/xv/C/8H/
uv+8/7P/uP+q/7X/pP/D/63/0P+3/+H/xf/3/9r/BQDo/w8A9f8IAO//8P/X/9//w//Q/6//vv+Y
/7L/iP+1/4j/x/+Z/+H/t//6/9f////l/wMA8f8dABEARgA8AG8AZwB/AHkAeQB1AF0AXQA6ADwA
KgAtABAAFgDl/+z/q/+0/2X/cP80/z7/Jf8s/z7/Pv9Z/1T/Xv9X/23/af+S/5b/0P/f/yMAOwB2
AJYAuQDeAPQAGQEuAVABOAFSARgBLQHyAAkBuwDYAJYAvgB7AK4AWgCcAGMAsgBkAL8AVgC6AEAA
qgDw/2IAsP8oAHv/9/9L/8X/Zv/X/5//AwD4/0wAbgCzANEACQEfAU8BOQFpARcBUQHDAAkBXwCv
AAcAXADT/ywA4P89APD/UQAtAJQAoQAQAegAYAEeAaABNgG/ARwBpgHlAGcBnQASAVYAuwDz/0oA
rP/2/4f/yP9r/6z/Zf+w/2T/v/+H//T/rP8nAMP/RgDu/3EAJACaAFEAsQBFAIsAIABRAOf/DgCM
/7f/af+g/03/kf8g/3D/Qv+d/43/8v/X/zwAJwCAAHEAuAC5APgA8gA8AewAUgGZACQBQwDuAAMA
vwDw/7AAMwDtAEEA8QBKAOsAegAFAVgAywBWALcANQCMAOj/PgAAAFgABgBcADkAjACUAO0ApAAT
AbsAUAGpAGQBTwAcARwA3wAMAKoA4f9JANz/BwDc/9T/vf+j/9P/0P/4/zEA/v+GABUA6gBWAGAB
SgBiATsAOQE+AAcBDgCVAA8AVgCq/83/uf/d/6v/5v8d/1//hP+p/0v/O/+l/1n/v/8p/7v/wv7T
AHX/bv/R/TwBq//A/oX9
--047d7b5d9f3b5e09500529135f93--


From nobody Mon Jan 11 12:42:32 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D0ABB1A911E for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 12:42:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BB3x_SYQTFJD for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 12:42:29 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D9611A9105 for <cellar@ietf.org>; Mon, 11 Jan 2016 12:42:28 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:36806 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIjIH-001Gi6-2D for cellar@ietf.org; Mon, 11 Jan 2016 15:42:28 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <5693F2AD.4080206@gmx.de>
Date: Mon, 11 Jan 2016 15:42:23 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <5BBDFD1A-E2B2-40D8-B61D-1B4000B84372@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com> <5693F2AD.4080206@gmx.de>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/oMa7141TMaKz67xGAQLH0y-Twas>
Subject: Re: [Cellar] Matroska Interlacement proposal draft (+ minver and webm in EBML Schemas)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 20:42:31 -0000

> On Jan 11, 2016, at 1:21 PM, Sebastian G. <bastik> wrote:
>=20
> 11.01.2016, 18:08 Dave Rice:
>> Update FlagInterlaced  version 3
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Element Name: FlagInterlaced
>> Level:        4
>> ID:           [9A]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:  0-2
>> Default:      0
>> Type:         u
>> Description: 	A flag to declare is the video is known to be =
progressive or interlaced and if applicable to declare details about the =
interlacement.
>> 			0: undetermined
>> 			1: interlacement (unknown field ordering)
>=20
> '(unknown field order)' is not required if it is split into to =
elements.
> I have no preference for or against splitting it up.
>=20
>> 			2: progressive
>>=20
>> Element Name: FieldOrdering
>> Level:        4
>> ID:           [9D]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:  0-2
>> Default:      0
>> Type:         u
>> Description:  Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored.
>>=20
>> 0       undetermined
>> 1       interlaced (bottom field first)
>> 2       interlaced (top field first)
>=20
> I think that using '0' as no statement is a good decision.

[=E2=80=A6]

Based on comments, I made the following patch. I also renamed the =
proposed =E2=80=9CFieldOrdering=E2=80=9D element to =E2=80=9CField =
Order=E2=80=9D and change the meaning of FlagInterlaced=3D1 to simply =
=E2=80=9Cinterlaced=E2=80=9D.

Creating the patch for specdata.xml brought up two new issues:

The format of specdata.xml includes an attribute called =E2=80=98minver=E2=
=80=99 to refer to which version of Matroska began supporting the =
element. According to matroska.org "Version 4 is currently work in =
progress. There may be further additions to v4.=E2=80=9D; however there =
has been no distinction within specdata.xml between =E2=80=98in =
progress=E2=80=99 and official. Perhaps Matroska should mark version 4 =
as official as-is and the ongoing work within CELLAR would work towards =
a release of version 5. In the patch below I used minver=3D=E2=80=9C5RC=E2=
=80=9D as (version 5 release candidate) in infer that it is not official =
(yet).

Also specdata.xml includes a boolean attribute to say if the element is =
supported by webm. FlagInterlaced is supported by webm (as correlates to =
http://www.webmproject.org/docs/container/), but I=E2=80=99m leaving =
webm=3D=E2=80=9C1=E2=80=9D off of the new element =E2=80=9CFieldOrder=E2=80=
=9D (as I=E2=80=99m not on that team).

=46rom 5d7f7b8122232c20a3e39de70d587f684b48cd2f Mon Sep 17 00:00:00 2001
From: dericed <dave@dericed.com>
Date: Mon, 11 Jan 2016 15:11:26 -0500
Subject: [PATCH] clarify FlagInterlaced and add FieldOrder element

---
 spectool/specdata.xml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/spectool/specdata.xml b/spectool/specdata.xml
index 57abb97..2167e15 100644
--- a/spectool/specdata.xml
+++ b/spectool/specdata.xml
@@ -109,7 +109,8 @@ between two successive fields at the output of the =
decoding process (see <a href
   <element name=3D"TrackTranslateCodec" level=3D"4" id=3D"0x66BF" =
type=3D"uinteger" mandatory=3D"1" minver=3D"1" webm=3D"0">The <a =
href=3D"http://www.matroska.org/technical/specs/index.html#ChapProcessCode=
cID">chapter codec</a> using this ID (0: Matroska Script, 1: =
DVD-menu).</element>
   <element name=3D"TrackTranslateTrackID" level=3D"4" id=3D"0x66A5" =
type=3D"binary" mandatory=3D"1" minver=3D"1" webm=3D"0">The binary value =
used to represent this track in the chapter codec data. The format =
depends on the <a =
href=3D"http://www.matroska.org/technical/specs/index.html#ChapProcessCode=
cID">ChapProcessCodecID</a> used.</element>
   <element name=3D"Video" cppname=3D"TrackVideo" level=3D"3" id=3D"0xE0" =
type=3D"master" minver=3D"1">Video settings.</element>
-  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" =
level=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" =
webm=3D"1" default=3D"0" range=3D"0-1">Set if the video is interlaced. =
(1 bit)</element>
+  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" =
level=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" =
webm=3D"1" default=3D"0" range=3D"0-2">A flag to declare is the video is =
known to be progressive or interlaced and if applicable to declare =
details about the interlacement. (0: undetermined, 1: interlaced, 2: =
progressive)</element>
+  <element name=3D"FieldOrder" cppname=3D"VideoFieldOrder" level=3D"4" =
id=3D"0x9D" type=3D"uinteger" mandatory=3D"1" minver=3D"5RC" default=3D"0"=
 range=3D"0-2">Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored. (0: =
undetermined, 1: interlaced with bottom field first, 2: interlaced with =
top field first)</element>
   <element name=3D"StereoMode" cppname=3D"VideoStereoMode" level=3D"4" =
id=3D"0x53B8" type=3D"uinteger" minver=3D"3" webm=3D"1" =
default=3D"0">Stereo-3D video mode (0: mono, 1: side by side (left eye =
is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye =
is first), 4: checkboard (right is first), 5: checkboard (left is =
first), 6: row interleaved (right is first), 7: row interleaved (left is =
first), 8: column interleaved (right is first), 9: column interleaved =
(left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is =
first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block =
(left eye is first), 14 both eyes laced in one Block (right eye is =
first)) . There are some more details on <a =
href=3D"http://www.matroska.org/technical/specs/notes.html#3D">3D =
support in the Specification Notes</a>.</element>
   <element name=3D"AlphaMode" cppname=3D"VideoAlphaMode" level=3D"4" =
id=3D"0x53C0" type=3D"uinteger" minver=3D"3" webm=3D"1" =
default=3D"0">Alpha Video Mode. Presence of this element indicates that =
the BlockAdditional element could contain Alpha data.</element>  =
<element name=3D"OldStereoMode" level=3D"4" id=3D"0x53B9" =
type=3D"uinteger" maxver=3D"0" webm=3D"0" divx=3D"0">DEPRECATED, DO NOT =
USE. Bogus StereoMode value used in old versions of libmatroska. (0: =
mono, 1: right eye, 2: left eye, 3: both eyes).</element>
   <element name=3D"PixelWidth" cppname=3D"VideoPixelWidth" level=3D"4" =
id=3D"0xB0" type=3D"uinteger" mandatory=3D"1" minver=3D"1" range=3D"not =
0">Width of the encoded video frames in pixels.</element>
--=20
2.6.4

Best Regards,
Dave Rice=


From nobody Mon Jan 11 13:27:15 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B2A941A9176 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 13:27:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GUrtYP-_FaPz for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 13:27:11 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EEF141A9174 for <cellar@ietf.org>; Mon, 11 Jan 2016 13:27:10 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:34035 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIjzW-002Qlb-6T; Mon, 11 Jan 2016 16:27:10 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <5693D5D6.6030709@xiph.org>
Date: Mon, 11 Jan 2016 16:27:04 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org>
To: "Timothy B. Terriberry" <tterribe@xiph.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/f3xy4waECqN4HC97sqUTWyCA2WI>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 21:27:14 -0000

> On Jan 11, 2016, at 11:18 AM, Timothy B. Terriberry =
<tterribe@xiph.org> wrote:
>=20
> Dave Rice wrote:
>> Listing reasons to not have a CRC Child Element seems awkward.
>> Realistically I think the primary reason that CRC elements are not
>> used is because many muxers don=E2=80=99t support adding them, =
although the
>> EBML specification has long contained: "All level 1 elements SHOULD
>> include a CRC-32.=E2=80=9D Instead of addressing reasons why not I =
added
>=20
> So this is really, "SHOULD, unless it is too much work for you to =
bother=E2=80=9D?

That does seem honest. ;)

=46rom a sample set of 59,881 Matroska files uploaded to archive.org =
only 119 of them include CRC-32 Elements. Almost 0.2%! Additionally the =
webm Document Type lists the CRC-32 Element as unsupported. So I think =
it=E2=80=99s true that it=E2=80=99s rarely bothered with. The =
implementation of CRC-32 Elements does add many complications and =
perhaps demand has been too low to resolve them. Moritz may have =
comments here.

> I say this as someone who has had every SHOULD in one of my own drafts =
systematically dissected with the question, "Why not MUST? When would it =
be okay to violate this SHOULD?" late in the review process. I am trying =
to save you pain further down the line.

Historically both Matroska and EBML specs have said that "All level 1 =
elements should include a CRC-32=E2=80=9D with a lower-case =E2=80=9Cshoul=
d=E2=80=9D (that =E2=80=99should=E2=80=99 was capitalized in a recent =
review); however the implementation of this recommendation has been =
minimal.  To change the SHOULD to a MUST, would invalidate approximately =
99.8% of Matroska files and 100% of webm files. I realize that this =
reason alone may not make good language within an RFC.

On the other hand, through discussion here, I do see the use of CRC-32 =
Elements to be more meaningful especially in the two use cases of the =
CELLAR working group title: archiving and transmission.=20

Perhaps the recommendation for CRC-32 usage (in Level 1 Elements and =
Identically-Recurring Elements) should be removed from the EBML =
Specification and moved to the Matroska EBML Schema.

For any webm lurkers, was there any reason (that could be useful here) =
to set the CRC-32 Element to =E2=80=9CUnsupported=E2=80=9D within the =
webm specification?

Other suggestions?

Dave Rice=


From nobody Mon Jan 11 13:44:06 2016
Return-Path: <tterribe@xiph.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 983AE1A9308 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 13:44:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.313
X-Spam-Level: 
X-Spam-Status: No, score=-5.313 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RXC0qopwmwCE for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 13:44:04 -0800 (PST)
Received: from smtp.mozilla.org (mx2.scl3.mozilla.com [63.245.214.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 421FC1A9300 for <cellar@ietf.org>; Mon, 11 Jan 2016 13:44:04 -0800 (PST)
Received: from localhost (localhost6.localdomain [127.0.0.1]) by mx2.mail.scl3.mozilla.com (Postfix) with ESMTP id 7F32FC2875 for <cellar@ietf.org>; Mon, 11 Jan 2016 21:44:03 +0000 (UTC)
X-Virus-Scanned: amavisd-new at mozilla.org
Received: from smtp.mozilla.org ([127.0.0.1]) by localhost (mx2.mail.scl3.mozilla.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MHxRgZ67WUw3 for <cellar@ietf.org>; Mon, 11 Jan 2016 21:44:03 +0000 (UTC)
Received: from [10.252.27.21] (corp.mtv2.mozilla.com [63.245.221.32]) (Authenticated sender: tterriberry@mozilla.com) by mx2.mail.scl3.mozilla.com (Postfix) with ESMTPSA id 6BAB8BFFA6 for <cellar@ietf.org>; Mon, 11 Jan 2016 21:44:03 +0000 (UTC)
Message-ID: <56942223.3090907@xiph.org>
Date: Mon, 11 Jan 2016 13:44:03 -0800
From: "Timothy B. Terriberry" <tterribe@xiph.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 SeaMonkey/2.26
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com>
In-Reply-To: <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/GN9iQ5aYFWE2v0F0aEwkHw_90cU>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jan 2016 21:44:05 -0000

Dave Rice wrote:
> implementation of this recommendation has been minimal.  To change
> the SHOULD to a MUST, would invalidate approximately 99.8% of
> Matroska files and 100% of webm files. I realize that this reason

Well, in the IETF (in contrast with the traditional approach of, say, 
MPEG) we are allowed to specify requirements on muxers separately from 
demuxers. So it's perfectly permissible to say a muxer MUST include CRCs 
while simultaneously saying a demuxer MUST be able to read a file 
without them. Then you wouldn't invalidate the existing media, just the 
existing software that produced them.

However, if you don't think it's worth trying to force muxers to change 
their implementation (or don't believe that a SHOULD or MUST in a spec 
will actually cause them to change), then perhaps the most appropriate 
level for this requirement is MAY?

> Perhaps the recommendation for CRC-32 usage (in Level 1 Elements and
> Identically-Recurring Elements) should be removed from the EBML
> Specification and moved to the Matroska EBML Schema.

That might also be reasonable (I hold no strong opinion).


From nobody Mon Jan 11 17:51:01 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 680FA1ACD03 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 17:50:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.178
X-Spam-Level: ***
X-Spam-Status: No, score=3.178 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, J_CHICKENPOX_54=0.6, J_CHICKENPOX_55=0.6, J_CHICKENPOX_64=0.6, J_CHICKENPOX_65=0.6, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sm9zMzUqoV3u for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 17:50:56 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B92091ACD02 for <cellar@ietf.org>; Mon, 11 Jan 2016 17:50:56 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:36854 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIo6m-004LI4-TS; Mon, 11 Jan 2016 20:50:56 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFJvP_EUUDXVCyc11=f4OnJ_L2D4Gr2ydprB2Aiga6FNEg@mail.gmail.com>
Date: Mon, 11 Jan 2016 20:50:51 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <B1BBF9B3-0753-4EF9-8758-B46F7CB61C73@dericed.com>
References: <99AE1BC4-B7DC-492A-BD79-A24B4012A20A@dericed.com> <CAOXsMFLw7zHEZDTk-iHRK4e_xLWZMGhpC7GQ3zgjY69_XyJKXQ@mail.gmail.com> <5A83E961-C94B-471E-B6DB-E08E8D5FCD60@dericed.com> <CAOXsMFKbQ7Av0fNUMeugRxzi-Lh3imuujaHJFm5CvMSFjr9Esw@mail.gmail.com> <59916228-8638-4827-8145-5B0206B74A96@dericed.com> <568D59FD.4030702@mediaarea.net> <2C5B6A5E-A2DC-46F8-A0F6-F8A11ED34C31@dericed.com> <CAOXsMFJvP_EUUDXVCyc11=f4OnJ_L2D4Gr2ydprB2Aiga6FNEg@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/t4G56d5UgfgzZmbc9AvIrTKXHI4>
Cc: cellar@ietf.org
Subject: Re: [Cellar] clarity for the EBML CRC Element (and some bit of FFV1 CRC)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 01:50:59 -0000

> On Jan 11, 2016, at 4:15 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-09 22:06 GMT+01:00 Dave Rice <dave@dericed.com>:
>> Hi,
>>=20
>>> On Jan 6, 2016, at 1:16 PM, Jerome Martinez <Jerome@MediaArea.net> =
wrote:
>>>=20
>>> Le 06/01/2016 05:35, Dave Rice a =C3=A9crit :
>>>> [...]
>>>>=20
>>>> Here is a proposed rewrite of the CRC-32 Element definition. It is =
based upon the matroska.org=E2=80=99s definition with additional edits =
for clarity. The CRC-32 Element contains a 32 bit Cyclic Redundancy =
Check value of all the Element Data of the Parent Element as stored =
except for the CRC-32 Element itself. The CRC element SHOULD be the =
first in its Parent Element for easier reading. All Elements at Level 1 =
of an EBML Document SHOULD include a CRC-32 Element as a Child Element. =
The CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 =
standard and in section 8.1.1.6.2 of ITU-T recommendation V.42. The CRC =
value MUST use little endian storage.
>>>=20
>>> CRC definition is a pain, with often implementation details =
different and missing from the spec, despite the fact developers need =
such details.
>>> For example with IEEE-CRC-32, we can see on Wikipedia:
>>> =
https://en.wikipedia.org/wiki/Polynomial_representations_of_cyclic_redunda=
ncy_checks
>>> that both Gzip (similar to the one used by Matroska) and MPEG-2 are =
listed as CRC-32 (as well as "ITU-T V.42")
>>> We also see in original FFV1 spec "The CRC generator polynom used is =
the standard IEEE CRC polynom"
>>>=20
>>> But:
>>> - MPEG-2 uses an initial content of the register of 0xFFFFFFFF and =
runs on a Big Endian bitstream (final value not stored, must be 0 if not =
reversed, 0xFFFFFFFF if reversed). Note: MPEG-2 don't claim to be IEEE =
compliant)
>>> - Matroska uses an initial content of the register of 0xFFFFFFFF and =
runs on a Little Endian bitstream, final value is reversed and stored in =
Little Endian
>>> - FFV1 uses an initial content of the register of 0x00000000 and =
runs on a Big Endian bitstream, final value is not reversed and stored =
in Big Endian
>>> All different despite the fact they are in the "CRC-32" group.
>>>=20
>>> I read section 8.1.1.6.2 of ITU-T recommendation V.42, it says:
>>> "As a typical implementation at the transmitter, the initial content =
of the register of the device computing the remainder of the division is =
preset to all 1s"
>>>=20
>>> "typical" is not "MUST."
>>>=20
>>> And I don't see in section 8.1.1.6.2 that the result should be =
reversed.
>>>=20
>>> I don't have access to ISO 3309.
>>>=20
>>> So I propose to be more explicit:
>>> "The CRC in use is the IEEE-CRC-32 algorithm as used in the ISO 3309 =
standard and in section 8.1.1.6.2 of ITU-T recommendation V.42, with =
initial value of 0xFFFFFFFF. The CRC value MUST be computed on a little =
endian bitstream and MUST use little endian storage."
>>>=20
>>> I already added some details on the FFV1 spec some time ago (when I =
tried to reuse MPEG-2 CRC code for FFV1):
>>> =
https://github.com/FFmpeg/FFV1/commit/0e67a72a75485b95261be2e1f39258004666=
c4a1
>>> (the initial value is 0x00000000)
>>> Maybe I need to add that it must be computed on a big endian =
bitstream and that the result is stored not reversed (big endian storage =
is forced for the whole spec, so no need to add such info here) in order =
to be explicit on all implementation details.
>>>=20
>>> I am not a CRC expert, just a developer facing issues when I need to =
check CRCs, so don't hesitate to correct me if I am wrong on the =
analysis of the issues I have when I implement, and maybe there are =
already a "standard" way to define a CRC at the IETF (I need to dig =
further, but I see e.g. the Polynomial in some IETF documents).
>>>=20
>>> Note: checking (not a reference)
>>> http://reveng.sourceforge.net/crc-catalogue/17plus.htm
>>> V.42 is defined as:
>>> width=3D32 poly=3D0x04c11db7 init=3D0xffffffff refin=3Dtrue =
refout=3Dtrue xorout=3D0xffffffff check=3D0xcbf43926 name=3D"CRC-32"
>>> CRC-32/MPEG-2 is defined:
>>> width=3D32 poly=3D0x04c11db7 init=3D0xffffffff refin=3Dfalse =
refout=3Dfalse xorout=3D0x00000000 check=3D0x0376e6e7 =
name=3D"CRC-32/MPEG-2"
>>>=20
>>> If it is obvious that "IEEE-CRC-32" is the way it is implemented in =
Matroska and only this way, no need of details and I guess we need to =
update FFV1 spec with the same kind of details ("CRC-32/FFV1"?)
>>=20
>> Based on Jerome=E2=80=99s comments here is an update to the CRC =
Element for the EBML specification:
>>=20
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of =
all the Element Data of the Parent Element as stored except for the =
CRC-32 Element itself. The CRC element SHOULD be the first in its Parent =
Element for easier reading. All Elements at Level 1 of an EBML Document =
SHOULD include a CRC-32 Element as a Child Element. The CRC in use is =
the IEEE-CRC-32 algorithm as used in the ISO 3309 standard and in =
section 8.1.1.6.2 of ITU-T recommendation V.42, with initial value of =
0xFFFFFFFF. The CRC value MUST be computed on a little endian bitstream =
and MUST use little endian storage.
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>=20
> Looking good apart from the SHOULD be first vs MUST be first. But
> maybe the wording might be altered to say it MUST be the first, when
> it is present.

The text is updated to add a mandate for the CRC-32 Element to be the =
first Element within its Parent, when used. All 119 Matroska files that =
use CRC-32 Elements found within archive.org as well as all of the =
Matroska test files adhere to mandate, so I think a backwards =
compatibility issue is unlikely. I also updated the pull request: =
https://github.com/Matroska-Org/ebml-specification/pull/46.

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The CRC-32 Element contains a 32 bit Cyclic Redundancy Check value of =
all the Element Data of the Parent Element as stored except for the =
CRC-32 Element itself. When the CRC-32 Element is present, the CRC-32 =
Element MUST be the first ordered Element within its Parent Element for =
easier reading. All Elements at Level 1 of an EBML Document SHOULD =
include a CRC-32 Element as a Child Element. The CRC in use is the =
IEEE-CRC-32 algorithm as used in the ISO 3309 standard and in section =
8.1.1.6.2 of ITU-T recommendation V.42, with initial value of =
0xFFFFFFFF. The CRC value MUST be computed on a little endian bitstream =
and MUST use little endian storage.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

The remaining issue in the CRC-32 definition regards the use of the word =
=E2=80=9CSHOULD=E2=80=9D. Obviously the existing implementations do not =
appear to respond to the RFC2119 meaning of the word =E2=80=9CSHOULD=E2=80=
=9D but the term =E2=80=9CMAY=E2=80=9D seems more realistic to the =
actual usage.

Some suggestions (for reference RFC 2119 on Requirement Indicators =
https://www.ietf.org/rfc/rfc2119.txt):

- Change SHOULD to MAY, and let the Document Types (matroska, webm, etc) =
opt to add a stricter requirement.

- Change SHOULD to MAY for EBML version 1 and define EBML version 2 with =
MUST.

- Think of a valid and acceptable explanation for when the SHOULD should =
and should not be adhered to.

Other suggestions welcome.

[=E2=80=A6]

Dave Rice


From nobody Mon Jan 11 18:31:35 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7672B1ACD48 for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 18:31:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wpdFqrkeRsup for <cellar@ietfa.amsl.com>; Mon, 11 Jan 2016 18:31:31 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9C41A1ACD45 for <cellar@ietf.org>; Mon, 11 Jan 2016 18:31:31 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:37705 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aIok2-0011Y5-Pr; Mon, 11 Jan 2016 21:31:30 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFKKzz8usBuckuZ7JCyi9OWGs_dXgamDyiu1dBvTFjWMMw@mail.gmail.com>
Date: Mon, 11 Jan 2016 21:31:25 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <2D816B12-FC33-4B7E-AD80-C26FF953AD48@dericed.com>
References: <C4021E89-45C0-4DC8-BD60-9072469D1F39@dericed.com> <20151231083323.GB15920@bunkus.org> <CAOXsMFJa5xFF30HcGvV3jOW+5cyt-Tq7JUzuYmBKkv08eOXh2g@mail.gmail.com> <84C35B47-B124-4FCE-ABDE-A0EEC19E373E@dericed.com> <CAOXsMFKM+KiuAfSPK8huAOvConjxG699-FM6KRZ-94cp3k9nHg@mail.gmail.com> <262671D6-2C76-4D7B-BE48-A5D6909D2A8A@dericed.com> <CAOXsMFKKzz8usBuckuZ7JCyi9OWGs_dXgamDyiu1dBvTFjWMMw@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/_E-_PC5Tw7qcltDcxNlZb5I5ryM>
Cc: cellar@ietf.org, Moritz Bunkus <moritz@bunkus.org>
Subject: Re: [Cellar] test4.mkv and EBML Elements with Unknown Size
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 02:31:34 -0000

> On Jan 11, 2016, at 4:37 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-10 20:32 GMT+01:00 Dave Rice <dave@dericed.com>:
>> Hi,
>>=20
>>> On Jan 4, 2016, at 2:44 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>=20
>>> 2016-01-03 22:50 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>> Hi,
>>>>=20
>>>>> On Jan 2, 2016, at 4:06 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>>>=20
>>>>> 2015-12-31 9:33 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>>>>>> Hey,
>>>>>>=20
>>>>>>> The Matroska Test file suite is at
>>>>>>> http://matroska.org/downloads/test_w1.html. This includes =
test4.mkv
>>>>>>> which is an example of a live stream recording. However the file
>>>>>>> doesn=E2=80=99t appear to adhere to the EBML specs. It the file =
written wrong
>>>>>>> or are we missing something in the EBML specification?
>>>>>>>=20
>>>>>>> Within this file is this extract from the beginning of the =
Segment
>>>>>>> element to the end of the Element ID of the Info Element.
>>>>>>>=20
>>>>>>> 18 53 80 67 FF 0A 0A 0A=E2=80=A6
>>>>>>=20
>>>>>> Uhm=E2=80=A6 this is indeed invalid. A master must only contain =
child elements,
>>>>>> not additional data. To put it differently: all child elements of =
a
>>>>>> master element must cover the whole space occupied by the master =
without
>>>>>> any gaps in between.
>>>>>=20
>>>>> Did we handle that part in the newer specs ? It makes sense.
>>>>=20
>>>> Partly, in the EBML Document section, =
https://github.com/Matroska-Org/ebml-specification/blob/master/specificati=
on.markdown#ebml-document, it states: "An EBML Document MAY only consist =
of EBML Elements and MUST NOT contain any data that is not part of an =
EBML Element.=E2=80=9D But this refers to the EBML Document as a whole =
and not the sub-elements.
>>>>=20
>>>> The Master-element definition says: =E2=80=9CThe Master-element =
contains zero, one, or many other elements.=E2=80=9D But the language is =
not exclusive to say that the Master-element may ONLY contain zero, one, =
or many other elements.
>>>>=20
>>>> I propose to add to the Master-element definition the line: =E2=80=9C=
The Element Data stored within Master-elements MUST only consist of EBML =
Elements and MUST NOT contain any data that is not part of an EBML =
Element.=E2=80=9D I send this as a pull request here =
https://github.com/Matroska-Org/ebml-specification/pull/45. The patch is =
here:
>>>=20
>>> But that makes such streaming files illegal according to the specs.
>>> VLC does the same when "broadcast" streaming over HTTP. And even a
>>> Chromecast can handle such stream starting with the end of a Cluster
>>> (ie garbage).
>>=20
>> Here is the current definition of Master-element and a proposed =
update based on the discussion in this thread.
>>=20
>> current definition of Master-element
>> =3D=3D=3D=3D=3D=3D=3D=3D
>> The Master-element contains zero, one, or many other elements. The =
Element Data stored within Master-elements MUST only consist of EBML =
Elements and MUST NOT contain any data that is not part of an EBML =
Element. Elements contained within a Master-element must be defined for =
use at levels greater than the level of the Master-element. For instance =
is a Master-element occurs on level 2 then all contained Elements must =
be valid at levels 3.
>> =3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> proposed update to definition of Master-element
>> =3D=3D=3D=3D=3D=3D=3D=3D
>> The Master-element contains zero, one, or many other elements. =
Elements contained within a Master-element must be defined for use at =
levels greater than the level of the Master-element. For instance is a =
Master-element occurs on level 2 then all contained Elements must be =
valid at levels 3. Element Data stored within Master-elements SHOULD =
only consist of EBML Elements and SHOULD NOT contain any data that is =
not part of an EBML Element. When EBML is used in transmission or =
streaming, data that is not part of an EBML Element is permitted to be =
present within a Master-element. In this case, the reader should read =
the Element Data of the Master-element octet by octet until a valid =
Element ID at the same level or the next greater level of the =
Master-element is found. What Element IDs are considered valid within a =
Master-element is identified by the
>=20
> I think the way it must be discard is too specific. This is
> implementation details that should not be in the specs. IMO something
> like "the reader should skip data until a valid Element ID at the same
> level or the next greater level of the Master-element is found=E2=80=9D.=


I updated my draft locally to use your phrasing and sent this in a pull =
request at: Also updated in a pull request: =
https://github.com/Matroska-Org/ebml-specification/pull/50
New Master-element definition:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
The Master-element contains zero, one, or many other elements. Elements =
contained within a Master-element must be defined for use at levels =
greater than the level of the Master-element. For instance is a =
Master-element occurs on level 2 then all contained Elements must be =
valid at level 3. Element Data stored within Master-elements SHOULD only =
consist of EBML Elements and SHOULD NOT contain any data that is not =
part of an EBML Element. When EBML is used in transmission or streaming, =
data that is not part of an EBML Element is permitted to be present =
within a Master-element. In this case, the reader should skip data until =
a valid Element ID of the same level or the next greater level of the =
Master-element is found. What Element IDs are considered valid within a =
Master-element is identified by the EBML Schema for that version of the =
EBML Document Type. Any data contained with a Master-element that is not =
part of an Element SHOULD be ignored.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

> EBML Schema for that version of the EBML Document Type. Any data
> contained with a Master-element that is not part of an Element SHOULD
> be ignored.
>> =3D=3D=3D=3D=3D=3D=3D=3D
>>=20
>> Question: Can non-Element data in Master-elements be restricted to =
certain EBML Levels?
>=20
> If that ever occurs that should be specific to specific semantics. So
> the question might be: should it be part of the semantic definition?
> We haven't got to that part of Matroska yet. So we may keep that
> question for when we get there. IMO the tricky question is whether
> semantic definition should be able to generate code solely based on
> this definition, regardless of the format. This is not the case in
> Matroska where some elements refer to other elements directly or
> indirectly.

Skipping issue for now then, though we had earlier (pre-CELLAR) =
discussed on matroska-devel to have an EBML Schema Attribute to declare =
if the Master-element is allows to use an unknown size or not. Are the =
two issues of allowance of unknown size and permission to include junk =
data related? Is there an Element that would use one and not the other?

>>> Given it's mostly compressed data it can be any octet.
>>> That's why the level-1 elements are all 4 octets in Matroska, to =
avoid
>>> false positives.
>>=20
>> This is a good point, but it is not noted within the EBML =
Specification. I propose adding this to the definition of =E2=80=98id=E2=80=
=99 within the EBML Schema Element Attributes section:
>>=20
>> "To reduce the risk of false positives while parsing EBML Streams, =
Level 1 EBML Element IDs SHOULD be at least 4 octets in length. Element =
IDs at Level 1 MAY use shorter octet lengths to facilitate padding and =
optimize edits to EBML Documents; for instance, the EBML Void Element =
uses an Element ID with a one octet length to allow its usage in more =
writing and editing scenarios."
>=20
> Level 0 as well. I agree with the addition.

Updated to:
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
To reduce the risk of false positives while parsing EBML Streams, EBML =
Element IDs defined for use at Level 0 or Level 1 SHOULD be at least 4 =
octets in length. Element IDs defined for use at Level 0 or Level 1 MAY =
use shorter octet lengths to facilitate padding and optimize edits to =
EBML Documents; for instance, the EBML Void Element uses an Element ID =
with a one octet length to allow its usage in more writing and editing =
scenarios.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Also updated in a pull request: =
https://github.com/Matroska-Org/ebml-specification/pull/50

[=E2=80=A6]

>>>>>>> Next, between the Element Data Size of the Segment Element and =
the
>>>>>>> beginning of the Info Element there is 134 bytes of 0x0A! In =
this case
>>>>>>> 0x0A can not be a valid start of an Element ID since for this =
file the
>>>>>>> EBMLMaxIDLength is 4 (via the default). Thus the Segment
>>>>>>> Master-element has child data that is not an EBML Element.
>>>>>>=20
>>>>>> Correct.
>>>>>>=20
>>>>>> Like I said, invalid.
>>>>>>=20
>>>>>> I definitely do not want to adjust the specs to allow arbitrary =
data in
>>>>>> arbitrary places that a parser has to be able to skip over.
>>>>>=20
>>>>> But that's not what this file is about. It's about error recovery. =
A
>>>>> proper parser should treat all the 0A as garbage and look for some
>>>>> proper data. That's what libebml does.

Moritz, Does the line "When EBML is used in transmission or streaming, =
data that is not part of an EBML Element is permitted to be present =
within a Master-element.=E2=80=9D in the proposed update to the =
Master-element definition resolve the issue raised here?

>>>> For a generic EBML parser:
>>>> It should skip the invalid 0x0A bytes, because they are not valid =
Element IDs according to the MaxIDLength. In this case it should then =
skip ahead to the Info Element.
>>>>=20
>>>> For a Matroska parser:
>>>> It should skip the invalid 0x0A bytes until it encounters the first =
valid Element iD of an Element that may be a child Element of Segment?
>>>=20
>>> It's true that when you know the expected semantic, you can detect
>>> false alarms a lot better. When you don't, 4-octets Level-1 elements
>>> are not much help. So pure EBML recovery tools should not expect =
great
>>> results.
>>=20
>> I didn=E2=80=99t address this in the proposal above, but should we. =
Perhaps we could clarify that a parser SHOULD have a semantic =
understanding of the version and doctype that it is parser, else the =
results are unexpected?
>=20
> Maybe semantics should tell if they allow arbitrary data (=C3=A0 la
> GStreamer streaming) or not. That might be added to the EBML header.
> So it may even be set arbitrarily in any EBML stream. If we started
> from scratch we would make such flag off by default. But that would
> mean all these live recordings might end up non parsable by strict
> EBML parsers.

We could add an EBML Header Element which has a default value of =
allowing arbitrary data. Future writers could then be clear when they do =
not intend to do this.

Also as noted above we could consider adding an EBML Schema Attribute to =
say if the Element is allowed to have unknown size. A quality of unknown =
size could then be the presence of arbitrary data, but I=E2=80=99m =
unclear if these two qualities always go together.

[=E2=80=A6]

Dave RIce=


From nobody Tue Jan 12 05:28:12 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E341F1AD2AF for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 05:28:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.797
X-Spam-Level: 
X-Spam-Status: No, score=0.797 tagged_above=-999 required=5 tests=[BAYES_50=0.8, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uKT6IqYLJ8LI for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 05:28:09 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [176.9.119.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D4C251AD272 for <cellar@ietf.org>; Tue, 12 Jan 2016 05:28:08 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id E18A3A70308; Tue, 12 Jan 2016 14:28:03 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 585C4617EAF; Tue, 12 Jan 2016 14:28:03 +0100 (CET)
Date: Tue, 12 Jan 2016 14:28:03 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org, matroska-devel <matroska-devel@lists.matroska.org>
Message-ID: <20160112132802.GI4063@bunkus.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="wjoFZxbW4tu+iR6v"
Content-Disposition: inline
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/y4sttOAb0V87IC5LY1Yn6jpZO5g>
Subject: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 13:28:11 -0000

--wjoFZxbW4tu+iR6v
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hey,

the Matroska container currently uses the bibliopgraphic versions of
ISO 639-2 codes for marking anything that requires language
information. Back when Matroska was specified ISO 639-2 was the latest
standard available and therefore a good choice.

However, 639-2 is incomplete and has been largely superseded by
639-3[1] which covers pretty much each and every language out there;
citing Wikipedia:

"It provides an enumeration of languages as complete as possible,
including living and extinct, ancient and constructed, major and
minor, written and unwritten."

Over the course of the last couple of years users have often asked my
to extend MKVToolNix to use 639-3 codes intead of 639-2 ones. One
example of a rather common question I get is why people cannot use
e.g. Mandarin as a language; I even have a FAQ entry for that[2]. I've
always told those people that Matroska itself doesn't support
that.

Right now with work being done to extend Matroska for standardization
may be the best time to introduce 639-3 to Matroska.

Problem is I don't know the best way to do this. I see three possible
avenues each with their own sets of pros and cons, and I'd like some
feedback in order to turn this into a proper proposal:

1. Change the specs so that all language elements use 639-3 codes

2. Introduce new elements on the same level as the existing language
   elements that determine the standard the corresponding language
   element uses defaulting to 639-2 if missing

3. Introduce new elements on the same level as the existing language
   elements that contain a 639-3 code

Here are the details:

1. Change the specs so that all language elements use 639-3 codes

Pros: no new elements required. As most of 639-2 is included in 639-3
this should work mostly OK for existing applications; adding support
should be easy for both players and muxers

Cons: 639-3 is not a superset of 639-2 as far as I know (Wikipedia
agrees), though only corner cases should be affected. Matroska uses
bibliographic versions of the 639-2 codes while 639-3's codes are
dervied from the terminology ones of 639-2 (example: German is
currently "ger" in Matroska, 639-3 uses "deu") potentially confusing
players

2. Introduce new elements on the same level as the existing language
   elements that determine the standard the corresponding language
   element uses defaulting to 639-2 if missing

For example for the TrackLanguage element we'd introduce
TrackLanguageStandard, unsigned integer, default value 0; 0 meaning
ISO 639-2 bibliographic, 1 meaning 639-3.

A conforming player would have to look for such a
TrackLanguageStandard element and interpret TrackLanguage as ISO 639-2
bibliographic if TrackLanguageStandard is missing or if it is set to 0
and as 639-3 if it's present and set to 1.

Pros: clear distinction which standard was used; extensible for future
changes

Cons: introduces three new elements; for non-conforming players the
same cons as for 1. apply

3. Introduce new elements on the same level as the existing language
   elements that contain a 639-3 code

For example for the TrackLanguage element we'd introduce
TrackLanguageIso639_3, ASCII string, no default value. Restrictions:
if present a TrackLanguage element SHOULD be written, too, that
corresponds to the language in TrackLanguageIso639_3 for backwards
compatibility (possible exception: if the producing system knows that
only conforming players will ever read such a file).

A conforming player would have to look for a TrackLanguageIso639_3
element. If it's present then this element is used. Otherwise the
player looks for TrackLanguage just as it always has.

Pros: no confusion over the domain of the information in existing
language elements; should work best with non-conforming/older readers

Cons: not extensible for new standards; introduces three new elements;
complex mapping requirements for writing both elements

------------------------------------------------------------

Those are my thoughts. Ideas? Is this even a worth it or should we
just stick with 639-2? Any other ways to add support? Preferred
solutions?

Thanks.

Kind regards,
mosu

[1] https://en.wikipedia.org/wiki/ISO_639-3
[2] https://github.com/mbunkus/mkvtoolnix/wiki/Chinese-not-selectable-as-language

--wjoFZxbW4tu+iR6v
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWlP9iAAoJEHSvAK3y4yyFOaUP/itmeJ2gJHj0q4dVP7WIpK2f
frNlByCzBO52vtAXCcZTu50+1Jscee+XRuyuKrkK2TEb+ubpayZgcNIhjtHUA7TR
eYMDoRUemZez4TDPEdmqM/roFKkeU2hhOXtTRcp17IHGO/w6m4ZIyqePJM46+b0x
PGXqCkvQgiCtbdMWuAuC46aHVBUn5rFRZDlZ9fN7LAsUUIfDKH8cTMyl5SpPCBFu
LjSBwuRwd4v7/DMJipWl/smPdfyX475APcWsnfJi5I+IrNFkN8BGzc8SzOu9NW7Q
TOpyAmZfsjsb68yBoWVpwb2y0iZsoNvph2OFSCF5YRDnZp1Usl0yiNVQra7ewYW1
1zEfOB8p5wz2fcHd8WLjAxV2VtEvWGQlmf1tlu8CgBFSaun3i3frNqYfDLdm29Oj
qC7Ixa6Wj81MizPEymSh7nF2koyER+cbS/enpQdo1LPjNBbEF32v6YxrSsg3dbTo
8OzeHTmvicI6+UZem/iS/NzxLvRHKMi3a/OleKOcY9F2V0XHznahGVY8OO8fybX4
yAYHInpT4hZva3HmLdzqSmVpzyJu9bQ3bPVzfAgNrP1/mt07UFpT2jeWhBsxslN3
UpP5rB9OVfwxHmd9nK9E1R0oyLEIcBOyEx7R0HEtVxsjjtrCasDLUupuk1t3XO9Z
cRfLeCAMlBXwlxx46+dd
=EgEh
-----END PGP SIGNATURE-----

--wjoFZxbW4tu+iR6v--


From nobody Tue Jan 12 05:37:03 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BA60E1AD2EC for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 05:37:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id A3cPcpq_mQKj for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 05:37:00 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [176.9.119.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D5A501AD2DF for <cellar@ietf.org>; Tue, 12 Jan 2016 05:36:59 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id 06719A704F8 for <cellar@ietf.org>; Tue, 12 Jan 2016 14:36:57 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 77D2B617EF6; Tue, 12 Jan 2016 14:36:56 +0100 (CET)
Date: Tue, 12 Jan 2016 14:36:56 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160112133656.GJ4063@bunkus.org>
References: <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="KZLWU/9q3evlN4nQ"
Content-Disposition: inline
In-Reply-To: <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/8I3UMFYvA5LIwPPNQbWYXOwaqXo>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 13:37:01 -0000

--KZLWU/9q3evlN4nQ
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hey,

> From a sample set of 59,881 Matroska files uploaded to archive.org
> only 119 of them include CRC-32 Elements. Almost 0.2%! Additionally
> the webm Document Type lists the CRC-32 Element as unsupported. So I
> think it=E2=80=99s true that it=E2=80=99s rarely bothered with. The imple=
mentation of
> CRC-32 Elements does add many complications and perhaps demand has
> been too low to resolve them. Moritz may have comments here.

That's pretty much spot on. The CRC32 element was added comparatively
late; a lot of muxers had already been created by that time.

Most requests I've received where more concerned with error recovery
than with error detection. This is something that CRC32 wasn't meant
for; additionally CRC32 elements weren't meant to be written in the
cluster elements which make up the bulk of a Matroska file's data.

Yes, there is a feature request[1] for adding support in mkvmerge and
mkvinfo. It has been created in 2010, but except for those two people
mentioned in the bug I haven't really received any other requests for
such a functionality.

Kind regards,
mosu

[1] https://github.com/mbunkus/mkvtoolnix/issues/543

--KZLWU/9q3evlN4nQ
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWlQF4AAoJEHSvAK3y4yyFXxMQAKZBaazUlyF5Nmz1ICM4zokd
ux1C6l4BRhGl5B7cpBN1LwxwsaUOZVdUj81BGBNpRqikXTl1qwicrDfvasTCvyxY
ZcE+vT4kw4VbTsCHz/MQzkDS6TfE4MQPTBakrXPwkqMUCS93lAW8Owqatxb1yUxT
wcV2Vt8oo6vwjzxrPMfNstmtrsFAuvxp/2U+ghQ6ggsVIVyQgrCuUxR6B09sFJVH
7jc5a8VIFGdSOcc++TndS8NP9vxSfCoboaS+/+7HCjkQpCqNAEVQOOfIEysp3WeI
PObMk7k1ekBIamY9TLLbQHopr1vB7U+9K1oOBz3bWP1cUBeSAbubDzRJCK8wQKES
dAtg4O9ELkAgPoued+VA9ztTAnKCReuadl2bjLo/YFqp81ao3RIjQCWB8xYsUHYU
4f/s0xoGT02dsUCkE6nxS4W3NLTTjJeHvzw2klx9Ivp1xXnfGstMurDO5PMPvQuA
u5eZYt7iEgrO2k2eBhfv7+DcMpU5vylIlJwA0PgOs5Sg8osG90d1mTsxAXfdeAd5
S3vjgQJdIRO4kObkjlNqVSQFOnV67YOezO2fBCW5YsoA0NotTaOHLDkSjUguynfS
VLHIEL5u8AiUbXCbmrlr++qVcsnM9smUPR8At8G4n6+l3TCcyTA7McNu1jHnwj7p
palDgp/+UCJnusGDTp1W
=R7I4
-----END PGP SIGNATURE-----

--KZLWU/9q3evlN4nQ--


From nobody Tue Jan 12 06:20:05 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3CE11B2A34 for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:20:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W9idksf4n4RE for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:20:00 -0800 (PST)
Received: from 10.mo69.mail-out.ovh.net (10.mo69.mail-out.ovh.net [46.105.73.241]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9EF221B2A2F for <cellar@ietf.org>; Tue, 12 Jan 2016 06:20:00 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id F406B100077B for <cellar@ietf.org>; Tue, 12 Jan 2016 15:19:58 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 12 Jan 2016 16:19:58 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 12 Jan 2016 16:19:56 +0200
To: cellar@ietf.org, matroska-devel <matroska-devel@lists.matroska.org>
References: <20160112132802.GI4063@bunkus.org>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <56950B87.7020208@mediaarea.net>
Date: Tue, 12 Jan 2016 15:19:51 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <20160112132802.GI4063@bunkus.org>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 832040033193037909
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeefucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeefgdefkecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/j2B242jQV7Il78nI6Xaywid2mRk>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 14:20:03 -0000

Le 12/01/2016 14:28, Moritz Bunkus a écrit :
> Hey,
>
> the Matroska container currently uses the bibliopgraphic versions of
> ISO 639-2 codes for marking anything that requires language
> information. Back when Matroska was specified ISO 639-2 was the latest
> standard available and therefore a good choice.
>
> However, 639-2 is incomplete and has been largely superseded by
> 639-3[1] which covers pretty much each and every language out there;
> citing Wikipedia:
>
> "It provides an enumeration of languages as complete as possible,
> including living and extinct, ancient and constructed, major and
> minor, written and unwritten."
>
> Over the course of the last couple of years users have often asked my
> to extend MKVToolNix to use 639-3 codes intead of 639-2 ones. One
> example of a rather common question I get is why people cannot use
> e.g. Mandarin as a language; I even have a FAQ entry for that[2]. I've
> always told those people that Matroska itself doesn't support
> that.

With 639-3, you'll get a problem with people from Hong Kong
https://en.wikipedia.org/wiki/Cantonese
ISO 639-3 line is.. empty :(
note: this is a real use case, I get such issue with my software, and I 
use RFC 5646, so zh-HK for Cantonese aka "Hong Kong, traditional 
characters".
Looks like RFC 5646 takes care of Chinese language issue.

Actually, I don't understand the issue with Mandarin: I understood that 
it is widely accepted to zh-CH for »Chinese (Simplified)« and zh-TW for 
»Chinese (Traditional)«, and current spec says:
"(...) followed by a dash and a country code for specialities in languages"
so looks like "zho-cn" and "zho-tw" are acceptable with current spec.
What is the issue with such string and current Matroska specs?

>
> Right now with work being done to extend Matroska for standardization
> may be the best time to introduce 639-3 to Matroska.

as we are moving to IETF, maybe RFC 5646 is another possibility.
I have no strong opinion about ISO 639-2 / ISO 639-3 / RFC 5646, I just 
do the remark that you may solve 1 issue but maybe not all issues.

>
> Problem is I don't know the best way to do this. I see three possible
> avenues each with their own sets of pros and cons, and I'd like some
> feedback in order to turn this into a proper proposal:
>
> 1. Change the specs so that all language elements use 639-3 codes
>
> 2. Introduce new elements on the same level as the existing language
>     elements that determine the standard the corresponding language
>     element uses defaulting to 639-2 if missing
>
> 3. Introduce new elements on the same level as the existing language
>     elements that contain a 639-3 code
>
> Here are the details:
>
> 1. Change the specs so that all language elements use 639-3 codes
>
> Pros: no new elements required. As most of 639-2 is included in 639-3
> this should work mostly OK for existing applications; adding support
> should be easy for both players and muxers
>
> Cons: 639-3 is not a superset of 639-2 as far as I know (Wikipedia
> agrees), though only corner cases should be affected. Matroska uses
> bibliographic versions of the 639-2 codes while 639-3's codes are
> dervied from the terminology ones of 639-2 (example: German is
> currently "ger" in Matroska, 639-3 uses "deu") potentially confusing
> players

"ger" (bibliographic code, ISO 639-2/B) and "deu" (terminological code, 
ISO 639-2/T) are synonym in ISO 639-2, so current players are expected 
to support both (current spec does not say that there is a restriction 
about B or T)
Cons: does not resolve all issues (e.g. Cantonese)

>
> 2. Introduce new elements on the same level as the existing language
>     elements that determine the standard the corresponding language
>     element uses defaulting to 639-2 if missing
>
> For example for the TrackLanguage element we'd introduce
> TrackLanguageStandard, unsigned integer, default value 0; 0 meaning
> ISO 639-2 bibliographic, 1 meaning 639-3.
>
> A conforming player would have to look for such a
> TrackLanguageStandard element and interpret TrackLanguage as ISO 639-2
> bibliographic if TrackLanguageStandard is missing or if it is set to 0
> and as 639-3 if it's present and set to 1.
>
> Pros: clear distinction which standard was used; extensible for future
> changes
>
> Cons: introduces three new elements; for non-conforming players the
> same cons as for 1. apply
>
> 3. Introduce new elements on the same level as the existing language
>     elements that contain a 639-3 code
>
> For example for the TrackLanguage element we'd introduce
> TrackLanguageIso639_3, ASCII string, no default value. Restrictions:
> if present a TrackLanguage element SHOULD be written, too, that
> corresponds to the language in TrackLanguageIso639_3 for backwards
> compatibility (possible exception: if the producing system knows that
> only conforming players will ever read such a file).
>
> A conforming player would have to look for a TrackLanguageIso639_3
> element. If it's present then this element is used. Otherwise the
> player looks for TrackLanguage just as it always has.
>
> Pros: no confusion over the domain of the information in existing
> language elements; should work best with non-conforming/older readers
>
> Cons: not extensible for new standards; introduces three new elements;
> complex mapping requirements for writing both elements

three new elements? I understand there is only 1 new element in that 
case (TrackLanguageIso639_3)

> ------------------------------------------------------------
>
> Those are my thoughts. Ideas? Is this even a worth it or should we
> just stick with 639-2? Any other ways to add support? Preferred
> solutions?

3b. Introduce new elements on the same level as the existing language 
elements that provides the RFC 5646 language tag.

Pro: more IETF style (reusing an RFC), includes ISO 639-3 (if I 
understand well the RFC).

Cons: more complex

------------------------------------------------------------


My preference is:
3b
3 (not IETF, remaining issues)
1 (minor compatibility break, remaining issues)
2 (could be a major break for old players if we decide to switch to a 
super new standard totally incompatible with ISO 639-2, remaining issues)

Jérôme


From nobody Tue Jan 12 06:31:34 2016
Return-Path: <lists@reto.ch>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 278531B2A46 for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:31:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.702
X-Spam-Level: 
X-Spam-Status: No, score=-0.702 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0DehRIsYlW5l for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:31:30 -0800 (PST)
Received: from smtp-sh2.infomaniak.ch (smtp-sh2.infomaniak.ch [128.65.195.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 994F81B2A63 for <cellar@ietf.org>; Tue, 12 Jan 2016 06:31:30 -0800 (PST)
Received: from smtp4.infomaniak.ch (smtp4.infomaniak.ch [84.16.68.92]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0CEVQEd020836 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 12 Jan 2016 15:31:27 +0100
Received: from Castor.local (159.146.4.85.dynamic.wline.res.cust.swisscom.ch [85.4.146.159]) (authenticated bits=0) by smtp4.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0CEVNA3021316; Tue, 12 Jan 2016 15:31:23 +0100
Date: Tue, 12 Jan 2016 15:31:23 +0100
From: Reto Kromer <lists@reto.ch>
To: Jerome Martinez <jerome@mediaarea.net>
X-Priority: 3
In-Reply-To: <56950B87.7020208@mediaarea.net>
Message-ID: <r470Ps-10112i-30A17E83F60348FB9CC61A8FA71676A5@Castor.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.4 (470)
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/aZ60avJyYDGS4z-NkQ2RtKfm5wU>
Cc: matroska-devel <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 14:31:33 -0000

Jerome Martinez wrote:

>as we are moving to IETF, maybe RFC 5646 is another
>possibility.
>I have no strong opinion about ISO 639-2 / ISO 639-3 /
>RFC 5646, I just do the remark that you may solve 1 issue
>but maybe not all issues.

RFC 4646 considers also the alphabet, e.g. fr_Latn_CA
(=3D fran=C3=A7ais, en caract=C3=A8res latins, =C3=A0 la sauce qu=C3=A9b=C3=
=A9coise)

RK


AV Preservation by reto.ch
chemin du Suchet 5 | 1024 Ecublens | Switzerland
Web: http://reto.ch | Twitter: @retoch


From nobody Tue Jan 12 06:37:40 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D2BA31B2A65 for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:37:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QJdAgYS3hzqS for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:37:38 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [IPv6:2a01:4f8:151:7310::105:1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5CAF61B2A64 for <cellar@ietf.org>; Tue, 12 Jan 2016 06:37:38 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id CE2AFA70FC5 for <cellar@ietf.org>; Tue, 12 Jan 2016 15:37:35 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 374FD6180E0; Tue, 12 Jan 2016 15:37:35 +0100 (CET)
Date: Tue, 12 Jan 2016 15:37:35 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160112143734.GK4063@bunkus.org>
References: <20160112132802.GI4063@bunkus.org> <56950B87.7020208@mediaarea.net>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="6TC23+W66xmFESAX"
Content-Disposition: inline
In-Reply-To: <56950B87.7020208@mediaarea.net>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/KXPh5cFtTAHMRJvCVnZ8T0K7-uM>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 14:37:40 -0000

--6TC23+W66xmFESAX
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hey,

> With 639-3, you'll get a problem with people from Hong Kong
> https://en.wikipedia.org/wiki/Cantonese
> ISO 639-3 line is.. empty :(

Thanks for that information. Wasn't aware of it.

> Actually, I don't understand the issue with Mandarin: I understood that it
> is widely accepted to zh-CH for =C2=BBChinese (Simplified)=C2=AB and zh-T=
W for
> =C2=BBChinese (Traditional)=C2=AB, and current spec says:
> "(...) followed by a dash and a country code for specialities in language=
s"
> so looks like "zho-cn" and "zho-tw" are acceptable with current spec.
> What is the issue with such string and current Matroska specs?

That no application that I know of actually supports that including
MKVToolNix. They all only use the language code.

> "ger" (bibliographic code, ISO 639-2/B) and "deu" (terminological code, I=
SO
> 639-2/T) are synonym in ISO 639-2, so current players are expected to
> support both (current spec does not say that there is a restriction about=
 B
> or T)

The Matroska specs explicitly say that the current language codes are
the bibliographic versions of ISO 639-2. See "Language Codes" in
http://www.matroska.org/technical/specs/index.html

> three new elements? I understand there is only 1 new element in that case
> (TrackLanguageIso639_3)

There are language elements for chapters and tags, too.

Kind regards,
mosu

--6TC23+W66xmFESAX
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWlQ+uAAoJEHSvAK3y4yyF8ucP/2mcKcUHshRGse5lqorOolAr
ZLRq9m5298q+ai+P0yRZVPU7GuCk5JK1eRcsg5/m4Hp/jMk+43EW80nuFVcEePaP
WzMKTJ3HJTRzF0ZmqJfITnVSwptAX8xo9Vky8QR3XwUYiLDF/TKGw9lql0YYX8Oe
UdEKVeuO4s3EvfrD5+M3HA61pespmibsfXmWwBBr69kntG9px8oX0DEuozGsc+pG
V1zrcGWHPEsiachFHwsLyJW7Yqx0zAmW7TSy2PPU4yO1jJL7UDtWubM0CLWFiKdq
fYX7/uYhDWE8mPVt3TtHn31WdV3l6KhKbjZVdCkXN2zC4eUQA3XX7zre1fibSRnL
wEA5GJ7eNy39CvIK6dTjcVmUiagELjUFHL8PdxWrADlLb1x+FzNcvf+bZvduL6I5
O1wIdi/h/DpNgdlQvY3JC/cnpAVY284uzCgNLDzTd0siQB6hdRlpHzUOFzjZ0yWq
7NiS2fKaoJiryFPld9gRaf0Rpz6xZFJKePgDCO28fEzbCu0Y2on9y5gOtXSKax0z
SXN2dUQxVipKzWxRV75xfESTmQN2WIOHk053adHmTuMuEhJ+gjftWMLUY4LMB4o4
RuUuL6kiM90fAbS9E0QbsGwpYnnM2VnUeaDi7zn84UfamGQXSsmYuIwLTmGb/5gJ
m+qPTcHnetnesjiQYDl4
=Cm/u
-----END PGP SIGNATURE-----

--6TC23+W66xmFESAX--


From nobody Tue Jan 12 06:58:20 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7720A1B2A8A for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:58:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0eEzewP3qw7q for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 06:58:16 -0800 (PST)
Received: from mo69.mail-out.ovh.net (mo69.mail-out.ovh.net [178.32.228.69]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8ED8B1B2A86 for <cellar@ietf.org>; Tue, 12 Jan 2016 06:58:16 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 8D74FFF86E3 for <cellar@ietf.org>; Tue, 12 Jan 2016 15:58:14 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 12 Jan 2016 16:58:13 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 12 Jan 2016 16:58:11 +0200
To: cellar@ietf.org
References: <20160112132802.GI4063@bunkus.org> <56950B87.7020208@mediaarea.net> <20160112143734.GK4063@bunkus.org>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <5695147E.3040206@mediaarea.net>
Date: Tue, 12 Jan 2016 15:58:06 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <20160112143734.GK4063@bunkus.org>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 1478025103473184914
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeefucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeeggddtgecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/F5zb1972dVT9mI5p4cT3Kv_U5OI>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 14:58:18 -0000

Le 12/01/2016 15:37, Moritz Bunkus a écrit :
>
>> Actually, I don't understand the issue with Mandarin: I understood that it
>> is widely accepted to zh-CH for »Chinese (Simplified)« and zh-TW for
>> »Chinese (Traditional)«, and current spec says:
>> "(...) followed by a dash and a country code for specialities in languages"
>> so looks like "zho-cn" and "zho-tw" are acceptable with current spec.
>> What is the issue with such string and current Matroska specs?
> That no application that I know of actually supports that including
> MKVToolNix. They all only use the language code.

So maybe we should also change the definition of current language 
elements (spec says it is possible) at the same time.
Because it looks like it is an implementation issue, not a spec issue, 
but maybe updating MKVToolNix only would make players no more detecting 
the right language (e.g. if they don't support "en-US" and don't 
translate it to "English" as they do with "en", this is a regression)

>
>> "ger" (bibliographic code, ISO 639-2/B) and "deu" (terminological code, ISO
>> 639-2/T) are synonym in ISO 639-2, so current players are expected to
>> support both (current spec does not say that there is a restriction about B
>> or T)
> The Matroska specs explicitly say that the current language codes are
> the bibliographic versions of ISO 639-2. See "Language Codes" in
> http://www.matroska.org/technical/specs/index.html

Oops, I missed it.
(the content of the link is with both versions).

>
>> three new elements? I understand there is only 1 new element in that case
>> (TrackLanguageIso639_3)
> There are language elements for chapters and tags, too.

Got it. Maybe a global element instead of 3 different elements?

Jérôme


From nobody Tue Jan 12 11:45:52 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2A9521A8782 for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 11:45:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O84jxi0TT4qm for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 11:45:48 -0800 (PST)
Received: from 9.mo69.mail-out.ovh.net (9.mo69.mail-out.ovh.net [46.105.56.78]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C44341A877E for <cellar@ietf.org>; Tue, 12 Jan 2016 11:45:47 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 13D84FFCCCE for <cellar@ietf.org>; Tue, 12 Jan 2016 20:45:45 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 12 Jan 2016 21:45:45 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 12 Jan 2016 21:45:43 +0200
To: cellar@ietf.org
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <569557E2.9080306@mediaarea.net>
Date: Tue, 12 Jan 2016 20:45:38 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 6334031402105835605
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: -100
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeehucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: -100
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeehgdehfecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddm
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9NCH6IdEmAW9css0JuArr2pQL_A>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 Jan 2016 19:45:50 -0000

Le 10/01/2016 23:57, Dave Rice a Ã©crit :
> [...]
> Others? LTC? VITC?

All other time codes I ever met in the digital world (I exclude time 
codes "burned" in the video frame):
- MXF time code track: a single value, I think it could be converted to 
T_QUICKTIME without losing information
- CPL (from IMF) time code track: a single value, I think it could be 
converted to T_QUICKTIME without losing information
- WMV time code track: we need to define a new codec identifier
- SMPTE/SDTI time code track: we need to define a new codec identifier
- SMPTE/System scheme 1 time code: we need to define a new codec identifier
- LTC, VITC, ATC_LTC, ATC_VITC1, ATC_VITC2 in SMPTE ST 291 (in MXF, GXF, 
LXF...): we need to define a new codec identifier for SMPTE ST 291 
ancillary data stream (which can transport captions/subtitles, time 
codes, bar data, acquisition metadata, audio metadata, program 
description... "compound" stream kind)

I don't think we should try to define new codec identifiers for all time 
code formats but T_QUICKTIME for the moment, until someone really needs it.
So I propose to start with T_QUICKTIME only.

JÃ©rÃ´me


From nobody Tue Jan 12 16:15:36 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D36F21A90E5 for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 16:15:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c2UE9u8ZIUNS for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 16:15:33 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5EEDD1A908A for <cellar@ietf.org>; Tue, 12 Jan 2016 16:15:33 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:46188 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aJ961-000l1F-NT; Tue, 12 Jan 2016 19:15:32 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <20160112132802.GI4063@bunkus.org>
Date: Tue, 12 Jan 2016 19:15:27 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com>
References: <20160112132802.GI4063@bunkus.org>
To: Moritz Bunkus <moritz@bunkus.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9Lo8Hevfb2vXwAaVunp1uBN5y2U>
Cc: matroska-devel <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 00:15:35 -0000

> On Jan 12, 2016, at 8:28 AM, Moritz Bunkus <moritz@bunkus.org> wrote:

[=E2=80=A6]

> Problem is I don't know the best way to do this. I see three possible
> avenues each with their own sets of pros and cons, and I'd like some
> feedback in order to turn this into a proper proposal:
>=20
> 1. Change the specs so that all language elements use 639-3 codes
>=20
> 2. Introduce new elements on the same level as the existing language
>   elements that determine the standard the corresponding language
>   element uses defaulting to 639-2 if missing
>=20
> 3. Introduce new elements on the same level as the existing language
>   elements that contain a 639-3 code

I=E2=80=99d vote for #2 or #1 with a preference to #2. If option #1 =
I=E2=80=99d suggest that the language elements may use 639-2 OR 639-3. =
I=E2=80=99d also suggest that the Matroska specification adopt a =
externally-managed language authority (639-3 is the most obvious choice) =
and not labor to extend language identification beyond the adopted =
standard(s). For instance if there is a noticed deficiency in ISO 639-3, =
I think that the deficiency is most likely in shared interest with other =
projects and that addressing that deficiency would be better to direct =
to http://www-01.sil.org/iso639-3/.

If it aids in the discussion here is a histogram of usage for the =
Language [22][B5][9C] Element for a large Matroska sample set from =
archive.org.

95254 und
8073 ara
6416 jpn
5461 eng
 990 hin
 869 fre
 651 spa
 612 per
 555 kor
 477 ger
 456 chi
 325 rus
 275 ind
 203 por
 196 dut
 187 ita
 172 tur
 155 tam
 148 rum
 110 dan
 104 pol
 101 swe
  97 heb
  91 lat
  88 fin
  47 nob
  45 nor
  45 ???
  40 unknown
  38 vie
  34 hun
  34 cat
  32 tha
  30 cze
  21 en
  20 tel
  19 ben
  18 deu
  15 gre
  14 urd
   9 ukr
   9 may
   8 pan
   7 abk
   6 slv
   6 Unspecified
   6=20
   5 hrv
   5 fra
   4 srp
   4 mar
   4 lit
   4 lav
   4 ina
   4 ice
   4 NE
   3 nno
   3 jav
   3 est
   3 bul
   3 arn
   3 alb
   2 zul
   2 enm
   2 arp
   2 arm
   2 arg
   2 arc
   2 ar
   2 aar
   1 zho
   1 yao
   1 wak
   1 vai
   1 tiv
   1 std
   1 scr
   1 scc
   1 rom
   1 oci
   1 kru
   1 ira
   1 inc
   1 hau
   1 grc
   1 fr
   1 epo
   1 efi
   1 bos
   1 bnt
   1 ava
   1 apa
   1 amh
   1 aka
   1 NAR

Dave Rice=


From nobody Tue Jan 12 23:40:46 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 89CD51A9251 for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 23:40:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.601
X-Spam-Level: 
X-Spam-Status: No, score=-4.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Oe_p0ffa2tdD for <cellar@ietfa.amsl.com>; Tue, 12 Jan 2016 23:40:42 -0800 (PST)
Received: from 9.mo69.mail-out.ovh.net (9.mo69.mail-out.ovh.net [46.105.56.78]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F29F01A9250 for <cellar@ietf.org>; Tue, 12 Jan 2016 23:40:41 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 30991FFCF58 for <cellar@ietf.org>; Wed, 13 Jan 2016 08:40:40 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 13 Jan 2016 09:40:39 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 13 Jan 2016 09:40:37 +0200
References: <20160112132802.GI4063@bunkus.org> <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com>
To: cellar@ietf.org
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <5695FF74.4020700@mediaarea.net>
Date: Wed, 13 Jan 2016 08:40:36 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 18407619052206755925
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeeiucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeeigdduudduucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/JSQBlmkrhG1ccRJdyOOaT8KLNWI>
Cc: matroska-devel <matroska-devel@lists.matroska.org>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 07:40:44 -0000

Le 13/01/2016 01:15, Dave Rice a Ã©crit :
>> On Jan 12, 2016, at 8:28 AM, Moritz Bunkus <moritz@bunkus.org> wrote:
> [â€¦]
>
>> Problem is I don't know the best way to do this. I see three possible
>> avenues each with their own sets of pros and cons, and I'd like some
>> feedback in order to turn this into a proper proposal:
>>
>> 1. Change the specs so that all language elements use 639-3 codes
>>
>> 2. Introduce new elements on the same level as the existing language
>>    elements that determine the standard the corresponding language
>>    element uses defaulting to 639-2 if missing
>>
>> 3. Introduce new elements on the same level as the existing language
>>    elements that contain a 639-3 code
> Iâ€™d vote for #2 or #1 with a preference to #2. If option #1 Iâ€™d suggest that the language elements may use 639-2 OR 639-3. Iâ€™d also suggest that the Matroska specification adopt a externally-managed language authority (639-3 is the most obvious choice)

RFC 5646 extends ISO 639-3 so it is not less obvious to consider it.
Additionally, even if it is not used in reality, Matroska spec already 
has some kind of RFC 5646 style (countries) so it may be relevant.
What are the arguments against using 639-3 "extended" with RFC 5646?
less complex, the definition could be:
Language codes can be either the 3 letters ISO-639-3 form (like "fre" 
for french), or such a language code followed by a dash and a country 
code for specialities in languages (like "fre-ca" for Canadian French). 
Country codes are the same as used for internet domains.
("bibliographic ISO-639-2" changed by "ISO-639-3" in the current spec)

>   and not labor to extend language identification beyond the adopted standard(s). For instance if there is a noticed deficiency in ISO 639-3, I think that the deficiency is most likely in shared interest with other projects and that addressing that deficiency would be better to direct to http://www-01.sil.org/iso639-3/.

I provided 1 example (zh-HK), but I guess there are more examples, and 
change requests are a long process.
We may need a "workaround" in the meanwhile.
We could say that ISO 639-3 SHOULD be used and RFC 5646 is used only if 
up to date ISO 639-3 does not fit the need.

JÃ©rÃ´me


From nobody Wed Jan 13 00:01:46 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEA461A005A for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 00:01:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ddc5hzBd-mIb for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 00:01:43 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [IPv6:2a01:4f8:151:7310::105:1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8FB531A0056 for <cellar@ietf.org>; Wed, 13 Jan 2016 00:01:43 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id 566F7AADFB7 for <cellar@ietf.org>; Wed, 13 Jan 2016 09:01:41 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id B3C8361A6FC; Wed, 13 Jan 2016 09:01:40 +0100 (CET)
Date: Wed, 13 Jan 2016 09:01:40 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160113080140.GP4063@bunkus.org>
References: <20160112132802.GI4063@bunkus.org> <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com> <5695FF74.4020700@mediaarea.net>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="0et/Au7PJwzVwd4K"
Content-Disposition: inline
In-Reply-To: <5695FF74.4020700@mediaarea.net>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/UV0QTuTdwzAT5ZVNX5KQEfkCKm4>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 08:01:44 -0000

--0et/Au7PJwzVwd4K
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hey,

> I provided 1 example (zh-HK), but I guess there are more examples, and
> change requests are a long process.  We may need a "workaround" in the
> meanwhile.  We could say that ISO 639-3 SHOULD be used and RFC 5646 is
> used only if up to date ISO 639-3 does not fit the need.

For what it's worth I don't like such a "use this unless XYZ or
ABC". The standard should clearly say what to use. If the RFC is indeed
a superset of 639-3 then I'm in favor of the RFC; we're trying to
replace a standard where users are running into gaps today. If we
replace that with a standard where users will be running into gaps, too,
though less frequently, then we haven't done our job correctly in my
opinion.

Kind regards,
mosu

--0et/Au7PJwzVwd4K
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWlgRdAAoJEHSvAK3y4yyFC6QP/At/WJYos+RtezVVYOPvgRF6
G8Mw0rzvNsofgfmBqe5e7PakfR1RZmliKpjkqJwWEwksxEcrYrWw3/0q7CeqU1Da
9xvh4DFkZp/H2G6Npv5w9EpIHVEKlWqATkenfusW8yMQyhqVUcrSznrDEw8q3eQi
aFd1k5OmO4r1tOiD09rN4WkX5rOXpuZwo5718y95SWTLIvKvUAxyYKqq5EbAfuaD
ebeTF5GaLx81b5q6d/8baZ/n2TDwhUpVRDjengWcOMjo16g05G4kSPpu76Vkqd0t
v99z8X2E1pIGvZ7/JZSV5Lhl1ZcG3+1B7ZYiP474m8a/oTSRTHAFn6uENwwYSsqw
KCL6K6WQHghMeKf/783wU3hwnZOqkBFAOnp13lRb3/7mbPXf4IoVq6Hlv/CbIsPC
HEGgfIwHaeW7lFfl+ZCY0jpWC5mxq+TSl938G/vGoMnR6xoww8mQ3euIeiX1AaXt
flulBqVNLzmkrsn78Nm1NETOVc1kN7T3P6iB+L0ZJS+G3OEl5T3Dc/mWtN+an519
5tKo0I/WfXUcz8zElEuGHMCvVUx9TfNLYmmDzPw9zM7VYtpD2joXTtP5AXtzE9cG
I+3Kbg1skzAXAMoa7OKV7xw3Wud32CVyLxhUXwMDfU4rcpZ8nV793U2LaHfTg5n2
WgCT70pFG022fCLVVITi
=G+sJ
-----END PGP SIGNATURE-----

--0et/Au7PJwzVwd4K--


From nobody Wed Jan 13 00:14:02 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 56EE21AC3A5 for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 00:14:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.601
X-Spam-Level: 
X-Spam-Status: No, score=-4.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pc329e--FdOY for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 00:13:58 -0800 (PST)
Received: from 2.mo69.mail-out.ovh.net (2.mo69.mail-out.ovh.net [178.33.251.80]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A788E1AC3A6 for <cellar@ietf.org>; Wed, 13 Jan 2016 00:13:58 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 19ABCFFCF0F for <cellar@ietf.org>; Wed, 13 Jan 2016 09:13:57 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 13 Jan 2016 10:13:56 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 13 Jan 2016 10:13:55 +0200
To: cellar@ietf.org
References: <20160112132802.GI4063@bunkus.org> <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com> <5695FF74.4020700@mediaarea.net> <20160113080140.GP4063@bunkus.org>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <56960741.2030808@mediaarea.net>
Date: Wed, 13 Jan 2016 09:13:53 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <20160113080140.GP4063@bunkus.org>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 523261983440048274
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeeiucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeeigdduudejucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/l0WLXdzEnJPOHGycB50xsV2dHL4>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 08:14:00 -0000

Le 13/01/2016 09:01, Moritz Bunkus a écrit :
> Hey,
>
>> I provided 1 example (zh-HK), but I guess there are more examples, and
>> change requests are a long process.  We may need a "workaround" in the
>> meanwhile.  We could say that ISO 639-3 SHOULD be used and RFC 5646 is
>> used only if up to date ISO 639-3 does not fit the need.
> For what it's worth I don't like such a "use this unless XYZ or
> ABC". The standard should clearly say what to use. If the RFC is indeed
> a superset of 639-3 then I'm in favor of the RFC;

by "unless", I wanted to mean that we should not use the country if it 
is not necessary.
RFC 5646 says:

***
  Use as precise a tag as possible, but no more specific than is
        justified.  Avoid using subtags that are not important for
        distinguishing content in an application.

        *  For example, 'de' might suffice for tagging an email written
           in German, while "de-CH-1996" is probably unnecessarily
           precise for such a task.
***

 From my point of view, RFC 5646 alone is good for all but has a 
conflict with current Matroska specification: Matroska specification 
says that a 3-letter code is mandatory, and RFC 5646 prefers 2-letter 
code when it is same as the 3-lette code (example: "de" and "ger" are 
equivalent, RFC 5646 prefers "de" while Matroska forces "ger").
I was wanting to avoid the 2-letter code in order to avoid a conflict 
with current Matrosa specs, maybe there is a better way to say it.
Anyway, replacing "bibliographic ISO-639-2" by "ISO-639-3" in the 
current Matroska specification (and implementing the country part) is 
maybe the easiest path.

>   we're trying to
> replace a standard where users are running into gaps today. If we
> replace that with a standard where users will be running into gaps, too,
> though less frequently, then we haven't done our job correctly in my
> opinion.

+1

Jérôme


From nobody Wed Jan 13 00:23:08 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 058F91AC3C2 for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 00:23:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.903
X-Spam-Level: 
X-Spam-Status: No, score=-3.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6g1EnlaH8z-J for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 00:23:05 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [IPv6:2a01:4f8:151:7310::105:1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BAB301A92E7 for <cellar@ietf.org>; Wed, 13 Jan 2016 00:23:05 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id CBCC2AAE353 for <cellar@ietf.org>; Wed, 13 Jan 2016 09:23:03 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 571E061A7A9; Wed, 13 Jan 2016 09:23:03 +0100 (CET)
Date: Wed, 13 Jan 2016 09:23:03 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160113082303.GQ4063@bunkus.org>
References: <20160112132802.GI4063@bunkus.org> <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com> <5695FF74.4020700@mediaarea.net> <20160113080140.GP4063@bunkus.org> <56960741.2030808@mediaarea.net>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Po3hG7FLjYU3tiSY"
Content-Disposition: inline
In-Reply-To: <56960741.2030808@mediaarea.net>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/_VknkPHxvAQOtoMSY8lgXPwlgm4>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 08:23:07 -0000

--Po3hG7FLjYU3tiSY
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hey,

> I was wanting to avoid the 2-letter code in order to avoid a conflict with
> current Matrosa specs, maybe there is a better way to say it.

Ah, I misunderstood your intention then. I do agree with your goal.

> Anyway, replacing "bibliographic ISO-639-2" by "ISO-639-3" in the
> current Matroska specification (and implementing the country part) is
> maybe the easiest path.

That would be what I've described as migration path 1 plus adding
support for the country.

So, one vote for 2 over 1 (Dave), one for 1 (J=C3=A9r=C3=B4me).

Kind regards,
mosu

--Po3hG7FLjYU3tiSY
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWlglmAAoJEHSvAK3y4yyFwEMQAI8D9vre/E+b5cx3azVNFlMv
QKo9OBB3Ip2fu1jwf1C56OrIVK367uWIZ5jQLwoqsZDQhl3jWU9bK1fmqgiVPV0E
Wdx+Z8c7v8nyFuCPHsKe1Y1HBfM4mHdI4qMkM/Co8UBznJBii/KVhl4DITy1XXVk
0xqrQ5q2T3XleRrbQ3lOJMa1tCEJnl9BRKxqtnCveo4G7t8JDvwARdlpPITY7TOV
xxtWSFQ2DKifwDWLUlyvtTxLgyAG4a00mxJQmQC78cGcM5OhEqiZG8HM4isiP7ce
Xh9O2UaHzAuEb5Nf4qYGbUte45RHvw+diU2g8NFBdcq5r04vn2zFpbVuAZq5QeKP
N+a2fh2HnRUf9EefhtLrFIhOfVkMQr6G0rH+x6RqBj1MOzKL60YPNm2v4cxRurNu
NpOgC5WU9g3oULRUIPyL86tiVZfMD30x9iuAdwQ2iwqMRCDtYHVreIOQah4qnFP0
YBCtGnbLZS5f2DhjIUX309EBBfWnwvQODXO/2ILq4/av4wbJWtmMsl5+EyBiZLHW
kR6ls1DTplG8LPaJhIAYazFM/3+ozEAWC7LxRnH4O9R8rt8ToudJlj7cjNgrRplD
oDhEKEqiL6o8LSjEvOMYBto+KhTF61sPJ5h/u1iQrw2PnwD2I7TtuOfWPPLpc3cC
7Jtl1s7R9c4Y7Y/TfdLT
=VWHK
-----END PGP SIGNATURE-----

--Po3hG7FLjYU3tiSY--


From nobody Wed Jan 13 01:55:29 2016
Return-Path: <lists@reto.ch>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0541B1A004C for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 01:55:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.601
X-Spam-Level: 
X-Spam-Status: No, score=-4.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vooCe3CtvmFE for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 01:55:25 -0800 (PST)
Received: from smtp-sh.infomaniak.ch (smtp-sh.infomaniak.ch [128.65.195.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B1331A002A for <cellar@ietf.org>; Wed, 13 Jan 2016 01:55:24 -0800 (PST)
Received: from smtp4.infomaniak.ch (smtp4.infomaniak.ch [84.16.68.92]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0D9tM0g017014 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for <cellar@ietf.org>; Wed, 13 Jan 2016 10:55:22 +0100
Received: from Castor.local (dynamic.wline.6rd.res.cust.swisscom.ch [IPv6:2a02:1205:5049:29f0:3c6f:cf42:7d82:73aa] (may be forged)) (authenticated bits=0) by smtp4.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0D9tKlv019818 for <cellar@ietf.org>; Wed, 13 Jan 2016 10:55:22 +0100
Date: Wed, 13 Jan 2016 10:55:22 +0100
From: Reto Kromer <lists@reto.ch>
To: cellar@ietf.org
X-Priority: 3
In-Reply-To: <20160113082303.GQ4063@bunkus.org>
Message-ID: <r470Ps-10112i-3D276ECA8E8E436B9538F9A29AD83005@Castor.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.4 (470)
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/14C6q_AC6zwpgN109S8xgY4dMt0>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 09:55:28 -0000

Moritz Bunkus wrote:

>> I was wanting to avoid the 2-letter code in order to
>> avoid a conflict with current Matrosa specs, maybe there
>> is a better way to say it.
>
>Ah, I misunderstood your intention then. I do agree with
>your goal.
>
>> Anyway, replacing "bibliographic ISO-639-2" by=20
>> "ISO-639-3" in the current Matroska specification (and
>> implementing the country part) is maybe the easiest path.
>
>That would be what I've described as migration path 1 plus
>adding support for the country.
>
>So, one vote for 2 over 1 (Dave), one for 1 (J=C3=A9r=C3=B4me).

Please let me add that my intervention in favour RFC 4646
over RFC 5646 was not meant to be a gag. Actually we use it
in our company:

  https://tools.ietf.org/html/rfc4646

We had to struggle with films in the time when Serbia and
Montenegro was still one nation, yet with two alphabets (and
almost two everything). And currently we are working on
projects in different Asian countries with very artistic,
but often different alphabets. Therefore this can be very
useful in real life. That said, you are completely free to
choose other ways, of course.

Hope this helps! Reto


AV Preservation by reto.ch
chemin du Suchet 5 | 1024 Ecublens | Switzerland
Web: http://reto.ch | Twitter: @retoch


From nobody Wed Jan 13 01:59:21 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1381E1A00A1 for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 01:59:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.601
X-Spam-Level: 
X-Spam-Status: No, score=-4.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1VpIU2sfMD2S for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 01:59:17 -0800 (PST)
Received: from 7.mo69.mail-out.ovh.net (7.mo69.mail-out.ovh.net [46.105.50.32]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2EDE51A009C for <cellar@ietf.org>; Wed, 13 Jan 2016 01:59:17 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 61E9110004FE for <cellar@ietf.org>; Wed, 13 Jan 2016 10:59:15 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 13 Jan 2016 11:59:14 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 13 Jan 2016 11:59:13 +0200
To: cellar@ietf.org
References: <r470Ps-10112i-3D276ECA8E8E436B9538F9A29AD83005@Castor.local>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <56961FEF.8010003@mediaarea.net>
Date: Wed, 13 Jan 2016 10:59:11 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <r470Ps-10112i-3D276ECA8E8E436B9538F9A29AD83005@Castor.local>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 2301620885381779602
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeejucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeejgddtjecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/VNnqB16Pjo-bVKXy2gDlsTeHXf8>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 09:59:19 -0000

Le 13/01/2016 10:55, Reto Kromer a Ã©crit :
> Moritz Bunkus wrote:
>
>>> I was wanting to avoid the 2-letter code in order to
>>> avoid a conflict with current Matrosa specs, maybe there
>>> is a better way to say it.
>> Ah, I misunderstood your intention then. I do agree with
>> your goal.
>>
>>> Anyway, replacing "bibliographic ISO-639-2" by
>>> "ISO-639-3" in the current Matroska specification (and
>>> implementing the country part) is maybe the easiest path.
>> That would be what I've described as migration path 1 plus
>> adding support for the country.
>>
>> So, one vote for 2 over 1 (Dave), one for 1 (JÃ©rÃ´me).
> Please let me add that my intervention in favour RFC 4646
> over RFC 5646 was not meant to be a gag.

I don't understand: RFC 4646 is obsoleted by RFC 5646.

JÃ©rÃ´me


From nobody Wed Jan 13 02:10:13 2016
Return-Path: <lists@reto.ch>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 326801A037C for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 02:10:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GV_5PC78nRKJ for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 02:10:10 -0800 (PST)
Received: from smtp-sh2.infomaniak.ch (smtp-sh2.infomaniak.ch [128.65.195.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 55B991A036B for <cellar@ietf.org>; Wed, 13 Jan 2016 02:10:10 -0800 (PST)
Received: from smtp3.infomaniak.ch (smtp3.infomaniak.ch [84.16.68.91]) by smtp-sh.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0DAA7Qh008326 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for <cellar@ietf.org>; Wed, 13 Jan 2016 11:10:08 +0100
Received: from Castor.local (159.146.4.85.dynamic.wline.res.cust.swisscom.ch [85.4.146.159]) (authenticated bits=0) by smtp3.infomaniak.ch (8.14.5/8.14.5) with ESMTP id u0DAA7Ls017989 for <cellar@ietf.org>; Wed, 13 Jan 2016 11:10:07 +0100
Date: Wed, 13 Jan 2016 11:10:07 +0100
From: Reto Kromer <lists@reto.ch>
To: cellar@ietf.org
X-Priority: 3
Message-ID: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: Mailsmith 2.4 (470)
X-Antivirus: Dr.Web (R) for Unix mail servers drweb plugin ver.6.0.2.8
X-Antivirus-Code: 0x100000
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/lhGQcFex4opACBVYbZyigqQnPeQ>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 10:10:12 -0000

Jerome Martinez wrote:

>I don't understand: RFC 4646 is obsoleted by RFC 5646.

Sorry, you are completely correct, my fault! (And I must to
update our own programmes). Best regards, Reto


AV Preservation by reto.ch
chemin du Suchet 5 | 1024 Ecublens | Switzerland
Web: http://reto.ch | Twitter: @retoch


From nobody Wed Jan 13 07:35:12 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 587761A901C for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 07:35:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VP8gqQTCFHZv for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 07:35:10 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0926A1A900B for <cellar@ietf.org>; Wed, 13 Jan 2016 07:35:09 -0800 (PST)
Received: from [146.96.19.240] (port=26962 helo=[10.10.201.73]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aJNRy-003DsQ-QN for cellar@ietf.org; Wed, 13 Jan 2016 10:35:08 -0500
From: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com>
Date: Wed, 13 Jan 2016 10:35:04 -0500
To: cellar@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/nqoQ2EaaBOPogfdqzaUlO1hyB34>
Subject: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jan 2016 15:35:11 -0000

Hi all,

In a few weeks is FOSDEM which will host an Open Media devroom [1] on =
January 30th in Brussels. There are a few panels relevant to IETF video =
work.

I know a few CELLAR members are attending and suspect there are more. Is =
there interest in meeting up to a meal or drinks?

Best Regards,
Dave Rice

[1] https://fosdem.org/2016/schedule/track/open_media/


From nobody Wed Jan 13 18:26:09 2016
Return-Path: <pb@das-werkstatt.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 197611B2A43 for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 18:26:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5unq6FpIexUC for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 18:26:06 -0800 (PST)
Received: from zucker.schokokeks.org (zucker.schokokeks.org [178.63.68.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8D93B1B2A46 for <cellar@ietf.org>; Wed, 13 Jan 2016 18:26:06 -0800 (PST)
Received: from [192.168.0.14] (chello213047163139.5.15.vie.surfer.at [::ffff:213.47.163.139]) (AUTH: PLAIN bubestinger@schokokeks.org, TLS: TLSv1/SSLv3, 128bits, ECDHE-RSA-AES128-GCM-SHA256) by zucker.schokokeks.org with ESMTPSA; Thu, 14 Jan 2016 03:26:02 +0100 id 0000000000000027.000000005697073A.00000269
Message-ID: <56970738.5060703@das-werkstatt.com>
Date: Thu, 14 Jan 2016 03:26:00 +0100
From: "Peter B." <pb@das-werkstatt.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: cellar@ietf.org
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com>
In-Reply-To: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/sDLXbrcRkMaVKSeZRdwbWkSU9Ck>
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 02:26:08 -0000

On 01/13/2016 04:35 PM, Dave Rice wrote:
> In a few weeks is FOSDEM which will host an Open Media devroom [1] on January 30th in Brussels. There are a few panels relevant to IETF video work.
>
> I know a few CELLAR members are attending and suspect there are more. Is there interest in meeting up to a meal or drinks?

Count me in :)

Regards,
Pb


From nobody Wed Jan 13 21:56:26 2016
Return-Path: <framefritti@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D2F11A9117 for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 21:56:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.701
X-Spam-Level: 
X-Spam-Status: No, score=0.701 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tX4sb9k-4FyT for <cellar@ietfa.amsl.com>; Wed, 13 Jan 2016 21:56:23 -0800 (PST)
Received: from mail-wm0-x229.google.com (mail-wm0-x229.google.com [IPv6:2a00:1450:400c:c09::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 343CC1A910B for <cellar@ietf.org>; Wed, 13 Jan 2016 21:56:23 -0800 (PST)
Received: by mail-wm0-x229.google.com with SMTP id f206so326117549wmf.0 for <cellar@ietf.org>; Wed, 13 Jan 2016 21:56:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=GxW5k/1j3fTpIcF5RC8eCb2XdeKWLoPNn/hTmlPWHLY=; b=XVFJqIoGE2EpbI2SXunyUmM3M61N1jSrLA+8BIEs/XsO7gXPRY0Pmtv/PEivhdZOWV mNJtcSL22btcgolgEjvKKp9G9ZEKKkpM0TraPdt1LIfwL/jGd9R24gm0E7nwi1Nj3q+J rcIaoUZkUFGtFyEcV77Uf2dNEV53hQmJZBWJF9xH3oVzV7DBXc5jdHN99pwAufLe3Agj JAsh1zmlH2ipyUGxNCuJV4U4L+l99VX2HRIxI6xCeXAx5Hi8dqltm3HFdi6lG1PQAi7v 1tE4tKTc0BykBxh/qchhuurO1bj/C6FIMnwqh5yW2E64nM4GKr0pjV1WOTXHRhaWMLyv XDjg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=GxW5k/1j3fTpIcF5RC8eCb2XdeKWLoPNn/hTmlPWHLY=; b=jmyipL0DCT++1sBwuqo3J03lWotFahYpRdbK7NVltGoT8NJbpABl6evX2FiHzoxjxo cH4+S9+TRpp2YuK1eNPCMLlk+pI4iLwYXVz817j2Gnek+Fdif9Bl8szB0K0qs9lgV7rN su/D3JVRJ4kjEJUSLgSzuNHK3YuIfhuyckJeFjtggaSKBFlDk8sdq51CcVrEaF9cN09o ipD4BatlGt4czaZutGQUyV+U4utAHGGfzdic9R9K83+np51CpZ99eSRnobYcLrkpQSk8 27gUpqtpPkXUfuIDM4ujvSEHOZDJ0Wkz2e5JuvJ8HTIlz9+UaaoDM5CGUhARZsOS6L32 zo0g==
X-Gm-Message-State: ALoCoQknhc4CqgzZlIijWrgPfCACkwTn5pwXR2XO1lc35doY5Tg8D2mpuSfltRllde7EBt48PJSoq0h+m81WRAgu3bwovKqJ2Q==
MIME-Version: 1.0
X-Received: by 10.25.21.106 with SMTP id l103mr617091lfi.92.1452750981628; Wed, 13 Jan 2016 21:56:21 -0800 (PST)
Received: by 10.25.21.66 with HTTP; Wed, 13 Jan 2016 21:56:21 -0800 (PST)
In-Reply-To: <56970738.5060703@das-werkstatt.com>
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com> <56970738.5060703@das-werkstatt.com>
Date: Thu, 14 Jan 2016 06:56:21 +0100
Message-ID: <CABSMSPWL_XD8n=-pPr13DNECOKqnjBMNRWi0TxdjPSg+Uy9-oA@mail.gmail.com>
From: Riccardo Bernardini <framefritti@gmail.com>
To: cellar@ietf.org
Content-Type: multipart/alternative; boundary=001a113f17e8350ad8052944f246
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/j-zoe6Z74C6x_XFmBx0WnCx0yn0>
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 05:56:25 -0000

--001a113f17e8350ad8052944f246
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jan 14, 2016 at 3:26 AM, Peter B. <pb@das-werkstatt.com> wrote:

> On 01/13/2016 04:35 PM, Dave Rice wrote:
> > In a few weeks is FOSDEM which will host an Open Media devroom [1] on
> January 30th in Brussels. There are a few panels relevant to IETF video
> work.
> >
> > I know a few CELLAR members are attending and suspect there are more. I=
s
> there interest in meeting up to a meal or drinks?
>
> Count me in :)
>
>
I will not be there, but let me chime in to say that usually the Friday
before the FOSDEM there is "Beer event" at the Delirium Caf=C3=A9, a nice p=
lace
with an interesting list of beers (if you like beer, of course).  Just be
sure to be there early, otherwise you'll have problems just entering (by
foot) the street... (no joking, it happened to me).

Have fun! (for some value of "fun")

Riccardo


> Regards,
> Pb
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>

--001a113f17e8350ad8052944f246
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Jan 14, 2016 at 3:26 AM, Peter B. <span dir=3D"ltr">&lt;<a href=
=3D"mailto:pb@das-werkstatt.com" target=3D"_blank">pb@das-werkstatt.com</a>=
&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">On 01=
/13/2016 04:35 PM, Dave Rice wrote:<br>
&gt; In a few weeks is FOSDEM which will host an Open Media devroom [1] on =
January 30th in Brussels. There are a few panels relevant to IETF video wor=
k.<br>
&gt;<br>
&gt; I know a few CELLAR members are attending and suspect there are more. =
Is there interest in meeting up to a meal or drinks?<br>
<br>
</span>Count me in :)<br>
<br></blockquote><div><br></div><div>I will not be there, but let me chime =
in to say that usually the Friday before the FOSDEM there is &quot;Beer eve=
nt&quot; at the Delirium Caf=C3=A9, a nice place with an interesting list o=
f beers (if you like beer, of course).=C2=A0 Just be sure to be there early=
, otherwise you&#39;ll have problems just entering (by foot) the street... =
(no joking, it happened to me).<br><br></div><div>Have fun! (for some value=
 of &quot;fun&quot;)<br><br></div><div>Riccardo<br></div><div>=C2=A0<br></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex">
Regards,<br>
Pb<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
_______________________________________________<br>
Cellar mailing list<br>
<a href=3D"mailto:Cellar@ietf.org">Cellar@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/cellar" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/cellar</a><br>
</div></div></blockquote></div><br></div></div>

--001a113f17e8350ad8052944f246--


From nobody Thu Jan 14 00:05:21 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0D2901B2C8B for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 00:05:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HTKABurcZjDq for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 00:05:18 -0800 (PST)
Received: from mail-vk0-x22f.google.com (mail-vk0-x22f.google.com [IPv6:2607:f8b0:400c:c05::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C32321A9094 for <cellar@ietf.org>; Thu, 14 Jan 2016 00:05:17 -0800 (PST)
Received: by mail-vk0-x22f.google.com with SMTP id a123so245670156vkh.1 for <cellar@ietf.org>; Thu, 14 Jan 2016 00:05:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=s1XQuY6qXR8F6ArazKQ1CScvJv/XTr13KFncWgDn/RY=; b=gBHz/0H1D35XH50NeOrpLrJk9afZw94w/EVe5PK4SjRO5nFERbwiGdmQ2JrQcdNzwc PMwVmKf/9XlpHd47iI5tIED+fWXCyJl1UHY/aU43i9e2aQ9NM+RcKjC8NC3kAHvuCU2m J8LHrvAwJfu9bmHI59+s3on2cEcIbPqTjcGtCkb4H81IgBMdaI+CskuQEOrrPEoMdpZt DaPWpifzLjjAbjx8RqRazzmXlcaPLTNE9MFlgzzVevVe23xDbBqKtRg2kb9s4lCxuPLu 3dZIjhHS/iSGbgRzFncICB9gvYoVTxdAWVBHh/0HyVfukAy68K4pmEjwxbIyAa+Nivl3 ehqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=s1XQuY6qXR8F6ArazKQ1CScvJv/XTr13KFncWgDn/RY=; b=WOoiwappBIJqSD45cSz1HCUmqbjeuro+w2kf6Kw7z7j07O0t+HKeHZ6z09Y445FsIC KDJ2hg9PG8fLWRgcxUB67pUyhtvr25V80xzVhDToPy4S71fX/o0xOUkonoyy85wVrsD3 OkSQdA+bQllAIZa8nOL9DhblMW14NxpHVZZqBTtyOzGto8lvuaLuilKjucJmNrcJvWeu BAGAKWzewY3pWNXGf7pVKzVuOoHJrVcsrQmcT05KLpHMh+WdmqI3vQgWoBp8nBGRWMJp zdXf51RPJXoUhU8mwsSpnedRCgidD7T5c6O/1KVhQwnpqS37WjZqy8E00UIYEHKrx+fv D3pg==
X-Gm-Message-State: ALoCoQmG/8MiDTyk7BnbbT6y9K24fPA1gfquG1BtevAPUBMeLpHivh5iEFU7QivxtMDLM3GbX1MuqwxtvSPVuUQI59g/n/aR7w==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr1900829vke.122.1452758716900;  Thu, 14 Jan 2016 00:05:16 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 00:05:16 -0800 (PST)
In-Reply-To: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com>
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com>
Date: Thu, 14 Jan 2016 09:05:16 +0100
Message-ID: <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/6KNdaVJhmREaxCrNPgaybiher64>
Cc: cellar@ietf.org
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 08:05:19 -0000

2016-01-13 16:35 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi all,
>
> In a few weeks is FOSDEM which will host an Open Media devroom [1] on January 30th in Brussels. There are a few panels relevant to IETF video work.
>
> I know a few CELLAR members are attending and suspect there are more. Is there interest in meeting up to a meal or drinks?

Yup. There are 3 options for me, Saturday lunch, Saturday dinner, Sunday lunch.

> Best Regards,
> Dave Rice
>
> [1] https://fosdem.org/2016/schedule/track/open_media/
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 01:47:21 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B91C41B2FED for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 01:47:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P169Pcyi7-Rw for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 01:47:19 -0800 (PST)
Received: from mail-vk0-x231.google.com (mail-vk0-x231.google.com [IPv6:2607:f8b0:400c:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A4E091B2FA0 for <cellar@ietf.org>; Thu, 14 Jan 2016 01:47:19 -0800 (PST)
Received: by mail-vk0-x231.google.com with SMTP id n1so122452451vkb.3 for <cellar@ietf.org>; Thu, 14 Jan 2016 01:47:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=kXMbgzYKb3bIwflpdcS5mSXzE7P6nCo4UFwh6qDD07Y=; b=Cy4JZVHOm6NEmoFNq4x9XjVRU4f2WGTAnOgft1/I5l8H96eL/SaMcTDiDr8wFLfA+S W7KaD4zH//yIUxtDwdMfnO7VUg9+ThsH9CigePVYXWIl5dyI46S1kd8OZnEMd/D1fb7F ft+fFQUNHDDvIwi3JnTNzVgNJrMxbSCOkUv7USoTTpO4c0fhpieCsliWmjT2aLvpo064 WVizm9ZFEd1a3OFHBlU6hmtJ/Y5RbGYLED4/AX+OOrfZDhhBbAYbMjxKgOrFkoNLuFX+ 86a9Kb2cdkYFQ5E9IWXmY2palzVlefgwDDnXRsDnKWFK7OgrdNO6HbozllOVET95vxRL ibyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=kXMbgzYKb3bIwflpdcS5mSXzE7P6nCo4UFwh6qDD07Y=; b=QWbPmPuooaPxnkTCw/PTv/mC0S9/UgFsZIGMzNC5g+hmr4V5xjgPxOR8A2/LhwExdV 75cCaF7gjIIdoO9CkfsRIbDrCTBiceADwKIL11ke84yR6o3zKhzGAlv4/ArEjvU0p2oO XXZeEkBp8LRP5Kf/tnBVShrIJRKKIqr24lDDWLcvh63BON1K7WutWyJyP078Q8DniVcJ boqV2ncYi9wwKzWfUX2cBxgULVHi2ypdBYaxhC/9wE9mvIBVFT0WwGr6jfREIq4r1T1D uZB/m1qwFjDC5M4nJKaSu3PUJSIu/vPYdYGpocYXQRdDh6EEAmp7+NpaTtA5HaQHXW/4 sEjw==
X-Gm-Message-State: ALoCoQmSYSL4RI6BZZOetA5L2bmcjWWnyoP3rbdvdtyw4AgojiSjtbwoOcY1rYSCu44dbL5l51s1grw5dTZ/e8PV4BG1ZhcXtw==
MIME-Version: 1.0
X-Received: by 10.31.5.139 with SMTP id 133mr2122626vkf.157.1452764838739; Thu, 14 Jan 2016 01:47:18 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 01:47:18 -0800 (PST)
In-Reply-To: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local>
References: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local>
Date: Thu, 14 Jan 2016 10:47:18 +0100
Message-ID: <CAOXsMFLUy6HponUQiL+i3HDNNdCh4Qu6H+X9i=212MrSuaXqZA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: cellar@ietf.org
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Csjf00oEn8Q04UZjPga6Sszvvaw>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 09:47:20 -0000

IMO the current tag should remain unchanged. We cannot change the
interpretation now, especially if some values are incompatible.

So at least there should be a new tag. I think it should be a new
Language tag with a more universal scope. Although the RFC spec seem
to cover that, the broad interpretation for each tag may be a problem.
That makes parsing the language a lot more complex (is it 2 or chars ?
with country/regional extensions ?). Is it widely supported already ?

Since there would be 2 tags for the same thing, we should define which
one has priority, if they are exclusive. IMO having an element to
define how another element is to be interpreted should be avoided.
Also it limits the language element to one item. If we have 2 (old and
new) old parsers can still work fine. And newer parsers can pick the
new element prioritarily.

2016-01-13 11:10 GMT+01:00 Reto Kromer <lists@reto.ch>:
> Jerome Martinez wrote:
>
>>I don't understand: RFC 4646 is obsoleted by RFC 5646.
>
> Sorry, you are completely correct, my fault! (And I must to
> update our own programmes). Best regards, Reto
>
>
> AV Preservation by reto.ch
> chemin du Suchet 5 | 1024 Ecublens | Switzerland
> Web: http://reto.ch | Twitter: @retoch
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 01:54:59 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8DCEB1B2E97 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 01:54:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.601
X-Spam-Level: 
X-Spam-Status: No, score=-4.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Bf3-PMyzj6CO for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 01:54:56 -0800 (PST)
Received: from 1.mo69.mail-out.ovh.net (1.mo69.mail-out.ovh.net [178.33.251.173]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A4AFF1B2D6D for <cellar@ietf.org>; Thu, 14 Jan 2016 01:54:56 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id E479DFFA5A2 for <cellar@ietf.org>; Thu, 14 Jan 2016 10:54:54 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 14 Jan 2016 11:54:53 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 14 Jan 2016 11:54:48 +0200
To: cellar@ietf.org
References: <20160112132802.GI4063@bunkus.org> <D008BBC2-8D5A-4816-9DC3-6D99BB0C484C@dericed.com> <5695FF74.4020700@mediaarea.net> <20160113080140.GP4063@bunkus.org> <56960741.2030808@mediaarea.net> <20160113082303.GQ4063@bunkus.org>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <56977066.1030504@mediaarea.net>
Date: Thu, 14 Jan 2016 10:54:46 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <20160113082303.GQ4063@bunkus.org>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 8099723931422625938
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelgddthecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/qZN3DUyBfl2SU1i3MF6qxlb2RDs>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 09:54:58 -0000

Le 13/01/2016 09:23, Moritz Bunkus a écrit :
> Hey,
>
>> I was wanting to avoid the 2-letter code in order to avoid a conflict with
>> current Matrosa specs, maybe there is a better way to say it.
> Ah, I misunderstood your intention then. I do agree with your goal.
>
>> Anyway, replacing "bibliographic ISO-639-2" by "ISO-639-3" in the
>> current Matroska specification (and implementing the country part) is
>> maybe the easiest path.
> That would be what I've described as migration path 1 plus adding
> support for the country.
>
> So, one vote for 2 over 1 (Dave), one for 1 (Jérôme).
>

I voted for my 3b (Introduce new elements on the same level as the 
existing language elements that provides the RFC 5646 language tag, in 
other words copy/paste current definition in a new tag then replace 
"bibliographic ISO-639-2" by "RFC 5646" )
then 3 + keeping the country part (Introduce new elements on the same 
level as the existing language elements that provides the ISO-639-3 
language tag, in other words copy/paste current definition in a new tag 
then replace "bibliographic ISO-639-2" by "ISO-639-3")
then 3

the exact list, in priority order:
3b
3 + keeping the country part
3 (not IETF, remaining issues)
1 (minor compatibility break, remaining issues)
2 (could be a major break for old players if we decide to switch to a 
super new standard totally incompatible with ISO 639-2, remaining issues)


Jérôme


From nobody Thu Jan 14 01:59:35 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1AFB11B3276 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 01:59:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cMbXGw4c6WrO for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 01:59:33 -0800 (PST)
Received: from 6.mo69.mail-out.ovh.net (6.mo69.mail-out.ovh.net [46.105.50.107]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 56C4A1B31FA for <cellar@ietf.org>; Thu, 14 Jan 2016 01:59:33 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id A77CB1004229 for <cellar@ietf.org>; Thu, 14 Jan 2016 10:59:31 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 14 Jan 2016 11:59:30 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 14 Jan 2016 11:59:20 +0200
To: cellar@ietf.org
References: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local> <CAOXsMFLUy6HponUQiL+i3HDNNdCh4Qu6H+X9i=212MrSuaXqZA@mail.gmail.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <56977177.2050805@mediaarea.net>
Date: Thu, 14 Jan 2016 10:59:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAOXsMFLUy6HponUQiL+i3HDNNdCh4Qu6H+X9i=212MrSuaXqZA@mail.gmail.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 8176285124128542866
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelgddtjecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/TNAQR1COWVZCwD1aGwRAp0rbnxc>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 09:59:35 -0000

Le 14/01/2016 10:47, Steve Lhomme a écrit :
> IMO the current tag should remain unchanged. We cannot change the
> interpretation now, especially if some values are incompatible.

+1

> So at least there should be a new tag. I think it should be a new
> Language tag with a more universal scope. Although the RFC spec seem
> to cover that, the broad interpretation for each tag may be a problem.
> That makes parsing the language a lot more complex (is it 2 or chars ?
> with country/regional extensions ?). Is it widely supported already ?

If we don't start the pump, we will not have something.
We can start with wide definition and implement only what we need for 
both writing and reading, and we see when someone need of the more 
complex part of the RFC.
Anyway, this is not a too big problem, unknown language is displayed by 
the player with the string in the file, understandable.

>
> Since there would be 2 tags for the same thing, we should define which
> one has priority, if they are exclusive.

Not exclusive.
Current tag set as deprecated (for compatibility)
New tag set as the reference (has priority other the old one).


>   IMO having an element to
> define how another element is to be interpreted should be avoided.

+1

> Also it limits the language element to one item. If we have 2 (old and
> new) old parsers can still work fine. And newer parsers can pick the
> new element prioritarily.

+1

Jérôme


From nobody Thu Jan 14 02:21:13 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F032C1B32AB for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:21:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r1rOxm76RWCu for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:21:10 -0800 (PST)
Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BFE961B32AA for <cellar@ietf.org>; Thu, 14 Jan 2016 02:21:10 -0800 (PST)
Received: by mail-vk0-x22a.google.com with SMTP id i129so139124143vkb.0 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:21:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=15XP7POF3JApyODxzmkONuqh2gSmun9K9euk0tAfdQ0=; b=ufd7XWnHm8jqfVbdJzY7HcufhS8nXLUjyNNsHv9K4glaTQx5BrgZ8I+El1yFDCVIHn OijPxVEsqPstsdyWNbBjlxQ9CtB6H7jZCbwA7GUkzJjE5ZM8xrdsY/4aIico+bauEr91 rbZEtFz6lt4rSsGqhwbkrGcupwjQpHib9KB6lQFHOPkARPqgLcg5hQVx+cU4cW5zE0DU usU73nbUs6H/Ze+3Oc/Jgoe83R/HIO+fzU3aZ6YgUn180uWfrdr4bfvpVzwflhyDU3LW uTYTrHtSGgjO0JUDwsYPnrT0+cYdGjanYPYMpDWbUfv7qXd3pJ5+NwScrRwXIp5UHcvw xu/g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=15XP7POF3JApyODxzmkONuqh2gSmun9K9euk0tAfdQ0=; b=M07ZE76/scxIaD/9Bd1Rsyj/DRiP8Px4jjLsPCTkCdCzYldUMp8wLH+YVvEMpcY3mZ KXeqE/+TwSuGbM+LCD+NlrvzhKsprxRPjV5NN992aFWdQ58RlCY28WxeRy7peAWqpPCy GLFDwdX87nUAQ3piYCtBd/ftKJKnbVmnsbrqYiln/swfE5h63nMEoVtcx0HOHOMaGNmf x7KvmAKvDTU2ePymn5IEKpPDSi4wBy11Z7uY1FL/le29O6NcsoWXwdnWFi7CK2eS91CF jWnxQjUVDFWmDmrfvhE60Pv3K83xMREthOXuNqfnYa/yyD4AuSSM7X2CS+X5egtcq6vV 9JCA==
X-Gm-Message-State: ALoCoQlhQSEO0o3DMJ2L8J/uFQCQ/KZOENEJLz+EcKZWHi6i6rhDK8suPsl/jbc0MqN9tYUd1yGDBHZ784TXK0ERngkgi3AgRw==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr2285153vkd.87.1452766869513; Thu, 14 Jan 2016 02:21:09 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 02:21:09 -0800 (PST)
In-Reply-To: <56977177.2050805@mediaarea.net>
References: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local> <CAOXsMFLUy6HponUQiL+i3HDNNdCh4Qu6H+X9i=212MrSuaXqZA@mail.gmail.com> <56977177.2050805@mediaarea.net>
Date: Thu, 14 Jan 2016 11:21:09 +0100
Message-ID: <CAOXsMFJVYuqc4pGxbbuFuaJAcM+1Erobax3FufTTgGsW2MEwEQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Jerome Martinez <jerome@mediaarea.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9xRMlp7qC0LsuGZ7GNPIkQmNiBo>
Cc: cellar@ietf.org
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 10:21:12 -0000

2016-01-14 10:59 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
> Le 14/01/2016 10:47, Steve Lhomme a =C3=A9crit :
>>
>> IMO the current tag should remain unchanged. We cannot change the
>> interpretation now, especially if some values are incompatible.
>
>
> +1
>
>> So at least there should be a new tag. I think it should be a new
>> Language tag with a more universal scope. Although the RFC spec seem
>> to cover that, the broad interpretation for each tag may be a problem.
>> That makes parsing the language a lot more complex (is it 2 or chars ?
>> with country/regional extensions ?). Is it widely supported already ?
>
>
> If we don't start the pump, we will not have something.

It seems that it's also endorsed by the W3C:
https://www.w3.org/International/articles/language-tags/

> We can start with wide definition and implement only what we need for bot=
h
> writing and reading, and we see when someone need of the more complex par=
t
> of the RFC.

As Dave said, it's better if we leave the definition of such things to
another authority and just be compliant.

> Anyway, this is not a too big problem, unknown language is displayed by t=
he
> player with the string in the file, understandable.

It seems that it's actually not too hard to parse, depending on what
you want. A player/parser/muxer that wants to support language
handling but not too heavily can just stick to the frst 2 or 3 chars
that are common ISO codes. Compared to current parsers it's just
adding mapping for ISO 639-2 codes in additions to ISO 639-3. It's not
that bad.

So I'd vote for a new element that defines the language in the RFC
5646 format and has priority over the old element.

>>
>> Since there would be 2 tags for the same thing, we should define which
>> one has priority, if they are exclusive.
>
>
> Not exclusive.
> Current tag set as deprecated (for compatibility)
> New tag set as the reference (has priority other the old one).
>
>
>>   IMO having an element to
>> define how another element is to be interpreted should be avoided.
>
>
> +1
>
>> Also it limits the language element to one item. If we have 2 (old and
>> new) old parsers can still work fine. And newer parsers can pick the
>> new element prioritarily.
>
>
> +1
>
> J=C3=A9r=C3=B4me
>
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 02:28:30 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 51F011B32B9 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:28:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.601
X-Spam-Level: 
X-Spam-Status: No, score=-4.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JKut9qMLqXEL for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:28:27 -0800 (PST)
Received: from 4.mo69.mail-out.ovh.net (4.mo69.mail-out.ovh.net [46.105.42.102]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D1CC91B32B8 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:28:26 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 2D57D10003A0 for <cellar@ietf.org>; Thu, 14 Jan 2016 11:28:25 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 14 Jan 2016 12:28:24 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 14 Jan 2016 12:28:20 +0200
To: cellar@ietf.org
References: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local> <CAOXsMFLUy6HponUQiL+i3HDNNdCh4Qu6H+X9i=212MrSuaXqZA@mail.gmail.com> <56977177.2050805@mediaarea.net> <CAOXsMFJVYuqc4pGxbbuFuaJAcM+1Erobax3FufTTgGsW2MEwEQ@mail.gmail.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <56977843.5020502@mediaarea.net>
Date: Thu, 14 Jan 2016 11:28:19 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAOXsMFJVYuqc4pGxbbuFuaJAcM+1Erobax3FufTTgGsW2MEwEQ@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 8666051584968757394
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelgddufecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/5RcZYGMjs23dfIMUp_oIN0yeZoM>
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 10:28:29 -0000

Le 14/01/2016 11:21, Steve Lhomme a Ã©crit :
> 2016-01-14 10:59 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
>> Le 14/01/2016 10:47, Steve Lhomme a Ã©crit :
>>> IMO the current tag should remain unchanged. We cannot change the
>>> interpretation now, especially if some values are incompatible.
>>
>> +1
>>
>>> So at least there should be a new tag. I think it should be a new
>>> Language tag with a more universal scope. Although the RFC spec seem
>>> to cover that, the broad interpretation for each tag may be a problem.
>>> That makes parsing the language a lot more complex (is it 2 or chars ?
>>> with country/regional extensions ?). Is it widely supported already ?
>>
>> If we don't start the pump, we will not have something.
> It seems that it's also endorsed by the W3C:
> https://www.w3.org/International/articles/language-tags/

Just to be clear: this is one of the reason I recommend RFC 5646 (beside 
the fact we are now on an IETF list)

>
>> We can start with wide definition and implement only what we need for both
>> writing and reading, and we see when someone need of the more complex part
>> of the RFC.
> As Dave said, it's better if we leave the definition of such things to
> another authority and just be compliant.

Just to be clear: this is the reason I recommend RFC 5646 (it is not  
done by us).
I think that ISO 639-3 alone is not enough and that another group has 
already expanded it for when it is necessary (RFC 5646 recommends to use 
ISO 639 when it is possible)


>
>> Anyway, this is not a too big problem, unknown language is displayed by the
>> player with the string in the file, understandable.
> It seems that it's actually not too hard to parse, depending on what
> you want. A player/parser/muxer that wants to support language
> handling but not too heavily can just stick to the frst 2 or 3 chars
> that are common ISO codes. Compared to current parsers it's just
> adding mapping for ISO 639-2 codes in additions to ISO 639-3. It's not
> that bad.

Not that bad too (because such list is very classic), but you also need 
ISO 639-1 if you don't forbid 2-letter codes (RFC 5646 recommends 
2-letter codes when 3-letters codes are not necessary, if I understand 
well).

>
> So I'd vote for a new element that defines the language in the RFC
> 5646 format and has priority over the old element.

Just to be clear: same as me.

JÃ©rÃ´me


From nobody Thu Jan 14 02:39:55 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 646671B32CA for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:39:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gGB0pSSi1Xq7 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:39:50 -0800 (PST)
Received: from mail-vk0-x229.google.com (mail-vk0-x229.google.com [IPv6:2607:f8b0:400c:c05::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 85B5C1B32DC for <cellar@ietf.org>; Thu, 14 Jan 2016 02:39:50 -0800 (PST)
Received: by mail-vk0-x229.google.com with SMTP id i129so139349174vkb.0 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:39:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=I/PqZ1XegD4mLolAMzHg1g4iEoC/Dpl7R3/6HMLU1mk=; b=QrCfpogyqtFtxCBCwpfva9tbtJ0LKpr/xO2Qn1pILwJDsSoWHBoCylQ5JZCFSyki9J wcuLKkS4qWAMW2FRxKBExSPkRG7Y+8Bw4bOokxDIxiPdIZbaZvSucfCQ9hHTnG1w2ZyI RvlaQqe+TMF1jX9T7Kbwjf5ycxSbiQcLC8PhCEEF7Z5lKsmF1Mozj6fudO2Uiwdb6hkx 5daocfZUD1K+P1kX3cbIH9DPixiXQjyzflR9FVblmFTtLb0rVTIaNSRTTe9F+5iXfzV3 j0jMBUtmiXWEbgezyQiLxzM0ZEsCesNujz5xJYazqeeLuCZsVDbFciz0GqYUrKOySb1F Mllw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=I/PqZ1XegD4mLolAMzHg1g4iEoC/Dpl7R3/6HMLU1mk=; b=m4gfFgXLfKIosGqkf+kAdi7QO6ZC6de9HuZuH1+7EFA3RzEBk5R4rj+UtKk2I/ZUvC X1M90j3ZKDmdqAc6prFltiDgsHyctLAhHcXEMDSvK89SSZi4RznLMIvla5HvpxSOsAce nNQljKG2E+aTz/uKjEo57wbY7yzeQWXVWLdEjzCfF6Ws+EqYGXFmmIvtEti5c0pojGxN QbW8LAmxRIiKgXviwIhPzdrL36l1ixcDcQOL5L9pLl9d06jGsN1izLD7RGVOO0RqyLos CBD2++X7qEYc1pGMwQJ5bWXg9g0G+jikRkCJFaMfTCE+9NyMeb+jGVvCN2RKMw2PGm6d lF/g==
X-Gm-Message-State: ALoCoQnmBG1IpnToE5ABNfu3WaR1J36jvd4sdLxS8PpbOaYYZbwSTU4UWfh16NdBBPpNtByLMHSMN+BdjSXAnZwmr4GxjmiS1w==
MIME-Version: 1.0
X-Received: by 10.31.47.130 with SMTP id v124mr2322668vkv.117.1452767989669; Thu, 14 Jan 2016 02:39:49 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 02:39:49 -0800 (PST)
In-Reply-To: <56942223.3090907@xiph.org>
References: <CAHUoETLC4dQQ7=TOuTXZ3aDjKCCJgz2s-8Gb33MoSAP3hgRQiQ@mail.gmail.com> <BEA72D66-EA3D-4CF0-987D-836E95287F39@dericed.com> <20151230091811.GA19636@bunkus.org> <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <56942223.3090907@xiph.org>
Date: Thu, 14 Jan 2016 11:39:49 +0100
Message-ID: <CAOXsMFJuU0yuJ6B9hurixc5x2ygpyOvWHAAf+Zd5m3cm4N=qnQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: "Timothy B. Terriberry" <tterribe@xiph.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/vqeEoP8_eWRCmU-C-Rlg2hEhhk8>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 10:39:54 -0000

2016-01-11 22:44 GMT+01:00 Timothy B. Terriberry <tterribe@xiph.org>:
> Dave Rice wrote:
>>
>> implementation of this recommendation has been minimal.  To change
>> the SHOULD to a MUST, would invalidate approximately 99.8% of
>> Matroska files and 100% of webm files. I realize that this reason
>
>
> Well, in the IETF (in contrast with the traditional approach of, say, MPEG)
> we are allowed to specify requirements on muxers separately from demuxers.
> So it's perfectly permissible to say a muxer MUST include CRCs while
> simultaneously saying a demuxer MUST be able to read a file without them.
> Then you wouldn't invalidate the existing media, just the existing software
> that produced them.

That sounds like a good way to do it. CRC requirements can only be on
the muxer side, and defined at the semantic level.

> However, if you don't think it's worth trying to force muxers to change
> their implementation (or don't believe that a SHOULD or MUST in a spec will
> actually cause them to change), then perhaps the most appropriate level for
> this requirement is MAY?
>
>> Perhaps the recommendation for CRC-32 usage (in Level 1 Elements and
>> Identically-Recurring Elements) should be removed from the EBML
>> Specification and moved to the Matroska EBML Schema.
>
>
> That might also be reasonable (I hold no strong opinion).

Yes, they should move to the Matroska side of the specs.

> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 02:41:39 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5E3961B32E7 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:41:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.278
X-Spam-Level: 
X-Spam-Status: No, score=-3.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, GB_I_LETTER=-2] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4Nn0rZ4T4q7s for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:41:32 -0800 (PST)
Received: from mail-vk0-x233.google.com (mail-vk0-x233.google.com [IPv6:2607:f8b0:400c:c05::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03CB51B32E5 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:41:29 -0800 (PST)
Received: by mail-vk0-x233.google.com with SMTP id a123so247534130vkh.1 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:41:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=ti/yuEZFz4hBWjovR/hdo0+IgJJb4cUCRuH8kyJXSdc=; b=xgwpRJI6HLB0eJRoIq/WDjjUg2wqINynPS5tyanYCOEJA6I6jYRRmzVdNLv+npyUXA gnX4hsKJIsxf7iPi3sKQMtT2tEPuEHNUaG7a/vYGpod0xePAJUGUrRSaMGH8d1WT/LfT hsCfDAI+J8vfU79HCY8isxjHHQQO8/09qpHcoVtTSNIY7LMqz0PYk7ybjSr6lkDWhVqq y0BnATRda5WC5FfqwWQKrJmVX4fDsSUCc84cdmRD5R+TIKUMFaygkq/RlRYKVj3gz5dh k5yls295yzIVOoVI9skcQ3i/xBK3JqEZHdhX/Q2oLWnHRI5tVDBtpygVwdREAiUpe8Mv HWIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=ti/yuEZFz4hBWjovR/hdo0+IgJJb4cUCRuH8kyJXSdc=; b=VvmanmbPyrQBAbbbLnPOlfsckeeFyVpagS90Hp49crNCU1ElIUBnQwjfB/M625eb8l siXVXkJhAuOPOA/hPIpYcIW0f5gsZqhStxlqrLdXZOyvpAxSwc9WX7vKkjBUne0TvE3r t4hNiqyDwi4VuiOZrEelvZ1SCdVLyrN7W5egfeHJy4V0WWYbsygH0f69z/kWCIu0/59e msNsZLzuDy79mv4uBQKAmYbQHrOKWoaDisCbItDQYrnxGyhfm4yJCS/OZZ4AIf8zmtYM bsDkXksuLA//g/LToJr/5nxB0xJofSrHp+YOqKCee/Eq47joWtIFTTJnZFi6dKbz0OwF WPfw==
X-Gm-Message-State: ALoCoQm+WIkkefJQ0IJ595tctA6jBOHKxWhPJkZQuJHfLdEtTYvzn95TFCU5oVbF65UdsZnHzlWZ3dWaIVzRSWRN9KHdYGjZpA==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr2353021vkd.87.1452768088131; Thu, 14 Jan 2016 02:41:28 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 02:41:28 -0800 (PST)
In-Reply-To: <56977843.5020502@mediaarea.net>
References: <r470Ps-10112i-872CC62B640F4BA7B7E3428EDFB9A40C@Castor.local> <CAOXsMFLUy6HponUQiL+i3HDNNdCh4Qu6H+X9i=212MrSuaXqZA@mail.gmail.com> <56977177.2050805@mediaarea.net> <CAOXsMFJVYuqc4pGxbbuFuaJAcM+1Erobax3FufTTgGsW2MEwEQ@mail.gmail.com> <56977843.5020502@mediaarea.net>
Date: Thu, 14 Jan 2016 11:41:28 +0100
Message-ID: <CAOXsMFLgaTsRQjfj=qqkajbg252K0T8AM7-qk5s41doEjHVbvg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Jerome Martinez <jerome@mediaarea.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ZVbN_vKJT7hGrE0EVCtFpnogDEM>
Cc: cellar@ietf.org
Subject: Re: [Cellar] using ISO 639-3 language codes in Matroska
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 10:41:37 -0000

2016-01-14 11:28 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
> Le 14/01/2016 11:21, Steve Lhomme a =C3=A9crit :
>>
>> 2016-01-14 10:59 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
>>>
>>> Le 14/01/2016 10:47, Steve Lhomme a =C3=A9crit :
>>>>
>>>> IMO the current tag should remain unchanged. We cannot change the
>>>> interpretation now, especially if some values are incompatible.
>>>
>>>
>>> +1
>>>
>>>> So at least there should be a new tag. I think it should be a new
>>>> Language tag with a more universal scope. Although the RFC spec seem
>>>> to cover that, the broad interpretation for each tag may be a problem.
>>>> That makes parsing the language a lot more complex (is it 2 or chars ?
>>>> with country/regional extensions ?). Is it widely supported already ?
>>>
>>>
>>> If we don't start the pump, we will not have something.
>>
>> It seems that it's also endorsed by the W3C:
>> https://www.w3.org/International/articles/language-tags/
>
>
> Just to be clear: this is one of the reason I recommend RFC 5646 (beside =
the
> fact we are now on an IETF list)
>
>>
>>> We can start with wide definition and implement only what we need for
>>> both
>>> writing and reading, and we see when someone need of the more complex
>>> part
>>> of the RFC.
>>
>> As Dave said, it's better if we leave the definition of such things to
>> another authority and just be compliant.
>
>
> Just to be clear: this is the reason I recommend RFC 5646 (it is not  don=
e
> by us).
> I think that ISO 639-3 alone is not enough and that another group has
> already expanded it for when it is necessary (RFC 5646 recommends to use =
ISO
> 639 when it is possible)
>
>
>>
>>> Anyway, this is not a too big problem, unknown language is displayed by
>>> the
>>> player with the string in the file, understandable.
>>
>> It seems that it's actually not too hard to parse, depending on what
>> you want. A player/parser/muxer that wants to support language
>> handling but not too heavily can just stick to the frst 2 or 3 chars
>> that are common ISO codes. Compared to current parsers it's just
>> adding mapping for ISO 639-2 codes in additions to ISO 639-3. It's not
>> that bad.
>
>
> Not that bad too (because such list is very classic), but you also need I=
SO
> 639-1 if you don't forbid 2-letter codes (RFC 5646 recommends 2-letter co=
des
> when 3-letters codes are not necessary, if I understand well).

Yes, that's what I meant.

>>
>> So I'd vote for a new element that defines the language in the RFC
>> 5646 format and has priority over the old element.
>
>
> Just to be clear: same as me.
>
>
> J=C3=A9r=C3=B4me
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 02:56:07 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5916E1B3317 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:56:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zVb42oZypQbn for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 02:56:05 -0800 (PST)
Received: from mail-vk0-x235.google.com (mail-vk0-x235.google.com [IPv6:2607:f8b0:400c:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7A7EF1B3316 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:56:05 -0800 (PST)
Received: by mail-vk0-x235.google.com with SMTP id n1so123278296vkb.3 for <cellar@ietf.org>; Thu, 14 Jan 2016 02:56:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=pDdZrIBMASRJqTbvkA5+sVkv0mTzdOXhjm87jxvq4Ag=; b=t81yjipp+UcMzFxX0z4tXa7PhX3tPFX6kjLrn1EinqfczG0wgusPFopyo3TgR4V7ZB 3DhkH9YVD05Bqiyo5fw2BXtUIDh+U26pEBR7FigpBQrFL0OufynXF4hFMFIAJOl6fDWh Q7Bzi1kpLIUzktsvSynQYahPnVScS8hCGuCdA48YhpqN4d+m9KCzg8PfCLMwVTiZUjO2 V2GDaNfzHksJcuar6gu6XwvlE4cR2y4aE5K9xkaFi5EPssKq/jegrSkD0cqxDRhQKQUZ 2OYcek5UHThJouyOjYcRQE6rzpa6APbYJxWlFcJF1E0EOx3I+8nMyHu/Ju2YJlYPAelT 2IVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=pDdZrIBMASRJqTbvkA5+sVkv0mTzdOXhjm87jxvq4Ag=; b=PGCapt0F18wKf0TgBP0wKdTVZSWwlV9JgBfVe7n0q9lvuHfsHpVEKikqpQrwDe22M8 O0meoj0fFJUlyCt3Yuk0yeWhnwzVyl/g4NFMXF3qiO+OuO1k/3m1jnL7XbM0AfNR3UUf KOKle3LZvbM7PRuLTX72op3a2kHgmrkbMmxuANRhfQaFw5k5oExbzORSR5BxMIlNCcS2 mZgMXdqaRs9vJJRSVwI9N2a8ofD3/aDWUuI8DmX2V41Q/55VKkse4MpEmYiiTLy/WPqM x+sXPjG2Gi1/6KGAbqhfnnwGXhwa/zHyx5Vygv+sjjv5gil8gZOklDXBAFhzKlEky78K JpPw==
X-Gm-Message-State: ALoCoQmc+1rbeKhHtr2lHmRzxpkBDFvXfqVvTNp6xeS3CMXXO2T5Mv48Keoae58j49JojGmLe1HybELEW3hF07Jy6kcTn0ASMg==
MIME-Version: 1.0
X-Received: by 10.31.5.139 with SMTP id 133mr2353572vkf.157.1452768964495; Thu, 14 Jan 2016 02:56:04 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 02:56:04 -0800 (PST)
In-Reply-To: <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com>
Date: Thu, 14 Jan 2016 11:56:04 +0100
Message-ID: <CAOXsMFJkNAqn2FMfsETxSCbeCmS_OTWT41MaOXif0bwrwwJCyA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/UI_NsicM6QXZa1PYFK9y2gznxs8>
Cc: Jerome Martinez <jerome@mediaarea.net>, cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 10:56:07 -0000

2016-01-11 18:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 11, 2016, at 11:40 AM, Jerome Martinez <jerome@mediaarea.net> wro=
te:
>>
>> Le 11/01/2016 17:24, Dave Rice a =C3=A9crit :
>>>> On Jan 11, 2016, at 5:12 AM, Steve Lhomme <slhomme@matroska.org> wrote=
:
>>>>
>>>> 2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>>> Hi Cellar,
>>>>>
>>>>> This proposal continues from earlier conversation on matroska-devel: =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.html=
.
>>>>>
>>>>> Currently Matroska only expresses video interlacement in the FlagInte=
rlaced Element, which is defined like this (see: http://matroska.org/techni=
cal/specs/index.html#FlagInterlaced):
>>>>>
>>>>> Element Name: FlagInterlaced
>>>>> Level:        4
>>>>> ID:           [9A]
>>>>> Mandatory:    mand.
>>>>> Multiple:     -
>>>>> Range:  0-1
>>>>> Default:      0
>>>>> Type:         u
>>>>> Description:  Set if the video is interlaced. (1 bit)
>>>>>
>>>>> An issue here is that there isn=E2=80=99t a distinction between unkno=
wn and progressive interlacement. Also if the video is interlaced there is =
no clarification if it is top or bottom field first (or one of the progress=
ive segmented frame options). While some video encodings (such as DV and FF=
V1) can contain their own information about interlacement, many (especially=
 uncompressed formats) can not.
>>>>>
>>>>> I propose the values are expanded such as:
>>>>>
>>>>> 0       undetermined
>>>>> 1       interlaced
>>>>> 2       progressive
>>>>>
>>>>> or
>>>>>
>>>>> 0       progressive
>>>>> 1       interlaced
>>>>> 2       undetermined
>>>>>
>>>>> I am unclear if FlagInterlaced=3D0 has been traditionally interpreted=
 as undetermined or progressive. Advice?
>>>> Progressive.
>>>>
>>>>> Then a second element can optionally contain field ordering metadata.
>>>>>
>>>>> Element Name: FieldOrdering
>>>>> Level:        4
>>>>> ID:           [9D]
>>>>> Mandatory:    -
>>>>> Multiple:     -
>>>>> Range:  0-2
>>>>> Default:      0
>>>>> Type:         u
>>>>> Description:  Declare the field ordering of the video. If FlagInterla=
ced is not set to 1, this Element MUST be ignored.
>>>>>
>>>>> 0       undetermined
>>>>> 1       interlaced (bottom field first)
>>>>> 2       interlaced (top field first)
>>>>>
>>>>> To do:
>>>>> - consider progressive segmented fields
>>>>> - consider noting field storage order in addition to field display or=
der
>>>>>
>>>>> I did consider that bff and tff values could be added as new values t=
o FlagInterlaced, so that only one element would be needed. However it may =
affect reverse compatibility since some muxer may interpret only a value of=
 FlagInterlaced=3D1 as interlaced.
>>>> Not sure any player/demuxer/muxer would make much use of that flag as
>>>> it is now (VLC ignores the data). So it's ok to break backward
>>>> compatibility.
>>> It does seem unconventional to have the default value be progressive ra=
ther than undetermined. From the prior definition of FlagInterlaced, "Set i=
f the video is interlaced. (1 bit)=E2=80=9D, it doesn=E2=80=99t not indicat=
e whether a zero value means progressive or undetermined. For instance, if =
I create a file under the rules below and want to express certainty that th=
e file is progressive I can set FlagInterlaced to 0; however that file is n=
o different than an older file which has FlagInterlaced set to 0 because th=
ere is no certainly about that quality at all.
>>
>> +1 (we have no way to know if the muxer wanted to say "undetermined" or =
"progressive", and I prefer "undetermined" in that case)
>>
>>>
>>> I updated and merging the concepts of FlagInterlaced and FieldOrdering =
into only FlagInterlaced. I suggest considering 0 as undetermined and 2 as =
progressive as I think this more clearly reflects the level of certainty us=
ed in past files. Also note that I left FlagInterlaced=3D1 to still be cons=
idered as interlaced although the field dominance is not clear as this seem=
s semantically equivalent to the current specs, though maybe its usage shou=
ld not be recommended.
>>
>> -1.
>> From my point of view, they are 2 different pieces of metadata, so I pre=
fer to have 2 Matroska elements, with 2 different lists we could expand in =
the future independently.
>> BTW, what about 3:2 pulldown? set as "undetermined" or a specific item? =
This is an example of the reason I prefer 2 Matroska elements: let's imagin=
e that we don't put a 3:2 pulldown specific item now (set as "undetermined =
field ordering"), but we decide later to add it (let say 5). with merged co=
ncepts, an old reader would lose the interlace information despite the fact=
 stream has not changed but the element has changed from 1 ("interlaced und=
etermined") to 5 ("interlaced 3:2 pulldown", but "unknown for this old read=
er). With separate concepts, the old reader would still know that the strea=
m is interlaced.
>
> Update FlagInterlaced  version 3
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> Element Name: FlagInterlaced
> Level:        4
> ID:           [9A]
> Mandatory:    mand.
> Multiple:     -
> Range:  0-2
> Default:      0
> Type:         u
> Description:    A flag to declare is the video is known to be progressive=
 or interlaced and if applicable to declare details about the interlacement=
.
>                         0: undetermined
>                         1: interlacement (unknown field ordering)
>                         2: progressive

Given that element is just informational (only the codec can actually
decide how to handle the data), I'm fine with this change. It won't
change playback of anything. I don't think raw video was stored with a
codec that doesn't store this information.

> Element Name: FieldOrdering
> Level:        4
> ID:           [9D]
> Mandatory:    mand.
> Multiple:     -
> Range:  0-2
> Default:      0
> Type:         u
> Description:  Declare the field ordering of the video. If FlagInterlaced =
is not set to 1, this Element MUST be ignored.
>
> 0       undetermined
> 1       interlaced (bottom field first)
> 2       interlaced (top field first)
>
> For "interlaced 3:2 pulldown=E2=80=9D, wouldn=E2=80=99t such as expressio=
n require additional information to align the ordered frames with the patte=
rn of the pulldown? Additionally if the content is edited the application o=
f the pulldown could be offset within the timeline. Perhaps we should consi=
der extending FieldOrdering to encompass "interlaced 3:2 pulldown" as a sep=
arate issue and focus the thread on clarifying progressive, interlaced, or =
undetermined along with field ordering information.
>
> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 03:08:53 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AB9721B3336 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 03:08:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6CFF9Zw3i0u9 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 03:08:51 -0800 (PST)
Received: from mail-vk0-x22c.google.com (mail-vk0-x22c.google.com [IPv6:2607:f8b0:400c:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 521E21B3334 for <cellar@ietf.org>; Thu, 14 Jan 2016 03:08:51 -0800 (PST)
Received: by mail-vk0-x22c.google.com with SMTP id i129so139706113vkb.0 for <cellar@ietf.org>; Thu, 14 Jan 2016 03:08:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=F49H5KuosimKSbPITu2/4l/AbqUjxYt+cmzwTjx9Cxc=; b=WKoMMY5q8YIvL7h3VjtOFgdzcOa0r+sjFNleTYCIp7f7xj1DuAUo2F3BwhxXGs2T/n lhL1OnTZXNM1+KJWqVd2wF1rK4dhs9P6Na4QafWfYE85sUMLm8/QgGLyZkeBWrMX6aJl Wj/F6g17IkQbzS1TzcPV6WYg5OypCtXnx87AceoVHIktl73boNPo6Gt3eh1+TkxoELUq UtTPF0MBaVNjvUZGH0M4674Kx1XZIpF1fYgDlaGX4ms2b0s/P7UDEtLXfkREkR/BOhWL hW4Rnky5DnNkCBCPYBwCzR/9oEzBa4XbA06yopQJw/bOZLdKkttxy2oddH3QdLBo2iGc HV1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=F49H5KuosimKSbPITu2/4l/AbqUjxYt+cmzwTjx9Cxc=; b=kLUGZlWbw48Leb3hEyonhFt81kZZADNB7vl/IuAK1ZTGCYjkeS8nhnlmwHUv3GYmgZ lDm16nTqLCL/5dQuFc2sEcaLTEDJRriufm+xkFsiKHL0c5BAjzH7gEiIHa2s3letP9hh 3gBm92UCyXNjMzcrEU/2nbxNh3R6MWTM8YPkfaPTpcEQykzcO/Jlb5tBENl3Lhe1v8gw ecWsjAgRrYq4eMmDdv3fR9JoQANeBNushv3Udtw4ANtrKB13DbDHeDwQYty2fOp5xs/q Fq+Zh/TWxrlF0nXZ+ytvJwBmBVHWb7c3+zOn8uRoig8KAw0q2qs9lL3f4/xBkBuHsSSV j7EA==
X-Gm-Message-State: ALoCoQmtx66QDVnrumnQImAoTmU/fsY1PVWG/coXE3sNTYCIsuWpYR8NqHiY8dQ/YRLmsHbBI56o0ZObU3PZWdHCPM/IeS0ohw==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr2474230vke.122.1452769730417;  Thu, 14 Jan 2016 03:08:50 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 03:08:50 -0800 (PST)
In-Reply-To: <CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com>
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com> <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com> <CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com>
Date: Thu, 14 Jan 2016 12:08:50 +0100
Message-ID: <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Frank Galligan <frankgalligan@gmail.com>, cellar@ietf.org
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ByXxtIv4oOLRRmvD_rTJX6He1jo>
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 11:08:52 -0000

2016-01-13 20:04 GMT+01:00 Frank Galligan <frankgalligan@gmail.com>:
>
>
> On Mon, Jan 11, 2016 at 2:19 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-07 23:39 GMT+01:00 Michael Bradshaw <mjbshaw@google.com>:
>> > Blocks can have a negative timecode in the following situations:
>> >
>> > Cluster Timecode + Block timecode < 0. This may happen if the Cluster's
>> > Timecode is near zero and the Block's timecode is sufficiently negative.
>> > CodecDelay > Cluster Timecode + Block timecode. I have a WebM file
>> > created
>> > by ffmpeg with an Opus audio track that has a CodecDelay of 6.5ms, and
>> > since
>> > the first block's timecode is zero, its computed timecode is -6.5ms.
>> > mkvinfo
>> > shows this frame has having a timecode of 0.000s, but ffprobe shows a
>> > PTS of
>> > -0.007ms (rounding up).
>> >
>> >
>> > The notes say that "Blocks with a negative Raw Timecode are not
>> > valid."[1]
>> > This page, however, does not mention CodecDelay's role in computing
>> > timecodes.
>> >
>> > Questions:
>> >
>> > Should the Specification Notes talk about CodecDelay's role in computing
>> > a
>> > block's timecode?
>> > Assuming the answer to the previous questions is "yes," is a block with
>> > a
>> > negative timecode due to a CodecDelay still invalid (i.e. is CodecDelay
>> > a
>> > part of Raw Timecodes)?
>>
>> IMO it should be invalid. Does this 6.5ms before 0.0 have any decoded
>> data at all ? If so it seems to be an abuse of the CodecDelay
>> (although the definition doesn't cover that).
>>
>> > --Michael
>> >
>> > [1]: http://matroska.org/technical/specs/notes.html
>> >
>> > _______________________________________________
>> > Cellar mailing list
>> > Cellar@ietf.org
>> > https://www.ietf.org/mailman/listinfo/cellar
>> >
>>
>>
>>
>> --
>> Steve Lhomme
>> Matroska association Chairman
>>
>> _______________________________________________
>> Cellar mailing list
>> Cellar@ietf.org
>> https://www.ietf.org/mailman/listinfo/cellar
>
> I don't think it is invalid. CodecDelay means a track needs to decode this
> data and throw it away as it is invalid data. Then all of the decoded data
> following CodecDelay will be valid.

Yes, that's what I meant by invalid. Although it produces data, it's
actually meant to be played. It's more like "seeding" samples. IIRC
that's how pre-roll in DirectShow works, you can send data with old
timestamps, but only data after the pre-roll timestamp will play.

> Most audio codecs have a "generated" coding delay.

Correct, even MP3 has it. Only Opus needed this to be known at the
container level for reasons that escape me now.


-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 04:04:39 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F6F81B339D for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:04:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.122
X-Spam-Level: 
X-Spam-Status: No, score=0.122 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2bNTs1uk7wdD for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:04:36 -0800 (PST)
Received: from mail-vk0-x22c.google.com (mail-vk0-x22c.google.com [IPv6:2607:f8b0:400c:c05::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4FDA1B339C for <cellar@ietf.org>; Thu, 14 Jan 2016 04:04:35 -0800 (PST)
Received: by mail-vk0-x22c.google.com with SMTP id k1so278563367vkb.2 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:04:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ZmEEkdieX6jNTAhgJkSingLjW7Rm87gEVEkJRUfdtKA=; b=p9TxdZ0PR2LTWh9yxI3TjbugdXE+tnN/U84iXxQoGGPy3BK1gbtorcEis4CXoGrOGo Yi98sTIi3caAhZDjaphFOVj7HBds39lIhecnghQ3wNnPXttzefLqI7hohGow/t4QHUze rJ6j4iCAqxESdkPyz0cW6B13ebDpZjUN6QhRD7M7W27QJf97MWQb2arw/S2E5oT63IJS CZP2jk6AiwgPnJ1nOu2ciT8aqtSstWK//jlS0RDQbb0BQ85Wzfv79vF1gonfUF4//zrG zCYhG6YdntGd0Idm7QXqDV1GEFa7OSjkAtsPRalnJMtWpn+Uf8R8QB2jaxp79hXh4Y0z DWZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ZmEEkdieX6jNTAhgJkSingLjW7Rm87gEVEkJRUfdtKA=; b=SiWybaPTLOQztSLBgW9LZMaSHNZcOerF91K2iKKLJJgkhARwj20B06Jc9A2+36Db0i 0XB702nmdosM89jKJqZ+bL2ZHxR35EJt0V8KokITxrK/r5194PW+gaBIdhAoylmLsBTB VA3UTWLOe0YahUo9TBEBDzy4zrvpY4XvsI1hWykeEAUU/+Nx1BmN9c7mA5HMKcAWrb6H lcoSeO3nYFI5FNXLvZHzAetKTorV0WG2BciDYloMJctvtsvaytMeH21Uf5je9z1IIzRQ Pp3CBbNQs9IXErHQ7btV8GHhpaOmCmbTtdzenXDYdU+rfW+AOD7wDzaiwKXZymaW4Zqi 71SQ==
X-Gm-Message-State: ALoCoQkxtrd2Vkbzl6hSI6mNmrBzt4qHzbKa81EmZyxuKSNIANO6ElPgb2yml6shcP1n9prV4FHZI7oDSZ/S1guYSO9Z1pZtNQ==
MIME-Version: 1.0
X-Received: by 10.31.47.130 with SMTP id v124mr2641618vkv.117.1452773074832; Thu, 14 Jan 2016 04:04:34 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 04:04:34 -0800 (PST)
In-Reply-To: <CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net> <CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com>
Date: Thu, 14 Jan 2016 13:04:34 +0100
Message-ID: <CAOXsMF+VYv5WXek_-vuQO1cgvrhLN7WRDNkHegYaQT0YwkhRbw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Frank Galligan <frankgalligan@gmail.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/15C3D-zwTshogEKgGo-PDei5Kbk>
Cc: Jerome Martinez <jerome@mediaarea.net>, Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:04:37 -0000

2016-01-06 23:30 GMT+01:00 Frank Galligan <frankgalligan@gmail.com>:
>
>
> On Tue, Jan 5, 2016 at 1:58 PM, Jerome Martinez <jerome@mediaarea.net>
> wrote:
>>
>> Thanks for your detailed proposal.
>> It is a lot of items, I am not expert in all domains but I have some
>> comments:
>
> Neither am I, but I figured we might as well start from a proposal and
> iterate from there.
>
>>
>> Name: MatrixCoefficients (or Matrix. You don't use "Colour" with
>> "Primaries" element, so I would not use it here too)
>
>  Sounds good to me.
>
>>
>>
>>
>>
>>
>> Element Name: BitsPerChannel
>> Level:        5
>> ID:           [55][A2]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      8
>> Type:         u
>> Description:  Number of bits per channel. This number may be less for
>> specific
>>               channels depending on the ColourFormat and
>> ChromaSubsampling.
>>
>>
>>
>> BitsPerChannel is misleading, used to be the technical count of bits.
>> I propose QuantizationBits or ValidBitsPerChannel
>> Not mandatory, not default (this value is often unknown)
>
> When authoring the video, I'm not sure why the software would not know the
> bits per channel. Can you describe a use case where the this is unknown?

When remuxing an older file. Either from Matroska source or AVI or other.

Now if elements are mandatory with a default value to "unknown" it's fine.

> I really think we should make this mandatory and have authoring software
> populate the element (or default) vs software thinking this was
> non-mandatory and not populating this element because the developer didn't
> think it was needed.
>>
>>
>>
>>
>> Element Name: ChromaSubsampling
>> Level:        5
>> ID:           [55][A3]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      0
>> Type:         u
>> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
>>
>>
>> FFV1, for example, permits "weird" chroma values, more possibilities.
>> And the following chroma values were seen at least once in some specs:
>> 4:4:4
>> 4:2:2
>> 4:2:1
>> 4:1:1
>> 4:2:0
>> 4:1:0
>> 3:1:1
>>
>> So having a list is maybe not the solution.
>> I like the way it is done in FFV1, except the power of 2 (so 3 can not be
>> expressed).
>> I propose to find a way for describing Chroma subsampling (e.g.
>> h_chroma_subsample and v_chroma_subsample; a ratio per plane with any number
>> of plane, think to alpha channel with a subsampling).
>
> I'm fine with coming up with a more extensible solution (Micheal asked for
> that as well).
>>
>>
>>
>>
>>
>>
>> Element Name: ColourRange
>> Level:        5
>> ID:           [55][A4]
>> Mandatory:    ma
>> Multiple:     -
>> Default:      1
>> Type:         u
>> Description:  (0: Unspecified, 1: Defined by
>> ColourMatrix/TransferFunction,
>>               2: Full range)
>>
>>
>> I don't understand the 1 value.
>> in at least AVC and HEVC, range is orthogonal to
>> ColourMatrix/TransferFunction.
>> I propose 0: unspecified 1: Broadcast range 1: Full range
>> and Default:0
>
> I thought someone mentioned to me before that the range could change based
> on the matrix and transfer function. I'm fine with your proposal.
>
>>
>>
>>
>> I got requests for having information about "Capture Gamma Equation" (or
>> "Tone Curve"), e.g. "same as transfer characteristic", Scene Linear, S-Log,
>> Cine-Log, Log-C...
>> I am not an expert of this domain, but looks like it is sometimes
>> important.
>
> Someone who knows more about  this should propose something to this list to
> be included.
>
>>
>> there are also other colour ideas with e.g. EBU Tech 3349.
>
> If this is important to people, then we could add this as well.
>>
>>
>>
>>
>>
>>
>> I can post a link to a formatted document if that would be easier. For
>> Matrix, Range, and Primaries, I'm pretty much using values that map directly
>> to values defined in FFmpeg.
>>
>>
>> I don't like the idea to use the source code of a piece of software for
>> lists. Too much subjective, may have historical flaws.
>> Lists from FFmpeg are nearly same as the ones in H.26x, I think I prefer
>> we base our list on their list (I don't think there are copyright issues
>> with such list) directly.
>
> I don't know the H.26x list. I started with my own, but then switched to
> FFmpeg as they already had an extensive list and assumed they have seen a
> lot of the video already.
>
> If deciding between H.26x and FFmpeg, my guess is that FFmpeg would be
> better as it handles a lot more video than H.26x.
>
>>
>> Or that we have a prefix with the origin of the list (e.g. ARIB STD-B67,
>> from Japan, is not in ITU/ISO list, a 18 will be used in the future for
>> something in ITU/ISO)
>
> Yeah HLG is relatively new, but has been requested by a few people.
>
>
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 04:13:33 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 56FD41B33B3 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:13:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.122
X-Spam-Level: 
X-Spam-Status: No, score=0.122 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k3u0ZZxnEWUD for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:13:30 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 756E91B33B2 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:13:30 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id i129so140512185vkb.0 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:13:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=30XF1TvDOiZWow3JfoNJ1S/fC5rhDBNVyTtA6zr41Qw=; b=iYC2VNbMPP2Nj2RswMYJ5ZIjWqxgpT12TkUfcYQ6DMKPzKrKyzkmjtAzhZuOc53WD6 MbF5rlqOL8YfvXIUmdNNTRpQ2h02FU6R+HpU1wkr5+kkd57bZcwDqjViBW2owRHSlqEn mxHgNAnnsm8lda0zsS1TjBgNGX2w+jJVjjGdafg9f9si+vkFBOPskBo3zJJ6tew/99lt OJohZdUcCbJkW7WAMe/LULKfOa9wWL+Mcwp+uVPnDJSrP4yNARsQxwC0jyPjRhp3oZtw 1FJ6zfrZmhuCxx+mAMpsDU9dAN8T1p4cHIL+u5gmaIzEV9PBYnKYIf28AKuOG/SRIxqR Nljg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=30XF1TvDOiZWow3JfoNJ1S/fC5rhDBNVyTtA6zr41Qw=; b=MDwFwFZytIDd2ovA1/t8Dnp5XalHy7DrJugvAd5pUVLhvA/wqcuKJeGm3s4MgkLxRM LrqExrb/F1mHIoE3+Mq8BfaMnIKYitF1nn2iodoI9O8XTJseiOcCY6Zr+gbzfchCFeZR fAc4wLMmpbT/jcPVBi3hF8i/eZeRVltLzo0XvuNbZ7e5bo3aEEur2kj90uxUDcEI59Sr +QjXEaQhkJs/n09YKftUW5RA7hm5fMHiz0dbGO8Vox/I8Dht/lNo/puEi6mqbZxjLDdp YUeXqACTOw57bg8JbWHrD33wFagUzbc4AwxX1i3BwfP54lCoyRqwuVw3Wo/9zpnoJyGQ D3zg==
X-Gm-Message-State: ALoCoQn4jEIAFYkItk1eTpFF8r02xwD4q2VZfwqXd1ZC40d0DfcldG2Fr8vG9yTDFyjvbQDOXikDR4Q3NHaJ9sXZCmR9ZZ9FyA==
MIME-Version: 1.0
X-Received: by 10.31.54.196 with SMTP id d187mr2716135vka.18.1452773609544; Thu, 14 Jan 2016 04:13:29 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 04:13:29 -0800 (PST)
In-Reply-To: <5BBDFD1A-E2B2-40D8-B61D-1B4000B84372@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com> <5693F2AD.4080206@gmx.de> <5BBDFD1A-E2B2-40D8-B61D-1B4000B84372@dericed.com>
Date: Thu, 14 Jan 2016 13:13:29 +0100
Message-ID: <CAOXsMF+o+_2L=sbOitp6pjrtVC5pNW9-kuXoObytcPoB1vXdkQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ezf3zN5zdn6G9nDK8arT2z_pyms>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft (+ minver and webm in EBML Schemas)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:13:32 -0000

2016-01-11 21:42 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 11, 2016, at 1:21 PM, Sebastian G. <bastik> wrote:
>>
>> 11.01.2016, 18:08 Dave Rice:
>>> Update FlagInterlaced  version 3
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> Element Name: FlagInterlaced
>>> Level:        4
>>> ID:           [9A]
>>> Mandatory:    mand.
>>> Multiple:     -
>>> Range:  0-2
>>> Default:      0
>>> Type:         u
>>> Description:         A flag to declare is the video is known to be prog=
ressive or interlaced and if applicable to declare details about the interl=
acement.
>>>                      0: undetermined
>>>                      1: interlacement (unknown field ordering)
>>
>> '(unknown field order)' is not required if it is split into to elements.
>> I have no preference for or against splitting it up.
>>
>>>                      2: progressive
>>>
>>> Element Name: FieldOrdering
>>> Level:        4
>>> ID:           [9D]
>>> Mandatory:    mand.
>>> Multiple:     -
>>> Range:  0-2
>>> Default:      0
>>> Type:         u
>>> Description:  Declare the field ordering of the video. If FlagInterlace=
d is not set to 1, this Element MUST be ignored.
>>>
>>> 0       undetermined
>>> 1       interlaced (bottom field first)
>>> 2       interlaced (top field first)
>>
>> I think that using '0' as no statement is a good decision.
>
> [=E2=80=A6]
>
> Based on comments, I made the following patch. I also renamed the propose=
d =E2=80=9CFieldOrdering=E2=80=9D element to =E2=80=9CField Order=E2=80=9D =
and change the meaning of FlagInterlaced=3D1 to simply =E2=80=9Cinterlaced=
=E2=80=9D.
>
> Creating the patch for specdata.xml brought up two new issues:
>
> The format of specdata.xml includes an attribute called =E2=80=98minver=
=E2=80=99 to refer to which version of Matroska began supporting the elemen=
t. According to matroska.org "Version 4 is currently work in progress. Ther=
e may be further additions to v4.=E2=80=9D; however there has been no disti=
nction within specdata.xml between =E2=80=98in progress=E2=80=99 and offici=
al. Perhaps Matroska should mark version 4 as official as-is and the ongoin=
g work within CELLAR would work towards a release of version 5. In the patc=
h below I used minver=3D=E2=80=9C5RC=E2=80=9D as (version 5 release candida=
te) in infer that it is not official (yet).
>
> Also specdata.xml includes a boolean attribute to say if the element is s=
upported by webm. FlagInterlaced is supported by webm (as correlates to htt=
p://www.webmproject.org/docs/container/), but I=E2=80=99m leaving webm=3D=
=E2=80=9C1=E2=80=9D off of the new element =E2=80=9CFieldOrder=E2=80=9D (as=
 I=E2=80=99m not on that team).
>
> From 5d7f7b8122232c20a3e39de70d587f684b48cd2f Mon Sep 17 00:00:00 2001
> From: dericed <dave@dericed.com>
> Date: Mon, 11 Jan 2016 15:11:26 -0500
> Subject: [PATCH] clarify FlagInterlaced and add FieldOrder element
>
> ---
>  spectool/specdata.xml | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/spectool/specdata.xml b/spectool/specdata.xml
> index 57abb97..2167e15 100644
> --- a/spectool/specdata.xml
> +++ b/spectool/specdata.xml
> @@ -109,7 +109,8 @@ between two successive fields at the output of the de=
coding process (see <a href
>    <element name=3D"TrackTranslateCodec" level=3D"4" id=3D"0x66BF" type=
=3D"uinteger" mandatory=3D"1" minver=3D"1" webm=3D"0">The <a href=3D"http:/=
/www.matroska.org/technical/specs/index.html#ChapProcessCodecID">chapter co=
dec</a> using this ID (0: Matroska Script, 1: DVD-menu).</element>
>    <element name=3D"TrackTranslateTrackID" level=3D"4" id=3D"0x66A5" type=
=3D"binary" mandatory=3D"1" minver=3D"1" webm=3D"0">The binary value used t=
o represent this track in the chapter codec data. The format depends on the=
 <a href=3D"http://www.matroska.org/technical/specs/index.html#ChapProcessC=
odecID">ChapProcessCodecID</a> used.</element>
>    <element name=3D"Video" cppname=3D"TrackVideo" level=3D"3" id=3D"0xE0"=
 type=3D"master" minver=3D"1">Video settings.</element>
> -  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" level=
=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" webm=3D"1=
" default=3D"0" range=3D"0-1">Set if the video is interlaced. (1 bit)</elem=
ent>
> +  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" level=
=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" webm=3D"1=
" default=3D"0" range=3D"0-2">A flag to declare is the video is known to be=
 progressive or interlaced and if applicable to declare details about the i=
nterlacement. (0: undetermined, 1: interlaced, 2: progressive)</element>
> +  <element name=3D"FieldOrder" cppname=3D"VideoFieldOrder" level=3D"4" i=
d=3D"0x9D" type=3D"uinteger" mandatory=3D"1" minver=3D"5RC" default=3D"0" r=
ange=3D"0-2">Declare the field ordering of the video. If FlagInterlaced is =
not set to 1, this Element MUST be ignored. (0: undetermined, 1: interlaced=
 with bottom field first, 2: interlaced with top field first)</element>

I'll have to check if the spec generating tools supports minver as a
non integer before merging this.

>    <element name=3D"StereoMode" cppname=3D"VideoStereoMode" level=3D"4" i=
d=3D"0x53B8" type=3D"uinteger" minver=3D"3" webm=3D"1" default=3D"0">Stereo=
-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-bottom=
 (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (ri=
ght is first), 5: checkboard (left is first), 6: row interleaved (right is =
first), 7: row interleaved (left is first), 8: column interleaved (right is=
 first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 11=
: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both =
eyes laced in one Block (left eye is first), 14 both eyes laced in one Bloc=
k (right eye is first)) . There are some more details on <a href=3D"http://=
www.matroska.org/technical/specs/notes.html#3D">3D support in the Specifica=
tion Notes</a>.</element>
>    <element name=3D"AlphaMode" cppname=3D"VideoAlphaMode" level=3D"4" id=
=3D"0x53C0" type=3D"uinteger" minver=3D"3" webm=3D"1" default=3D"0">Alpha V=
ideo Mode. Presence of this element indicates that the BlockAdditional elem=
ent could contain Alpha data.</element>  <element name=3D"OldStereoMode" le=
vel=3D"4" id=3D"0x53B9" type=3D"uinteger" maxver=3D"0" webm=3D"0" divx=3D"0=
">DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of li=
bmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes).</element>
>    <element name=3D"PixelWidth" cppname=3D"VideoPixelWidth" level=3D"4" i=
d=3D"0xB0" type=3D"uinteger" mandatory=3D"1" minver=3D"1" range=3D"not 0">W=
idth of the encoded video frames in pixels.</element>
> --
> 2.6.4
>
> Best Regards,
> Dave Rice
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 04:30:46 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D6E801B33EA for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:30:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JcxA5xETiKyc for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:30:43 -0800 (PST)
Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 650651B33E8 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:30:43 -0800 (PST)
Received: by mail-vk0-x22a.google.com with SMTP id i129so140736474vkb.0 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:30:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=9DPdQngJzGf3Y7ZY2kSQWoZLrYCWkPpjDUxf+dVAG40=; b=rFOFPCCJL9VDUzZbqOIVUZ/ZRiaK4x6mGI3LUZZqk1nRTrlxLzIV8/tKCAkuHsZ8Wn Z/Qe+GroEjbgOwAYmO/c8mCCHMp1Vusg6I0A+26MKDcMjC8CUiqtFrL5GWvb1B1G0wQr QigKjnWzc2j7TiO8xL176q1MtnmWOqONtEn8Q5g0t+Cnjvg5YvgQQ9zBCQwPDvrpOmMV 0C0SAYRIlzygAI/KZ1s7zK7erRaR1sDMnN26E63FzBESW+NARB9zrOdba3Ka0632e5Mm 1vM0fvyDdPvY0vyBE8aI5mL0g8BM9crTt3sO/OvY6qC5Ax9Ul6P/yaYb1WZqrrWxQNvn ezIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=9DPdQngJzGf3Y7ZY2kSQWoZLrYCWkPpjDUxf+dVAG40=; b=Dx3fi81L0+zTuauy9oZE2qZZHBEBFF7nMpV3vK/5VPGFw8UkPAReO9nP5xuKz0wcUo Q/mz5ciUNWEHVmgwvccqYdx1xE1ByHEhWVDaVF/357pwuXagIu2T+OTHqQ3FOZecCmUu t/K8m9yWJkG4t0764Bjt9CpmezW5uxiYLVMBBia6zRI6XLr1ROKdJgq+I72nrYc0wTah TYQRYI6D0JMHjk2GOkO0P2cGpn+gN5eZZfBZKo669AoeWXDX+swW1CCvaQ7mqy1bVyI1 i4rgcromyatBgG7ydaFhjlhqz+PCljc8Q9CmTtU76ONK/PqGgGfIXQ0YuczQblYrBbqs spPg==
X-Gm-Message-State: ALoCoQnx6g8efuvF1qQAQouseUWuyzl1VFImzK+QwhMe8RZuVnEUre/0CDkr+b8SG1xKeaVDordY/6CM+E5S7hj3AUVeiM1IIA==
MIME-Version: 1.0
X-Received: by 10.31.47.130 with SMTP id v124mr2758525vkv.117.1452774642562; Thu, 14 Jan 2016 04:30:42 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 04:30:42 -0800 (PST)
In-Reply-To: <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com>
Date: Thu, 14 Jan 2016 13:30:42 +0100
Message-ID: <CAOXsMFKU0eRA+pSiAJ=Rk+hSB7Lr0SRAAqx1bpT2LWtRG4BgMg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Michael Bradshaw <mjbshaw@google.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/p41a7L8Vlww91PErh9xg9IE8mS8>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:30:45 -0000

2016-01-11 19:12 GMT+01:00 Michael Bradshaw <mjbshaw@google.com>:
> On Sun, Jan 10, 2016 at 2:57 PM, Dave Rice <dave@dericed.com> wrote:
>>
>> Hi all,
>>
>> Here is an early draft of Elements for managing ReferenceTimecode tracks.
>> Matroska uses the term 'Timecode' to reference presentation timestamps,
>> whereas other formats (QuickTime, MXF) use 'Timecode' to reference a time
>> reference that is added to the timeline which is inpendent of the
>> presentation (i.e. a QuickTime file with a timecode track that starts at one
>> hour aka 1:00:00;00 would not cause a one hour delay before playback
>> starts). In the context of Matroska I am using ReferenceTimecode (for now)
>> to refer to QuickTime/MXF style timecode tracks.
>
>
> Will the current timecode elements (TimecodeScale, Timecode,
> ReferenceTimeCode, TrackTimecodeScale, and block's Timecode) be renamed to
> "timestamp" or "presentation timestamp" (or something like that)? I hope so.

Definitely, yes.

> I know this is tangential to your post, but I want to get a "big picture" in
> my mind of where this is going to end up. I'm also slightly concerned that
> using the name "ReferenceTimecode"  will be a bit confusing to developers,
> given the old ReferenceTimeCode (DivX trick track extensions) element.
>
> --Michael
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 04:37:36 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3DB121B3408 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:37:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qbCjoinhpLxq for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:37:33 -0800 (PST)
Received: from mail-vk0-x22e.google.com (mail-vk0-x22e.google.com [IPv6:2607:f8b0:400c:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2DB791B3406 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:37:33 -0800 (PST)
Received: by mail-vk0-x22e.google.com with SMTP id n1so124563723vkb.3 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:37:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=1+K09oSdFNUQ6MHbBUpW88aQbNSqi0yRofPXqBc6qPw=; b=bOM3WPpIM/8SKl6YY8KMxRN3EQT05P/rkLPCD6ZnrlF2fexdurlpcaQ/1Iaz9OOFrB jpjJZjBYcNixwmXkEQU4201fhkYY75gL5+5Q/+DtbRW5r0wKYpwnLkLrqBJ6247AjxVs eG3pOcxpQD/0svN6zsjpj+NhkKqtFLaEtx4ETdyo7seIUUAYHRLNoaLdrULskXW18XaE 3PlB3F9tIsPAm4zWqD99Czjd8ud0KNOMriJWy61b+JTrj4/+sHI/wpIyXMbw4qdjzi0o F+QCoMojNCDrjTB75k4Ahg7IgtZHEq33S/J445K+5Rb0LCinnzEy/FjF6RHCMwZxplYM 5ayQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=1+K09oSdFNUQ6MHbBUpW88aQbNSqi0yRofPXqBc6qPw=; b=F4HPNlNq4ldNArPyU5JnXlT+07boRjxey9gXhYWfzZnTc1iPlwzJjOB8LZHgitk8hy 7fuhs8hhmjm4Hci67mBDvdR9ZTRNwI1Vy/CK1O4Psxi6e8bgXD29YrVqZvZf1Y3pHR8E OEygjH15zvOxqCtCJ4j2ijZIFyCHmEFwjbKpvHnpBKWW5J3U0J2RHdrS2sH9YXpT0wXR zkeWGADSJUs7NZoHcqF/1WPJ4tS5R84MKK9k/3HyfF/M1gA4EywlAWEIi29LFUsReSnJ HfoEfW/6tRzt5yWEO7EH7NFxgkW6VJzamxP6Kl7yk392EvjfhztcMhv/3V8VhHcJISJ3 V2ug==
X-Gm-Message-State: ALoCoQmD1MEdG5/ISi/tDAeStK2E9ZfrQQwh7bUbyjqmoNXJJTnsVlfTQg8Yjzs0vkDGYKGNx2hcap36vKMjW0CSXE49rrNuYA==
MIME-Version: 1.0
X-Received: by 10.31.54.196 with SMTP id d187mr2814267vka.18.1452775052324; Thu, 14 Jan 2016 04:37:32 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 04:37:32 -0800 (PST)
In-Reply-To: <569393BA.1080006@mediaarea.net>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <569393BA.1080006@mediaarea.net>
Date: Thu, 14 Jan 2016 13:37:32 +0100
Message-ID: <CAOXsMFKxjtBRPUZAc+7HwKqjO6h7HSuYT4DDzMXfhQ=RzzODJA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Jerome Martinez <jerome@mediaarea.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/OmblBqDQQyhcUyrZb4xAd5iGKkQ>
Cc: Matroska Devel <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:37:35 -0000

2016-01-11 12:36 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
> Le 10/01/2016 23:57, Dave Rice a =C3=A9crit :
>>
>> Hi all,
>>
>> Here is an early draft of Elements for managing ReferenceTimecode tracks=
.
>> Matroska uses the term 'Timecode' to reference presentation timestamps,
>> whereas other formats (QuickTime, MXF) use 'Timecode' to reference a tim=
e
>> reference that is added to the timeline which is inpendent of the
>> presentation (i.e. a QuickTime file with a timecode track that starts at=
 one
>> hour aka 1:00:00;00 would not cause a one hour delay before playback
>> starts). In the context of Matroska I am using ReferenceTimecode (for no=
w)
>> to refer to QuickTime/MXF style timecode tracks.
>>
>> TrackType:
>> Add to the TrackType definition to list "0x13: timecode,"
>>
>> CodecID:
>> Add the following timecode Codec IDs.
>> Codec ID        | Name               | Description
>> T_QUICKTIME     | QuickTime Timecode | Timecode data as stored in
>> QuickTime, e.q. tmcd. The CodecPrivate contains all additional data that=
 is
>> stored in the 'tcmd' (timecode) atom in the QuickTime file.
>> Others? LTC? VITC?
>>
>> Proposed elements under TrackEntry:

Anything that's specific to a track type and not audio or video should
be under its own "umbrella" element, similar to Video [E0] and Audio
[E1].

>> Element Name: ReferenceTimecode
>> Level:        3
>> ID:           [EF]
>> Mandatory:    -
>> Multiple:     -
>> Default:      -
>> Type:         m
>> Description:  ReferenceTimecode settings
>>
>> Element Name: ReferenceTimecodeForm
>> Level:        4
>> ID:           [EF][A1]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:        0-2
>> Default:      0
>> Type:         u
>> Description:  Indicates the form of expression used to present the
>> timecode (using HH for hours, MM for minutes, SS for seconds, mmm for
>> milliseconds, ff for frames).
>>                0: HH:MM:SS.mmm
>>                1: HH:MM:SS:ff (non-drop frame)
>>                2: HH:MM:SS;ff (drop frame)
>
>
> I don't see the purpose of such flag.
> a time code is not a time stamp, so no "HH:MM:SS.mmm" in the stream
> directly. From my point of view, it is the role of the player to propose
> either HH:MM:SS:ff or HH:MM:SS.mmm display formats for the same content. =
the
> container should not contain such detail.
> non-drop frame vs drop frame: it is already in the private data (not only
> for T_QUICKTIME, such flag is in all timecode formats I have ever seen). =
Is
> there a need to repeat it?
> If you want such piece of information for being able to compute the timec=
ode
> without the private data, you also need the frame rate (as an integer).
>
>>
>> Element Name: ReferenceTimecode24HourMax
>> Level:        4
>> ID:           [EF][A2]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:        0-1
>> Default:      0
>> Type:         u
>> Description:  Indicates if the timecode should revert to a zero-value at
>> the time reference of 24 hours. Set to 1 if the ReferenceTimecode should=
 use
>> a maximum value of 24 hours and wrap values back to zero hours at that
>> point.
>
>
> it is already in the private data. Is there a need to repeat it?
>
>>
>> For storage of ReferenceTimecode values in Blocks, I suggest storing a
>> signed integer (ReferenceTimecode values may be negative). The stored si=
gned
>> integer would be the frame number
>
>
> which format of the integer? EBML? if "32-bit signed integer", the issue =
is
> with (theoretical) huge values: if QuickTime settings are with
> NegativeTimes=3D0, you can not store the big numbers.
>
> Actually, I don't like the idea to "standardize" the storage, because we
> define the CodecID as "T_QUICKTIME", so we should just raw copy the strea=
m
> from a .mov file, without modification (and without specifying it, as we
> don't specify the AVC stream for video. Reference is QuickTime
> specification).
> And with "T_QUICKTIME", we don't define our own format, so adding "increa=
sed
> by the duration of the corresponding video frame" in the definition does =
not
> make any sense: either we define a new timecode format, either we have th=
e
> goal to use QuickTime format, but mixing "T_QUICKTIME" and our own
> definition will create a lot of confusion.

I agree, the storage in Blocks is codec specific and should be defined
separately.

Also if the goal is to "tag" frames with a timecode, putting an extra
element in BlockGroup seem more logicial.

>>   (players supporting ReferenceTimecode should convert the frame number
>> accordingly to a drop-frame or non-drop-frame display). So if
>> ReferenceTimecodeForm=3D1, the Block stores 0x00BC, and the frame durati=
on is
>> NTSC, then the displayed value would be 00:00:06:08. The next value
>> 00:00:06:09, etc.
>>
>> I propose that one block per ReferenceTimecode not be required for simpl=
e
>> incrementing ReferenceTimecode, but that the ReferenceTimecode value of =
the
>> next video frame be considered to be either 1 greater than the previous
>> value (if ReferenceTimecodeForm is 1 or 2) or increased by the duration =
of
>> the corresponding video frame.
>
>
> Actually, technically and except when the timecode is "burned" in the vid=
eo
> frame, the timecode stream does not depend of any "video frame" or "video
> stream". You could have (in theory, totally useless in the reality, I kno=
w)
> a 24 fps timecode stream with a 25 fps video stream (actually, in .mov fi=
le,
> the time code stream has a frame rate defined by the time scale and durat=
ion
> of a frame, and also a "An 8-bit integer that contains the number of fram=
es
> per second for the timecode format. If the time is a counter, this is the
> number of frames for each counter tick." so you can have a 24 fps time co=
de
> at 30 fps beside a video stream at 25 fps)
> So linking this way timecode stream and video stream is risky. linking
> duration ("time stamp") and timecode is also risky.
>
> I propose to not try to "adapt" QuickTime time code, just dump it as it i=
s,
> without trying to "limit" the possibilities offered by QuickTime: so a
> timecode stream has a value (32-bit signed or unsigned integer) with a
> timestamp (Matroska "timecode") and a duration (useful if we want to know=
 if
> there is only one value or several values).
>
> Example of metadata from a QuickTime file
> - time scale from container (mdhd): 30000
> - total duration from container (mdhd) (in time scale units): 335335
> - sample duration from container (stts): 335335
> - tmcd time scale: 30000
> - tmcd frame duration (in time scale units): 1001
> - tmcd number of frames (time code "frame rate"): 30
> - tmcd drop frame flag: no
> (note: I don't know the behavior of QuickTime player in case of tmcd time
> scale !=3D mdhd time scale)
>
> so we need to keep such data in Matroska, e.g.:
> - CodecPrivate: tcmd content
> - no need of extra setting in the track header (drop frame flag, 24H flag
> are in tmcd)
> - Matroska TimecodeScale: 30000
> - Matroska Timecode of the unique frame: 0
> - Matroska BlockDuration of the unique frame: 335335
> - Block content: the 4 bytes from QuickTime timecode stream.
>
>>
>> If the ReferenceTimecode is non-continuous then a new ReferenceTimecode
>> value in a new Block with a new Timecode (Matroska meaning of Timecode)
>> could be inserted at the point of the discontinuity.
>
>
> It is not so easy to insert a new block and being sure it will be correct=
ly
> displayed, due to interlacement (when can we consider that the the next
> block is not present?) without BlockDuration.
>
> J=C3=A9r=C3=B4me
>
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 04:38:54 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 68A601B3408 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:38:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JT-5wFESIvmv for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:38:52 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [176.9.119.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5E6C91B3407 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:38:52 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id 347AEB17550 for <cellar@ietf.org>; Thu, 14 Jan 2016 13:38:50 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 8855861DE68; Thu, 14 Jan 2016 13:38:49 +0100 (CET)
Date: Thu, 14 Jan 2016 13:38:49 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160114123849.GA4063@bunkus.org>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com> <CAOXsMFKU0eRA+pSiAJ=Rk+hSB7Lr0SRAAqx1bpT2LWtRG4BgMg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="DQpa7ozeLWh50je8"
Content-Disposition: inline
In-Reply-To: <CAOXsMFKU0eRA+pSiAJ=Rk+hSB7Lr0SRAAqx1bpT2LWtRG4BgMg@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/5FGx-TlPyrbWDfw7oBmuNdJGcNE>
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:38:53 -0000

--DQpa7ozeLWh50je8
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hey,

> > Will the current timecode elements (TimecodeScale, Timecode,
> > ReferenceTimeCode, TrackTimecodeScale, and block's Timecode) be renamed to
> > "timestamp" or "presentation timestamp" (or something like that)? I hope so.
>
> Definitely, yes.

Please keep in mind that existing Matroska libraries (not just
libMatroska) name their functions/classes after the elements in the
specs. Renaming the elements in the specs requires either that the the
classes/functions in the libraries be renamed as well (breaking
compilation with each and every program out there) or we'll end up with
a severe discrepancy between the naming in the libraries and the specs
(especially if new elements will be introduced after the renaming with
names that were used before the naming!).

I don't like either outcome.

Kind regards,
mosu

--DQpa7ozeLWh50je8
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWl5bZAAoJEHSvAK3y4yyFpmwQAK04TLev3xNeqfYDp1oqT4mt
G/XAZ6HMu/ORGJLSi+6ez0/4rT1BRxML3SCtjgM2gF8VEL42/wS86rWJOnjp/26z
YNQDv6N6n3AUZVk5/+2dhHFBF4Jot4wiFjb/5J0HCIg3UtwrlMBPcTE1XM+CQI2p
kgm+gw9nFs4nmYlz0tNjAI1XcOt512bvMh8kq5I5617qd6aR1QcBo2AzoqwqYBa8
U9ne1QQmfPHXBKP1OHaYwsfCEkj8lWrqmxdZ+9orajDwLnoPUbc1PMfNOFQxIII2
IhLhwynIxoWMXlDLnpeJpf6qAeRh+Uo4vAFnKQq0Uk3v11POFyb72fzBamTu93W4
8ttQBjn3RmG3C624D7d/7ZROdw4wStwBIZrn8TLsr9fiRyRlNQYY5FCxYA6A+4lt
uhG7z2GS2cE6QChc7QvL/PGEAYOPCNiHC9PFz9nNfaGceVSxLi6P04xo2FvRwbPU
O3mxKVMe0TA6hh+CNF3CEs7G46Jj2djOpRHe+dSYIeArSSnr3wofmDXleEbSuRzu
H0tXqGFU+ZD0chP5E9c9sJwgzXQfkkJdtOZcSsTFzxNs8geTGXzwe0XNjkbSK0XZ
ZYR2mqqjp6w10hP/od+N72QZpJtjT3Ztzw6PYNPoeN3QQ7ZUVRUJF5YXJeXOrxhl
7v/geGojuteRroQJxCR3
=VYnN
-----END PGP SIGNATURE-----

--DQpa7ozeLWh50je8--


From nobody Thu Jan 14 04:42:22 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 25FE21B340E for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:42:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WTI1Vuv0gbkg for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:42:20 -0800 (PST)
Received: from mail-vk0-x234.google.com (mail-vk0-x234.google.com [IPv6:2607:f8b0:400c:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EDF1D1B340C for <cellar@ietf.org>; Thu, 14 Jan 2016 04:42:19 -0800 (PST)
Received: by mail-vk0-x234.google.com with SMTP id n1so124629077vkb.3 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:42:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=0gubVU4ygltfF3mPQfvsEqb1FUQEBk6BiwSsRi6ye6Q=; b=wOxbRwvd9Qm2ZL7HOSI39tssDv4H0zc0Sq1++A62/RZRfKCvurCIqawF1+5IGD37rv FysbPnldlq5MOthKEGFwFh1NQyFc199JoW3ZRZDq4uQ7WUK8kq/CHdfwcf5uglgQ5oZ1 ipQgaETmVBK6bODnGe2LondDi+2nsNMErPMAmHpVVvHwuYrvHwcct78tdwOOP2LUSQJ7 lXQuKI2rQBbLsgZ2hBL7tSkqRIsDCSo+bXovQvJdHDiyf7QiHnqhh5ChfbvDCCocsPs8 nRgwopwTmJe3HMNeBgr/byy3fkPYBBRmPVY753S29TOV3TttoRqh6SCY6l5Wx71nu92S n0/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=0gubVU4ygltfF3mPQfvsEqb1FUQEBk6BiwSsRi6ye6Q=; b=VOCPSBIUKXctF/Z6umEHlWSRIt4/eF0EgVM+o6xeHQrUsVs1D55CLnaZM+1Bvsz/D7 NMca1NXpvC/21ZCaWxnti0olpjaHnRsakNwh5LHdDHN+yUr+AV1SjR1mh5hs4CT5XrrQ tclJCFHta+l/j6Uqh7u2RcmpCnrZ9qo6Vo1w73uTqhfgyQjgMsel2tQsIH4Ftc4eYIy0 E3oTSQ4Pv6NNnhBNEBuyL9yetsfwS9VdAzlFbgfWtLdBQGrv1y2siQyiN0e9BUrdFyCC 1vGWxuE6Nmqy06zVlIqC7KXrn1mr7KYsuPuKdwEWdEtyw3Qx6cFzHZTFGUOt0nqeaOEB MTAA==
X-Gm-Message-State: ALoCoQmo+MNrUTrh5DW7dnhCtc3jC2wiyUVqj5f9bOj9MPviav9+HavheNLvU1kb5/JQhY6ARWOuTrelM3nAwRXwXp1s8XVJ/w==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr2820978vkd.87.1452775339111; Thu, 14 Jan 2016 04:42:19 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Thu, 14 Jan 2016 04:42:19 -0800 (PST)
In-Reply-To: <20160114123849.GA4063@bunkus.org>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com> <CAOXsMFKU0eRA+pSiAJ=Rk+hSB7Lr0SRAAqx1bpT2LWtRG4BgMg@mail.gmail.com> <20160114123849.GA4063@bunkus.org>
Date: Thu, 14 Jan 2016 13:42:19 +0100
Message-ID: <CAOXsMF+fhrdoOrP_t1tMQKFhuMrVr9WykijagbPCe9p5ZomP_w@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Moritz Bunkus <moritz@bunkus.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/A6Jtq5ODvzwgcaIf7_ergcku9OU>
Cc: cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:42:21 -0000

2016-01-14 13:38 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
> Hey,
>
>> > Will the current timecode elements (TimecodeScale, Timecode,
>> > ReferenceTimeCode, TrackTimecodeScale, and block's Timecode) be renamed to
>> > "timestamp" or "presentation timestamp" (or something like that)? I hope so.
>>
>> Definitely, yes.
>
> Please keep in mind that existing Matroska libraries (not just
> libMatroska) name their functions/classes after the elements in the
> specs. Renaming the elements in the specs requires either that the the
> classes/functions in the libraries be renamed as well (breaking
> compilation with each and every program out there) or we'll end up with
> a severe discrepancy between the naming in the libraries and the specs
> (especially if new elements will be introduced after the renaming with
> names that were used before the naming!).

The spec file already has a way to override the name of the C++ class
when it doesn't match exactly the one displayed in the specs (usually
shorter or just to keep backward compatibility). We just need to use
this for such elements.
Maybe also add some typedefs to have both old and new names.

> I don't like either outcome.
>
> Kind regards,
> mosu
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 14 04:50:06 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EFDDF1B3436 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:50:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fAwc04Lrp3TA for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 04:50:03 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [176.9.119.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 853981B33B5 for <cellar@ietf.org>; Thu, 14 Jan 2016 04:50:03 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id 6D421B19ED8; Thu, 14 Jan 2016 13:50:01 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 9B3BF61DED3; Thu, 14 Jan 2016 13:50:00 +0100 (CET)
Date: Thu, 14 Jan 2016 13:50:00 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160114125000.GB4063@bunkus.org>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com> <CAOXsMFKU0eRA+pSiAJ=Rk+hSB7Lr0SRAAqx1bpT2LWtRG4BgMg@mail.gmail.com> <20160114123849.GA4063@bunkus.org> <CAOXsMF+fhrdoOrP_t1tMQKFhuMrVr9WykijagbPCe9p5ZomP_w@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Dex7YdYhTh9daYX7"
Content-Disposition: inline
In-Reply-To: <CAOXsMF+fhrdoOrP_t1tMQKFhuMrVr9WykijagbPCe9p5ZomP_w@mail.gmail.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/1ksPZRSPbVmPkQxvmlM4mSkTSrQ>
Cc: matroska-devel@lists.matroska.org
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 12:50:05 -0000

--Dex7YdYhTh9daYX7
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hey,

> 2016-01-14 13:38 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:

> > Please keep in mind that existing Matroska libraries (not just
> > libMatroska) name their functions/classes after the elements in the
> > specs. Renaming the elements in the specs requires either that the the
> > classes/functions in the libraries be renamed as well (breaking
> > compilation with each and every program out there) or we'll end up with
> > a severe discrepancy between the naming in the libraries and the specs
> > (especially if new elements will be introduced after the renaming with
> > names that were used before the naming!).
>
> The spec file already has a way to override the name of the C++ class
> when it doesn't match exactly the one displayed in the specs (usually
> shorter or just to keep backward compatibility). We just need to use
> this for such elements.
> Maybe also add some typedefs to have both old and new names.

What I meant:

- Rename e.g. ClusterTimecode to ClusterTimestamp in the specs
- Leave the class name the same in the library (ClusterTimecode)
- Then introduce elements in the spec dealing with actual timecodes
  (e.g. ReferenceTimecode) which would translate into a class name
  ReferenceTimecode

Now you have the situation that a developer working with such a library
would have several classes with Timecode in their name and some of
those would deal with timestamps and others with timecodes. Highly
confusing to anyone not familiar with our current discussion.

Also: functions like KaxBlockGroup::GlobalTimecode() =E2=80=93 those return
timestamps. If not returned it would be very, very confusing for new
users to determine what they actually return, timestamps or timecodes.

Kind regards,
mosu

--Dex7YdYhTh9daYX7
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWl5l4AAoJEHSvAK3y4yyFRNAQAL2xJdRlZ8alezh+qYVp/F+i
rLTQNXwhZtz618ZOEC9lSNE2nsvJy1Ywl5UODUa/Msb5D1I232wYPpqCh//FepyZ
ZYAIo+mHzp7ld7yCS2ePi1nCh51Yoj7AePyPQ80amvj0YXhhnmQXHvEUs19fh3Bh
HKCFlJcNUmvYCrOb4LEFNaz/cjYBVFgD3nr5HcCearfYvaxlFkEMDsG77Xfflm0d
IH/YXdDKztg8NR79oR4bpr8Ruflq3vJ/uyoQU6+CJ5LL3YjSPDPSbos0W5cUhLUw
gS2eQz4xZDsqrx73B+C10SfYGA01bVdwgmdWblNz+oZLuhinWGZ25GRRTgI4wzdX
qYQ5BFGpxb7reDswJg5gNdzISWmDTjI85+sN3pRrHkZ+a0J3FcKxma/c76TXzBTl
8goYkqrzEfBGeq0M/2PuZ2xMepqe3u3c93tKEyHeprVJUhoRpUObC8qiAL513gQK
iEZ16OsoyOpB10JLpW7yaDFKmAZvY2tYYuy3UnM3eZgP+Vx3KHMM0eRmmNzfIM7L
pUK44/lXekeTndmUuMPsrkqxSmdJ/z9Ftq/JTBd3AE6IOnLE8cvpjN5sMhzIl2A6
6kF3IKtsMn7Gt8AbMxf8qXREyyxP4TZMOH54IKDB0hfHPTY4LJbKK7TfxkdKodJf
qSZK51pIm4Jq+uuAl9F3
=YTdS
-----END PGP SIGNATURE-----

--Dex7YdYhTh9daYX7--


From nobody Thu Jan 14 05:52:47 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B3D3B1B3515 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 05:52:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZRvSb-34MWji for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 05:52:42 -0800 (PST)
Received: from mo69.mail-out.ovh.net (mo69.mail-out.ovh.net [178.32.228.69]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7999C1B3517 for <cellar@ietf.org>; Thu, 14 Jan 2016 05:52:42 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id 6C47EFFB593 for <cellar@ietf.org>; Thu, 14 Jan 2016 14:52:40 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 14 Jan 2016 15:52:38 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 14 Jan 2016 15:52:36 +0200
To: cellar@ietf.org
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <569393BA.1080006@mediaarea.net> <CAOXsMFKxjtBRPUZAc+7HwKqjO6h7HSuYT4DDzMXfhQ=RzzODJA@mail.gmail.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <5697A820.7030806@mediaarea.net>
Date: Thu, 14 Jan 2016 14:52:32 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <CAOXsMFKxjtBRPUZAc+7HwKqjO6h7HSuYT4DDzMXfhQ=RzzODJA@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 12115527423245160594
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrkeelgdehfecutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Yt8tgtQLYzOBs4LWHdNGygyunIA>
Subject: Re: [Cellar] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 13:52:44 -0000

Le 14/01/2016 13:37, Steve Lhomme a Ã©crit :
>
> Also if the goal is to "tag" frames with a timecode, putting an extra
> element in BlockGroup seem more logicial.
>

There are several points of view, depending of the background of people.
End user usually considers that a time code is tied to a video frame. 
Note that depending of the end user, he may be interested in the 
QuickTime time code, the VITC time code, the LTC time code, the SDTI 
time code... And these time codes may be different (in addition to 
cryptic names :) ).
Technical person sees that QuickTime time code has its own track number, 
its own frame rate (usually same as the tied video track, but it is not 
mandatory by any spec), its own count of frames, as any video or audio 
track, so it is an independent track. QuickTime file format permits a 
reference (saying that this time code track is tied to video track with 
ID x, looks like that references are not supported by Matroska), not always.

Putting an extra element in BlockGroup from a QuickTime time code track 
means that we do a "transcode" (with potential loss of data, as any 
transcode), not a "transmux" (raw copy of a track). It is possible, with 
pros (e.g. just an element) and cons (less possibilities, sometimes 
input can not be mapped to a specific frame).

JÃ©rÃ´me


From nobody Thu Jan 14 09:39:41 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6CA211A6F6B for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 09:39:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id io0cMYeEOdXp for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 09:39:38 -0800 (PST)
Received: from mail-io0-x232.google.com (mail-io0-x232.google.com [IPv6:2607:f8b0:4001:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DFB321A6F59 for <cellar@ietf.org>; Thu, 14 Jan 2016 09:39:37 -0800 (PST)
Received: by mail-io0-x232.google.com with SMTP id 1so413590782ion.1 for <cellar@ietf.org>; Thu, 14 Jan 2016 09:39:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=oVG0jlxgMH58+klQLReJet9zVcwdXPczFD2PNtFL0wI=; b=LVHCVffQDdZ5UXmi3ZOk7FdV/JajWEcUSs7qTekLwx02JvAB8663y+IjAevlS8FudB VIpU2/kHI+gSJYrz465nqnvLLrqUMKsnj4pH3mlEQXCsiJ0cJ06xAlbCP0cnvXyTyCco xbLfpYV9PeRqsVlLA4yuUOhIISXK76b/wTJ9Y2b2/FJ1x1PIpwrIU4yI8IIAQAYuyRY/ 137wODCT5aVSCn9w3H+oPdc+xzrzMXxZQNcl0DXbyQJEkHQKPDDGHburb3PB8TQ8jcNQ 74EMPIgTHRVbZkSL0Vp3GZtPtqUkv1pawE4fKon9SIFUspPIXVgrmC+arxzl0fllWeOk O2oQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=oVG0jlxgMH58+klQLReJet9zVcwdXPczFD2PNtFL0wI=; b=bPvPfsIP3PnU0u8wJGnHI7rjSZ/1ya1hsx5bIJ6IRND6oY60/5o6AcbmMPvTibmhRU 6nAsCvaRola1+QCKJG4u9KKm638bDfnZ7bSvOdzMORM8BaSsfl54R/O+i0aEz3fueNVz HXdaV3W1GKJ4aTmo3P9/+i/F/unrQR1QUGN3Ps4G8/vsUVJ+Xix9wIet4ULj0JZ/Md15 pwq2M8T5oXDldy66e5wnRaOq36+kc3z5pBca9SZlBIRAQclIjCxMhglaK6+QxTfEHuJn cHZszJbaGeMyvAcdryQ7mQ59XhxEnZ41l9Js/XU/J3++fBpZfN6wGtcf5lnyBme3V4Ei b/0A==
X-Gm-Message-State: ALoCoQl882Z8NaIQKGe3swO4SmBa4/69v87ev6W2pKp0ntmbwldFD0lLMmlQx4YsJvv8UE9qr4YHGdDGO1UMilPJdzSJRl35yg==
MIME-Version: 1.0
X-Received: by 10.107.8.135 with SMTP id h7mr6032283ioi.93.1452793177294; Thu, 14 Jan 2016 09:39:37 -0800 (PST)
Received: by 10.36.212.198 with HTTP; Thu, 14 Jan 2016 09:39:37 -0800 (PST)
In-Reply-To: <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com>
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com> <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com> <CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com> <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com>
Date: Thu, 14 Jan 2016 09:39:37 -0800
Message-ID: <CAJGH+Usa-6psFXBfss1LtohhBtg_BYyCK9xkj3C72seDRU3X3g@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
Content-Type: multipart/alternative; boundary=001a113fb8a443ce9a05294ec522
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/KNJ3AudEVOevmLAnG4Az61yAf3U>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 17:39:40 -0000

--001a113fb8a443ce9a05294ec522
Content-Type: text/plain; charset=UTF-8

On Thu, Jan 14, 2016 at 3:08 AM, Steve Lhomme <slhomme@matroska.org> wrote:

> 2016-01-13 20:04 GMT+01:00 Frank Galligan <frankgalligan@gmail.com>:
> >
> >
> > On Mon, Jan 11, 2016 at 2:19 AM, Steve Lhomme <slhomme@matroska.org>
> wrote:
> >>
> >> 2016-01-07 23:39 GMT+01:00 Michael Bradshaw <mjbshaw@google.com>:
> >> > Blocks can have a negative timecode in the following situations:
> >> >
> >> > Cluster Timecode + Block timecode < 0. This may happen if the
> Cluster's
> >> > Timecode is near zero and the Block's timecode is sufficiently
> negative.
> >> > CodecDelay > Cluster Timecode + Block timecode. I have a WebM file
> >> > created
> >> > by ffmpeg with an Opus audio track that has a CodecDelay of 6.5ms, and
> >> > since
> >> > the first block's timecode is zero, its computed timecode is -6.5ms.
> >> > mkvinfo
> >> > shows this frame has having a timecode of 0.000s, but ffprobe shows a
> >> > PTS of
> >> > -0.007ms (rounding up).
> >> >
> >> >
> >> > The notes say that "Blocks with a negative Raw Timecode are not
> >> > valid."[1]
> >> > This page, however, does not mention CodecDelay's role in computing
> >> > timecodes.
> >> >
> >> > Questions:
> >> >
> >> > Should the Specification Notes talk about CodecDelay's role in
> computing
> >> > a
> >> > block's timecode?
> >> > Assuming the answer to the previous questions is "yes," is a block
> with
> >> > a
> >> > negative timecode due to a CodecDelay still invalid (i.e. is
> CodecDelay
> >> > a
> >> > part of Raw Timecodes)?
> >>
> >> IMO it should be invalid. Does this 6.5ms before 0.0 have any decoded
> >> data at all ? If so it seems to be an abuse of the CodecDelay
> >> (although the definition doesn't cover that).
> >>
> >> > --Michael
> >> >
> >> > [1]: http://matroska.org/technical/specs/notes.html
> >> >
> >> > _______________________________________________
> >> > Cellar mailing list
> >> > Cellar@ietf.org
> >> > https://www.ietf.org/mailman/listinfo/cellar
> >> >
> >>
> >>
> >>
> >> --
> >> Steve Lhomme
> >> Matroska association Chairman
> >>
> >> _______________________________________________
> >> Cellar mailing list
> >> Cellar@ietf.org
> >> https://www.ietf.org/mailman/listinfo/cellar
> >
> > I don't think it is invalid. CodecDelay means a track needs to decode
> this
> > data and throw it away as it is invalid data. Then all of the decoded
> data
> > following CodecDelay will be valid.
>
> Yes, that's what I meant by invalid. Although it produces data, it's
> actually meant to be played. It's more like "seeding" samples. IIRC
> that's how pre-roll in DirectShow works, you can send data with old
> timestamps, but only data after the pre-roll timestamp will play.
>
> > Most audio codecs have a "generated" coding delay.
>
> Correct, even MP3 has it. Only Opus needed this to be known at the
> container level for reasons that escape me now.
>
>
> --
> Steve Lhomme
> Matroska association Chairman
>
I think all of the Matroska audio tracks before/without CodecDelay will be
technically rendered wrong, but I think the number of pre-roll samples for
those codecs were small. I think Vorbis was less than 3 milliseconds. With
Opus, the pre-roll could be much larger, to the point that some people
might have noticed AV sync issues. Also trying to splice audio, for use
cases like adaptive would be very hard, if players did not know
about CodecDelay.

So I know when we first started talking about CodecDelay, it wasn't only
for Opus. Opus was the catalyst.

--001a113fb8a443ce9a05294ec522
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Jan 14, 2016 at 3:08 AM, Steve Lhomme <span dir=3D"ltr">&lt;<a =
href=3D"mailto:slhomme@matroska.org" target=3D"_blank">slhomme@matroska.org=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204)=
;border-left-style:solid;padding-left:1ex"><div class=3D""><div class=3D"h5=
">2016-01-13 20:04 GMT+01:00 Frank Galligan &lt;<a href=3D"mailto:frankgall=
igan@gmail.com">frankgalligan@gmail.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Jan 11, 2016 at 2:19 AM, Steve Lhomme &lt;<a href=3D"mailto:sl=
homme@matroska.org">slhomme@matroska.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; 2016-01-07 23:39 GMT+01:00 Michael Bradshaw &lt;<a href=3D"mailto:=
mjbshaw@google.com">mjbshaw@google.com</a>&gt;:<br>
&gt;&gt; &gt; Blocks can have a negative timecode in the following situatio=
ns:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Cluster Timecode + Block timecode &lt; 0. This may happen if =
the Cluster&#39;s<br>
&gt;&gt; &gt; Timecode is near zero and the Block&#39;s timecode is suffici=
ently negative.<br>
&gt;&gt; &gt; CodecDelay &gt; Cluster Timecode + Block timecode. I have a W=
ebM file<br>
&gt;&gt; &gt; created<br>
&gt;&gt; &gt; by ffmpeg with an Opus audio track that has a CodecDelay of 6=
.5ms, and<br>
&gt;&gt; &gt; since<br>
&gt;&gt; &gt; the first block&#39;s timecode is zero, its computed timecode=
 is -6.5ms.<br>
&gt;&gt; &gt; mkvinfo<br>
&gt;&gt; &gt; shows this frame has having a timecode of 0.000s, but ffprobe=
 shows a<br>
&gt;&gt; &gt; PTS of<br>
&gt;&gt; &gt; -0.007ms (rounding up).<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The notes say that &quot;Blocks with a negative Raw Timecode =
are not<br>
&gt;&gt; &gt; valid.&quot;[1]<br>
&gt;&gt; &gt; This page, however, does not mention CodecDelay&#39;s role in=
 computing<br>
&gt;&gt; &gt; timecodes.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Questions:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Should the Specification Notes talk about CodecDelay&#39;s ro=
le in computing<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; block&#39;s timecode?<br>
&gt;&gt; &gt; Assuming the answer to the previous questions is &quot;yes,&q=
uot; is a block with<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; negative timecode due to a CodecDelay still invalid (i.e. is =
CodecDelay<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; part of Raw Timecodes)?<br>
&gt;&gt;<br>
&gt;&gt; IMO it should be invalid. Does this 6.5ms before 0.0 have any deco=
ded<br>
&gt;&gt; data at all ? If so it seems to be an abuse of the CodecDelay<br>
&gt;&gt; (although the definition doesn&#39;t cover that).<br>
&gt;&gt;<br>
&gt;&gt; &gt; --Michael<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; [1]: <a href=3D"http://matroska.org/technical/specs/notes.htm=
l" rel=3D"noreferrer" target=3D"_blank">http://matroska.org/technical/specs=
/notes.html</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; Cellar mailing list<br>
&gt;&gt; &gt; <a href=3D"mailto:Cellar@ietf.org">Cellar@ietf.org</a><br>
&gt;&gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/cellar" rel=
=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/cel=
lar</a><br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Steve Lhomme<br>
&gt;&gt; Matroska association Chairman<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Cellar mailing list<br>
&gt;&gt; <a href=3D"mailto:Cellar@ietf.org">Cellar@ietf.org</a><br>
&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/cellar" rel=3D"no=
referrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/cellar</a=
><br>
&gt;<br>
&gt; I don&#39;t think it is invalid. CodecDelay means a track needs to dec=
ode this<br>
&gt; data and throw it away as it is invalid data. Then all of the decoded =
data<br>
&gt; following CodecDelay will be valid.<br>
<br>
</div></div>Yes, that&#39;s what I meant by invalid. Although it produces d=
ata, it&#39;s<br>
actually meant to be played. It&#39;s more like &quot;seeding&quot; samples=
. IIRC<br>
that&#39;s how pre-roll in DirectShow works, you can send data with old<br>
timestamps, but only data after the pre-roll timestamp will play.<br>
<span class=3D""><br>
&gt; Most audio codecs have a &quot;generated&quot; coding delay.<br>
<br>
</span>Correct, even MP3 has it. Only Opus needed this to be known at the<b=
r>
container level for reasons that escape me now.<br>
<div class=3D""><div class=3D"h5"><br>
<br>
--<br>
Steve Lhomme<br>
Matroska association Chairman<br></div></div></blockquote><div>I think all =
of the Matroska audio tracks before/without CodecDelay will be technically =
rendered wrong, but I think the number of pre-roll samples for those codecs=
 were small. I think Vorbis was less than 3 milliseconds. With Opus, the pr=
e-roll could be much larger, to the point that some people might have notic=
ed AV sync issues. Also trying to splice audio, for use cases like adaptive=
 would be very hard, if players did not know about=C2=A0CodecDelay.=C2=A0</=
div><div><br></div><div>So I know when we first started talking about Codec=
Delay, it wasn&#39;t only for Opus. Opus was the catalyst.=C2=A0</div></div=
><br></div></div>

--001a113fb8a443ce9a05294ec522--


From nobody Thu Jan 14 09:54:39 2016
Return-Path: <bastik.public.mailinglist@gmx.de>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 21FBA1A6FEC for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 09:54:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B6ybKdoshMLr for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 09:54:35 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C58481A6FE8 for <cellar@ietf.org>; Thu, 14 Jan 2016 09:54:34 -0800 (PST)
Received: from [192.168.2.129] ([188.100.175.162]) by mail.gmx.com (mrgmx002) with ESMTPSA (Nemesis) id 0MHHZT-1aNKsV2rtT-00E3tX for <cellar@ietf.org>; Thu, 14 Jan 2016 18:54:32 +0100
To: cellar@ietf.org
References: <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <20160112133656.GJ4063@bunkus.org>
From: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Openpgp: id=BFE90DE515B6F548CDE298939902921C2B944DAE
X-Enigmail-Draft-Status: N1010
Message-ID: <5697E0D6.5000906@gmx.de>
Date: Thu, 14 Jan 2016 18:54:30 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <20160112133656.GJ4063@bunkus.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:yyE5uW9RrtOuJw5XdONnr5FVhEobclthpfdc3k3LKQaTjJeeOGN fy5W2rLwv28j7BfD0TH2dVAmkHA3xEYetl72McNglDEs5eARkGuZMGLK8uhZrDtVy8ACjvg tr4K3AXO+HII1qc+xK97SsJ9f83iQ/tep6diBoo3yGhOwjeqif7qXpMA4yCMd6BzFuO+R7w fADu7TZUdArUiDLjY75IA==
X-UI-Out-Filterresults: notjunk:1;V01:K0:n07p7/6U0Q4=:4Iw8ue3GfaC6sMHhr66TSf yOFOlmvSunpYD6ca8o25Ze+aqWGPFiUUXWuzJr7eOEwJ7hZrhdk/6X3Shsjs1bNbf/bwkI9Jf /W3Kh+N4T3xoP3NTyjkaPO9VXXWqw/79a/1Kl57ZxcLtcLSAQ/Ce2pqsa8R4WayionNxNImKw m7w0S/VP/cXN5sjUp5LRUimxLpWGEgjgb/DMpvnX0jBgZWHqhkKCyxuAphFCq7PJJ9XSa0GdN pwvVJxIn2JRxPuD1BvoWj1F8HDVqsaZC0ywGyPte6ZPNdZLZmTsPPP1G0vLkJvL/Ylz3bPsXH iw6mUdOUpReKdhTHUcdjkH8YLSo/fL0jVLBgiWC/X71I33eNTG2+iyQ5OxucZntUJZZ7lCbaZ dpr8bxvBLpBuoB/xlf1bd74wGsY4xRN4VAjADNNyZ1Ky/s2XJQJIRGYtGdUsspoJszX5n3WrJ gRUWGK8hmGOpdv6fLPWHFo4QFz7IsRaFZLvKLmJhqC2RurGKEAuLWuWgHnQh6t1bva4tpTzvb WPa5v5+38dEPIZLV4zTZiEh0KvS6JP5yP9zhgme507c5OUUIpyKymmN50jP+oa1pW4XextkZq 1/4hXi2zgDVaKCBiZwQPFRWqSp1+CYNrVsH6vsld1Y+MnwieFZrrpZxsU9M0965FHtrDSlpUv 96Z8WGTsL4YzWRKsiTe6p8o58q+Hh0qlh5qb/JQ4w0ei14KqHhYOuVRdm7LkAXO9WCnYCzp41 GSePUb0gARQjQwobSpjq7Q0jPDWwO6gXAeYYG5R2oEFkiGMKkHWBnN5E7akes9THygZvrrYJ9 78/2iOB
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/AucJxRjKBhWBFVtHtFRO6D6WsDM>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 17:54:37 -0000

12.01.2016, 14:36 Moritz Bunkus:
> Hey,
> 
>> From a sample set of 59,881 Matroska files uploaded to archive.org
>> only 119 of them include CRC-32 Elements. Almost 0.2%! Additionally
>> the webm Document Type lists the CRC-32 Element as unsupported. So I
>> think itâ€™s true that itâ€™s rarely bothered with. The implementation of
>> CRC-32 Elements does add many complications and perhaps demand has
>> been too low to resolve them. Moritz may have comments here.
> 
> That's pretty much spot on. The CRC32 element was added comparatively
> late; a lot of muxers had already been created by that time.
> 
> Most requests I've received where more concerned with error recovery
> than with error detection. This is something that CRC32 wasn't meant
> for; additionally CRC32 elements weren't meant to be written in the
> cluster elements which make up the bulk of a Matroska file's data.
> 
> Yes, there is a feature request[1] for adding support in mkvmerge and
> mkvinfo. It has been created in 2010, but except for those two people
> mentioned in the bug I haven't really received any other requests for
> such a functionality.
> 
> Kind regards,
> mosu
> 
> [1] https://github.com/mbunkus/mkvtoolnix/issues/543
> 

Hi,

to said ticket you added two entries [2][3] which mention a problem with
verifying checksums.

Would that be much easier to handle if the CRC would be about the data
that should be present in the file, but are omitted due to default
values aren't written? Compared to creating a checksum of the data that
actually get written and verifying said checksum.

I had a rather strong opinion towards including a CRC that covers the
elements that are written. I'm just curious and if something can be
solved elegantly rather than having to invest too much resources into
it, it might be worth reconsidering. After all it would be defined
within a proper specification.

Back then when I offered the bounty I expected matroska to be used a lot
more often in the future by other people than me. My usecase for
checksums was indeed just error recovery. However I am not against
extending the potential usecases to have applications use it to detect
errors.

[2] https://github.com/mbunkus/mkvtoolnix/issues/543#issuecomment-171036571
[3] https://github.com/mbunkus/mkvtoolnix/issues/543#issuecomment-171422587

--
Sebastian


From nobody Thu Jan 14 13:21:00 2016
Return-Path: <tterribe@xiph.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B11871ACE0B for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 13:20:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.313
X-Spam-Level: 
X-Spam-Status: No, score=-5.313 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XOQdoJYWLw6h for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 13:20:53 -0800 (PST)
Received: from smtp.mozilla.org (mx1.scl3.mozilla.com [63.245.214.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7051B1ACE07 for <cellar@ietf.org>; Thu, 14 Jan 2016 13:20:53 -0800 (PST)
Received: from localhost (localhost6.localdomain [127.0.0.1]) by mx1.mail.scl3.mozilla.com (Postfix) with ESMTP id E8164BFF1F for <cellar@ietf.org>; Thu, 14 Jan 2016 21:20:52 +0000 (UTC)
X-Virus-Scanned: amavisd-new at mozilla.org
Received: from smtp.mozilla.org ([127.0.0.1]) by localhost (mx1.mail.scl3.mozilla.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P5DJ8J-EeNXy for <cellar@ietf.org>; Thu, 14 Jan 2016 21:20:52 +0000 (UTC)
Received: from [10.252.26.229] (corp.mtv2.mozilla.com [63.245.221.32]) (Authenticated sender: tterriberry@mozilla.com) by mx1.mail.scl3.mozilla.com (Postfix) with ESMTPSA id D4EFABFEEB for <cellar@ietf.org>; Thu, 14 Jan 2016 21:20:52 +0000 (UTC)
Message-ID: <56981134.3080607@xiph.org>
Date: Thu, 14 Jan 2016 13:20:52 -0800
From: "Timothy B. Terriberry" <tterribe@xiph.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 SeaMonkey/2.26
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com> <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com> <CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com> <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com>
In-Reply-To: <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/T5-AJv8BAkW5M5-jUHhQR42kmDY>
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jan 2016 21:20:59 -0000

Steve Lhomme wrote:
> Correct, even MP3 has it. Only Opus needed this to be known at the
> container level for reasons that escape me now.

No, Vorbis needed it also, but it was simply never implemented (which 
meant certain aspects of encapsulating Vorbis in MKV were broken without 
it, see below).

There are two use cases:

1) The delay introduced by the encoder is variable in Opus. For example, 
if the encoder knows the SILK layer is never going to be used, it can 
avoid adding the extra delay it requires (a decoder cannot know this in 
advance). Alternatively, if the encoder uses different internal 
resamplers than the reference implementation, those can require 
different delay offsets between CELT/SILK (and thus a different total 
delay).

For Vorbis, the delay was always a single frame (the delay was still 
variable, because that frame could be short or long, but this was 
signaled in the frame itself at the codec layer).

2) Sample-accurate cropping without re-encoding. In this case you want 
to start playing the data from the middle of a frame, and need to know 
how much to discard (this use-case applies to both Opus and Vorbis).

Ogg provided a mechanism to handle both of these, but before CodecDelay, 
MKV did not. That meant that if you muxed an Ogg Vorbis track that used 
start-trimming into a MKV container, the software would silently just 
change the duration of the track. The same problem existed with 
sample-accurate durations at the end of the track (much more common), 
but that's what DiscardPadding is for.

MP3 is simply incapable of representing sample-accurate start and end 
times (though in theory MP3 in MKV could now do so with these elements).


From nobody Thu Jan 14 17:39:27 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BC4431B2E66 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 17:39:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KeVasR6ADeCz for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 17:39:24 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 849091B2E65 for <cellar@ietf.org>; Thu, 14 Jan 2016 17:39:24 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:45001 helo=[10.0.1.4]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aJtMH-0018FN-Ib; Thu, 14 Jan 2016 20:39:23 -0500
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com>
Date: Thu, 14 Jan 2016 20:39:21 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <14928357-E3E6-4ABB-A858-5A184D1FCDCB@dericed.com>
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com> <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Xs7L65T7WnFqglghqt1YmTeIGF4>
Cc: cellar@ietf.org
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 01:39:25 -0000

> On Jan 14, 2016, at 3:05 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-13 16:35 GMT+01:00 Dave Rice <dave@dericed.com>:
>> Hi all,
>>=20
>> In a few weeks is FOSDEM which will host an Open Media devroom [1] on =
January 30th in Brussels. There are a few panels relevant to IETF video =
work.
>>=20
>> I know a few CELLAR members are attending and suspect there are more. =
Is there interest in meeting up to a meal or drinks?
>=20
> Yup. There are 3 options for me, Saturday lunch, Saturday dinner, =
Sunday lunch.

I have to leave very early Sunday, so Saturday only for me.
Dave


From nobody Thu Jan 14 22:27:18 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 791791B29D6 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 22:27:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.779
X-Spam-Level: 
X-Spam-Status: No, score=0.779 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HTML_MESSAGE=0.001, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Crjo2Kil33RL for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 22:27:12 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C65751B29D1 for <cellar@ietf.org>; Thu, 14 Jan 2016 22:27:12 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:40354 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aJxqj-0040T5-3F for cellar@ietf.org; Fri, 15 Jan 2016 01:27:11 -0500
From: Dave Rice <dave@dericed.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_384F77B5-A907-40EC-935D-26C076E32622"
Message-Id: <87110F5D-3199-4CF5-887E-D5B8C7A08C6C@dericed.com>
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
Date: Fri, 15 Jan 2016 01:27:04 -0500
References: <21E28D45-E45F-4CBE-AC3D-6E41DCE172B9@dericed.com> <20150828065002.GH3813@bunkus.org> <CE3611BE-40C3-4A3C-A477-FE62145764E6@dericed.com> <CAOXsMFJuJkVh+hBeOsnaeXmVUhBTP9UxL0zRaeaLCkU3oTm7oA@mail.gmail.com> <5606B89B-FCF0-4C75-BAB8-FB1E212F8D82@dericed.com> <5EDBE9D2-3E2F-4865-ACF9-497706E0CA07@dericed.com>
To: cellar@ietf.org
In-Reply-To: <5EDBE9D2-3E2F-4865-ACF9-497706E0CA07@dericed.com>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-0.7
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/TXiLmWB0IMtLrJr4sH_4IhoObkY>
Subject: Re: [Cellar] EBML Schema
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 06:27:17 -0000

--Apple-Mail=_384F77B5-A907-40EC-935D-26C076E32622
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Dec 1, 2015, at 10:40 AM, Dave Rice <dave@dericed.com> wrote:
>> On Nov 9, 2015, at 1:19 PM, Dave Rice <dave@dericed.com =
<mailto:dave@dericed.com>> wrote:
>>> On Oct 3, 2015, at 9:46 AM, Steve Lhomme <slhomme@matroska.org =
<mailto:slhomme@matroska.org>> wrote:
>>> On Aug 28, 2015 17:00, "Dave Rice" <dave@dericed.com =
<mailto:dave@dericed.com>> wrote:
>>> >> On Aug 28, 2015, at 2:50 AM, Moritz Bunkus <moritz@bunkus.org =
<mailto:moritz@bunkus.org>> wrote:
>>> >>
>>> >> Hey,
>>> >>
>>> >> I have no objections, however I don't know a lot about XML =
schemas in
>>> >> the first place (neither about DTDs, to be honest).
>>> >
>>> >
>>> > Honestly, I know a lot more about XML Schemas than I do about =
DTDs. As wikipedia mentions at =
https://en.wikipedia.org/wiki/Document_type_definition =
<https://en.wikipedia.org/wiki/Document_type_definition>, DTDs have =
largely been superseded by XML Schemas. And at this point I think that =
XML Schemas may be a more familiar analogy to use.
>>> >
>>> > I think XML Schemas also share more in common with specdata.xml =
than DTDs do. Schemas use the <element> node and have maxOccurs and =
minOccurs attributes (specdata has semantically the same thing with =
mandatory and multiple), they both have a similar declaration of element =
type, element name and element description. Actually I think a =
semantically equivalent version of specdata.xml could be written as an =
XML Schema.
>>> >
>>> > XML Schemas also offer a few advantages for machine readable =
expressions; for instance XML Schemas can mandate a particular pattern =
or regex for a value.=20
>>> >
>>> >>> I propose the specdata.xml file here
>>> >>> =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml =
<https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml>
>>> >>> =
<https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml =
<https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml>>
>>> >>> is a good basis for the consideration of an EBML Schema. =46rom =
what I
>>> >>> can see, specdata.xml is an expression of the EBML + Matroska
>>> >>> specifications to support automated creation of documentation, =
but the
>>> >>> structure of this already shares a lot of similarity to XML =
Schemas.
>>> >>
>>> >>
>>> >> For both documentation (e.g. the table on the matroska.org =
<http://matroska.org/> specs page is
>>> >> generated from this file) and code (libMatroska's class hierarchy =
is
>>> >> generated automatically from this file) actually.
>>> >
>>> >
>>> > Does specdata.xml play a role in mkvalidate? I'm thinking of the =
potential to have an ebmlvalidator where you can provide the EBML Schema =
to validate particular EBML docType.
>>>=20
>>> Well the parsing code is generated from the XML file, so in a way, =
yes. But it's not parsed "live".
>>>=20
>>> >>> Is there a preference in handling the standardization of =
Matroska:
>>> >>> documenting it in a similar fashion to our work in the EBML spec =
or to
>>> >>> define what an EBML Schema is and consider matroska an =
expression of
>>> >>> it?
>>> >>
>>> >>
>>> >> I'm not sure whether or not I understand the implications. But my =
gut
>>> >> feeling is that having a definition for an EBML Schema would =
benefit
>>> >> other formats than Matroska, too, therefore the latter seems the =
way to
>>> >> go.
>>> >
>>> >
>>> > I have the same feeling:
>>> > - document EBML as a specification that includes rules for =
defining a docType in the form of an EBML Schema
>>> > - write an EBML Schema (updated specdata.xml) for Matroska and =
maybe webM
>>> >
>>> >>> Are some changes to specdata.xml acceptable? Such as a filename =
change
>>> >>> or changing the name of the <table> element of some attributes?
>>> >>
>>> >>
>>> >> Well, like I said above the specdata.xml is used for generating =
both
>>> >> documentation and code. Both should stay viable. If changes to it =
are
>>> >> made then the accompanying tools must be updated as well.
>>> >>
>>> >>> Neither the current EBML specs nor the specdata.xml specifically =
refer
>>> >>> to the hierarchical arrangement of the elements, but this could =
be
>>> >>> presumed by their ordering. For instance, could any level 3 =
element be
>>> >>> a child of any level 2 Master-element? I presume not, but I =
don't
>>> >>> think it's clear anywhere what parent-child relationships are
>>> >>> feasible. Possibly specdata.xml and/or the EBML Schema =
Definition
>>> >>> could define the relationship between levels of related elements
>>> >>> similar to how an XML Schema (XSD) does.
>>> >>
>>> >>
>>> >> So far it is understood that an element not marked as a global =
element
>>> >> must only occur as a child of its parent. Its parent is the last =
element
>>> >> located before the child element in the specdata file with a =
lower level
>>> >> than the child element. Or something like that.
>>> >
>>> >
>>> > This will need some documentation. That's how I've understood the =
mkv spec as well but the definition for how an EBML Schema works should =
be explicit about this.
>>>=20
>> Any more opinion about how to go about (or if to go about) modifying =
specdata.xml towards becoming an expression of a to-be-defined EBML =
Schema for matroska and webm? As a summary of proposed changes to =
specdata.xml
>>=20
>> - change to XML Schema conventions where relevant:
>> 		- use maxOccurs attribute instead of the current =
Multiple attribute.
>> 		- use minOccurs attribute instead of the current =
Mandatory attribute.
>> 		- move documentation of elements to a sub-element =
(allows for possible internationalization in the schema and better =
semantics)
>> - arrange elements in hierarchical form to indicate parent-child =
relationships (rather than the current practices where all elements are =
defined at the same level, and you have to parse back in elements to the =
one with the lower-numbered level attribute to find the parent)
>>=20
>> A draft of specdata.xml with these changes is at =
https://gist.github.com/dericed/f0a4bb0e7dc635ed1347 =
<https://gist.github.com/dericed/f0a4bb0e7dc635ed1347>. I can continue =
to work on this and send back changes for advice/approval but if I do so =
is there someone who could later update the tools that use specdata.xml =
so that newly-defined EBML Schemas may later to be into use?
>=20
> I=E2=80=99m preparing a pull request on specdata.xml but want to =
update the utilities in spectool at the same time so that spec2data, =
data2lib, and data2spec still function properly. I=E2=80=99m having =
trouble getting the spectool utilities to build properly so that I can =
test them. I was able to build coremake but not sure where to go from =
here. I=E2=80=99ve read spec2data and have an idea of how it works and =
am thinking that I could reproduce the spec2data workflow with xsl and =
then we could have a make file which uses xsltproc to convert an EBML =
Schema into the Drupal table and library files as needed. Any advice on =
which route to take: continue trying with getting spectool utilities to =
build or redo the utilities in xsl?

I=E2=80=99d like to revive this thread to propose some changes in the =
definition of the EBML Schema. The EBML Schema is intended to be a =
machine-readible document that details the semantics and structure of an =
EBML Document Type. The EBML Schema for a Document Type is essential for =
understanding the semantics and validating an EBML Document. This =
proposal builds upon an earlier conversation started last year on =
matroska-devel, =
http://lists.matroska.org/pipermail/matroska-devel/2015-August/004765.html=
, =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004807.htm=
l.

I=E2=80=99m open to other solutions or approaches, but since Matroska is =
based on EBML which itself is becoming well-defined. I think there is =
utility in documenting how to create a machine-readible document that =
describes an EBML Document Type. I think the concept of the XML Schema =
and XML Document is analogous to EBML Schema and EBML Document and that =
adopting from the XML community for documenting form may be beneficial.

Thus far we have this section =
https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c6=
0294c1e7ea68f703e07e50/specification.markdown#ebml-schema =
<https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c=
60294c1e7ea68f703e07e50/specification.markdown#ebml-schema> which =
introduces the concept for the EBML Schema and then provides a list of =
attributes for defining Elements that make up a specific EBML Document =
Type =
https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c6=
0294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-attribut=
es =
<https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c=
60294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-attribu=
tes>. This documentation currently reflects the specdata.xml file of the =
Matroska foundation-source repo, which is here =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml =
<https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml>. The specdata.xml file is used to create the HTML table of =
elements on http://matroska.org/technical/specs/index.html =
<http://matroska.org/technical/specs/index.html> and libraries used by =
mkvalidate and other files. After drafting the EBML Schema and Attribute =
documentation I found =
http://matroska.org/technical/specs/notes.html#Table_Columns =
<http://matroska.org/technical/specs/notes.html#Table_Columns> which =
covers similar concepts.

I=E2=80=99d like to propose the following changes to the definition of =
EBML Schema:

- Replace <table> with <EBMLSchema>.

	The node <table> makes sense in the context of the HTML table on =
matroska.org <http://matroska.org/> but if there will be greater =
machine-readible usage I think a rename would clarify.

- Add an XML NameSpace attribute to <EBMLSchema>.

	This would add something like =
xmlns=3D=E2=80=9Chttp://official_url_of_EBML_Schema_definition.org/EBMLSch=
ema.xsd =
<http://official_url_of_ebml_schema_definition.org/EBMLSchema.xsd>=E2=80=9D=
. The EBMLSchema.xsd file would be an XML Schema that defines the =
EBMLSchema document itself. Yes, this uses an XML Schema to define the =
EBML Schema, but this gives a way to validate the EBML Schemas and =
docType definitions made by others.

- Add a =E2=80=9CdocType=E2=80=9D attribute to <EBMLSchema>

	This would clarify what the EBMLSchema is documenting, thus it =
would start with <EBMLSchema docType=3D=E2=80=9Cmatroska=E2=80=9D>

- Add =E2=80=9Cversion=E2=80=9D attribute to <EBMLSchema>

	This would note the highest version number of the docType =
officially documented by the EBML Schema, so the EBML Schema would be =
inferred to document the noted docType from version 0 up to the version =
value listed here.

- Rename =E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D and =
rename =E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D

	This is to match the meaning of minOccurs and maxOccurs in XML =
Schema, https://www.w3.org/TR/xmlschema-0/#ref6.
	mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C0"
	mandatory=3D=E2=80=9C1=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C1=E2=80=9D
	no mandatory attribute would be equivalent of no minOccurs =
attribute which is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as is =
true with minOccurs within an XML Schema)

	multiple=3D=E2=80=9C0=E2=80=9D would be equivalent to maxOccurs =
=3D=E2=80=9C1"
	multiple =3D=E2=80=9C1=E2=80=9D would be equivalent to maxOccurs =
=3D=E2=80=9Cunbounded=E2=80=9D
	no multiple attribute would be equivalent of no maxOccurs =
attribute which is equivalent to maxOccurs =3D=E2=80=9C1=E2=80=9D (as is =
true with maxOccurs within an XML Schema)

	Moving from mandatory/multiple to minOccurs/maxOccurs can be =
done with no semantic differences, but we=E2=80=99d have to advantage of =
allowing for constraints to the number of usage that are not 0, 1, and =
infinite. For instance, I understand the logic to have 2 SeekHead =
Elements, but is there a scenario for 3 or more SeekHeads at the same =
Level within the same EBML Document?

- Store <element> nodes hierarchically rather than all at the same =
level.

	Currently with in the specdata.xml file it is difficult to =
ascertain the parent of a given element. It can be done by seeking to =
the previous element where the level of the element is one value lower, =
but there are exceptions for global elements. I suggest that a structure =
of
	<element>
		<element>...</element>
		<element>...</element>
	</element>
	is more clear than all elements at the same level. I made an =
example draft of specdata.xml with nested implementing here: =
https://gist.github.com/dericed/f0a4bb0e7dc635ed1347.

I can provide a patch to the current EBML Schema and EBML Schema =
Attributes as well as incorporate a sample EBML Schema into the =
specification, but wanted to nudge for comments before proceeding.

Dave Rice


--Apple-Mail=_384F77B5-A907-40EC-935D-26C076E32622
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Dec 1, 2015, at 10:40 AM, Dave Rice &lt;<a =
href=3D"mailto:dave@dericed.com" class=3D"">dave@dericed.com</a>&gt; =
wrote:</div><div class=3D""><div style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D""><div class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">On Nov 9, 2015, at 1:19 PM, Dave Rice &lt;<a =
href=3D"mailto:dave@dericed.com" class=3D"">dave@dericed.com</a>&gt; =
wrote:</div><div class=3D""><div style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D""><div class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">On Oct 3, 2015, at 9:46 AM, Steve Lhomme =
&lt;<a href=3D"mailto:slhomme@matroska.org" =
class=3D"">slhomme@matroska.org</a>&gt; wrote:</div><div class=3D""><p =
dir=3D"ltr" class=3D"">
On Aug 28, 2015 17:00, "Dave Rice" &lt;<a href=3D"mailto:dave@dericed.com"=
 class=3D"">dave@dericed.com</a>&gt; wrote:<br class=3D"">
&gt;&gt; On Aug 28, 2015, at 2:50 AM, Moritz Bunkus &lt;<a =
href=3D"mailto:moritz@bunkus.org" class=3D"">moritz@bunkus.org</a>&gt; =
wrote:<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt; Hey,<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt; I have no objections, however I don't know a lot about XML =
schemas in<br class=3D"">
&gt;&gt; the first place (neither about DTDs, to be honest).<br =
class=3D"">
&gt;<br class=3D"">
&gt;<br class=3D"">
&gt; Honestly, I know a lot more about XML Schemas than I do about DTDs. =
As wikipedia mentions at&nbsp;<a =
href=3D"https://en.wikipedia.org/wiki/Document_type_definition" =
class=3D"">https://en.wikipedia.org/wiki/Document_type_definition</a>, =
DTDs have largely been superseded by XML Schemas. And at this point I =
think that XML Schemas may be a more familiar analogy to use.<br =
class=3D"">
&gt;<br class=3D"">
&gt; I think XML Schemas also share more in common with specdata.xml =
than DTDs do. Schemas use the &lt;element&gt; node and have maxOccurs =
and minOccurs attributes (specdata has semantically the same thing with =
mandatory and multiple), they both have a similar declaration of element =
type, element name and element description. Actually I think a =
semantically equivalent version of specdata.xml could be written as an =
XML Schema.<br class=3D"">
&gt;<br class=3D"">
&gt; XML Schemas also offer a few advantages for machine readable =
expressions; for instance XML Schemas can mandate a particular pattern =
or regex for a value.&nbsp;<br class=3D"">
&gt;<br class=3D"">
&gt;&gt;&gt; I propose the specdata.xml file here<br class=3D"">
&gt;&gt;&gt; <a =
href=3D"https://github.com/Matroska-Org/foundation-source/blob/master/spec=
tool/specdata.xml" =
class=3D"">https://github.com/Matroska-Org/foundation-source/blob/master/s=
pectool/specdata.xml</a><br class=3D"">
&gt;&gt;&gt; &lt;<a =
href=3D"https://github.com/Matroska-Org/foundation-source/blob/master/spec=
tool/specdata.xml" =
class=3D"">https://github.com/Matroska-Org/foundation-source/blob/master/s=
pectool/specdata.xml</a>&gt;<br class=3D"">
&gt;&gt;&gt; is a good basis for the consideration of an EBML Schema. =
=46rom what I<br class=3D"">
&gt;&gt;&gt; can see, specdata.xml is an expression of the EBML + =
Matroska<br class=3D"">
&gt;&gt;&gt; specifications to support automated creation of =
documentation, but the<br class=3D"">
&gt;&gt;&gt; structure of this already shares a lot of similarity to XML =
Schemas.<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt; For both documentation (e.g. the table on the <a =
href=3D"http://matroska.org/" class=3D"">matroska.org</a> specs page =
is<br class=3D"">
&gt;&gt; generated from this file) and code (libMatroska's class =
hierarchy is<br class=3D"">
&gt;&gt; generated automatically from this file) actually.<br class=3D"">
&gt;<br class=3D"">
&gt;<br class=3D"">
&gt; Does specdata.xml play a role in mkvalidate? I'm thinking of the =
potential to have an ebmlvalidator where you can provide the EBML Schema =
to validate particular EBML docType.</p><p dir=3D"ltr" class=3D"">Well =
the parsing code is generated from the XML file, so in a way, yes. But =
it's not parsed "live". </p><p dir=3D"ltr" class=3D"">&gt;&gt;&gt; Is =
there a preference in handling the standardization of Matroska:<br =
class=3D"">
&gt;&gt;&gt; documenting it in a similar fashion to our work in the EBML =
spec or to<br class=3D"">
&gt;&gt;&gt; define what an EBML Schema is and consider matroska an =
expression of<br class=3D"">
&gt;&gt;&gt; it?<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt; I'm not sure whether or not I understand the implications. But =
my gut<br class=3D"">
&gt;&gt; feeling is that having a definition for an EBML Schema would =
benefit<br class=3D"">
&gt;&gt; other formats than Matroska, too, therefore the latter seems =
the way to<br class=3D"">
&gt;&gt; go.<br class=3D"">
&gt;<br class=3D"">
&gt;<br class=3D"">
&gt; I have the same feeling:<br class=3D"">
&gt; - document EBML as a specification that includes rules for defining =
a docType in the form of an EBML Schema<br class=3D"">
&gt; - write an EBML Schema (updated specdata.xml) for Matroska and =
maybe webM<br class=3D"">
&gt;<br class=3D"">
&gt;&gt;&gt; Are some changes to specdata.xml acceptable? Such as a =
filename change<br class=3D"">
&gt;&gt;&gt; or changing the name of the &lt;table&gt; element of some =
attributes?<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt; Well, like I said above the specdata.xml is used for generating =
both<br class=3D"">
&gt;&gt; documentation and code. Both should stay viable. If changes to =
it are<br class=3D"">
&gt;&gt; made then the accompanying tools must be updated as well.<br =
class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt;&gt; Neither the current EBML specs nor the specdata.xml =
specifically refer<br class=3D"">
&gt;&gt;&gt; to the hierarchical arrangement of the elements, but this =
could be<br class=3D"">
&gt;&gt;&gt; presumed by their ordering. For instance, could any level 3 =
element be<br class=3D"">
&gt;&gt;&gt; a child of any level 2 Master-element? I presume not, but I =
don't<br class=3D"">
&gt;&gt;&gt; think it's clear anywhere what parent-child relationships =
are<br class=3D"">
&gt;&gt;&gt; feasible. Possibly specdata.xml and/or the EBML Schema =
Definition<br class=3D"">
&gt;&gt;&gt; could define the relationship between levels of related =
elements<br class=3D"">
&gt;&gt;&gt; similar to how an XML Schema (XSD) does.<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt;<br class=3D"">
&gt;&gt; So far it is understood that an element not marked as a global =
element<br class=3D"">
&gt;&gt; must only occur as a child of its parent. Its parent is the =
last element<br class=3D"">
&gt;&gt; located before the child element in the specdata file with a =
lower level<br class=3D"">
&gt;&gt; than the child element. Or something like that.<br class=3D"">
&gt;<br class=3D"">
&gt;<br class=3D"">
&gt; This will need some documentation. That's how I've understood the =
mkv spec as well but the definition for how an EBML Schema works should =
be explicit about this.<br class=3D""></p></div></blockquote>Any more =
opinion about how to go about (or if to go about) modifying specdata.xml =
towards becoming an expression of a to-be-defined EBML Schema for =
matroska and webm? As a summary of proposed changes to =
specdata.xml</div><div class=3D""><br class=3D""></div><div class=3D"">- =
change to XML Schema conventions where relevant:</div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>- use maxOccurs attribute instead of the current Multiple =
attribute.</div><div class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">		</span>- use minOccurs attribute =
instead of the current Mandatory attribute.</div><div class=3D""><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space:pre">		=
</span>- move documentation of elements to a sub-element (allows for =
possible internationalization in the schema and better =
semantics)</div></div><div class=3D"">- arrange elements in hierarchical =
form to indicate parent-child relationships (rather than the current =
practices where all elements are defined at the same level, and you have =
to parse back in elements to the one with the lower-numbered level =
attribute to find the parent)</div><div class=3D""><br =
class=3D""></div><div class=3D"">A draft of specdata.xml with these =
changes is at&nbsp;<a =
href=3D"https://gist.github.com/dericed/f0a4bb0e7dc635ed1347" =
class=3D"">https://gist.github.com/dericed/f0a4bb0e7dc635ed1347</a>. I =
can continue to work on this and send back changes for advice/approval =
but if I do so is there someone who could later update the tools that =
use specdata.xml so that newly-defined EBML Schemas may later to be into =
use?</div></div></div></div></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">I=E2=80=99m preparing a pull request on =
specdata.xml but want to update the utilities in spectool at the same =
time so that spec2data, data2lib, and data2spec still function properly. =
I=E2=80=99m having trouble getting the spectool utilities to build =
properly so that I can test them. I was able to build coremake but not =
sure where to go from here. I=E2=80=99ve read spec2data and have an idea =
of how it works and am thinking that I could reproduce the spec2data =
workflow with xsl and then we could have a make file which uses xsltproc =
to convert an EBML Schema into the Drupal table and library files as =
needed. Any advice on which route to take: continue trying with getting =
spectool utilities to build or redo the utilities in =
xsl?</div></div></div></div></div></blockquote><br =
class=3D""></div><div>I=E2=80=99d like to revive this thread to propose =
some changes in the definition of the EBML Schema. The EBML Schema is =
intended to be a machine-readible document that details the semantics =
and structure of an EBML Document Type. The EBML Schema for a Document =
Type is essential for understanding the semantics and validating an EBML =
Document. This proposal builds upon an earlier conversation started last =
year on matroska-devel,&nbsp;<a =
href=3D"http://lists.matroska.org/pipermail/matroska-devel/2015-August/004=
765.html" =
class=3D"">http://lists.matroska.org/pipermail/matroska-devel/2015-August/=
004765.html</a>,&nbsp;<a =
href=3D"http://lists.matroska.org/pipermail/matroska-devel/2015-October/00=
4807.html" =
class=3D"">http://lists.matroska.org/pipermail/matroska-devel/2015-October=
/004807.html</a>.<br class=3D""><br class=3D"">I=E2=80=99m open to other =
solutions or approaches, but since Matroska is based on EBML which =
itself is becoming well-defined. I think there is utility in documenting =
how to create a machine-readible document that describes an EBML =
Document Type. I think the concept of the XML Schema and XML Document is =
analogous to EBML Schema and EBML Document and that adopting from the =
XML community for documenting form may be beneficial.<br class=3D""><br =
class=3D"">Thus far we have this section&nbsp;<a =
href=3D"https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2a=
db6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema" =
class=3D"">https://github.com/Matroska-Org/ebml-specification/blob/3b30502=
d2adb6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema</a>&n=
bsp;which introduces the concept for the EBML Schema and then provides a =
list of attributes for defining Elements that make up a specific EBML =
Document Type&nbsp;<a =
href=3D"https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2a=
db6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-=
attributes" =
class=3D"">https://github.com/Matroska-Org/ebml-specification/blob/3b30502=
d2adb6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema-eleme=
nt-attributes</a>. This documentation currently reflects the =
specdata.xml file of the Matroska foundation-source repo, which is =
here&nbsp;<a =
href=3D"https://github.com/Matroska-Org/foundation-source/blob/master/spec=
tool/specdata.xml" =
class=3D"">https://github.com/Matroska-Org/foundation-source/blob/master/s=
pectool/specdata.xml</a>. The specdata.xml file is used to create the =
HTML table of elements on&nbsp;<a =
href=3D"http://matroska.org/technical/specs/index.html" =
class=3D"">http://matroska.org/technical/specs/index.html</a>&nbsp;and =
libraries used by mkvalidate and other files. After drafting the EBML =
Schema and Attribute documentation I found&nbsp;<a =
href=3D"http://matroska.org/technical/specs/notes.html#Table_Columns" =
class=3D"">http://matroska.org/technical/specs/notes.html#Table_Columns</a=
>&nbsp;which covers similar concepts.<br class=3D""><br class=3D"">I=E2=80=
=99d like to propose the following changes to the definition of EBML =
Schema:<br class=3D""><br class=3D"">- Replace &lt;table&gt; with =
&lt;EBMLSchema&gt;.<br class=3D""><br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>The node =
&lt;table&gt; makes sense in the context of the HTML table on&nbsp;<a =
href=3D"http://matroska.org/" class=3D"">matroska.org</a>&nbsp;but if =
there will be greater machine-readible usage I think a rename would =
clarify.<br class=3D""><br class=3D"">- Add an XML NameSpace attribute =
to &lt;EBMLSchema&gt;.<br class=3D""><br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>This =
would add something like xmlns=3D=E2=80=9C<a =
href=3D"http://official_url_of_ebml_schema_definition.org/EBMLSchema.xsd" =
class=3D"">http://official_url_of_EBML_Schema_definition.org/EBMLSchema.xs=
d</a>=E2=80=9D. The EBMLSchema.xsd file would be an XML Schema that =
defines the EBMLSchema document itself. Yes, this uses an XML Schema to =
define the EBML Schema, but this gives a way to validate the EBML =
Schemas and docType definitions made by others.<br class=3D""><br =
class=3D"">- Add a =E2=80=9CdocType=E2=80=9D attribute to =
&lt;EBMLSchema&gt;<br class=3D""><br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>This =
would clarify what the EBMLSchema is documenting, thus it would start =
with &lt;EBMLSchema docType=3D=E2=80=9Cmatroska=E2=80=9D&gt;<br =
class=3D""><br class=3D"">- Add =E2=80=9Cversion=E2=80=9D attribute to =
&lt;EBMLSchema&gt;<br class=3D""><br class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>This =
would note the highest version number of the docType officially =
documented by the EBML Schema, so the EBML Schema would be inferred to =
document the noted docType from version 0 up to the version value listed =
here.<div class=3D""><br class=3D""></div><div class=3D"">- Rename =
=E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D and rename =
=E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D</div><div =
class=3D""><br class=3D""></div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>This is =
to match the meaning of minOccurs and maxOccurs in XML Schema,&nbsp;<a =
href=3D"https://www.w3.org/TR/xmlschema-0/#ref6" =
class=3D"">https://www.w3.org/TR/xmlschema-0/#ref6</a>.</div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C0"</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>mandatory=3D=E2=80=9C1=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C1=E2=80=9D</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>no =
mandatory attribute would be equivalent of no minOccurs attribute which =
is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as is true with =
minOccurs within an XML Schema)</div><div class=3D""><br =
class=3D""></div><div class=3D""><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>multiple=3D=E2=80=9C0=E2=80=9D would be equivalent =
to&nbsp;maxOccurs&nbsp;=3D=E2=80=9C1"</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>multiple&nbsp;=3D=E2=80=9C1=E2=80=9D would be equivalent =
to&nbsp;maxOccurs&nbsp;=3D=E2=80=9Cunbounded=E2=80=9D</div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>no&nbsp;multiple&nbsp;attribute would be equivalent of no =
maxOccurs attribute which is equivalent to&nbsp;maxOccurs&nbsp;=3D=E2=80=9C=
1=E2=80=9D (as is true with&nbsp;maxOccurs&nbsp;within an XML =
Schema)</div></div><div class=3D""><br class=3D""></div><div =
class=3D""><span class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>Moving from mandatory/multiple to minOccurs/maxOccurs can be done =
with no semantic differences, but we=E2=80=99d have to advantage of =
allowing for constraints to the number of usage that are not 0, 1, and =
infinite. For instance, I understand the logic to have 2 SeekHead =
Elements, but is there a scenario for 3 or more SeekHeads at the same =
Level within the same EBML Document?</div><div class=3D""><br =
class=3D""></div><div class=3D"">- Store &lt;element&gt; nodes =
hierarchically rather than all at the same level.</div><div class=3D""><br=
 class=3D""></div><div class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space: pre;">	</span>Currently with in the =
specdata.xml file it is difficult to ascertain the parent of a given =
element. It can be done by seeking to the previous element where the =
level of the element is one value lower, but there are exceptions for =
global elements. I suggest that a structure of</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>&lt;element&gt;</div><div class=3D""><span class=3D"Apple-tab-span"=
 style=3D"white-space: pre;">		=
</span>&lt;element&gt;...&lt;/element&gt;</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">		=
</span>&lt;element&gt;...&lt;/element&gt;</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	=
</span>&lt;/element&gt;</div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space: pre;">	</span>is more =
clear than all elements at the same level. I made an example draft of =
specdata.xml with nested implementing here:&nbsp;<a =
href=3D"https://gist.github.com/dericed/f0a4bb0e7dc635ed1347" =
class=3D"">https://gist.github.com/dericed/f0a4bb0e7dc635ed1347</a>.</div>=
<div class=3D""><br class=3D""></div><div class=3D"">I can provide a =
patch to the current EBML Schema and EBML Schema Attributes as well as =
incorporate a sample EBML Schema into the specification, but wanted to =
nudge for comments before proceeding.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Dave Rice</div></div><br =
class=3D""></body></html>=

--Apple-Mail=_384F77B5-A907-40EC-935D-26C076E32622--


From nobody Thu Jan 14 22:47:25 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5796B1B2A27 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 22:47:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LnYyd-IU4S49 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 22:47:23 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD86A1B2A26 for <cellar@ietf.org>; Thu, 14 Jan 2016 22:47:23 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:32802 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aJyAK-00028y-9q; Fri, 15 Jan 2016 01:47:22 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <20160112133656.GJ4063@bunkus.org>
Date: Fri, 15 Jan 2016 01:47:18 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <1E1F9DD9-0B41-4B3D-AC7A-D59E72D90C33@dericed.com>
References: <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <20160112133656.GJ4063@bunkus.org>
To: Moritz Bunkus <moritz@bunkus.org>
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/edLBuGb67NDz48Qovko0lzSJvNo>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 06:47:25 -0000

> On Jan 12, 2016, at 8:36 AM, Moritz Bunkus <moritz@bunkus.org> wrote:
>=20
> Hey,
>=20
>> =46rom a sample set of 59,881 Matroska files uploaded to archive.org
>> only 119 of them include CRC-32 Elements. Almost 0.2%! Additionally
>> the webm Document Type lists the CRC-32 Element as unsupported. So I
>> think it=E2=80=99s true that it=E2=80=99s rarely bothered with. The =
implementation of
>> CRC-32 Elements does add many complications and perhaps demand has
>> been too low to resolve them. Moritz may have comments here.
>=20
> That's pretty much spot on. The CRC32 element was added comparatively
> late; a lot of muxers had already been created by that time.
>=20
> Most requests I've received where more concerned with error recovery
> than with error detection. This is something that CRC32 wasn't meant
> for; additionally CRC32 elements weren't meant to be written in the
> cluster elements which make up the bulk of a Matroska file's data.

There are certainly Matroska files that use CRC-32 within Clusters.

See: =
http://archive.org/download/WC14UruVsCost/FIFA.World.Cup.2014.Uruguay.Vs.C=
osta.Rica.SDTV-WDTeam_1st.mkv
Muxing App Haali DirectShow Matroska Muxer 1.13.138.14
Writing App gdsmux

Or http://archive.org/download/aawqws/Covert.Affairs.S01E05.mkv
Muxing App libebml-0.7.5 & libmatroska-0.7.7
Writing App VirtualDubMod 1.5.10.2 (build 2540/release)

Or http://archive.org/download/archive_actu1_Lara/Lara.S01.E24.mkv
Muxing App libebml v0.7.8 + libmatroska v0.8.1
Writing App Cyberlink Matroska Muxer v1.0.0

That last example uses CRC-32 Elements only within the Cluster Element =
and not elsewhere.

> Yes, there is a feature request[1] for adding support in mkvmerge and
> mkvinfo. It has been created in 2010, but except for those two people
> mentioned in the bug I haven't really received any other requests for
> such a functionality.
>=20
> Kind regards,
> mosu
>=20
> [1] https://github.com/mbunkus/mkvtoolnix/issues/543
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar


From nobody Thu Jan 14 23:28:55 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 721A51B2AE3 for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 23:28:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7VsH08czRiqM for <cellar@ietfa.amsl.com>; Thu, 14 Jan 2016 23:28:52 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EE88C1B2AE2 for <cellar@ietf.org>; Thu, 14 Jan 2016 23:28:51 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:43088 helo=[10.0.1.64]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aJyoS-0019Zm-7g for cellar@ietf.org; Fri, 15 Jan 2016 02:28:51 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <5697E0D6.5000906@gmx.de>
Date: Fri, 15 Jan 2016 02:28:46 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <FA83BFB8-286C-4BD5-A757-F653A06702A2@dericed.com>
References: <CAOXsMFLCbe-W=h+tQpdRa8Nh0jz=xdbZTXEmoXsgQTbA=4OPCQ@mail.gmail.com> <C0E5EBA2-2A56-46F9-A049-629EFB11F280@dericed.com> <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <20160112133656.GJ4063@bunkus.org> <5697E0D6.5000906@gmx.de>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/-skl36QQ5JQr_Qcz4d7boGyzlro>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 07:28:54 -0000

> On Jan 14, 2016, at 12:54 PM, Sebastian G. <bastik> wrote:
>=20
> 12.01.2016, 14:36 Moritz Bunkus:
>> Hey,
>>=20
>>> =46rom a sample set of 59,881 Matroska files uploaded to archive.org
>>> only 119 of them include CRC-32 Elements. Almost 0.2%! Additionally
>>> the webm Document Type lists the CRC-32 Element as unsupported. So I
>>> think it=E2=80=99s true that it=E2=80=99s rarely bothered with. The =
implementation of
>>> CRC-32 Elements does add many complications and perhaps demand has
>>> been too low to resolve them. Moritz may have comments here.
>>=20
>> That's pretty much spot on. The CRC32 element was added comparatively
>> late; a lot of muxers had already been created by that time.
>>=20
>> Most requests I've received where more concerned with error recovery
>> than with error detection. This is something that CRC32 wasn't meant
>> for; additionally CRC32 elements weren't meant to be written in the
>> cluster elements which make up the bulk of a Matroska file's data.
>>=20
>> Yes, there is a feature request[1] for adding support in mkvmerge and
>> mkvinfo. It has been created in 2010, but except for those two people
>> mentioned in the bug I haven't really received any other requests for
>> such a functionality.
>>=20
>> Kind regards,
>> mosu
>>=20
>> [1] https://github.com/mbunkus/mkvtoolnix/issues/543
>>=20
>=20
> Hi,
>=20
> to said ticket you added two entries [2][3] which mention a problem =
with
> verifying checksums.
>=20
> Would that be much easier to handle if the CRC would be about the data
> that should be present in the file, but are omitted due to default
> values aren't written? Compared to creating a checksum of the data =
that
> actually get written and verifying said checksum.
>=20
> I had a rather strong opinion towards including a CRC that covers the
> elements that are written. I'm just curious and if something can be
> solved elegantly rather than having to invest too much resources into
> it, it might be worth reconsidering. After all it would be defined
> within a proper specification.

The Matroska files with CRC Elements store a checksum of what data is =
stored in the Master-element rather than what is interpreted (via =
defaults).

For instance in the test file suite, test2.mkv has a CRC value in the =
EBML Header Element with a value of 0x67277B3A. The rest of the =
Master-element stores DocType, DocTypeVersion, and DocTypeReadVersion. =
The other EBML Header Elements of EBMLVersion, EBMLReadVersion, =
EBMLMaxIDLength, and EBMLMaxSizeLength are not stored but interpreted as =
the defined default values. The data as stored matched the checksum, not =
the data as interpreted.

I think switching the CRC to calculate interpreted data rather than =
stored data would present numerous challenges.

> Back then when I offered the bounty I expected matroska to be used a =
lot
> more often in the future by other people than me. My usecase for
> checksums was indeed just error recovery. However I am not against
> extending the potential usecases to have applications use it to detect
> errors.

A few use cases:

If I have a Matroska file in long-term storage and migrate it to new =
storage (hard drive to new hard drive, or LTO Tape, future format, etc), =
the CRC values can be verified to ensure the data is transferred =
authentically and that the data on the new form of storage.

Alternatively if the data is moved across a network the received file =
can be verified to ensure that it is still valid. This is possible with =
FLAC files as they have an MD5 in the header and CRCs per frame.

Also if a Matroska file in an archive needs to be changed. For instance =
to add contextual metadata or a supporting attachment, the file could be =
edited in place without affecting other Level 1 elements. After the edit =
the file could still be verified to ensure the Level 1 elements =
unaffected by the edit have maintained authenticity. A whole file =
checksum wouldn=E2=80=99t work in this case since the whole file is =
intended to be different before and after the change, but the parts that =
aren=E2=80=99t involved in the change can still be verified.

As discussed, CRC elements can allow authority in selecting one of an =
Identically-Recurring Element if there are many in a damaged file.

There=E2=80=99s also a use case with secure or legal recordings. The =
CameraV project, https://guardianproject.info/apps/camerav/, uses =
matroska and checksums in a way to allow verifiable recordings.

> [2] =
https://github.com/mbunkus/mkvtoolnix/issues/543#issuecomment-171036571
> [3] =
https://github.com/mbunkus/mkvtoolnix/issues/543#issuecomment-171422587
>=20
> --
> Sebastian
>=20
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar


From nobody Fri Jan 15 00:10:34 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EF5401B2F07 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 00:10:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QvELrvCzICBA for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 00:10:31 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [176.9.119.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9E241B2F06 for <cellar@ietf.org>; Fri, 15 Jan 2016 00:10:30 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id E4152B3550B for <cellar@ietf.org>; Fri, 15 Jan 2016 09:10:27 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 4E85461FE2F; Fri, 15 Jan 2016 09:10:27 +0100 (CET)
Date: Fri, 15 Jan 2016 09:10:27 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160115081026.GC4063@bunkus.org>
References: <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <20160112133656.GJ4063@bunkus.org> <5697E0D6.5000906@gmx.de> <FA83BFB8-286C-4BD5-A757-F653A06702A2@dericed.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="I7gN1YuHeqxrxkIZ"
Content-Disposition: inline
In-Reply-To: <FA83BFB8-286C-4BD5-A757-F653A06702A2@dericed.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/CK-wkwHo2phEVtGGxvcZY1zRrCY>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 08:10:33 -0000

--I7gN1YuHeqxrxkIZ
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hey,

> The Matroska files with CRC Elements store a checksum of what data is
> stored in the Master-element rather than what is interpreted (via
> defaults).

That's good as it is and it's the only possible way to handle it.

> I think switching the CRC to calculate interpreted data rather than
> stored data would present numerous challenges.

Worse, it'd be impossible. Each time the specs change wrt. to default
values (e.g. by adding a new element with a default value) the CRC would
implicitly be invalidated as the CRC was calculated over the old set of
elements with a default value.

The problem I'm mentioned on my issue on GitHub is solely in libEBML's
design. A library's design should not force the specs to follow it. The
proposed CRC specs are fine as they are. No need to change them. I'll
just have to fix/extend libEBML accordingly (not easy, but doable).

> > My usecase for checksums was indeed just error recovery.

Just to be clear. "Error recovery" usually means both "error detection"
and "error correction". CRCs are only meant and useful for the
recovery. On their own they don't do anything for correction.

Only when combined with redundancy e.g. in the form of having multiple
"tracks" element with the same segment can they be used for
correction.

Kind regards,
mosu

--I7gN1YuHeqxrxkIZ
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWmKltAAoJEHSvAK3y4yyFhFoP/0oPTkTRjc6Vq7Xs7bWekuIw
+E7cC15WJFObbkiPUrjfqzkxrTTKlxD0GSfhQAlz27KDFpyPPWLx47iIj6sSS9el
ZUesfO/ADNbZejCTdMxAZia6w0lHRUT360DXbsgF0ibwzxpxVAkeUl6kjIA9hXd0
49j/0KmnVegz+I3bqCW/yKb5tSroBAcddfrchFcr6m/TavCt0MjZ+cBPggCfCYoe
qH1vZKFFqwr6cmxEDgkeW32c/HkWP2L403eXnpAcLUu2x36xubAOvcTd7IZxG/xJ
6TWXXnERK6JIITI1GAv/A5jN64oLWZHSjluicmEI3USJyHNv4yzxs54QzKTWSxFU
aQixSyHGoWc7ZjHp32GhYm1g2gBDFJIYz09F9pDnrokrJkSUmfJRduIntaZ56+cz
VbyzJq09+n2aiT8XC2hqRUIp0kvsHwtQh3zgjkjNB4G7g+uQWEsWpx7JFmIEGItP
00u8ZoTLpMhVH7Qa7LD7gfnK8uee2fa/BzZTi0LrM+BxwEEBKg/JkqRK/P6ZS5V5
VFJkwmj2jc5Zlngl6oC+Gnkcjo8YCDYnkN0cgF7k7tr/83O7VOoUboTorvDFbUuv
bbu2HWwxFN8ji+1ZOkpmni2twkN6s8Ukf+UPHtei9/ai+0c8TkQ67bmLTT1gyPqW
McX+NJyXasrFreluEgrR
=Z7K1
-----END PGP SIGNATURE-----

--I7gN1YuHeqxrxkIZ--


From nobody Fri Jan 15 00:18:36 2016
Return-Path: <moritz@bunkus.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 593531A0383 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 00:18:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.903
X-Spam-Level: 
X-Spam-Status: No, score=-1.903 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XyZgYDc3X7hx for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 00:18:34 -0800 (PST)
Received: from liselle.bunkus.org (liselle.bunkus.org [IPv6:2a01:4f8:151:7310::105:1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E62AA1A036F for <cellar@ietf.org>; Fri, 15 Jan 2016 00:18:33 -0800 (PST)
Received: from sweet-chili.local (unknown [10.55.4.6]) by liselle.bunkus.org (Postfix) with ESMTPS id CBC45B35675 for <cellar@ietf.org>; Fri, 15 Jan 2016 09:18:31 +0100 (CET)
Received: by sweet-chili.local (Postfix, from userid 1000) id 4156B61FE69; Fri, 15 Jan 2016 09:18:31 +0100 (CET)
Date: Fri, 15 Jan 2016 09:18:31 +0100
From: Moritz Bunkus <moritz@bunkus.org>
To: cellar@ietf.org
Message-ID: <20160115081830.GD4063@bunkus.org>
References: <CAOXsMF+gc0d2LEisfHm0jnjDGQKcYquEMBt7FnZ_uuSNF=C0iw@mail.gmail.com> <568AC10F.9030303@gmx.de> <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <20160112133656.GJ4063@bunkus.org> <1E1F9DD9-0B41-4B3D-AC7A-D59E72D90C33@dericed.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4NAIfEpSjlXpZEyn"
Content-Disposition: inline
In-Reply-To: <1E1F9DD9-0B41-4B3D-AC7A-D59E72D90C33@dericed.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-Virus-Scanned: clamav-milter 0.98.7 at liselle
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/7tt9ebAa4FXMcjzaJswdWoeHhnc>
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 08:18:35 -0000

--4NAIfEpSjlXpZEyn
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline

Hey,

> There are certainly Matroska files that use CRC-32 within Clusters.

True, I'm just debating their value ;) Sure, you can detect that there's
a bit error in that cluster, but what are you going to do? Drop the
whole cluster? OK, you can inform the user about it and she can watch
the appropriate section in the file in order to determine how bad it is.

My current goal for MKVToolNix is to handle CRCs everywhere:

1. mkvmerge will write them for each level 1 element

2. mkvmerge will check existing CRCs and emit warnings about elements
   where the CRC doesn't match the data

3. mkvpropedit will include them in each level 1 element it changes/adds
   as will the GUI's header/chapter/attachment editors

4. mkvinfo will print existing CRCs and emit warnings about elements
   where the CRC doesn't match the data

Unfortunately all of those require changes in libEBML. The ones required
for 1. and 3. are not that bad (handling of masters in which a CRC
element is already present) and are ABI-compatible.

The changes for 2. and 4. are much more involved, though; for one CRC
elements read from storage must be passed through to the application (at
the moment libEBML tries to handle them transparently while mkvinfo
wants to output the element's presence and data); additionally the
verification is currently broken (the value's correct on disk, though)
and I haven't really understood why that is. It's also very slow. Fixing
this most likely requires changing the ABI, and making it fast/use less
memory bandwidth will require even more ABI-breaking changes.

It'll take some time until this has been implemented.

Kind regards,
mosu

--4NAIfEpSjlXpZEyn
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAABCAAGBQJWmKtWAAoJEHSvAK3y4yyFlCoP/j1Eh+8rYd137etg/RB6TY7W
XqKsdf0HEkqqukHvLm2POE6C8N9AdaY1DWQyAVeOxSiU1/HNSa7dHK+BhaYRxK0J
cfaBJSPnEijmIop2YY+cm5WS3bQpWAxI+yzSHR9v8GkLdZC0uJGRoLvFTf4OjEnC
LmXeZ9vkMFW4eA2leHVaYgo2R3WBYqfoeExGck40m2lducxBF6ieWqSK7IAmzP+H
+7LfThPhtDDm5/HfL/o0DmRi+CGilxRaQwyQO/dCQmeSwkkzxORJOa0/ME0oQeDq
MWwIbV3zKM5qIfJzFZlryyNW3gY4IlYEfmFOc4naaPk1cWcxo8s4roSuu0W0Nsff
4RB8wklDtmTU7mICa3FFB5jFsIzlT3ZGJmpRPAUoJ6m/or+rXdEv5eBr79S284Gj
VePh0DGYo79GRhltqeqwPEj7H/46/qx4BRqf2KL+s6+NAE7JmkYF+jdiZYjPHgAr
ic5MTWY5THDkaFuKaAwS4wJKK3tjdDzW8uM4boCSRNrJsPvDGzCR7D4c2/MFXX5Y
jwww3j3OpA1DGSIHqoK4amgyiWLYH5fjWNK11hE0x78uSitOmnlMhsp3E8xKbyxs
zmvUk/UINMcogRIgnBQRJYragQcDpWypWi0j55g+/pI0A+Mzb+Ao4jLn2B7s/jJq
zvul0dqGvqU1KOfCsCCt
=GqI9
-----END PGP SIGNATURE-----

--4NAIfEpSjlXpZEyn--


From nobody Fri Jan 15 02:28:59 2016
Return-Path: <pb@das-werkstatt.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 763441A9127 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:28:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.2
X-Spam-Level: 
X-Spam-Status: No, score=-1.2 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NP_ymx00MKsX for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:28:55 -0800 (PST)
Received: from zucker.schokokeks.org (zucker.schokokeks.org [178.63.68.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6A5F1A9126 for <cellar@ietf.org>; Fri, 15 Jan 2016 02:28:54 -0800 (PST)
Received: from [192.168.0.14] (chello213047163139.5.15.vie.surfer.at [::ffff:213.47.163.139]) (AUTH: PLAIN bubestinger@schokokeks.org, TLS: TLSv1/SSLv3, 128bits, ECDHE-RSA-AES128-GCM-SHA256) by zucker.schokokeks.org with ESMTPSA; Fri, 15 Jan 2016 11:28:50 +0100 id 0000000000000076.000000005698C9E3.00006F43
Message-ID: <5698C9E2.3080503@das-werkstatt.com>
Date: Fri, 15 Jan 2016 11:28:50 +0100
From: "Peter B." <pb@das-werkstatt.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: cellar@ietf.org
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com> <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com> <14928357-E3E6-4ABB-A858-5A184D1FCDCB@dericed.com>
In-Reply-To: <14928357-E3E6-4ABB-A858-5A184D1FCDCB@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/vGLJ1P707oKsFSk0SAzunQBOCiU>
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 10:28:58 -0000

On 01/15/2016 02:39 AM, Dave Rice wrote:
>> On Jan 14, 2016, at 3:05 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> Yup. There are 3 options for me, Saturday lunch, Saturday dinner, Sunday lunch.
> I have to leave very early Sunday, so Saturday only for me.

"Saturday only" for me, too.

Regards,
Pb


From nobody Fri Jan 15 02:45:39 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 03A161A913F for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:45:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8ZH8eOtT6vHv for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:45:35 -0800 (PST)
Received: from mail-vk0-x22e.google.com (mail-vk0-x22e.google.com [IPv6:2607:f8b0:400c:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A14751A9106 for <cellar@ietf.org>; Fri, 15 Jan 2016 02:45:35 -0800 (PST)
Received: by mail-vk0-x22e.google.com with SMTP id i129so158037595vkb.0 for <cellar@ietf.org>; Fri, 15 Jan 2016 02:45:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=5PCSdJ76eJGgmdX9auvOuRDy9pHeyUbI/E5SpLY9bx8=; b=BL5PffRrQrkSFt4irpcCy+eyZfVBv5b+1GT3u5QRLomEs8tyoxpXs8/d5MZXpsVIng fLB0ymBhOz8xPVKC6bn9HAk9JtScWWtVKpsUX+xR2wf6q6KLl6mUCaihIs2fj1Oo0EXP Q3kJ4HIH1feM21VueMZgLCTg5B0yJuLn3MZaHxkjenPrRTVr3QJYu4+6phHSArIaqPjR ILtEPrISh6st9UE79i2/T/I60yUpOszjpmw4wBgx9C4NcpQwmPlQ+2HR98q4BI0VL8zB kgy3bIFt0RN201xKp0DdYZuCteNngNizV8X0zddN63sQ8Do82+dxJUVawdZensmlbMdN s0hQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=5PCSdJ76eJGgmdX9auvOuRDy9pHeyUbI/E5SpLY9bx8=; b=R5b3uD/RYUBitLfdsAv1XTLMd660OYET6xZr2gtDuh8iH7GsTP+jl+8nlpj7HpFJgI 5McBrB5gKXdDiQnmvKchik45eRJ28MSu4JcLXUZV23RUX2ZgItm2Gdxgai3pjvHvXPZs NDcNjFtzNQJF/goX/J7VNUwT6BrV/qOXv+XDqqnLfQV2C9LwVoXVD5RBPnLuOVLmhu+4 wHTooZWN3cX+3SbDGCovXxs33YRDH5Diqqd0UMw6s2RhKcCCUa8IW9UB5qty2mvRouKW uI+iPWZNKUklRCZLloy31tqyXETlwQd5IjI9NBH/CKAYknyByZ87rEJTYlkvHTJNDRy3 l3ZQ==
X-Gm-Message-State: ALoCoQnZd/5MM+2lXeZkoLiM4+Fma3YJ8Y3lz3zu88SdbT+Dwr9wpk/VYM5r55XmInlsje3QY9An4k0ZV5auW+QUR3mfLeJQ0Q==
MIME-Version: 1.0
X-Received: by 10.31.134.11 with SMTP id i11mr7167129vkd.152.1452854734628; Fri, 15 Jan 2016 02:45:34 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Fri, 15 Jan 2016 02:45:34 -0800 (PST)
In-Reply-To: <20160114125000.GB4063@bunkus.org>
References: <4F99D513-7C50-4297-BDBA-393056D603B2@dericed.com> <CAHUoETLOZdPi_HaiY5XgytTMaQ5arpf1EGW8WrfrUZWCvUv_0w@mail.gmail.com> <CAOXsMFKU0eRA+pSiAJ=Rk+hSB7Lr0SRAAqx1bpT2LWtRG4BgMg@mail.gmail.com> <20160114123849.GA4063@bunkus.org> <CAOXsMF+fhrdoOrP_t1tMQKFhuMrVr9WykijagbPCe9p5ZomP_w@mail.gmail.com> <20160114125000.GB4063@bunkus.org>
Date: Fri, 15 Jan 2016 11:45:34 +0100
Message-ID: <CAOXsMFLgB1+vC3q8q5kFt_WFLXtTFoN9rkscCfKBJfw3Hc6Swg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Moritz Bunkus <moritz@bunkus.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/t3Rpp15Ze4bicNiI6YG8mwjkmrQ>
Cc: Matroska Devel <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] ReferenceTimecode tracks in Matroska proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 10:45:37 -0000

2016-01-14 13:50 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
> Hey,
>
>> 2016-01-14 13:38 GMT+01:00 Moritz Bunkus <moritz@bunkus.org>:
>
>> > Please keep in mind that existing Matroska libraries (not just
>> > libMatroska) name their functions/classes after the elements in the
>> > specs. Renaming the elements in the specs requires either that the the
>> > classes/functions in the libraries be renamed as well (breaking
>> > compilation with each and every program out there) or we'll end up wit=
h
>> > a severe discrepancy between the naming in the libraries and the specs
>> > (especially if new elements will be introduced after the renaming with
>> > names that were used before the naming!).
>>
>> The spec file already has a way to override the name of the C++ class
>> when it doesn't match exactly the one displayed in the specs (usually
>> shorter or just to keep backward compatibility). We just need to use
>> this for such elements.
>> Maybe also add some typedefs to have both old and new names.
>
> What I meant:
>
> - Rename e.g. ClusterTimecode to ClusterTimestamp in the specs
> - Leave the class name the same in the library (ClusterTimecode)
> - Then introduce elements in the spec dealing with actual timecodes
>   (e.g. ReferenceTimecode) which would translate into a class name
>   ReferenceTimecode

I see. Such confusion can be easily avoided. We just need to make sure
to provide backward compaibility.

> Now you have the situation that a developer working with such a library
> would have several classes with Timecode in their name and some of
> those would deal with timestamps and others with timecodes. Highly
> confusing to anyone not familiar with our current discussion.

We could include the text from the specdata as a comment for each
class name. That should at least avoid some confustion.

> Also: functions like KaxBlockGroup::GlobalTimecode() =E2=80=93 those retu=
rn
> timestamps. If not returned it would be very, very confusing for new
> users to determine what they actually return, timestamps or timecodes.

These aren't aren't generated IIRC. So we can edit and document that
manually. Providing both might be a good idea for a future transition.

> Kind regards,
> mosu
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Fri Jan 15 02:48:45 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5FB901ABC0F for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:48:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZUgpgIZIDRLP for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:48:40 -0800 (PST)
Received: from mail-vk0-x235.google.com (mail-vk0-x235.google.com [IPv6:2607:f8b0:400c:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 822BB1ABB1A for <cellar@ietf.org>; Fri, 15 Jan 2016 02:48:40 -0800 (PST)
Received: by mail-vk0-x235.google.com with SMTP id n1so141789372vkb.3 for <cellar@ietf.org>; Fri, 15 Jan 2016 02:48:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=AMeFOKVilESqNq4clDwAfgfXDFGbydL+oZSdC8ZPwsU=; b=KSWnD/TdrrrfQYmKiLMiH0SHYm9NjArV+qeiYWRYP5bK/0vIJr39S34f3yqlpmOlFF cd753JaK4qw22qIQLhXyq3Wm//HXAy8e34pWsR4q6/IGy/CLUsrcEoQs74UmzHIVYbrx Z6oiG9Fl3CNnU/+S/wWaJDqhoupxgeyP6SjWDyY6hQLn2iNEHxPLMHkzygsX1KsGLdW1 6r8ftkhs+Fxm7+trY0Y+JrXl+JMVjN1d0Jle7/V9a7CHchTObIA5ntPDdTvJi4Xu5oZr 3orfl6xGAS4vu1vpQKSTsEYWS7Jg3iC1Etx7D9Z9OD3Y+Rz2ZtwvUqrwLad7Xt/uVQeL +vHg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=AMeFOKVilESqNq4clDwAfgfXDFGbydL+oZSdC8ZPwsU=; b=nMBt7Z+H6AJtIJLz3eyub5qkbHIE1oKvCl3Lb4PNsi7F4CbjH62PCjcPACoW6Q2MUt 30+uj10cfxnunMTsYU9x6VBdESZVIbcvtqtJbiGhI6FKAYr970Di9NYo1kRYODF3h8rV 2EawK0FXGx6gTwTcQNmkGEweMA7pRbvIn7Nif5Fl+3d3ubLLe9U8uDR2kcOZgaA4qXkX N8SnSqotA1DNK/QhUe5lNIPoVNgRM4Vus/0iTmaC6eROl8zvKd+8G2naDq18hSOTe7f4 K1I2TYXd6lpOou4eS9MxDMpk0KAOlieF44I1asu2poJbYGj8IEp0jIr7JSKZUujLbloT /sLw==
X-Gm-Message-State: ALoCoQlmWWmzfJM7FszBmT/ecxk2F8j8/FqGf8D+06CzVcMA5/chsI4CAN0I0t+tTs2DSkJpnHvxQRWa3iQU1ghV4F1T+tgmdQ==
MIME-Version: 1.0
X-Received: by 10.31.150.23 with SMTP id y23mr6933572vkd.87.1452854919719; Fri, 15 Jan 2016 02:48:39 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Fri, 15 Jan 2016 02:48:39 -0800 (PST)
In-Reply-To: <56981134.3080607@xiph.org>
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com> <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com> <CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com> <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com> <56981134.3080607@xiph.org>
Date: Fri, 15 Jan 2016 11:48:39 +0100
Message-ID: <CAOXsMFKgtq4xrosNGopmst0X_=VqK5taTdnQFnSniw1umuL+wg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: "Timothy B. Terriberry" <tterribe@xiph.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/dg446vVCoX2sbMwkeOuc0EsEN-0>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 10:48:44 -0000

2016-01-14 22:20 GMT+01:00 Timothy B. Terriberry <tterribe@xiph.org>:
> Steve Lhomme wrote:
>>
>> Correct, even MP3 has it. Only Opus needed this to be known at the
>> container level for reasons that escape me now.
>
>
> No, Vorbis needed it also, but it was simply never implemented (which meant
> certain aspects of encapsulating Vorbis in MKV were broken without it, see
> below).
>
> There are two use cases:
>
> 1) The delay introduced by the encoder is variable in Opus. For example, if
> the encoder knows the SILK layer is never going to be used, it can avoid
> adding the extra delay it requires (a decoder cannot know this in advance).
> Alternatively, if the encoder uses different internal resamplers than the
> reference implementation, those can require different delay offsets between
> CELT/SILK (and thus a different total delay).
>
> For Vorbis, the delay was always a single frame (the delay was still
> variable, because that frame could be short or long, but this was signaled
> in the frame itself at the codec layer).
>
> 2) Sample-accurate cropping without re-encoding. In this case you want to
> start playing the data from the middle of a frame, and need to know how much
> to discard (this use-case applies to both Opus and Vorbis).
>
> Ogg provided a mechanism to handle both of these, but before CodecDelay, MKV
> did not. That meant that if you muxed an Ogg Vorbis track that used
> start-trimming into a MKV container, the software would silently just change
> the duration of the track. The same problem existed with sample-accurate
> durations at the end of the track (much more common), but that's what
> DiscardPadding is for.
>
> MP3 is simply incapable of representing sample-accurate start and end times
> (though in theory MP3 in MKV could now do so with these elements).

OK, so do we agree that negative timecodes should not be "rendered"
(play any audio) ?

> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Fri Jan 15 02:53:09 2016
Return-Path: <jerome@mediaarea.net>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34F2E1AC3E1 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:53:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level: 
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1SmutwSGQKo1 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 02:53:06 -0800 (PST)
Received: from 1.mo69.mail-out.ovh.net (1.mo69.mail-out.ovh.net [178.33.251.173]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 699611AC3E0 for <cellar@ietf.org>; Fri, 15 Jan 2016 02:53:06 -0800 (PST)
Received: from mail433.ha.ovh.net (b9.ovh.net [213.186.33.59]) by mo69.mail-out.ovh.net (Postfix) with SMTP id D36D4FF9870 for <cellar@ietf.org>; Fri, 15 Jan 2016 11:53:04 +0100 (CET)
Received: from localhost (HELO queueout) (127.0.0.1) by localhost with SMTP; 15 Jan 2016 12:53:03 +0200
Received: from p5ddb663f.dip0.t-ipconnect.de (HELO ?192.168.2.101?) (jerome@francoallemand.eu@93.219.102.63) by ns0.ovh.net with SMTP; 15 Jan 2016 12:53:01 +0200
To: cellar@ietf.org
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com> <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com> <14928357-E3E6-4ABB-A858-5A184D1FCDCB@dericed.com> <5698C9E2.3080503@das-werkstatt.com>
From: Jerome Martinez <jerome@mediaarea.net>
Message-ID: <5698CF8C.8010501@mediaarea.net>
Date: Fri, 15 Jan 2016 11:53:00 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <5698C9E2.3080503@das-werkstatt.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Ovh-Tracer-Id: 14955609938909597842
X-Ovh-Remote: 93.219.102.63 (p5ddb663f.dip0.t-ipconnect.de)
X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
X-OVH-SPAMSTATE: OK
X-OVH-SPAMSCORE: 0
X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrleduucetufdoteggodftvfcurfhrohhfihhlvgemucfqggfjnecuuegrihhlohhuthemuceftddtnecu
X-VR-SPAMSTATE: OK
X-VR-SPAMSCORE: 0
X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeekiedrledugddvtdcutefuodetggdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenuc
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/AfSutMLawjE8EEGeqrUb-HzUVcs>
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 10:53:08 -0000

Le 15/01/2016 11:28, Peter B. a écrit :
> On 01/15/2016 02:39 AM, Dave Rice wrote:
>>> On Jan 14, 2016, at 3:05 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>>
>>> Yup. There are 3 options for me, Saturday lunch, Saturday dinner, Sunday lunch.
>> I have to leave very early Sunday, so Saturday only for me.
> "Saturday only" for me, too.

I vote for Saturday dinner, so we have the time to assist to more FOSDEM 
presentations during the day.

Jérôme


From nobody Fri Jan 15 03:00:51 2016
Return-Path: <michael@niedermayer.cc>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A90911AC444 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 03:00:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cfrbEPPrmBkw for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 03:00:45 -0800 (PST)
Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 77FDA1AC43C for <cellar@ietf.org>; Fri, 15 Jan 2016 03:00:45 -0800 (PST)
Received: from mfilter34-d.gandi.net (mfilter34-d.gandi.net [217.70.178.165]) by relay3-d.mail.gandi.net (Postfix) with ESMTP id 0678CA80F2; Fri, 15 Jan 2016 12:00:44 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mfilter34-d.gandi.net
Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195]) by mfilter34-d.gandi.net (mfilter34-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id Zc73w5BxhnXl; Fri, 15 Jan 2016 12:00:42 +0100 (CET)
X-Originating-IP: 213.47.64.66
Received: from localhost (chello213047064066.6.14.vie.surfer.at [213.47.64.66]) (Authenticated sender: michael@niedermayer.cc) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 53379A80FB; Fri, 15 Jan 2016 12:00:41 +0100 (CET)
Date: Fri, 15 Jan 2016 11:59:41 +0100
From: Michael Niedermayer <michael@niedermayer.cc>
To: Moritz Bunkus <moritz@bunkus.org>
Message-ID: <20160115105941.GC13213@nb4>
References: <CAOXsMFKJJhzU-3CYqguDePY42T+Vvhx9ytAfvoM6xyqaZY+N4g@mail.gmail.com> <FCC4DC05-44CD-4C2B-8C59-8E3E5B494DC0@dericed.com> <568D6710.8000605@gmx.de> <692F039A-180D-4535-B4A1-529A777573F5@dericed.com> <5693D5D6.6030709@xiph.org> <F6B37DB3-EDCB-4BD2-9B0D-F8A4F353F36E@dericed.com> <20160112133656.GJ4063@bunkus.org> <5697E0D6.5000906@gmx.de> <FA83BFB8-286C-4BD5-A757-F653A06702A2@dericed.com> <20160115081026.GC4063@bunkus.org>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="NNVaupgJYQhsR2bD"
Content-Disposition: inline
In-Reply-To: <20160115081026.GC4063@bunkus.org>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/GJJ6tzcryhitKPZCWH6VjwtQ32k>
Cc: cellar@ietf.org
Subject: Re: [Cellar] On the multiplicity of Info elements
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 11:00:49 -0000

--NNVaupgJYQhsR2bD
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jan 15, 2016 at 09:10:27AM +0100, Moritz Bunkus wrote:
> Hey,
[...]
> > > My usecase for checksums was indeed just error recovery.
>=20
> Just to be clear. "Error recovery" usually means both "error detection"
> and "error correction". CRCs are only meant and useful for the
> recovery. On their own they don't do anything for correction.

Its possible to correct single bit, burst and some multi bit errors
with CRCs

it depends on the CRC polynom used and on the data length

see: http://guru.multimedia.cx/index.php?s=3Dcrc+correcting

[...

--=20
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle

--NNVaupgJYQhsR2bD
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlaY0R0ACgkQYR7HhwQLD6uQmgCeJDMsl2FpJg4/PBnGjtmi53uo
Qi0AniZBDLbk1KyiWYX4IEF2CPmzrZ3I
=gfWr
-----END PGP SIGNATURE-----

--NNVaupgJYQhsR2bD--


From nobody Fri Jan 15 03:47:33 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9CFB11B2B98 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 03:47:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id edSKxo0K5-7E for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 03:47:31 -0800 (PST)
Received: from mail-vk0-x22f.google.com (mail-vk0-x22f.google.com [IPv6:2607:f8b0:400c:c05::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 10EB91B2B9A for <cellar@ietf.org>; Fri, 15 Jan 2016 03:47:31 -0800 (PST)
Received: by mail-vk0-x22f.google.com with SMTP id a123so267028447vkh.1 for <cellar@ietf.org>; Fri, 15 Jan 2016 03:47:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=MyTEeTZkrwncF4M0HA1R9iZ0wAVRYZH3gZHncMmyaZ4=; b=fiZp7iN/GHKnNg3gTu3MY9xMRT4A0CK3YEqj/tFXKYgfmWqRj2KZzay0+BMYeDM113 4PAn0vM4i15NOMOL2TMqucLZrD71p/7v2c+uRVMJlXWEjjek9HcZtWt9ECJPlN2cMl9K hR1XwiSekibEGjf6LxGtf691qjX/uG8vC6QbP2jYEo41LvW7YoG/H9QB5gQ7J5R9pqVC hVYWGh9xPSKMEjy6U+W2rucSNnzDx2m53v0ZMEVG35CQ5e5vGGdlqOd8N4l0ADDyXOXy TAkn3RVk6HhIegrLKFbHuqH/8jo66s2M/VHzCY2m3lvUoBq++fVqp2StKFKboG4m3zYh zhcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=MyTEeTZkrwncF4M0HA1R9iZ0wAVRYZH3gZHncMmyaZ4=; b=HQX6Ve2eqqmtDLmfobB5WNrhpIboGs4JkGIjVi5CXMPh7GJMkJKYrSmWXUI+WtiAdH iSv8Oses1GDMd7TwElgp49TJUN5EBFZvxxaik1kAX7wqLjcLv5qW3pi9jjlifaUzOZKH 8ORj5YEIFAP4G+fE7ODqJ/IBF+bMXMZ81B7FC8TySBWgM6Oq6iQmQlDpgqZsOCrhRKPn YKB1Oa8OMHOKSKsNlAOOpaSnn7FtBUw19QJdoBLT6uGYVpxvIu84L3T7e309PfQxZKxG 0uKoS5XI0Y6mOokPExvyx6wj9ewKQO9980KeFrqMBZniImJvnjrNRhtfSjvGH5T+5twn CF1A==
X-Gm-Message-State: ALoCoQmgIfpqY7SnhhVSi6NxhkEjNHdU8Rjfj7erjmSv12wd/fOXG8hMU2G59c1ZaF15qU3Z9CVm8/7nPBBfmULq/DZR/c3zSw==
MIME-Version: 1.0
X-Received: by 10.31.135.79 with SMTP id j76mr6633726vkd.91.1452858450146; Fri, 15 Jan 2016 03:47:30 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Fri, 15 Jan 2016 03:47:30 -0800 (PST)
In-Reply-To: <5698CF8C.8010501@mediaarea.net>
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com> <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com> <14928357-E3E6-4ABB-A858-5A184D1FCDCB@dericed.com> <5698C9E2.3080503@das-werkstatt.com> <5698CF8C.8010501@mediaarea.net>
Date: Fri, 15 Jan 2016 12:47:30 +0100
Message-ID: <CAOXsMFLCpghowN7UCnSjWst_dV6aiSS_tmxpzFNABfehX+o+4w@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Jerome Martinez <jerome@mediaarea.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/LRhoxr5NhdK2TkuACPejglyTDpE>
Cc: cellar@ietf.org
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 11:47:32 -0000

2016-01-15 11:53 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
> Le 15/01/2016 11:28, Peter B. a =C3=A9crit :
>>
>> On 01/15/2016 02:39 AM, Dave Rice wrote:
>>>>
>>>> On Jan 14, 2016, at 3:05 AM, Steve Lhomme <slhomme@matroska.org> wrote=
:
>>>>
>>>> Yup. There are 3 options for me, Saturday lunch, Saturday dinner, Sund=
ay
>>>> lunch.
>>>
>>> I have to leave very early Sunday, so Saturday only for me.
>>
>> "Saturday only" for me, too.
>
>
> I vote for Saturday dinner, so we have the time to assist to more FOSDEM
> presentations during the day.

I might have dinner with the VideoLAN people, but there's nothing settled y=
et.

> J=C3=A9r=C3=B4me
>
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Fri Jan 15 04:00:28 2016
Return-Path: <pb@das-werkstatt.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C71AD1B2BB3 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 04:00:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gOcjrecsuPO4 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 04:00:25 -0800 (PST)
Received: from zucker.schokokeks.org (zucker.schokokeks.org [178.63.68.96]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 22C721B2BAF for <cellar@ietf.org>; Fri, 15 Jan 2016 04:00:24 -0800 (PST)
Received: from [192.168.0.14] (chello213047163139.5.15.vie.surfer.at [::ffff:213.47.163.139]) (AUTH: PLAIN bubestinger@schokokeks.org, TLS: TLSv1/SSLv3, 128bits, ECDHE-RSA-AES128-GCM-SHA256) by zucker.schokokeks.org with ESMTPSA; Fri, 15 Jan 2016 13:00:22 +0100 id 00000000000000A7.000000005698DF56.00000AD7
Message-ID: <5698DF57.8020601@das-werkstatt.com>
Date: Fri, 15 Jan 2016 13:00:23 +0100
From: "Peter B." <pb@das-werkstatt.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: cellar@ietf.org
References: <347A92AE-410F-43CA-98FE-F52912E9E501@dericed.com> <CAOXsMFK6OKDoud3sLtus-CCv65NwYVxGmntPkm07eZP+dr_PJA@mail.gmail.com> <14928357-E3E6-4ABB-A858-5A184D1FCDCB@dericed.com> <5698C9E2.3080503@das-werkstatt.com> <5698CF8C.8010501@mediaarea.net> <CAOXsMFLCpghowN7UCnSjWst_dV6aiSS_tmxpzFNABfehX+o+4w@mail.gmail.com>
In-Reply-To: <CAOXsMFLCpghowN7UCnSjWst_dV6aiSS_tmxpzFNABfehX+o+4w@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/wRaq8uHWvDAjZ9-xgVdCrdhEZZQ>
Subject: Re: [Cellar] FOSDEM
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 12:00:26 -0000

On 01/15/2016 12:47 PM, Steve Lhomme wrote:
> 2016-01-15 11:53 GMT+01:00 Jerome Martinez <jerome@mediaarea.net>:
>> I vote for Saturday dinner, so we have the time to assist to more FOSDEM
>> presentations during the day.
> I might have dinner with the VideoLAN people, but there's nothing settled yet.

Maybe this can be combined?
VideoLAN plays a major role in the digital video domain, so it might
make sense for all of us to get to know each other.


Just my 2 cents :)


Cheers!
Pb


From nobody Fri Jan 15 04:44:07 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 27AB61AC3AC for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 04:44:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QEevkPmhjBZ2 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 04:44:03 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 467231A9138 for <cellar@ietf.org>; Fri, 15 Jan 2016 04:44:03 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id i129so159401495vkb.0 for <cellar@ietf.org>; Fri, 15 Jan 2016 04:44:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=iJmrbbC5Os4U6Sn73mUj8PiyM8U8VyhJ9b1HZ01EVko=; b=WXf7qkYo8dYWRs8oJN37BpyFAf+APvRv6XB3xPYu+OsR6jHAu/17za9mVnFlwucb9S tbdt0abyE7U+axFcML6nNG4NNPOEKU+m6G3N+XHWiRGnprE3IFFrGPsm3H0DcN0IO9p7 44GD00p5Xn5mV0wdBJ7LYH6rvOl9YYJ+n+oApp9YrnTMI95Ymff41oNcYyuqotazmIKE 24+PAsFiNiqGjNK6ocuzL89jmBDE/m64xNKxYk1tWk+Pt1ChRyd0krUP5cr+m/choeTG 03dVliWHsEw3N4ICNQK2O4yW0ctuoft7cNGkafNjZWPjKcV+E9LlIeK6qeanF6KwJZSF ImxQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=iJmrbbC5Os4U6Sn73mUj8PiyM8U8VyhJ9b1HZ01EVko=; b=Fi2Z+NwmIdrdNxgauNXq4GedKBvV/EEvzE/nJoV7k5YiFfrnWv09piNWhqF3Uqv0A1 5M3uTcIyxzpgGuTpC0jpdulIy0Itgf+LLVJZ1poFOA7AADwlK1xiIBRzTJWVlxJF2FIY gP3FdpGU/mp3fp82uhGosWriEniK2kynrEUI4PjqMj5deaIqB3yUYN1J+lvZw9yxe6P0 afa3Wl54riQKOAyftcOfZn1lWM6x8HLfR0FGETehqlaXaO4DXKNnAD5FoBi3t+VWMu/p KUJEqPDTH7Tk/jl+A+7M684Z/7KAG3a7yk6LFvMjxNCmvsGb0pwquUMuLTbWgLDU+CP+ f4Ug==
X-Gm-Message-State: ALoCoQmZuHftWCOZl+ZlU50WrpiYJovfKNexK6uDUPa31mI01rzpaqrL3QtMbW2Jlun6sCrFYE3jfgmU4n8st1Q4Y2pVevQwWw==
MIME-Version: 1.0
X-Received: by 10.31.5.139 with SMTP id 133mr7110519vkf.157.1452861842033; Fri, 15 Jan 2016 04:44:02 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Fri, 15 Jan 2016 04:44:01 -0800 (PST)
In-Reply-To: <87110F5D-3199-4CF5-887E-D5B8C7A08C6C@dericed.com>
References: <21E28D45-E45F-4CBE-AC3D-6E41DCE172B9@dericed.com> <20150828065002.GH3813@bunkus.org> <CE3611BE-40C3-4A3C-A477-FE62145764E6@dericed.com> <CAOXsMFJuJkVh+hBeOsnaeXmVUhBTP9UxL0zRaeaLCkU3oTm7oA@mail.gmail.com> <5606B89B-FCF0-4C75-BAB8-FB1E212F8D82@dericed.com> <5EDBE9D2-3E2F-4865-ACF9-497706E0CA07@dericed.com> <87110F5D-3199-4CF5-887E-D5B8C7A08C6C@dericed.com>
Date: Fri, 15 Jan 2016 13:44:01 +0100
Message-ID: <CAOXsMFKmH_o_bE8+qMqVB0f2Ri4ZZ2Sq9UwAH+MzaKCO66DvFQ@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9B1nHZhnLEX7onJIXQPsbPbDdo4>
Cc: cellar@ietf.org
Subject: Re: [Cellar] EBML Schema
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 12:44:06 -0000

2016-01-15 7:27 GMT+01:00 Dave Rice <dave@dericed.com>:
>
> On Dec 1, 2015, at 10:40 AM, Dave Rice <dave@dericed.com> wrote:
>
> On Nov 9, 2015, at 1:19 PM, Dave Rice <dave@dericed.com> wrote:
>
> On Oct 3, 2015, at 9:46 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>
> On Aug 28, 2015 17:00, "Dave Rice" <dave@dericed.com> wrote:
>
>>> On Aug 28, 2015, at 2:50 AM, Moritz Bunkus <moritz@bunkus.org> wrote:
>>>
>>> Hey,
>>>
>>> I have no objections, however I don't know a lot about XML schemas in
>>> the first place (neither about DTDs, to be honest).
>>
>>
>> Honestly, I know a lot more about XML Schemas than I do about DTDs. As
>> wikipedia mentions at
>> https://en.wikipedia.org/wiki/Document_type_definition, DTDs have largel=
y
>> been superseded by XML Schemas. And at this point I think that XML Schem=
as
>> may be a more familiar analogy to use.
>>
>> I think XML Schemas also share more in common with specdata.xml than DTD=
s
>> do. Schemas use the <element> node and have maxOccurs and minOccurs
>> attributes (specdata has semantically the same thing with mandatory and
>> multiple), they both have a similar declaration of element type, element
>> name and element description. Actually I think a semantically equivalent
>> version of specdata.xml could be written as an XML Schema.
>>
>> XML Schemas also offer a few advantages for machine readable expressions=
;
>> for instance XML Schemas can mandate a particular pattern or regex for a
>> value.
>>
>>>> I propose the specdata.xml file here
>>>>
>>>> https://github.com/Matroska-Org/foundation-source/blob/master/spectool=
/specdata.xml
>>>>
>>>> <https://github.com/Matroska-Org/foundation-source/blob/master/spectoo=
l/specdata.xml>
>>>> is a good basis for the consideration of an EBML Schema. From what I
>>>> can see, specdata.xml is an expression of the EBML + Matroska
>>>> specifications to support automated creation of documentation, but the
>>>> structure of this already shares a lot of similarity to XML Schemas.
>>>
>>>
>>> For both documentation (e.g. the table on the matroska.org specs page i=
s
>>> generated from this file) and code (libMatroska's class hierarchy is
>>> generated automatically from this file) actually.
>>
>>
>> Does specdata.xml play a role in mkvalidate? I'm thinking of the potenti=
al
>> to have an ebmlvalidator where you can provide the EBML Schema to valida=
te
>> particular EBML docType.
>
> Well the parsing code is generated from the XML file, so in a way, yes. B=
ut
> it's not parsed "live".
>
>>>> Is there a preference in handling the standardization of Matroska:
>>>> documenting it in a similar fashion to our work in the EBML spec or to
>>>> define what an EBML Schema is and consider matroska an expression of
>>>> it?
>>>
>>>
>>> I'm not sure whether or not I understand the implications. But my gut
>>> feeling is that having a definition for an EBML Schema would benefit
>>> other formats than Matroska, too, therefore the latter seems the way to
>>> go.
>>
>>
>> I have the same feeling:
>> - document EBML as a specification that includes rules for defining a
>> docType in the form of an EBML Schema
>> - write an EBML Schema (updated specdata.xml) for Matroska and maybe web=
M
>>
>>>> Are some changes to specdata.xml acceptable? Such as a filename change
>>>> or changing the name of the <table> element of some attributes?
>>>
>>>
>>> Well, like I said above the specdata.xml is used for generating both
>>> documentation and code. Both should stay viable. If changes to it are
>>> made then the accompanying tools must be updated as well.
>>>
>>>> Neither the current EBML specs nor the specdata.xml specifically refer
>>>> to the hierarchical arrangement of the elements, but this could be
>>>> presumed by their ordering. For instance, could any level 3 element be
>>>> a child of any level 2 Master-element? I presume not, but I don't
>>>> think it's clear anywhere what parent-child relationships are
>>>> feasible. Possibly specdata.xml and/or the EBML Schema Definition
>>>> could define the relationship between levels of related elements
>>>> similar to how an XML Schema (XSD) does.
>>>
>>>
>>> So far it is understood that an element not marked as a global element
>>> must only occur as a child of its parent. Its parent is the last elemen=
t
>>> located before the child element in the specdata file with a lower leve=
l
>>> than the child element. Or something like that.
>>
>>
>> This will need some documentation. That's how I've understood the mkv sp=
ec
>> as well but the definition for how an EBML Schema works should be explic=
it
>> about this.
>
> Any more opinion about how to go about (or if to go about) modifying
> specdata.xml towards becoming an expression of a to-be-defined EBML Schem=
a
> for matroska and webm? As a summary of proposed changes to specdata.xml
>
> - change to XML Schema conventions where relevant:
> - use maxOccurs attribute instead of the current Multiple attribute.
> - use minOccurs attribute instead of the current Mandatory attribute.
> - move documentation of elements to a sub-element (allows for possible
> internationalization in the schema and better semantics)
> - arrange elements in hierarchical form to indicate parent-child
> relationships (rather than the current practices where all elements are
> defined at the same level, and you have to parse back in elements to the =
one
> with the lower-numbered level attribute to find the parent)
>
> A draft of specdata.xml with these changes is at
> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347. I can continue to w=
ork
> on this and send back changes for advice/approval but if I do so is there
> someone who could later update the tools that use specdata.xml so that
> newly-defined EBML Schemas may later to be into use?
>
>
> I=E2=80=99m preparing a pull request on specdata.xml but want to update t=
he
> utilities in spectool at the same time so that spec2data, data2lib, and
> data2spec still function properly. I=E2=80=99m having trouble getting the=
 spectool
> utilities to build properly so that I can test them. I was able to build
> coremake but not sure where to go from here. I=E2=80=99ve read spec2data =
and have an
> idea of how it works and am thinking that I could reproduce the spec2data
> workflow with xsl and then we could have a make file which uses xsltproc =
to
> convert an EBML Schema into the Drupal table and library files as needed.
> Any advice on which route to take: continue trying with getting spectool
> utilities to build or redo the utilities in xsl?
>
>
> I=E2=80=99d like to revive this thread to propose some changes in the def=
inition of
> the EBML Schema. The EBML Schema is intended to be a machine-readible
> document that details the semantics and structure of an EBML Document Typ=
e.
> The EBML Schema for a Document Type is essential for understanding the
> semantics and validating an EBML Document. This proposal builds upon an
> earlier conversation started last year on matroska-devel,
> http://lists.matroska.org/pipermail/matroska-devel/2015-August/004765.htm=
l,
> http://lists.matroska.org/pipermail/matroska-devel/2015-October/004807.ht=
ml.
>
> I=E2=80=99m open to other solutions or approaches, but since Matroska is =
based on
> EBML which itself is becoming well-defined. I think there is utility in
> documenting how to create a machine-readible document that describes an E=
BML
> Document Type. I think the concept of the XML Schema and XML Document is
> analogous to EBML Schema and EBML Document and that adopting from the XML
> community for documenting form may be beneficial.
>
> Thus far we have this section
> https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c=
60294c1e7ea68f703e07e50/specification.markdown#ebml-schema
> which introduces the concept for the EBML Schema and then provides a list=
 of
> attributes for defining Elements that make up a specific EBML Document Ty=
pe
> https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c=
60294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-attribut=
es.
> This documentation currently reflects the specdata.xml file of the Matros=
ka
> foundation-source repo, which is here
> https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml.
> The specdata.xml file is used to create the HTML table of elements on
> http://matroska.org/technical/specs/index.html and libraries used by
> mkvalidate and other files. After drafting the EBML Schema and Attribute
> documentation I found
> http://matroska.org/technical/specs/notes.html#Table_Columns which covers
> similar concepts.
>
> I=E2=80=99d like to propose the following changes to the definition of EB=
ML Schema:
>
> - Replace <table> with <EBMLSchema>.
>
> The node <table> makes sense in the context of the HTML table on
> matroska.org but if there will be greater machine-readible usage I think =
a
> rename would clarify.
>
> - Add an XML NameSpace attribute to <EBMLSchema>.
>
> This would add something like
> xmlns=3D=E2=80=9Chttp://official_url_of_EBML_Schema_definition.org/EBMLSc=
hema.xsd=E2=80=9D.
> The EBMLSchema.xsd file would be an XML Schema that defines the EBMLSchem=
a
> document itself. Yes, this uses an XML Schema to define the EBML Schema, =
but
> this gives a way to validate the EBML Schemas and docType definitions mad=
e
> by others.
>
> - Add a =E2=80=9CdocType=E2=80=9D attribute to <EBMLSchema>
>
> This would clarify what the EBMLSchema is documenting, thus it would star=
t
> with <EBMLSchema docType=3D=E2=80=9Cmatroska=E2=80=9D>
>
> - Add =E2=80=9Cversion=E2=80=9D attribute to <EBMLSchema>
>
> This would note the highest version number of the docType officially
> documented by the EBML Schema, so the EBML Schema would be inferred to
> document the noted docType from version 0 up to the version value listed
> here.

Maybe we need something to say it's the final version or a draft.

> - Rename =E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D and r=
ename =E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D

That may be odd when we add "repeatable" elements that must be maxOccurs =
=3D 1.

> This is to match the meaning of minOccurs and maxOccurs in XML Schema,
> https://www.w3.org/TR/xmlschema-0/#ref6.
> mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to minOccurs=3D=E2=80=
=9C0"
> mandatory=3D=E2=80=9C1=E2=80=9D would be equivalent to minOccurs=3D=E2=80=
=9C1=E2=80=9D
> no mandatory attribute would be equivalent of no minOccurs attribute whic=
h
> is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as is true with minOccu=
rs within an XML
> Schema)
>
> multiple=3D=E2=80=9C0=E2=80=9D would be equivalent to maxOccurs =3D=E2=80=
=9C1"
> multiple =3D=E2=80=9C1=E2=80=9D would be equivalent to maxOccurs =3D=E2=
=80=9Cunbounded=E2=80=9D
> no multiple attribute would be equivalent of no maxOccurs attribute which=
 is
> equivalent to maxOccurs =3D=E2=80=9C1=E2=80=9D (as is true with maxOccurs=
 within an XML
> Schema)
>
> Moving from mandatory/multiple to minOccurs/maxOccurs can be done with no
> semantic differences, but we=E2=80=99d have to advantage of allowing for =
constraints
> to the number of usage that are not 0, 1, and infinite. For instance, I
> understand the logic to have 2 SeekHead Elements, but is there a scenario
> for 3 or more SeekHeads at the same Level within the same EBML Document?

Limiting the amount of redirection might be a good thing indeed.

> - Store <element> nodes hierarchically rather than all at the same level.
>
> Currently with in the specdata.xml file it is difficult to ascertain the
> parent of a given element. It can be done by seeking to the previous elem=
ent
> where the level of the element is one value lower, but there are exceptio=
ns
> for global elements. I suggest that a structure of
> <element>
> <element>...</element>
> <element>...</element>
> </element>
> is more clear than all elements at the same level. I made an example draf=
t
> of specdata.xml with nested implementing here:
> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347.
>
> I can provide a patch to the current EBML Schema and EBML Schema Attribut=
es
> as well as incorporate a sample EBML Schema into the specification, but
> wanted to nudge for comments before proceeding.

The current flat hierarchy is not good anyway. I will need a bit of
time to update the spec tools accordingly. But the change is OK for
me.

> Dave Rice
>
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Fri Jan 15 06:55:21 2016
Return-Path: <tterribe@xiph.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 216281ACE89 for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 06:55:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.313
X-Spam-Level: 
X-Spam-Status: No, score=-5.313 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311, RCVD_IN_DNSWL_HI=-5, SPF_SOFTFAIL=0.665] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sep5Te7kg7Ui for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 06:55:17 -0800 (PST)
Received: from smtp.mozilla.org (mx1.scl3.mozilla.com [63.245.214.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 026271ACE88 for <cellar@ietf.org>; Fri, 15 Jan 2016 06:55:17 -0800 (PST)
Received: from localhost (localhost6.localdomain [127.0.0.1]) by mx1.mail.scl3.mozilla.com (Postfix) with ESMTP id 741BAC1D88 for <cellar@ietf.org>; Fri, 15 Jan 2016 14:55:16 +0000 (UTC)
X-Virus-Scanned: amavisd-new at mozilla.org
Received: from smtp.mozilla.org ([127.0.0.1]) by localhost (mx1.mail.scl3.mozilla.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dwopqzjpVSl4 for <cellar@ietf.org>; Fri, 15 Jan 2016 14:55:16 +0000 (UTC)
Received: from [172.17.0.44] (50-78-100-113-static.hfc.comcastbusiness.net [50.78.100.113]) (Authenticated sender: tterriberry@mozilla.com) by mx1.mail.scl3.mozilla.com (Postfix) with ESMTPSA id 414C4C1C41 for <cellar@ietf.org>; Fri, 15 Jan 2016 14:55:16 +0000 (UTC)
Message-ID: <56990853.4000404@xiph.org>
Date: Fri, 15 Jan 2016 06:55:15 -0800
From: "Timothy B. Terriberry" <tterribe@xiph.org>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 SeaMonkey/2.26
MIME-Version: 1.0
To: cellar@ietf.org
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com>	<CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com>	<CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com>	<CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com>	<56981134.3080607@xiph.org> <CAOXsMFKgtq4xrosNGopmst0X_=VqK5taTdnQFnSniw1umuL+wg@mail.gmail.com>
In-Reply-To: <CAOXsMFKgtq4xrosNGopmst0X_=VqK5taTdnQFnSniw1umuL+wg@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/9HHp5VNAOE6WCT-0Pt0pFwxDhR4>
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 14:55:20 -0000

Steve Lhomme wrote:
> OK, so do we agree that negative timecodes should not be "rendered"
> (play any audio) ?

I think the meaning of CodecDelay is clear: you should throw away the 
first "CodecDelay" worth of samples. What would be the behavior if the 
first block's timecode (before adjusting for CodecDelay) was positive? 
If it was already negative (again, before adjusting for CodecDelay)?

To my mind, this should be thought of as if the first "CodecDelay" worth 
of samples are simply deleted. They don't have a negative timecode. They 
don't exist. After doing that, the behavior should be the same as in the 
no-CodecDelay case. The problem here is that we currently talk about the 
timecode of a block, not of individual samples.

(speaking solely as an individual here)


From nobody Fri Jan 15 07:35:54 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 73B411B2DEF for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 07:35:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level: 
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z_kJ12NUfQXT for <cellar@ietfa.amsl.com>; Fri, 15 Jan 2016 07:35:45 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 739231B2DED for <cellar@ietf.org>; Fri, 15 Jan 2016 07:35:45 -0800 (PST)
Received: from [146.96.19.240] (port=28970 helo=[10.10.202.53]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aK6Pb-000kZ4-LC; Fri, 15 Jan 2016 10:35:44 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFKmH_o_bE8+qMqVB0f2Ri4ZZ2Sq9UwAH+MzaKCO66DvFQ@mail.gmail.com>
Date: Fri, 15 Jan 2016 10:35:41 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <E033A534-557F-430A-B3E4-D4C20E04C471@dericed.com>
References: <21E28D45-E45F-4CBE-AC3D-6E41DCE172B9@dericed.com> <20150828065002.GH3813@bunkus.org> <CE3611BE-40C3-4A3C-A477-FE62145764E6@dericed.com> <CAOXsMFJuJkVh+hBeOsnaeXmVUhBTP9UxL0zRaeaLCkU3oTm7oA@mail.gmail.com> <5606B89B-FCF0-4C75-BAB8-FB1E212F8D82@dericed.com> <5EDBE9D2-3E2F-4865-ACF9-497706E0CA07@dericed.com> <87110F5D-3199-4CF5-887E-D5B8C7A08C6C@dericed.com> <CAOXsMFKmH_o_bE8+qMqVB0f2Ri4ZZ2Sq9UwAH+MzaKCO66DvFQ@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/MEPe3l7HCaXfd7gjgXHoWB1Xdfk>
Cc: cellar@ietf.org
Subject: Re: [Cellar] EBML Schema
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 15 Jan 2016 15:35:52 -0000

> On Jan 15, 2016, at 7:44 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-15 7:27 GMT+01:00 Dave Rice <dave@dericed.com>:
>>=20
>> On Dec 1, 2015, at 10:40 AM, Dave Rice <dave@dericed.com> wrote:
>>=20
>> On Nov 9, 2015, at 1:19 PM, Dave Rice <dave@dericed.com> wrote:
>>=20
>> On Oct 3, 2015, at 9:46 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>=20
>> On Aug 28, 2015 17:00, "Dave Rice" <dave@dericed.com> wrote:
>>=20
>>>> On Aug 28, 2015, at 2:50 AM, Moritz Bunkus <moritz@bunkus.org> =
wrote:
>>>>=20
>>>> Hey,
>>>>=20
>>>> I have no objections, however I don't know a lot about XML schemas =
in
>>>> the first place (neither about DTDs, to be honest).
>>>=20
>>>=20
>>> Honestly, I know a lot more about XML Schemas than I do about DTDs. =
As
>>> wikipedia mentions at
>>> https://en.wikipedia.org/wiki/Document_type_definition, DTDs have =
largely
>>> been superseded by XML Schemas. And at this point I think that XML =
Schemas
>>> may be a more familiar analogy to use.
>>>=20
>>> I think XML Schemas also share more in common with specdata.xml than =
DTDs
>>> do. Schemas use the <element> node and have maxOccurs and minOccurs
>>> attributes (specdata has semantically the same thing with mandatory =
and
>>> multiple), they both have a similar declaration of element type, =
element
>>> name and element description. Actually I think a semantically =
equivalent
>>> version of specdata.xml could be written as an XML Schema.
>>>=20
>>> XML Schemas also offer a few advantages for machine readable =
expressions;
>>> for instance XML Schemas can mandate a particular pattern or regex =
for a
>>> value.
>>>=20
>>>>> I propose the specdata.xml file here
>>>>>=20
>>>>> =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml
>>>>>=20
>>>>> =
<https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml>
>>>>> is a good basis for the consideration of an EBML Schema. =46rom =
what I
>>>>> can see, specdata.xml is an expression of the EBML + Matroska
>>>>> specifications to support automated creation of documentation, but =
the
>>>>> structure of this already shares a lot of similarity to XML =
Schemas.
>>>>=20
>>>>=20
>>>> For both documentation (e.g. the table on the matroska.org specs =
page is
>>>> generated from this file) and code (libMatroska's class hierarchy =
is
>>>> generated automatically from this file) actually.
>>>=20
>>>=20
>>> Does specdata.xml play a role in mkvalidate? I'm thinking of the =
potential
>>> to have an ebmlvalidator where you can provide the EBML Schema to =
validate
>>> particular EBML docType.
>>=20
>> Well the parsing code is generated from the XML file, so in a way, =
yes. But
>> it's not parsed "live".
>>=20
>>>>> Is there a preference in handling the standardization of Matroska:
>>>>> documenting it in a similar fashion to our work in the EBML spec =
or to
>>>>> define what an EBML Schema is and consider matroska an expression =
of
>>>>> it?
>>>>=20
>>>>=20
>>>> I'm not sure whether or not I understand the implications. But my =
gut
>>>> feeling is that having a definition for an EBML Schema would =
benefit
>>>> other formats than Matroska, too, therefore the latter seems the =
way to
>>>> go.
>>>=20
>>>=20
>>> I have the same feeling:
>>> - document EBML as a specification that includes rules for defining =
a
>>> docType in the form of an EBML Schema
>>> - write an EBML Schema (updated specdata.xml) for Matroska and maybe =
webM
>>>=20
>>>>> Are some changes to specdata.xml acceptable? Such as a filename =
change
>>>>> or changing the name of the <table> element of some attributes?
>>>>=20
>>>>=20
>>>> Well, like I said above the specdata.xml is used for generating =
both
>>>> documentation and code. Both should stay viable. If changes to it =
are
>>>> made then the accompanying tools must be updated as well.
>>>>=20
>>>>> Neither the current EBML specs nor the specdata.xml specifically =
refer
>>>>> to the hierarchical arrangement of the elements, but this could be
>>>>> presumed by their ordering. For instance, could any level 3 =
element be
>>>>> a child of any level 2 Master-element? I presume not, but I don't
>>>>> think it's clear anywhere what parent-child relationships are
>>>>> feasible. Possibly specdata.xml and/or the EBML Schema Definition
>>>>> could define the relationship between levels of related elements
>>>>> similar to how an XML Schema (XSD) does.
>>>>=20
>>>>=20
>>>> So far it is understood that an element not marked as a global =
element
>>>> must only occur as a child of its parent. Its parent is the last =
element
>>>> located before the child element in the specdata file with a lower =
level
>>>> than the child element. Or something like that.
>>>=20
>>>=20
>>> This will need some documentation. That's how I've understood the =
mkv spec
>>> as well but the definition for how an EBML Schema works should be =
explicit
>>> about this.
>>=20
>> Any more opinion about how to go about (or if to go about) modifying
>> specdata.xml towards becoming an expression of a to-be-defined EBML =
Schema
>> for matroska and webm? As a summary of proposed changes to =
specdata.xml
>>=20
>> - change to XML Schema conventions where relevant:
>> - use maxOccurs attribute instead of the current Multiple attribute.
>> - use minOccurs attribute instead of the current Mandatory attribute.
>> - move documentation of elements to a sub-element (allows for =
possible
>> internationalization in the schema and better semantics)
>> - arrange elements in hierarchical form to indicate parent-child
>> relationships (rather than the current practices where all elements =
are
>> defined at the same level, and you have to parse back in elements to =
the one
>> with the lower-numbered level attribute to find the parent)
>>=20
>> A draft of specdata.xml with these changes is at
>> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347. I can continue =
to work
>> on this and send back changes for advice/approval but if I do so is =
there
>> someone who could later update the tools that use specdata.xml so =
that
>> newly-defined EBML Schemas may later to be into use?
>>=20
>>=20
>> I=E2=80=99m preparing a pull request on specdata.xml but want to =
update the
>> utilities in spectool at the same time so that spec2data, data2lib, =
and
>> data2spec still function properly. I=E2=80=99m having trouble getting =
the spectool
>> utilities to build properly so that I can test them. I was able to =
build
>> coremake but not sure where to go from here. I=E2=80=99ve read =
spec2data and have an
>> idea of how it works and am thinking that I could reproduce the =
spec2data
>> workflow with xsl and then we could have a make file which uses =
xsltproc to
>> convert an EBML Schema into the Drupal table and library files as =
needed.
>> Any advice on which route to take: continue trying with getting =
spectool
>> utilities to build or redo the utilities in xsl?
>>=20
>>=20
>> I=E2=80=99d like to revive this thread to propose some changes in the =
definition of
>> the EBML Schema. The EBML Schema is intended to be a machine-readible
>> document that details the semantics and structure of an EBML Document =
Type.
>> The EBML Schema for a Document Type is essential for understanding =
the
>> semantics and validating an EBML Document. This proposal builds upon =
an
>> earlier conversation started last year on matroska-devel,
>> =
http://lists.matroska.org/pipermail/matroska-devel/2015-August/004765.html=
,
>> =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004807.htm=
l.
>>=20
>> I=E2=80=99m open to other solutions or approaches, but since Matroska =
is based on
>> EBML which itself is becoming well-defined. I think there is utility =
in
>> documenting how to create a machine-readible document that describes =
an EBML
>> Document Type. I think the concept of the XML Schema and XML Document =
is
>> analogous to EBML Schema and EBML Document and that adopting from the =
XML
>> community for documenting form may be beneficial.
>>=20
>> Thus far we have this section
>> =
https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c6=
0294c1e7ea68f703e07e50/specification.markdown#ebml-schema
>> which introduces the concept for the EBML Schema and then provides a =
list of
>> attributes for defining Elements that make up a specific EBML =
Document Type
>> =
https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c6=
0294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-attribut=
es.
>> This documentation currently reflects the specdata.xml file of the =
Matroska
>> foundation-source repo, which is here
>> =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml.
>> The specdata.xml file is used to create the HTML table of elements on
>> http://matroska.org/technical/specs/index.html and libraries used by
>> mkvalidate and other files. After drafting the EBML Schema and =
Attribute
>> documentation I found
>> http://matroska.org/technical/specs/notes.html#Table_Columns which =
covers
>> similar concepts.
>>=20
>> I=E2=80=99d like to propose the following changes to the definition =
of EBML Schema:
>>=20
>> - Replace <table> with <EBMLSchema>.
>>=20
>> The node <table> makes sense in the context of the HTML table on
>> matroska.org but if there will be greater machine-readible usage I =
think a
>> rename would clarify.
>>=20
>> - Add an XML NameSpace attribute to <EBMLSchema>.
>>=20
>> This would add something like
>> =
xmlns=3D=E2=80=9Chttp://official_url_of_EBML_Schema_definition.org/EBMLSch=
ema.xsd=E2=80=9D.
>> The EBMLSchema.xsd file would be an XML Schema that defines the =
EBMLSchema
>> document itself. Yes, this uses an XML Schema to define the EBML =
Schema, but
>> this gives a way to validate the EBML Schemas and docType definitions =
made
>> by others.
>>=20
>> - Add a =E2=80=9CdocType=E2=80=9D attribute to <EBMLSchema>
>>=20
>> This would clarify what the EBMLSchema is documenting, thus it would =
start
>> with <EBMLSchema docType=3D=E2=80=9Cmatroska=E2=80=9D>
>>=20
>> - Add =E2=80=9Cversion=E2=80=9D attribute to <EBMLSchema>
>>=20
>> This would note the highest version number of the docType officially
>> documented by the EBML Schema, so the EBML Schema would be inferred =
to
>> document the noted docType from version 0 up to the version value =
listed
>> here.
>=20
> Maybe we need something to say it's the final version or a draft.

With XML Schemas this is done by having an entirely separate document =
per version. We could have separate files such as:

matroska_v1.xml
matroska_v2.xml
matroska_v3.xml
matroska_v4.xml
matroska_v5RC.xml
webm_v1.xml

Or we could add an attribute called something like "unofficial" so that =
we may have an EBML Schema with non-standardized elements for testing.

Any preference at which tactic? An advantage of having versioned EBML =
Schemas (one doc per version) is that the deprecated elements are simply =
removed rather than an eternal lingering presence. It may accept =
complexity in use though since you'd have to use the proper schema that =
matches both the docType and docTypeVersion.

>> - Rename =E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D =
and rename =E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D
>=20
> That may be odd when we add "repeatable" elements that must be =
maxOccurs =3D 1.

With maxOccurs it is usually set via numbers, however 'unbounded' is an =
accepted maxOccurs value to say that the element may repeat for an =
infinite amount of times. In addition to "unbounded" we could also add a =
value "identical" which would mean the same as "unbounded" with the =
added constraint that every copy be identical.

>> This is to match the meaning of minOccurs and maxOccurs in XML =
Schema,
>> https://www.w3.org/TR/xmlschema-0/#ref6.
>> mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C0"
>> mandatory=3D=E2=80=9C1=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C1=E2=80=9D
>> no mandatory attribute would be equivalent of no minOccurs attribute =
which
>> is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as is true with =
minOccurs within an XML
>> Schema)
>>=20
>> multiple=3D=E2=80=9C0=E2=80=9D would be equivalent to maxOccurs =
=3D=E2=80=9C1"
>> multiple =3D=E2=80=9C1=E2=80=9D would be equivalent to maxOccurs =
=3D=E2=80=9Cunbounded=E2=80=9D
>> no multiple attribute would be equivalent of no maxOccurs attribute =
which is
>> equivalent to maxOccurs =3D=E2=80=9C1=E2=80=9D (as is true with =
maxOccurs within an XML
>> Schema)
>>=20
>> Moving from mandatory/multiple to minOccurs/maxOccurs can be done =
with no
>> semantic differences, but we=E2=80=99d have to advantage of allowing =
for constraints
>> to the number of usage that are not 0, 1, and infinite. For instance, =
I
>> understand the logic to have 2 SeekHead Elements, but is there a =
scenario
>> for 3 or more SeekHeads at the same Level within the same EBML =
Document?
>=20
> Limiting the amount of redirection might be a good thing indeed.

Are there other elements currently listed as multiple=3D"1" where they =
are intended for use greater than 1 and less than unbounded. SeekHead =
was the only one coming to mind.

>> - Store <element> nodes hierarchically rather than all at the same =
level.
>>=20
>> Currently with in the specdata.xml file it is difficult to ascertain =
the
>> parent of a given element. It can be done by seeking to the previous =
element
>> where the level of the element is one value lower, but there are =
exceptions
>> for global elements. I suggest that a structure of
>> <element>
>> <element>...</element>
>> <element>...</element>
>> </element>
>> is more clear than all elements at the same level. I made an example =
draft
>> of specdata.xml with nested implementing here:
>> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347.
>>=20
>> I can provide a patch to the current EBML Schema and EBML Schema =
Attributes
>> as well as incorporate a sample EBML Schema into the specification, =
but
>> wanted to nudge for comments before proceeding.
>=20
> The current flat hierarchy is not good anyway. I will need a bit of
> time to update the spec tools accordingly. But the change is OK for
> me.

Thanks. Should I cross-post this to webm lists?
Dave Rice=


From nobody Sun Jan 17 05:05:57 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 08F1B1A1B0E for <cellar@ietfa.amsl.com>; Sun, 17 Jan 2016 05:05:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.422
X-Spam-Level: *
X-Spam-Status: No, score=1.422 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id j9H0dXMY0-BF for <cellar@ietfa.amsl.com>; Sun, 17 Jan 2016 05:05:53 -0800 (PST)
Received: from mail-vk0-x232.google.com (mail-vk0-x232.google.com [IPv6:2607:f8b0:400c:c05::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1016C1A1B0D for <cellar@ietf.org>; Sun, 17 Jan 2016 05:05:52 -0800 (PST)
Received: by mail-vk0-x232.google.com with SMTP id n1so165144350vkb.3 for <cellar@ietf.org>; Sun, 17 Jan 2016 05:05:52 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=jbPAl4NUGMial6ZKK73GTxpiFbwdwmcBUlAqRNva5jw=; b=mReOfmHykyQDooOkAiMbzxZ/8Cg+5d8p4wldmIqkQ0MFpjqhTzqUOGzQNEtCKs/h5q JAiDxy8nVVXazsNXpRxhYMYE36zy/QCF6z5FRqqEsCmc5sLqlCgCWTeSJJNAmxpG+2FS y1TNlRg5Q5NUF2ZXcZsxc5TTZhZI6ZSNLnpWMM0LjGKaSs/kpXTGQxb+Sa2dsOLJXddH Dap1n1Qadvib5oaOxCq13IcpxI/NGhMT90RK7hnehdH5q6zRxGNScRJ2yTjghoT+iRPB 6r2crmgKzqyMYD7lgRf06teiBLR4JZTUrUGyQQgN1nsJS6zpOMhJbjs5jfzgNxE18AIt 1/WA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=jbPAl4NUGMial6ZKK73GTxpiFbwdwmcBUlAqRNva5jw=; b=J8O/R4+kj6v9p4r9TSsaiI7OgUu/w66ubhG79oB943dxH585pEz6FNxXwHMod9DChH h/z3Q1s00057em/IUaZMtDBpi7+wS35+F3PlfOBm2v/lUx3xx1prQXOMzoe/eEX9M81z L25JgmzvSB47oKUR2gfjZIaBHo9pB/417JGYpjWdz0omORlv7bsUpQCkdgEDkNYquab1 z/+hMKB+aXSSFq6fKP0sOLoUtp41V6m+8IP4WqB32EucdHO7KWUHDW7/rEqle2IslO4m JmGYr0P6Rdky/jjCQ4ezI8YaDYH/QSm9TDbrXtpdtUthxO9wpIf+PgJ9xKjTkxmMec4A Giig==
X-Gm-Message-State: ALoCoQkZP7QXijYq35rfwTE00+aZWqISltdXodLcCz2GSshjhaMVKueYnQAA6B2xS++tqB3o3+f5dTYRU0htwMcCgjwmTccoMA==
MIME-Version: 1.0
X-Received: by 10.31.50.213 with SMTP id y204mr13641099vky.109.1453035951937;  Sun, 17 Jan 2016 05:05:51 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sun, 17 Jan 2016 05:05:51 -0800 (PST)
In-Reply-To: <E033A534-557F-430A-B3E4-D4C20E04C471@dericed.com>
References: <21E28D45-E45F-4CBE-AC3D-6E41DCE172B9@dericed.com> <20150828065002.GH3813@bunkus.org> <CE3611BE-40C3-4A3C-A477-FE62145764E6@dericed.com> <CAOXsMFJuJkVh+hBeOsnaeXmVUhBTP9UxL0zRaeaLCkU3oTm7oA@mail.gmail.com> <5606B89B-FCF0-4C75-BAB8-FB1E212F8D82@dericed.com> <5EDBE9D2-3E2F-4865-ACF9-497706E0CA07@dericed.com> <87110F5D-3199-4CF5-887E-D5B8C7A08C6C@dericed.com> <CAOXsMFKmH_o_bE8+qMqVB0f2Ri4ZZ2Sq9UwAH+MzaKCO66DvFQ@mail.gmail.com> <E033A534-557F-430A-B3E4-D4C20E04C471@dericed.com>
Date: Sun, 17 Jan 2016 14:05:51 +0100
Message-ID: <CAOXsMF+riDbu-v_g_9GrE2FXC40agpnrXDc9jagdMthTKQA2tw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/kvKt9FagzziL94tNfF0Itye83HA>
Cc: cellar@ietf.org
Subject: Re: [Cellar] EBML Schema
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jan 2016 13:05:56 -0000

2016-01-15 16:35 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 15, 2016, at 7:44 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-15 7:27 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>
>>> On Dec 1, 2015, at 10:40 AM, Dave Rice <dave@dericed.com> wrote:
>>>
>>> On Nov 9, 2015, at 1:19 PM, Dave Rice <dave@dericed.com> wrote:
>>>
>>> On Oct 3, 2015, at 9:46 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>>
>>> On Aug 28, 2015 17:00, "Dave Rice" <dave@dericed.com> wrote:
>>>
>>>>> On Aug 28, 2015, at 2:50 AM, Moritz Bunkus <moritz@bunkus.org> wrote:
>>>>>
>>>>> Hey,
>>>>>
>>>>> I have no objections, however I don't know a lot about XML schemas in
>>>>> the first place (neither about DTDs, to be honest).
>>>>
>>>>
>>>> Honestly, I know a lot more about XML Schemas than I do about DTDs. As
>>>> wikipedia mentions at
>>>> https://en.wikipedia.org/wiki/Document_type_definition, DTDs have larg=
ely
>>>> been superseded by XML Schemas. And at this point I think that XML Sch=
emas
>>>> may be a more familiar analogy to use.
>>>>
>>>> I think XML Schemas also share more in common with specdata.xml than D=
TDs
>>>> do. Schemas use the <element> node and have maxOccurs and minOccurs
>>>> attributes (specdata has semantically the same thing with mandatory an=
d
>>>> multiple), they both have a similar declaration of element type, eleme=
nt
>>>> name and element description. Actually I think a semantically equivale=
nt
>>>> version of specdata.xml could be written as an XML Schema.
>>>>
>>>> XML Schemas also offer a few advantages for machine readable expressio=
ns;
>>>> for instance XML Schemas can mandate a particular pattern or regex for=
 a
>>>> value.
>>>>
>>>>>> I propose the specdata.xml file here
>>>>>>
>>>>>> https://github.com/Matroska-Org/foundation-source/blob/master/specto=
ol/specdata.xml
>>>>>>
>>>>>> <https://github.com/Matroska-Org/foundation-source/blob/master/spect=
ool/specdata.xml>
>>>>>> is a good basis for the consideration of an EBML Schema. From what I
>>>>>> can see, specdata.xml is an expression of the EBML + Matroska
>>>>>> specifications to support automated creation of documentation, but t=
he
>>>>>> structure of this already shares a lot of similarity to XML Schemas.
>>>>>
>>>>>
>>>>> For both documentation (e.g. the table on the matroska.org specs page=
 is
>>>>> generated from this file) and code (libMatroska's class hierarchy is
>>>>> generated automatically from this file) actually.
>>>>
>>>>
>>>> Does specdata.xml play a role in mkvalidate? I'm thinking of the poten=
tial
>>>> to have an ebmlvalidator where you can provide the EBML Schema to vali=
date
>>>> particular EBML docType.
>>>
>>> Well the parsing code is generated from the XML file, so in a way, yes.=
 But
>>> it's not parsed "live".
>>>
>>>>>> Is there a preference in handling the standardization of Matroska:
>>>>>> documenting it in a similar fashion to our work in the EBML spec or =
to
>>>>>> define what an EBML Schema is and consider matroska an expression of
>>>>>> it?
>>>>>
>>>>>
>>>>> I'm not sure whether or not I understand the implications. But my gut
>>>>> feeling is that having a definition for an EBML Schema would benefit
>>>>> other formats than Matroska, too, therefore the latter seems the way =
to
>>>>> go.
>>>>
>>>>
>>>> I have the same feeling:
>>>> - document EBML as a specification that includes rules for defining a
>>>> docType in the form of an EBML Schema
>>>> - write an EBML Schema (updated specdata.xml) for Matroska and maybe w=
ebM
>>>>
>>>>>> Are some changes to specdata.xml acceptable? Such as a filename chan=
ge
>>>>>> or changing the name of the <table> element of some attributes?
>>>>>
>>>>>
>>>>> Well, like I said above the specdata.xml is used for generating both
>>>>> documentation and code. Both should stay viable. If changes to it are
>>>>> made then the accompanying tools must be updated as well.
>>>>>
>>>>>> Neither the current EBML specs nor the specdata.xml specifically ref=
er
>>>>>> to the hierarchical arrangement of the elements, but this could be
>>>>>> presumed by their ordering. For instance, could any level 3 element =
be
>>>>>> a child of any level 2 Master-element? I presume not, but I don't
>>>>>> think it's clear anywhere what parent-child relationships are
>>>>>> feasible. Possibly specdata.xml and/or the EBML Schema Definition
>>>>>> could define the relationship between levels of related elements
>>>>>> similar to how an XML Schema (XSD) does.
>>>>>
>>>>>
>>>>> So far it is understood that an element not marked as a global elemen=
t
>>>>> must only occur as a child of its parent. Its parent is the last elem=
ent
>>>>> located before the child element in the specdata file with a lower le=
vel
>>>>> than the child element. Or something like that.
>>>>
>>>>
>>>> This will need some documentation. That's how I've understood the mkv =
spec
>>>> as well but the definition for how an EBML Schema works should be expl=
icit
>>>> about this.
>>>
>>> Any more opinion about how to go about (or if to go about) modifying
>>> specdata.xml towards becoming an expression of a to-be-defined EBML Sch=
ema
>>> for matroska and webm? As a summary of proposed changes to specdata.xml
>>>
>>> - change to XML Schema conventions where relevant:
>>> - use maxOccurs attribute instead of the current Multiple attribute.
>>> - use minOccurs attribute instead of the current Mandatory attribute.
>>> - move documentation of elements to a sub-element (allows for possible
>>> internationalization in the schema and better semantics)
>>> - arrange elements in hierarchical form to indicate parent-child
>>> relationships (rather than the current practices where all elements are
>>> defined at the same level, and you have to parse back in elements to th=
e one
>>> with the lower-numbered level attribute to find the parent)
>>>
>>> A draft of specdata.xml with these changes is at
>>> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347. I can continue to=
 work
>>> on this and send back changes for advice/approval but if I do so is the=
re
>>> someone who could later update the tools that use specdata.xml so that
>>> newly-defined EBML Schemas may later to be into use?
>>>
>>>
>>> I=E2=80=99m preparing a pull request on specdata.xml but want to update=
 the
>>> utilities in spectool at the same time so that spec2data, data2lib, and
>>> data2spec still function properly. I=E2=80=99m having trouble getting t=
he spectool
>>> utilities to build properly so that I can test them. I was able to buil=
d
>>> coremake but not sure where to go from here. I=E2=80=99ve read spec2dat=
a and have an
>>> idea of how it works and am thinking that I could reproduce the spec2da=
ta
>>> workflow with xsl and then we could have a make file which uses xsltpro=
c to
>>> convert an EBML Schema into the Drupal table and library files as neede=
d.
>>> Any advice on which route to take: continue trying with getting spectoo=
l
>>> utilities to build or redo the utilities in xsl?
>>>
>>>
>>> I=E2=80=99d like to revive this thread to propose some changes in the d=
efinition of
>>> the EBML Schema. The EBML Schema is intended to be a machine-readible
>>> document that details the semantics and structure of an EBML Document T=
ype.
>>> The EBML Schema for a Document Type is essential for understanding the
>>> semantics and validating an EBML Document. This proposal builds upon an
>>> earlier conversation started last year on matroska-devel,
>>> http://lists.matroska.org/pipermail/matroska-devel/2015-August/004765.h=
tml,
>>> http://lists.matroska.org/pipermail/matroska-devel/2015-October/004807.=
html.
>>>
>>> I=E2=80=99m open to other solutions or approaches, but since Matroska i=
s based on
>>> EBML which itself is becoming well-defined. I think there is utility in
>>> documenting how to create a machine-readible document that describes an=
 EBML
>>> Document Type. I think the concept of the XML Schema and XML Document i=
s
>>> analogous to EBML Schema and EBML Document and that adopting from the X=
ML
>>> community for documenting form may be beneficial.
>>>
>>> Thus far we have this section
>>> https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a2=
2c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema
>>> which introduces the concept for the EBML Schema and then provides a li=
st of
>>> attributes for defining Elements that make up a specific EBML Document =
Type
>>> https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a2=
2c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-attrib=
utes.
>>> This documentation currently reflects the specdata.xml file of the Matr=
oska
>>> foundation-source repo, which is here
>>> https://github.com/Matroska-Org/foundation-source/blob/master/spectool/=
specdata.xml.
>>> The specdata.xml file is used to create the HTML table of elements on
>>> http://matroska.org/technical/specs/index.html and libraries used by
>>> mkvalidate and other files. After drafting the EBML Schema and Attribut=
e
>>> documentation I found
>>> http://matroska.org/technical/specs/notes.html#Table_Columns which cove=
rs
>>> similar concepts.
>>>
>>> I=E2=80=99d like to propose the following changes to the definition of =
EBML Schema:
>>>
>>> - Replace <table> with <EBMLSchema>.
>>>
>>> The node <table> makes sense in the context of the HTML table on
>>> matroska.org but if there will be greater machine-readible usage I thin=
k a
>>> rename would clarify.
>>>
>>> - Add an XML NameSpace attribute to <EBMLSchema>.
>>>
>>> This would add something like
>>> xmlns=3D=E2=80=9Chttp://official_url_of_EBML_Schema_definition.org/EBML=
Schema.xsd=E2=80=9D.
>>> The EBMLSchema.xsd file would be an XML Schema that defines the EBMLSch=
ema
>>> document itself. Yes, this uses an XML Schema to define the EBML Schema=
, but
>>> this gives a way to validate the EBML Schemas and docType definitions m=
ade
>>> by others.
>>>
>>> - Add a =E2=80=9CdocType=E2=80=9D attribute to <EBMLSchema>
>>>
>>> This would clarify what the EBMLSchema is documenting, thus it would st=
art
>>> with <EBMLSchema docType=3D=E2=80=9Cmatroska=E2=80=9D>
>>>
>>> - Add =E2=80=9Cversion=E2=80=9D attribute to <EBMLSchema>
>>>
>>> This would note the highest version number of the docType officially
>>> documented by the EBML Schema, so the EBML Schema would be inferred to
>>> document the noted docType from version 0 up to the version value liste=
d
>>> here.
>>
>> Maybe we need something to say it's the final version or a draft.
>
> With XML Schemas this is done by having an entirely separate document per=
 version. We could have separate files such as:
>
> matroska_v1.xml
> matroska_v2.xml
> matroska_v3.xml
> matroska_v4.xml
> matroska_v5RC.xml
> webm_v1.xml
>
> Or we could add an attribute called something like "unofficial" so that w=
e may have an EBML Schema with non-standardized elements for testing.
>
> Any preference at which tactic? An advantage of having versioned EBML Sch=
emas (one doc per version) is that the deprecated elements are simply remov=
ed rather than an eternal lingering presence. It may accept complexity in u=
se though since you'd have to use the proper schema that matches both the d=
ocType and docTypeVersion.

That makes omission by mistake a possibility, involves more proof
reading and it becomes harder to know which elements changed between
what versions. It's also harder to process to generate code. Also
should the documentation we currently have be duplicated on each
document ? I'd rather keep a single document.

>>> - Rename =E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D and=
 rename =E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D
>>
>> That may be odd when we add "repeatable" elements that must be maxOccurs=
 =3D 1.
>
> With maxOccurs it is usually set via numbers, however 'unbounded' is an a=
ccepted maxOccurs value to say that the element may repeat for an infinite =
amount of times. In addition to "unbounded" we could also add a value "iden=
tical" which would mean the same as "unbounded" with the added constraint t=
hat every copy be identical.

That sounds good, yes.

>>> This is to match the meaning of minOccurs and maxOccurs in XML Schema,
>>> https://www.w3.org/TR/xmlschema-0/#ref6.
>>> mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to minOccurs=3D=E2=
=80=9C0"
>>> mandatory=3D=E2=80=9C1=E2=80=9D would be equivalent to minOccurs=3D=E2=
=80=9C1=E2=80=9D
>>> no mandatory attribute would be equivalent of no minOccurs attribute wh=
ich
>>> is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as is true with minOc=
curs within an XML
>>> Schema)
>>>
>>> multiple=3D=E2=80=9C0=E2=80=9D would be equivalent to maxOccurs =3D=E2=
=80=9C1"
>>> multiple =3D=E2=80=9C1=E2=80=9D would be equivalent to maxOccurs =3D=E2=
=80=9Cunbounded=E2=80=9D
>>> no multiple attribute would be equivalent of no maxOccurs attribute whi=
ch is
>>> equivalent to maxOccurs =3D=E2=80=9C1=E2=80=9D (as is true with maxOccu=
rs within an XML
>>> Schema)
>>>
>>> Moving from mandatory/multiple to minOccurs/maxOccurs can be done with =
no
>>> semantic differences, but we=E2=80=99d have to advantage of allowing fo=
r constraints
>>> to the number of usage that are not 0, 1, and infinite. For instance, I
>>> understand the logic to have 2 SeekHead Elements, but is there a scenar=
io
>>> for 3 or more SeekHeads at the same Level within the same EBML Document=
?
>>
>> Limiting the amount of redirection might be a good thing indeed.
>
> Are there other elements currently listed as multiple=3D"1" where they ar=
e intended for use greater than 1 and less than unbounded. SeekHead was the=
 only one coming to mind.

Not from the top of my mind.

>>> - Store <element> nodes hierarchically rather than all at the same leve=
l.
>>>
>>> Currently with in the specdata.xml file it is difficult to ascertain th=
e
>>> parent of a given element. It can be done by seeking to the previous el=
ement
>>> where the level of the element is one value lower, but there are except=
ions
>>> for global elements. I suggest that a structure of
>>> <element>
>>> <element>...</element>
>>> <element>...</element>
>>> </element>
>>> is more clear than all elements at the same level. I made an example dr=
aft
>>> of specdata.xml with nested implementing here:
>>> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347.
>>>
>>> I can provide a patch to the current EBML Schema and EBML Schema Attrib=
utes
>>> as well as incorporate a sample EBML Schema into the specification, but
>>> wanted to nudge for comments before proceeding.
>>
>> The current flat hierarchy is not good anyway. I will need a bit of
>> time to update the spec tools accordingly. But the change is OK for
>> me.
>
> Thanks. Should I cross-post this to webm lists?

No idea if they use the document but it's worth a try.


--=20
Steve Lhomme
Matroska association Chairman


From nobody Sun Jan 17 05:09:34 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 85EBA1A1B25 for <cellar@ietfa.amsl.com>; Sun, 17 Jan 2016 05:09:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NxBkaIEpdhBe for <cellar@ietfa.amsl.com>; Sun, 17 Jan 2016 05:09:29 -0800 (PST)
Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A69D41A1B23 for <cellar@ietf.org>; Sun, 17 Jan 2016 05:09:29 -0800 (PST)
Received: by mail-vk0-x22a.google.com with SMTP id k1so319643523vkb.2 for <cellar@ietf.org>; Sun, 17 Jan 2016 05:09:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=A+2kmHspyA/zf2FuLVz6G2XmHc/D3VX/AD3pHkqds+s=; b=1+Qc4xRNKSToRQTtC6mWVQN1GZkKgP6evfTEtmncEhk+eNBBzBbF1nG1sypA27PGz5 X80HqVDBi6BJQoCsZR5bjJDBIm6mS1wY5GUd/K8HKo4PcSfmbvHrVLlqmOsw+ciZYiTH fBPJyZqVE1+pffq0/ZDMdvJDkwGuvdwq1pm/4nrpremtiJbvCf9MkzGncjWJlZhEuDVu 1MUIFZYIx6Az3ax68OsLPMWt7BIeDPUHFLVXHzg4/yhaj9kcqIqm0dUm7Cv1qNXezIjN tiBnVBJQ8t09UP33+HlfPj41tZlXxAcilSscYRLbLTNn0tWRQD1Mps1jlhMHAbT7k/r+ a93A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=A+2kmHspyA/zf2FuLVz6G2XmHc/D3VX/AD3pHkqds+s=; b=MG2HO3OK4TcXf5mumn77t17MMaV1qTCXQ7cmBE8KQbFxiB/49EGRUNSfnzxKWFBG/l 1utu8gwl7NdfLBxrBgb9vBOywzJwAPL0ctoa04u6qH3mZNWoLffkRiWVNexNJUjLkWY+ GQBQVwAN8yqv/Qbg4jSsla8WRRXxOTF1RdMy6HkAOMxG1HcnH1xCbjFuP7bV89FHes3P AvnrSl1O6casSjP0DF5etl3K/6919fqO6RpPXO8jaio1nOfoy9ojJ5JFIj2CHM7nIG0V YjZAuLPsACPrGTrM/zbYB5Z93fLy8ugdiTW4ddVj7VqJQG7tJAzbnHNq8fFu2ueoGDtu Ggwg==
X-Gm-Message-State: AG10YOQ9cK0DDfwZRF/8jYmSiI4dmgt6+BU2iRbbFMx/zPp1cKh5IleO4nKqn96LpwX8zE9rbCnHU5uPRSHOIg==
MIME-Version: 1.0
X-Received: by 10.31.168.76 with SMTP id r73mr480048vke.117.1453036168805; Sun, 17 Jan 2016 05:09:28 -0800 (PST)
Received: by 10.31.8.84 with HTTP; Sun, 17 Jan 2016 05:09:28 -0800 (PST)
In-Reply-To: <56990853.4000404@xiph.org>
References: <CAHUoETLxotqSVgKZQY96ED_yi1w9wRVed78fnva6a0bmxOswjg@mail.gmail.com> <CAOXsMFJHswhh1RfwvNOLuxjU0R1B9+4yPQ6RAMiFCiqPnTFY8g@mail.gmail.com> <CAJGH+Us6fRL1AA+ceOXLVogj3zWcBsVdxFjAX84rX0Z0nGLLAw@mail.gmail.com> <CAOXsMFL71Zc1p_QWmU1+n8z5cTPBeLg73RnuaY-u5YE3cWqp3Q@mail.gmail.com> <56981134.3080607@xiph.org> <CAOXsMFKgtq4xrosNGopmst0X_=VqK5taTdnQFnSniw1umuL+wg@mail.gmail.com> <56990853.4000404@xiph.org>
Date: Sun, 17 Jan 2016 14:09:28 +0100
Message-ID: <CAOXsMFKaejbr9BV0MeYrFNss-QYHDySC_nkPptEoCUx31otPhw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: "Timothy B. Terriberry" <tterribe@xiph.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/BZV3DT4fivC6s8S4z0XVCO87se0>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Clarification on blocks with a negative timecode
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 17 Jan 2016 13:09:33 -0000

2016-01-15 15:55 GMT+01:00 Timothy B. Terriberry <tterribe@xiph.org>:
> Steve Lhomme wrote:
>>
>> OK, so do we agree that negative timecodes should not be "rendered"
>> (play any audio) ?
>
>
> I think the meaning of CodecDelay is clear: you should throw away the first
> "CodecDelay" worth of samples. What would be the behavior if the first
> block's timecode (before adjusting for CodecDelay) was positive? If it was
> already negative (again, before adjusting for CodecDelay)?
>
> To my mind, this should be thought of as if the first "CodecDelay" worth of
> samples are simply deleted. They don't have a negative timecode. They don't
> exist. After doing that, the behavior should be the same as in the
> no-CodecDelay case. The problem here is that we currently talk about the
> timecode of a block, not of individual samples.

Good point. Maybe it should be more clear in the specs.

The "negative" timecode are a different (but related) topic. IMO they
should not play, either. If you pass such frames in Directshow, they
will not render. It would be odd to add an element to shift timecodes
so that such timecodes are played anyway.

This is also the reason why when you cut a Matroska file, the second
part doesn't start at zero. Otherwise, depending on where you cut, it
may end up with negative timecodes, resulting in unplayed data.

> (speaking solely as an individual here)
>
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Thu Jan 21 21:26:16 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1921A1B3876 for <cellar@ietfa.amsl.com>; Thu, 21 Jan 2016 21:26:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RxsJYUumyg2S for <cellar@ietfa.amsl.com>; Thu, 21 Jan 2016 21:26:11 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AE9181B3874 for <cellar@ietf.org>; Thu, 21 Jan 2016 21:26:11 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:36529 helo=[10.0.1.4]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aMUEZ-002bfb-8u; Fri, 22 Jan 2016 00:26:10 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMFJkNAqn2FMfsETxSCbeCmS_OTWT41MaOXif0bwrwwJCyA@mail.gmail.com>
Date: Fri, 22 Jan 2016 00:26:05 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <ECCBFAC3-0EB9-4A90-9529-42132CE9733B@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com> <CAOXsMFJkNAqn2FMfsETxSCbeCmS_OTWT41MaOXif0bwrwwJCyA@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/V3iPXz6Xizir8Nvye139Vc1Pq2g>
Cc: Jerome Martinez <jerome@mediaarea.net>, cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jan 2016 05:26:14 -0000

> On Jan 14, 2016, at 5:56 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-11 18:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>=20
>>> On Jan 11, 2016, at 11:40 AM, Jerome Martinez <jerome@mediaarea.net> =
wrote:
>>>=20
>>> Le 11/01/2016 17:24, Dave Rice a =C3=A9crit :
>>>>> On Jan 11, 2016, at 5:12 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>>>=20
>>>>> 2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>>>> Hi Cellar,
>>>>>>=20
>>>>>> This proposal continues from earlier conversation on =
matroska-devel: =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.htm=
l.
>>>>>>=20
>>>>>> Currently Matroska only expresses video interlacement in the =
FlagInterlaced Element, which is defined like this (see: =
http://matroska.org/technical/specs/index.html#FlagInterlaced):
>>>>>>=20
>>>>>> Element Name: FlagInterlaced
>>>>>> Level:        4
>>>>>> ID:           [9A]
>>>>>> Mandatory:    mand.
>>>>>> Multiple:     -
>>>>>> Range:  0-1
>>>>>> Default:      0
>>>>>> Type:         u
>>>>>> Description:  Set if the video is interlaced. (1 bit)
>>>>>>=20
>>>>>> An issue here is that there isn=E2=80=99t a distinction between =
unknown and progressive interlacement. Also if the video is interlaced =
there is no clarification if it is top or bottom field first (or one of =
the progressive segmented frame options). While some video encodings =
(such as DV and FFV1) can contain their own information about =
interlacement, many (especially uncompressed formats) can not.
>>>>>>=20
>>>>>> I propose the values are expanded such as:
>>>>>>=20
>>>>>> 0       undetermined
>>>>>> 1       interlaced
>>>>>> 2       progressive
>>>>>>=20
>>>>>> or
>>>>>>=20
>>>>>> 0       progressive
>>>>>> 1       interlaced
>>>>>> 2       undetermined
>>>>>>=20
>>>>>> I am unclear if FlagInterlaced=3D0 has been traditionally =
interpreted as undetermined or progressive. Advice?
>>>>> Progressive.
>>>>>=20
>>>>>> Then a second element can optionally contain field ordering =
metadata.
>>>>>>=20
>>>>>> Element Name: FieldOrdering
>>>>>> Level:        4
>>>>>> ID:           [9D]
>>>>>> Mandatory:    -
>>>>>> Multiple:     -
>>>>>> Range:  0-2
>>>>>> Default:      0
>>>>>> Type:         u
>>>>>> Description:  Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored.
>>>>>>=20
>>>>>> 0       undetermined
>>>>>> 1       interlaced (bottom field first)
>>>>>> 2       interlaced (top field first)
>>>>>>=20
>>>>>> To do:
>>>>>> - consider progressive segmented fields
>>>>>> - consider noting field storage order in addition to field =
display order
>>>>>>=20
>>>>>> I did consider that bff and tff values could be added as new =
values to FlagInterlaced, so that only one element would be needed. =
However it may affect reverse compatibility since some muxer may =
interpret only a value of FlagInterlaced=3D1 as interlaced.
>>>>> Not sure any player/demuxer/muxer would make much use of that flag =
as
>>>>> it is now (VLC ignores the data). So it's ok to break backward
>>>>> compatibility.
>>>> It does seem unconventional to have the default value be =
progressive rather than undetermined. =46rom the prior definition of =
FlagInterlaced, "Set if the video is interlaced. (1 bit)=E2=80=9D, it =
doesn=E2=80=99t not indicate whether a zero value means progressive or =
undetermined. For instance, if I create a file under the rules below and =
want to express certainty that the file is progressive I can set =
FlagInterlaced to 0; however that file is no different than an older =
file which has FlagInterlaced set to 0 because there is no certainly =
about that quality at all.
>>>=20
>>> +1 (we have no way to know if the muxer wanted to say "undetermined" =
or "progressive", and I prefer "undetermined" in that case)
>>>=20
>>>>=20
>>>> I updated and merging the concepts of FlagInterlaced and =
FieldOrdering into only FlagInterlaced. I suggest considering 0 as =
undetermined and 2 as progressive as I think this more clearly reflects =
the level of certainty used in past files. Also note that I left =
FlagInterlaced=3D1 to still be considered as interlaced although the =
field dominance is not clear as this seems semantically equivalent to =
the current specs, though maybe its usage should not be recommended.
>>>=20
>>> -1.
>>> =46rom my point of view, they are 2 different pieces of metadata, so =
I prefer to have 2 Matroska elements, with 2 different lists we could =
expand in the future independently.
>>> BTW, what about 3:2 pulldown? set as "undetermined" or a specific =
item? This is an example of the reason I prefer 2 Matroska elements: =
let's imagine that we don't put a 3:2 pulldown specific item now (set as =
"undetermined field ordering"), but we decide later to add it (let say =
5). with merged concepts, an old reader would lose the interlace =
information despite the fact stream has not changed but the element has =
changed from 1 ("interlaced undetermined") to 5 ("interlaced 3:2 =
pulldown", but "unknown for this old reader). With separate concepts, =
the old reader would still know that the stream is interlaced.
>>=20
>> Update FlagInterlaced  version 3
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> Element Name: FlagInterlaced
>> Level:        4
>> ID:           [9A]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:  0-2
>> Default:      0
>> Type:         u
>> Description:    A flag to declare is the video is known to be =
progressive or interlaced and if applicable to declare details about the =
interlacement.
>>                        0: undetermined
>>                        1: interlacement (unknown field ordering)
>>                        2: progressive
>=20
> Given that element is just informational (only the codec can actually
> decide how to handle the data), I'm fine with this change. It won't
> change playback of anything. I don't think raw video was stored with a
> codec that doesn't store this information.

But doesn't 'raw video' imply that the interlacement information is not =
stored within the encoding. For instance v210 or uyvy422 or yuvy422 in =
Matroska is only sample values (some null bit padding with v210 as =
well), but there's no metadata about interlacement, so such encodings =
are wholly dependent on the container to clarify such information.

Another example was the use of FFV1 version 1 in Matroska. Neither FFV1 =
nor Matroksa declared field order so it was unknown. FFV1 version 3 has =
since added interlacement data to the encoding.

Dave Rice

>> Element Name: FieldOrdering
>> Level:        4
>> ID:           [9D]
>> Mandatory:    mand.
>> Multiple:     -
>> Range:  0-2
>> Default:      0
>> Type:         u
>> Description:  Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored.
>>=20
>> 0       undetermined
>> 1       interlaced (bottom field first)
>> 2       interlaced (top field first)
>>=20
>> For "interlaced 3:2 pulldown=E2=80=9D, wouldn=E2=80=99t such as =
expression require additional information to align the ordered frames =
with the pattern of the pulldown? Additionally if the content is edited =
the application of the pulldown could be offset within the timeline. =
Perhaps we should consider extending FieldOrdering to encompass =
"interlaced 3:2 pulldown" as a separate issue and focus the thread on =
clarifying progressive, interlaced, or undetermined along with field =
ordering information.
>>=20
>> Dave Rice
>> _______________________________________________
>> Cellar mailing list
>> Cellar@ietf.org
>> https://www.ietf.org/mailman/listinfo/cellar
>=20
>=20
>=20
> --=20
> Steve Lhomme
> Matroska association Chairman


From nobody Thu Jan 21 21:29:53 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AAB951B387F for <cellar@ietfa.amsl.com>; Thu, 21 Jan 2016 21:29:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3j2du6_8aHO0 for <cellar@ietfa.amsl.com>; Thu, 21 Jan 2016 21:29:50 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B1F7B1B387E for <cellar@ietf.org>; Thu, 21 Jan 2016 21:29:50 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:35730 helo=[10.0.1.4]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aMUI7-002f11-8f; Fri, 22 Jan 2016 00:29:50 -0500
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMF+o+_2L=sbOitp6pjrtVC5pNW9-kuXoObytcPoB1vXdkQ@mail.gmail.com>
Date: Fri, 22 Jan 2016 00:29:45 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <970BC6A9-BDED-4743-9D40-7FAC266B53EF@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com> <5693F2AD.4080206@gmx.de> <5BBDFD1A-E2B2-40D8-B61D-1B4000B84372@dericed.com> <CAOXsMF+o+_2L=sbOitp6pjrtVC5pNW9-kuXoObytcPoB1vXdkQ@mail.gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/cvMIINf7jMzbSPWWzjQP45GdM4o>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft (+ minver and webm in EBML Schemas)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jan 2016 05:29:52 -0000

> On Jan 14, 2016, at 7:13 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-11 21:42 GMT+01:00 Dave Rice <dave@dericed.com>:
>>=20
>>> On Jan 11, 2016, at 1:21 PM, Sebastian G. <bastik> wrote:
>>>=20
>>> 11.01.2016, 18:08 Dave Rice:
>>>> Update FlagInterlaced  version 3
>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>> Element Name: FlagInterlaced
>>>> Level:        4
>>>> ID:           [9A]
>>>> Mandatory:    mand.
>>>> Multiple:     -
>>>> Range:  0-2
>>>> Default:      0
>>>> Type:         u
>>>> Description:         A flag to declare is the video is known to be =
progressive or interlaced and if applicable to declare details about the =
interlacement.
>>>>                     0: undetermined
>>>>                     1: interlacement (unknown field ordering)
>>>=20
>>> '(unknown field order)' is not required if it is split into to =
elements.
>>> I have no preference for or against splitting it up.
>>>=20
>>>>                     2: progressive
>>>>=20
>>>> Element Name: FieldOrdering
>>>> Level:        4
>>>> ID:           [9D]
>>>> Mandatory:    mand.
>>>> Multiple:     -
>>>> Range:  0-2
>>>> Default:      0
>>>> Type:         u
>>>> Description:  Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored.
>>>>=20
>>>> 0       undetermined
>>>> 1       interlaced (bottom field first)
>>>> 2       interlaced (top field first)
>>>=20
>>> I think that using '0' as no statement is a good decision.
>>=20
>> [=E2=80=A6]
>>=20
>> Based on comments, I made the following patch. I also renamed the =
proposed =E2=80=9CFieldOrdering=E2=80=9D element to =E2=80=9CField =
Order=E2=80=9D and change the meaning of FlagInterlaced=3D1 to simply =
=E2=80=9Cinterlaced=E2=80=9D.
>>=20
>> Creating the patch for specdata.xml brought up two new issues:
>>=20
>> The format of specdata.xml includes an attribute called =E2=80=98minver=
=E2=80=99 to refer to which version of Matroska began supporting the =
element. According to matroska.org "Version 4 is currently work in =
progress. There may be further additions to v4.=E2=80=9D; however there =
has been no distinction within specdata.xml between =E2=80=98in =
progress=E2=80=99 and official. Perhaps Matroska should mark version 4 =
as official as-is and the ongoing work within CELLAR would work towards =
a release of version 5. In the patch below I used minver=3D=E2=80=9C5RC=E2=
=80=9D as (version 5 release candidate) in infer that it is not official =
(yet).
>>=20
>> Also specdata.xml includes a boolean attribute to say if the element =
is supported by webm. FlagInterlaced is supported by webm (as correlates =
to http://www.webmproject.org/docs/container/), but I=E2=80=99m leaving =
webm=3D=E2=80=9C1=E2=80=9D off of the new element =E2=80=9CFieldOrder=E2=80=
=9D (as I=E2=80=99m not on that team).
>>=20
>> =46rom 5d7f7b8122232c20a3e39de70d587f684b48cd2f Mon Sep 17 00:00:00 =
2001
>> From: dericed <dave@dericed.com>
>> Date: Mon, 11 Jan 2016 15:11:26 -0500
>> Subject: [PATCH] clarify FlagInterlaced and add FieldOrder element
>>=20
>> ---
>> spectool/specdata.xml | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>=20
>> diff --git a/spectool/specdata.xml b/spectool/specdata.xml
>> index 57abb97..2167e15 100644
>> --- a/spectool/specdata.xml
>> +++ b/spectool/specdata.xml
>> @@ -109,7 +109,8 @@ between two successive fields at the output of =
the decoding process (see <a href
>>   <element name=3D"TrackTranslateCodec" level=3D"4" id=3D"0x66BF" =
type=3D"uinteger" mandatory=3D"1" minver=3D"1" webm=3D"0">The <a =
href=3D"http://www.matroska.org/technical/specs/index.html#ChapProcessCode=
cID">chapter codec</a> using this ID (0: Matroska Script, 1: =
DVD-menu).</element>
>>   <element name=3D"TrackTranslateTrackID" level=3D"4" id=3D"0x66A5" =
type=3D"binary" mandatory=3D"1" minver=3D"1" webm=3D"0">The binary value =
used to represent this track in the chapter codec data. The format =
depends on the <a =
href=3D"http://www.matroska.org/technical/specs/index.html#ChapProcessCode=
cID">ChapProcessCodecID</a> used.</element>
>>   <element name=3D"Video" cppname=3D"TrackVideo" level=3D"3" =
id=3D"0xE0" type=3D"master" minver=3D"1">Video settings.</element>
>> -  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" =
level=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" =
webm=3D"1" default=3D"0" range=3D"0-1">Set if the video is interlaced. =
(1 bit)</element>
>> +  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" =
level=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" =
webm=3D"1" default=3D"0" range=3D"0-2">A flag to declare is the video is =
known to be progressive or interlaced and if applicable to declare =
details about the interlacement. (0: undetermined, 1: interlaced, 2: =
progressive)</element>
>> +  <element name=3D"FieldOrder" cppname=3D"VideoFieldOrder" level=3D"4"=
 id=3D"0x9D" type=3D"uinteger" mandatory=3D"1" minver=3D"5RC" =
default=3D"0" range=3D"0-2">Declare the field ordering of the video. If =
FlagInterlaced is not set to 1, this Element MUST be ignored. (0: =
undetermined, 1: interlaced with bottom field first, 2: interlaced with =
top field first)</element>
>=20
> I'll have to check if the spec generating tools supports minver as a
> non integer before merging this.

So perhaps we should have a separate xml for drafting while the work on =
the version is underway. Such as:

- specdata.xml (as the official version 4 EBML Schema)
- specdata_v5_draft.xml as a working document to patch to until Matroska =
version 5 is deemed official

>>   <element name=3D"StereoMode" cppname=3D"VideoStereoMode" level=3D"4" =
id=3D"0x53B8" type=3D"uinteger" minver=3D"3" webm=3D"1" =
default=3D"0">Stereo-3D video mode (0: mono, 1: side by side (left eye =
is first), 2: top-bottom (right eye is first), 3: top-bottom (left eye =
is first), 4: checkboard (right is first), 5: checkboard (left is =
first), 6: row interleaved (right is first), 7: row interleaved (left is =
first), 8: column interleaved (right is first), 9: column interleaved =
(left is first), 10: anaglyph (cyan/red), 11: side by side (right eye is =
first), 12: anaglyph (green/magenta), 13 both eyes laced in one Block =
(left eye is first), 14 both eyes laced in one Block (right eye is =
first)) . There are some more details on <a =
href=3D"http://www.matroska.org/technical/specs/notes.html#3D">3D =
support in the Specification Notes</a>.</element>
>>   <element name=3D"AlphaMode" cppname=3D"VideoAlphaMode" level=3D"4" =
id=3D"0x53C0" type=3D"uinteger" minver=3D"3" webm=3D"1" =
default=3D"0">Alpha Video Mode. Presence of this element indicates that =
the BlockAdditional element could contain Alpha data.</element>  =
<element name=3D"OldStereoMode" level=3D"4" id=3D"0x53B9" =
type=3D"uinteger" maxver=3D"0" webm=3D"0" divx=3D"0">DEPRECATED, DO NOT =
USE. Bogus StereoMode value used in old versions of libmatroska. (0: =
mono, 1: right eye, 2: left eye, 3: both eyes).</element>
>>   <element name=3D"PixelWidth" cppname=3D"VideoPixelWidth" level=3D"4" =
id=3D"0xB0" type=3D"uinteger" mandatory=3D"1" minver=3D"1" range=3D"not =
0">Width of the encoded video frames in pixels.</element>
>> --
>> 2.6.4
>>=20
>> Best Regards,
>> Dave Rice
>> _______________________________________________
>> Cellar mailing list
>> Cellar@ietf.org
>> https://www.ietf.org/mailman/listinfo/cellar
>=20
>=20
>=20
> --=20
> Steve Lhomme
> Matroska association Chairman


From nobody Fri Jan 22 14:54:34 2016
Return-Path: <frankgalligan@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DC6DE1A902E for <cellar@ietfa.amsl.com>; Fri, 22 Jan 2016 14:54:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.701
X-Spam-Level: 
X-Spam-Status: No, score=0.701 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vZCpwk0DYSN9 for <cellar@ietfa.amsl.com>; Fri, 22 Jan 2016 14:54:27 -0800 (PST)
Received: from mail-oi0-x232.google.com (mail-oi0-x232.google.com [IPv6:2607:f8b0:4003:c06::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94BAA1A902F for <cellar@ietf.org>; Fri, 22 Jan 2016 14:54:27 -0800 (PST)
Received: by mail-oi0-x232.google.com with SMTP id p187so56692522oia.2 for <cellar@ietf.org>; Fri, 22 Jan 2016 14:54:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ono7RqkuZ7arB10zHpdmu0DKSS2timDs43Wk25Cqz3Q=; b=FymimKwwgto/8dVGnQOHAlFkaGsGcShM3Lpvrv94nbUJ5XrqC9/lNZwA5OUUaohvGC NuFvKqMkmxIX383gS06HyxDxyEyfzUjJMMGDTIRZG6nvG4IkmEkhB/LRnlxBj0iPYaVk DDu86/a0QHO3UYDXQoX5hyglViBh7rHJeG6CGHissnKLL8DD+l7LNBKQq3alAaGfLE6k oyRYfdQQA8xQyuJ69/i+Rid3SL0tEVG7mvETY3EW+VvSp2ogT2jQMDBYF7Jm6gL8xx7q 0G2ZfxWruAwg5dJQqQ3V2hJMJYfk8PeT9/2gmlJeUpgjUTeAzYl8VV6JsrwJTc/iPskH RqbQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ono7RqkuZ7arB10zHpdmu0DKSS2timDs43Wk25Cqz3Q=; b=DyrSVPxijlIsga68x+/h/qvbJ+wmTgPmA/IsLLeYCmGXFRHh+pxaTW4/aqfDrK7X1R 1jeVIxBd1kEP5y/ScssTTiYHtfbDu7frd9520hHzQNSxturjWWvQ/h88OfS/OV/6hR0T a8PuUYYa4gEr0h9jyAp+G40zw2dcZo74egVJuRWUnqvza17x6/HZ24aJHNrGHGWk8JQF 0jYBARDJviI1OTANnLm4q7sKicjtCQsCixFtSvIH6F5e8o383Hw9GMOYI2ZE1a10xgTM NnYoIZGPKJDZDoazDBbMXwIzqTiQiz7MvXmOtS4PU7wb19xbLK4xOtEUIrxEXk3IWX3Z TjCg==
X-Gm-Message-State: AG10YOQn8SAXBJVucPd2Y0IP3Nz5E68kjeAtNfOfNiubr3CIZBVgb0zGHN90pQwHNnSebSzYuDJd8A5NfZfQ5A==
MIME-Version: 1.0
X-Received: by 10.202.108.69 with SMTP id h66mr3892318oic.67.1453503266911; Fri, 22 Jan 2016 14:54:26 -0800 (PST)
Received: by 10.202.211.65 with HTTP; Fri, 22 Jan 2016 14:54:26 -0800 (PST)
In-Reply-To: <CAOXsMF+VYv5WXek_-vuQO1cgvrhLN7WRDNkHegYaQT0YwkhRbw@mail.gmail.com>
References: <CAJGH+UuSn8O04HR1=L+b1=ouwgPd=n+xYFQZmTXqs8buZ-Wdrg@mail.gmail.com> <568C3CA0.8040300@mediaarea.net> <CAJGH+UveWG5_ngd+YxSqPOiPkEE7_uM288yJd=F8fPrThU4cRw@mail.gmail.com> <CAOXsMF+VYv5WXek_-vuQO1cgvrhLN7WRDNkHegYaQT0YwkhRbw@mail.gmail.com>
Date: Fri, 22 Jan 2016 14:54:26 -0800
Message-ID: <CAJGH+Ush3_X3SPgbGKYr5LcYLQAnO3w1-3MoF9CPeykqsYXhOw@mail.gmail.com>
From: Frank Galligan <frankgalligan@gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
Content-Type: multipart/alternative; boundary=001a1142ee4ee77dd20529f4191e
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/7pftVaNuzC5L9zo59pRCMzSMAEA>
Cc: Jerome Martinez <jerome@mediaarea.net>, Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Colour Format proposal
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Jan 2016 22:54:33 -0000

--001a1142ee4ee77dd20529f4191e
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Thu, Jan 14, 2016 at 4:04 AM, Steve Lhomme <slhomme@matroska.org> wrote:

> 2016-01-06 23:30 GMT+01:00 Frank Galligan <frankgalligan@gmail.com>:
> >
> >
> > On Tue, Jan 5, 2016 at 1:58 PM, Jerome Martinez <jerome@mediaarea.net>
> > wrote:
> >>
> >> Thanks for your detailed proposal.
> >> It is a lot of items, I am not expert in all domains but I have some
> >> comments:
> >
> > Neither am I, but I figured we might as well start from a proposal and
> > iterate from there.
> >
> >>
> >> Name: MatrixCoefficients (or Matrix. You don't use "Colour" with
> >> "Primaries" element, so I would not use it here too)
> >
> >  Sounds good to me.
> >
> >>
> >>
> >>
> >>
> >>
> >> Element Name: BitsPerChannel
> >> Level:        5
> >> ID:           [55][A2]
> >> Mandatory:    ma
> >> Multiple:     -
> >> Default:      8
> >> Type:         u
> >> Description:  Number of bits per channel. This number may be less for
> >> specific
> >>               channels depending on the ColourFormat and
> >> ChromaSubsampling.
> >>
> >>
> >>
> >> BitsPerChannel is misleading, used to be the technical count of bits.
> >> I propose QuantizationBits or ValidBitsPerChannel
> >> Not mandatory, not default (this value is often unknown)
> >
> > When authoring the video, I'm not sure why the software would not know
> the
> > bits per channel. Can you describe a use case where the this is unknown=
?
>
> When remuxing an older file. Either from Matroska source or AVI or other.
>
> Now if elements are mandatory with a default value to "unknown" it's fine=
.
>
> > I really think we should make this mandatory and have authoring softwar=
e
> > populate the element (or default) vs software thinking this was
> > non-mandatory and not populating this element because the developer
> didn't
> > think it was needed.
> >>
> >>
> >>
> >>
> >> Element Name: ChromaSubsampling
> >> Level:        5
> >> ID:           [55][A3]
> >> Mandatory:    ma
> >> Multiple:     -
> >> Default:      0
> >> Type:         u
> >> Description:  (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)
> >>
> >>
> >> FFV1, for example, permits "weird" chroma values, more possibilities.
> >> And the following chroma values were seen at least once in some specs:
> >> 4:4:4
> >> 4:2:2
> >> 4:2:1
> >> 4:1:1
> >> 4:2:0
> >> 4:1:0
> >> 3:1:1
> >>
> >> So having a list is maybe not the solution.
> >> I like the way it is done in FFV1, except the power of 2 (so 3 can not
> be
> >> expressed).
> >> I propose to find a way for describing Chroma subsampling (e.g.
> >> h_chroma_subsample and v_chroma_subsample; a ratio per plane with any
> number
> >> of plane, think to alpha channel with a subsampling).
> >
> > I'm fine with coming up with a more extensible solution (Micheal asked
> for
> > that as well).
> >>
> >>
> >>
> >>
> >>
> >>
> >> Element Name: ColourRange
> >> Level:        5
> >> ID:           [55][A4]
> >> Mandatory:    ma
> >> Multiple:     -
> >> Default:      1
> >> Type:         u
> >> Description:  (0: Unspecified, 1: Defined by
> >> ColourMatrix/TransferFunction,
> >>               2: Full range)
> >>
> >>
> >> I don't understand the 1 value.
> >> in at least AVC and HEVC, range is orthogonal to
> >> ColourMatrix/TransferFunction.
> >> I propose 0: unspecified 1: Broadcast range 1: Full range
> >> and Default:0
> >
> > I thought someone mentioned to me before that the range could change
> based
> > on the matrix and transfer function. I'm fine with your proposal.
> >
> >>
> >>
> >>
> >> I got requests for having information about "Capture Gamma Equation" (=
or
> >> "Tone Curve"), e.g. "same as transfer characteristic", Scene Linear,
> S-Log,
> >> Cine-Log, Log-C...
> >> I am not an expert of this domain, but looks like it is sometimes
> >> important.
> >
> > Someone who knows more about  this should propose something to this lis=
t
> to
> > be included.
> >
> >>
> >> there are also other colour ideas with e.g. EBU Tech 3349.
> >
> > If this is important to people, then we could add this as well.
> >>
> >>
> >>
> >>
> >>
> >>
> >> I can post a link to a formatted document if that would be easier. For
> >> Matrix, Range, and Primaries, I'm pretty much using values that map
> directly
> >> to values defined in FFmpeg.
> >>
> >>
> >> I don't like the idea to use the source code of a piece of software fo=
r
> >> lists. Too much subjective, may have historical flaws.
> >> Lists from FFmpeg are nearly same as the ones in H.26x, I think I pref=
er
> >> we base our list on their list (I don't think there are copyright issu=
es
> >> with such list) directly.
> >
> > I don't know the H.26x list. I started with my own, but then switched t=
o
> > FFmpeg as they already had an extensive list and assumed they have seen=
 a
> > lot of the video already.
> >
> > If deciding between H.26x and FFmpeg, my guess is that FFmpeg would be
> > better as it handles a lot more video than H.26x.
> >
> >>
> >> Or that we have a prefix with the origin of the list (e.g. ARIB STD-B6=
7,
> >> from Japan, is not in ITU/ISO list, a 18 will be used in the future fo=
r
> >> something in ITU/ISO)
> >
> > Yeah HLG is relatively new, but has been requested by a few people.
> >
> >
> >
> > _______________________________________________
> > Cellar mailing list
> > Cellar@ietf.org
> > https://www.ietf.org/mailman/listinfo/cellar
> >
>
>
>
> --
> Steve Lhomme
> Matroska association Chairman
>

So I updated my original proposal based on comments from this list.

Changes:
- Added more common ChromaSubsampling values
- ColourMatrix renamed to Matrix
- Added a default value of 0 to BitsPerChannel to signify "unspecified".
- Added "decoded" to BitsPerChannel note.
- Added ChromaSittingHorz and ChromaSittingVert elements.
- Added Broadcast range to Range element.
- Removed mandatory flag for elements with unspecified defaults.
- Updated element IDs.


- I kept "Defined by Matrix/TransferFunction" in Range element because
there are ranges that fall outside of Broadcast and Full depending on the
TF. E.g. xvYCC (61966-2-4)
- Does someone want to propose something better for ChromaSubsampling?
- I know some people expressed that they don't think starting from FFmpeg
for the TransferFunction is a good idea as they might have got something
wrong or too subjective. But I just used it as a starting point for a list.
I can reorder the list however we want. I also don't think following
another list, so we will be compatible with future additions, will give us
what we want as that list most likely will be incomplete with something
that is defined only in a different list. So should we just start with a
list, re-order it (so we are not explicitly following it), then add what is
currently missing? Then in the future if someone needs to add something to
the list it can be brought up here?

This is what I currently have:

The parent element would be Video [E0].


Element Name: Colour

Level:        4

ID:           [55][A0]

Mandatory:    -

Multiple:     -

Default:      -

Type:         m

Description:  Settings describing the colour format.


Element Name: Matrix

Level:        5

ID:           [55][A1]

Mandatory:    -

Multiple:     -

Default:      2

Type:         u

Description:  Colour Matrix of the video. (0: IEC 61966-2-1 (sRGB), 1:
BT709,

             2: Unspecified, 3: Reserved, 4: FCC, 5: BT470BG, 6: SMPTE 170M=
,

             7: SMPTE 240M, 8: YCOCG, 9: BT2020 Non-constant Luminance,

             10: BT2020 Constant Luminance)


Element Name: BitsPerChannel

Level:        5

ID:           [55][A2]

Mandatory:    -

Multiple:     -

Default:      0

Type:         u

Description:  Number of decoded bits per channel. This number may be less
for

             specific channels depending on the Matrix and
ChromaSubsampling. A

             value of 0 is unspecified.


Element Name: ChromaSubsampling

Level:        5

ID:           [55][A3]

Mandatory:    -

Multiple:     -

Default:      0

Type:         u

Description:  (0: Unspecified, 1: 4:4:4, 2: 4:4:0, 3: 4:2:2, 4: 4:2:1, 5:
4:2:0,

             6: 4:1:1, 7: 4:1:0, 8: 3:1:1)

Element Name: ChromaSittingHorz

Level:        5

ID:           [55][A4]

Mandatory:    -

Multiple:     -

Default:      0

Type:         u

Description:  How Chroma is subsampled horizontally. (0: Unspecified, 1:
Left

             collocated , 2: Half)

Element Name: ChromaSittingVert

Level:        5

ID:           [55][A5]

Mandatory:    -

Multiple:     -

Default:      0

Type:         u

Description:  How Chroma is subsampled vertically. (0: Unspecified, 1: Top

             collocated , 2: Half)


Element Name: Range

Level:        5

ID:           [55][A6]

Mandatory:    -

Multiple:     -

Default:      0

Type:         u

Description:  (0: Unspecified, 1: Broadcast range, 2: Full range, 3:
Defined by

             Matrix/TransferFunction)


Element Name: TransferFunction

Level:        5

ID:           [55][A7]

Mandatory:    -

Multiple:     -

Default:      2

Type:         u

Description:  Transfer Function. (0: Reserved, 1: ITU-R BT.709, 2:
Unspecified,

             4: Gamma 2.2 curve, 5: Gamma 2.8 curve, 6: SMPTE 170M,

             7: SMPTE 240M, 8: Linear, 9: Log, 10: Log Sqrt,

             11: IEC 61966-2-4, 12: ITU-R BT.1361 Extended Colour Gamut,

             13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit,

             15: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084,

             17: SMPTE ST 428-1 18: ARIB STD-B67 (HLG))


Element Name: Primaries

Level:        5

Mandatory:    -

Multiple:     -

ID:           [55][A8]

Default:      2

Description:  (0: Reserved, 1: ITU-R BT.709, 2: Unspecified, 4: ITU-R
BT.470M,

              5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM,

              9: ITU-R BT.2020, 10: SMPTE ST 428-1)


Element Name: MaxCLL

Level:        5

ID:           [55][A9]

Mandatory:    -

Multiple:     -

Default:      -

Type:         u

Description:  Maximum brightness of a single pixel in candelas per square

             meter (cd/m=C2=B2).


Element Name: MaxFALL

Level:        5

ID:           [55][AA]

Mandatory:    -

Multiple:     -

Default:      -

Type:         u

Description:  Maximum brightness of a single full frame in candelas per
square

             meter (cd/m=C2=B2).


Element Name: MasteringMetadata

Level:        5

ID:           [55][D0]

Mandatory:    -

Multiple:     -

Default:      -

Type:         m

Description:  SMPTE 2086 mastering data.


Element Name: PrimaryRChromaticityX

Level:        6

ID:           [55][D1]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryRChromaticityY

Level:        6

ID:           [55][D2]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryGChromaticityX

Level:        6

ID:           [55][D3]

Mandatory:    -

Multiple:     -

Default:      -

f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryGChromaticityY

Level:        6

ID:           [55][D4]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryBChromaticityX

Level:        6

ID:           [55][D5]

Mandatory:    -

Multiple:     -

Default:      -

f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: PrimaryBChromaticityY

Level:        6

ID:           [55][D6]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: WhitePointChromaticityX

Level:        6

ID:           [55][D7]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: WhitePointChromaticityY

Level:        6

ID:           [55][D8]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Valid value is in the range 0 <=3D f <=3D 1.


Element Name: LuminanceMax

Level:        6

ID:           [55][D9]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Maximum luminance. Shall be represented in candelas per squar=
e

             meter (cd/m=C2=B2). Valid value is in the range 0 <=3D f <=3D =
9999.99


Element Name: LuminanceMin

Level:        6

ID:           [55][DA]

Mandatory:    -

Multiple:     -

Default:      -

Type:         f

Description:  Minimum luminance. Shall be represented in candelas per squar=
e
             meter (cd/m=C2=B2). Valid value is in the range 0 <=3D f <=3D =
999.9999

--001a1142ee4ee77dd20529f4191e
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Jan 14, 2016 at 4:04 AM, Steve Lhomme <span dir=3D"ltr">&lt;<a =
href=3D"mailto:slhomme@matroska.org" target=3D"_blank">slhomme@matroska.org=
</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204)=
;border-left-style:solid;padding-left:1ex"><div class=3D""><div class=3D"h5=
">2016-01-06 23:30 GMT+01:00 Frank Galligan &lt;<a href=3D"mailto:frankgall=
igan@gmail.com">frankgalligan@gmail.com</a>&gt;:<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Jan 5, 2016 at 1:58 PM, Jerome Martinez &lt;<a href=3D"mailto:=
jerome@mediaarea.net">jerome@mediaarea.net</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Thanks for your detailed proposal.<br>
&gt;&gt; It is a lot of items, I am not expert in all domains but I have so=
me<br>
&gt;&gt; comments:<br>
&gt;<br>
&gt; Neither am I, but I figured we might as well start from a proposal and=
<br>
&gt; iterate from there.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Name: MatrixCoefficients (or Matrix. You don&#39;t use &quot;Colou=
r&quot; with<br>
&gt;&gt; &quot;Primaries&quot; element, so I would not use it here too)<br>
&gt;<br>
&gt;=C2=A0 Sounds good to me.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Element Name: BitsPerChannel<br>
&gt;&gt; Level:=C2=A0 =C2=A0 =C2=A0 =C2=A0 5<br>
&gt;&gt; ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[55][A2]<br>
&gt;&gt; Mandatory:=C2=A0 =C2=A0 ma<br>
&gt;&gt; Multiple:=C2=A0 =C2=A0 =C2=A0-<br>
&gt;&gt; Default:=C2=A0 =C2=A0 =C2=A0 8<br>
&gt;&gt; Type:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0u<br>
&gt;&gt; Description:=C2=A0 Number of bits per channel. This number may be =
less for<br>
&gt;&gt; specific<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0channels dep=
ending on the ColourFormat and<br>
&gt;&gt; ChromaSubsampling.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; BitsPerChannel is misleading, used to be the technical count of bi=
ts.<br>
&gt;&gt; I propose QuantizationBits or ValidBitsPerChannel<br>
&gt;&gt; Not mandatory, not default (this value is often unknown)<br>
&gt;<br>
&gt; When authoring the video, I&#39;m not sure why the software would not =
know the<br>
&gt; bits per channel. Can you describe a use case where the this is unknow=
n?<br>
<br>
</div></div>When remuxing an older file. Either from Matroska source or AVI=
 or other.<br>
<br>
Now if elements are mandatory with a default value to &quot;unknown&quot; i=
t&#39;s fine.<br>
<div class=3D""><div class=3D"h5"><br>
&gt; I really think we should make this mandatory and have authoring softwa=
re<br>
&gt; populate the element (or default) vs software thinking this was<br>
&gt; non-mandatory and not populating this element because the developer di=
dn&#39;t<br>
&gt; think it was needed.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Element Name: ChromaSubsampling<br>
&gt;&gt; Level:=C2=A0 =C2=A0 =C2=A0 =C2=A0 5<br>
&gt;&gt; ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[55][A3]<br>
&gt;&gt; Mandatory:=C2=A0 =C2=A0 ma<br>
&gt;&gt; Multiple:=C2=A0 =C2=A0 =C2=A0-<br>
&gt;&gt; Default:=C2=A0 =C2=A0 =C2=A0 0<br>
&gt;&gt; Type:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0u<br>
&gt;&gt; Description:=C2=A0 (0: 4:2:0, 2: 4:2:2, 4: 4:4:4)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; FFV1, for example, permits &quot;weird&quot; chroma values, more p=
ossibilities.<br>
&gt;&gt; And the following chroma values were seen at least once in some sp=
ecs:<br>
&gt;&gt; 4:4:4<br>
&gt;&gt; 4:2:2<br>
&gt;&gt; 4:2:1<br>
&gt;&gt; 4:1:1<br>
&gt;&gt; 4:2:0<br>
&gt;&gt; 4:1:0<br>
&gt;&gt; 3:1:1<br>
&gt;&gt;<br>
&gt;&gt; So having a list is maybe not the solution.<br>
&gt;&gt; I like the way it is done in FFV1, except the power of 2 (so 3 can=
 not be<br>
&gt;&gt; expressed).<br>
&gt;&gt; I propose to find a way for describing Chroma subsampling (e.g.<br=
>
&gt;&gt; h_chroma_subsample and v_chroma_subsample; a ratio per plane with =
any number<br>
&gt;&gt; of plane, think to alpha channel with a subsampling).<br>
&gt;<br>
&gt; I&#39;m fine with coming up with a more extensible solution (Micheal a=
sked for<br>
&gt; that as well).<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Element Name: ColourRange<br>
&gt;&gt; Level:=C2=A0 =C2=A0 =C2=A0 =C2=A0 5<br>
&gt;&gt; ID:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0[55][A4]<br>
&gt;&gt; Mandatory:=C2=A0 =C2=A0 ma<br>
&gt;&gt; Multiple:=C2=A0 =C2=A0 =C2=A0-<br>
&gt;&gt; Default:=C2=A0 =C2=A0 =C2=A0 1<br>
&gt;&gt; Type:=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0u<br>
&gt;&gt; Description:=C2=A0 (0: Unspecified, 1: Defined by<br>
&gt;&gt; ColourMatrix/TransferFunction,<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A02: Full rang=
e)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t understand the 1 value.<br>
&gt;&gt; in at least AVC and HEVC, range is orthogonal to<br>
&gt;&gt; ColourMatrix/TransferFunction.<br>
&gt;&gt; I propose 0: unspecified 1: Broadcast range 1: Full range<br>
&gt;&gt; and Default:0<br>
&gt;<br>
&gt; I thought someone mentioned to me before that the range could change b=
ased<br>
&gt; on the matrix and transfer function. I&#39;m fine with your proposal.<=
br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I got requests for having information about &quot;Capture Gamma Eq=
uation&quot; (or<br>
&gt;&gt; &quot;Tone Curve&quot;), e.g. &quot;same as transfer characteristi=
c&quot;, Scene Linear, S-Log,<br>
&gt;&gt; Cine-Log, Log-C...<br>
&gt;&gt; I am not an expert of this domain, but looks like it is sometimes<=
br>
&gt;&gt; important.<br>
&gt;<br>
&gt; Someone who knows more about=C2=A0 this should propose something to th=
is list to<br>
&gt; be included.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; there are also other colour ideas with e.g. EBU Tech 3349.<br>
&gt;<br>
&gt; If this is important to people, then we could add this as well.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I can post a link to a formatted document if that would be easier.=
 For<br>
&gt;&gt; Matrix, Range, and Primaries, I&#39;m pretty much using values tha=
t map directly<br>
&gt;&gt; to values defined in FFmpeg.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t like the idea to use the source code of a piece of sof=
tware for<br>
&gt;&gt; lists. Too much subjective, may have historical flaws.<br>
&gt;&gt; Lists from FFmpeg are nearly same as the ones in H.26x, I think I =
prefer<br>
&gt;&gt; we base our list on their list (I don&#39;t think there are copyri=
ght issues<br>
&gt;&gt; with such list) directly.<br>
&gt;<br>
&gt; I don&#39;t know the H.26x list. I started with my own, but then switc=
hed to<br>
&gt; FFmpeg as they already had an extensive list and assumed they have see=
n a<br>
&gt; lot of the video already.<br>
&gt;<br>
&gt; If deciding between H.26x and FFmpeg, my guess is that FFmpeg would be=
<br>
&gt; better as it handles a lot more video than H.26x.<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; Or that we have a prefix with the origin of the list (e.g. ARIB ST=
D-B67,<br>
&gt;&gt; from Japan, is not in ITU/ISO list, a 18 will be used in the futur=
e for<br>
&gt;&gt; something in ITU/ISO)<br>
&gt;<br>
&gt; Yeah HLG is relatively new, but has been requested by a few people.<br=
>
&gt;<br>
&gt;<br>
&gt;<br>
</div></div><div class=3D""><div class=3D"h5">&gt; ________________________=
_______________________<br>
&gt; Cellar mailing list<br>
&gt; <a href=3D"mailto:Cellar@ietf.org">Cellar@ietf.org</a><br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/cellar" rel=3D"norefe=
rrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/cellar</a><br=
>
&gt;<br>
<br>
<br>
<br>
</div></div><span class=3D""><font color=3D"#888888">--<br>
Steve Lhomme<br>
Matroska association Chairman<br></font></span></blockquote><div><br></div>=
<div>So I updated my original proposal based on comments from this list.</d=
iv><div><br></div><div>Changes:</div><div>- Added more common ChromaSubsamp=
ling values</div><div>- ColourMatrix renamed to Matrix</div><div>- Added a =
default value of 0 to BitsPerChannel to signify &quot;unspecified&quot;.</d=
iv><div>- Added &quot;decoded&quot; to BitsPerChannel note.</div><div>- Add=
ed ChromaSittingHorz and ChromaSittingVert elements.</div><div>- Added Broa=
dcast range to Range element.</div><div>- Removed mandatory flag for elemen=
ts with unspecified defaults.</div><div>- Updated element IDs.</div><div><b=
r></div><div><br></div><div>- I kept &quot;<span style=3D"font-family:&#39;=
Courier New&#39;;font-size:12.6667px;white-space:pre-wrap;line-height:1.38"=
>Defined by </span><span style=3D"font-family:&#39;Courier New&#39;;font-si=
ze:12.6667px;white-space:pre-wrap;line-height:1.38">Matrix/TransferFunction=
</span>&quot; in Range element because there are ranges that fall outside o=
f Broadcast and Full depending on the TF. E.g. xvYCC (61966-2-4)</div><div>=
- Does someone want to propose something better for ChromaSubsampling?</div=
><div>- I know some people expressed that they don&#39;t think starting fro=
m FFmpeg for the TransferFunction is a good idea as they might have got som=
ething wrong or too subjective. But I just used it as a starting point for =
a list. I can reorder the list however we want. I also don&#39;t think foll=
owing another list, so we will be compatible with future additions, will gi=
ve us what we want as that list most likely will be incomplete with somethi=
ng that is defined only in a different list. So should we just start with a=
 list, re-order it (so we are not explicitly following it), then add what i=
s currently missing? Then in the future if someone needs to add something t=
o the list it can be brought up here?</div><div><br></div><div>This is what=
 I currently have:</div><div><br></div><div><span id=3D"docs-internal-guid-=
46aed0da-6b7a-0c9c-113b-61ad434b135f"><p dir=3D"ltr" style=3D"line-height:1=
.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;fo=
nt-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wra=
p">The parent element would be Video [E0].</span></p><br><br><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D=
"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:basel=
ine;white-space:pre-wrap">Element Name: Colour</span></p><p dir=3D"ltr" sty=
le=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fon=
t-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;=
white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A04</s=
pan></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39=
;;vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A0]</span></p><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fo=
nt-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline=
;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"l=
tr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p>=
<p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertic=
al-align:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Type: =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0m</span></p><p dir=3D"ltr" style=3D"=
line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size=
:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-=
space:pre-wrap">Description: =C2=A0Settings describing the colour format.</=
span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;ma=
rgin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courie=
r New&#39;;vertical-align:baseline;white-space:pre-wrap">Element Name: Matr=
ix</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin=
-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier Ne=
w&#39;;vertical-align:baseline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;f=
ont-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wr=
ap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A1=
]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-=
bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New=
&#39;;vertical-align:baseline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=
=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Multiple: =C2=A0=
=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;marg=
in-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-famil=
y:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Defau=
lt: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A02</span></p><p dir=3D"ltr" style=3D"line-=
height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6=
667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space=
:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0u</span></=
p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vert=
ical-align:baseline;white-space:pre-wrap">Description: =C2=A0Colour Matrix =
of the video. (0: IEC 61966-2-1 (sRGB), 1: BT709,</span></p><p dir=3D"ltr" =
style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"=
font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseli=
ne;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A02: Unspecified, 3: Reserved, 4: FCC, 5: BT470=
BG, 6: SMPTE 170M,</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margi=
n-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family=
:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"> =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
7: SMPTE 240M, 8: YCOCG, 9: BT2020 Non-constant Luminance,</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A010: BT2020 Constant Luminance) </spa=
n></p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margi=
n-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier N=
ew&#39;;vertical-align:baseline;white-space:pre-wrap">Element Name: BitsPer=
Channel</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Level: =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.66=
67px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:=
pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[=
55][A2]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Mandatory: =C2=A0=
=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top=
:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39=
;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Multiple: =
=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font=
-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"=
>Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A00</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0u</s=
pan></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39=
;;vertical-align:baseline;white-space:pre-wrap">Description: =C2=A0Number o=
f decoded bits per channel. This number may be less for </span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0specific channels depending on the M=
atrix and ChromaSubsampling. A</span></p><p dir=3D"ltr" style=3D"line-heigh=
t:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px=
;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-=
wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0value of 0 is unspecified.</span></p><br><br><p dir=3D"ltr" sty=
le=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fon=
t-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;=
white-space:pre-wrap">Element Name: ChromaSubsampling</span></p><p dir=3D"l=
tr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A05</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;marg=
in-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier =
New&#39;;vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A3]</span></p><p dir=3D"l=
tr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span=
 style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-al=
ign:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</spa=
n></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;=
vertical-align:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A00</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top=
:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39=
;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Type: =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0u</span></p><p dir=3D"ltr" sty=
le=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fon=
t-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;=
white-space:pre-wrap">Description: =C2=A0(0: Unspecified, 1: 4:4:4, 2: 4:4:=
0, 3: 4:2:2, 4: 4:2:1, 5: 4:2:0, =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0</span></p><p dir=3D"ltr" style=3D"line-heigh=
t:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px=
;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-=
wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A06: 4:1:1, 7: 4:1:0, 8: 3:1:1)</span></p><br><p dir=3D"ltr" styl=
e=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font=
-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;w=
hite-space:pre-wrap">Element Name: ChromaSittingHorz</span></p><p dir=3D"lt=
r" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A05</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;marg=
in-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier =
New&#39;;vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A4]</span></p><p dir=3D"l=
tr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span=
 style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-al=
ign:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</spa=
n></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;=
vertical-align:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A00</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top=
:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39=
;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Type: =C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0u</span></p><p dir=3D"ltr" sty=
le=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fon=
t-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;=
white-space:pre-wrap">Description: =C2=A0How Chroma is subsampled horizonta=
lly. (0: Unspecified, 1: Left </span></p><p dir=3D"ltr" style=3D"line-heigh=
t:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px=
;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-=
wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0collocated , 2: Half)</span></p><br><p dir=3D"ltr" style=3D"lin=
e-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12=
.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-spa=
ce:pre-wrap">Element Name: ChromaSittingVert</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</spa=
n></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;=
vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A5]</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D=
"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:basel=
ine;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p =
dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><sp=
an style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-=
align:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A00</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;marg=
in-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier =
New&#39;;vertical-align:baseline;white-space:pre-wrap">Type: =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0u</span></p><p dir=3D"ltr" style=3D"lin=
e-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12=
.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-spa=
ce:pre-wrap">Description: =C2=A0How Chroma is subsampled vertically. (0: Un=
specified, 1: Top</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:=
&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"> =C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0col=
located , 2: Half)</span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.=
38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;fon=
t-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap=
">Element Name: Range</span></p><p dir=3D"ltr" style=3D"line-height:1.38;ma=
rgin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-fam=
ily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Lev=
el: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fo=
nt-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline=
;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0[55][A6]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;mar=
gin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-fami=
ly:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Mand=
atory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.=
38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;fon=
t-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap=
">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"lin=
e-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12=
.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-spa=
ce:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A00</span></p><p dir=3D"l=
tr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0u</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Co=
urier New&#39;;vertical-align:baseline;white-space:pre-wrap">Description: =
=C2=A0(0: Unspecified, 1: Broadcast range, 2: Full range, 3: Defined by </s=
pan></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39=
;;vertical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Matrix/TransferFuncti=
on)</span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0=
pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;C=
ourier New&#39;;vertical-align:baseline;white-space:pre-wrap">Element Name:=
 TransferFunction</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:=
&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Level: =
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0[55][A7]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:=
&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Mandato=
ry: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;=
margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-f=
amily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">M=
ultiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.66=
67px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:=
pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A02</span></p><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D=
"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:basel=
ine;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0u</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Description: =C2=
=A0Transfer Function. (0: Reserved, 1: ITU-R BT.709, 2: Unspecified,</span>=
</p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0=
pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;ve=
rtical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A04: Gamma 2.2 curve, 5: Gamm=
a 2.8 curve, 6: SMPTE 170M,</span></p><p dir=3D"ltr" style=3D"line-height:1=
.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;fo=
nt-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wra=
p"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A07: SMPTE 240M, 8: Linear, 9: Log, 10: Log Sqrt,</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A011: IEC 61966-2-4, 12: ITU-R BT.1361=
 Extended Colour Gamut,</span></p><p dir=3D"ltr" style=3D"line-height:1.38;=
margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-f=
amily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"> =
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A013: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit,</span></p><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fo=
nt-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline=
;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A015: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084,</sp=
an></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-botto=
m:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;=
;vertical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A017: SMPTE ST 428-1 18: A=
RIB STD-B67 (HLG))</span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.=
38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;fon=
t-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap=
">Element Name: Primaries</span></p><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font=
-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"=
>Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr=
" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span=
 style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-al=
ign:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</spa=
n></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;=
vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A8]</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A02</span></p><p d=
ir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><spa=
n style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-a=
lign:baseline;white-space:pre-wrap">Description: =C2=A0(0: Reserved, 1: ITU=
-R BT.709, 2: Unspecified, 4: ITU-R BT.470M,</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 24=
0M, 8: FILM,</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:=
0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;=
Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
9: ITU-R BT.2020, 10: SMPTE ST 428-1)</span></p><br><br><p dir=3D"ltr" styl=
e=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font=
-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;w=
hite-space:pre-wrap">Element Name: MaxCLL</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span><=
/p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0p=
t"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;ver=
tical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][A9]</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fo=
nt-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline=
;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-<=
/span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bo=
ttom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#=
39;;vertical-align:baseline;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0u</span></p><p dir=3D"ltr" style=3D"line-heig=
ht:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667p=
x;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre=
-wrap">Description: =C2=A0Maximum brightness of a single pixel in candelas =
per square</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Co=
urier New&#39;;vertical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0meter (cd=
/m=C2=B2).</span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margi=
n-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family=
:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Elemen=
t Name: MaxFALL</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-t=
op:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#=
39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Level: =
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0[55][AA]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:=
&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Mandato=
ry: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;=
margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-f=
amily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">M=
ultiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.66=
67px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:=
pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D=
"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:basel=
ine;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0u</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Description: =C2=
=A0Maximum brightness of a single full frame in candelas per square</span><=
/p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0p=
t"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;ver=
tical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0meter (cd/m=C2=B2).</span><=
/p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&=
#39;;vertical-align:baseline;white-space:pre-wrap">Element Name: MasteringM=
etadata</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Level: =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A05</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.66=
67px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:=
pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[=
55][D0]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Mandatory: =C2=A0=
=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top=
:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39=
;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Multiple: =
=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font=
-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"=
>Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0m</s=
pan></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39=
;;vertical-align:baseline;white-space:pre-wrap">Description: =C2=A0SMPTE 20=
86 mastering data.</span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.=
38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;fon=
t-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap=
">Element Name: PrimaryRChromaticityX</span></p><p dir=3D"ltr" style=3D"lin=
e-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12=
.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-spa=
ce:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A06</span></p><=
p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><=
span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertica=
l-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D1]</span></p><p dir=3D"ltr" style=3D"li=
ne-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:1=
2.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-sp=
ace:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D=
"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:=
baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</sp=
an></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-botto=
m:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;=
;vertical-align:baseline;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0f</span></p><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;f=
ont-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wr=
ap">Description: =C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</=
span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;ma=
rgin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courie=
r New&#39;;vertical-align:baseline;white-space:pre-wrap">Element Name: Prim=
aryRChromaticityY</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:=
&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Level: =
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A06</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0[55][D2]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin=
-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:=
&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Mandato=
ry: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;=
margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-f=
amily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">M=
ultiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.66=
67px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:=
pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D=
"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:basel=
ine;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0f</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Description: =C2=
=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</span></p><br><br><p =
dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><sp=
an style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-=
align:baseline;white-space:pre-wrap">Element Name: PrimaryGChromaticityX</s=
pan></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bott=
om:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39=
;;vertical-align:baseline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A06</span></p><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font=
-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"=
>ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D3]</=
span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bot=
tom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#3=
9;;vertical-align:baseline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=
=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;marg=
in-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier =
New&#39;;vertical-align:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=
=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&=
#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Default:=
 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-hei=
ght:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667=
px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pr=
e-wrap">f</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt=
;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Cou=
rier New&#39;;vertical-align:baseline;white-space:pre-wrap">Description: =
=C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</span></p><br><br>=
<p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertic=
al-align:baseline;white-space:pre-wrap">Element Name: PrimaryGChromaticityY=
</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&=
#39;;vertical-align:baseline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A06</span></p><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;f=
ont-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wr=
ap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D4=
]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-=
bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New=
&#39;;vertical-align:baseline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=
=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">Multiple: =C2=A0=
=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;marg=
in-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-famil=
y:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Defau=
lt: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-=
height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6=
667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space=
:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0f</span></=
p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt=
"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vert=
ical-align:baseline;white-space:pre-wrap">Description: =C2=A0Valid value is=
 in the range 0 &lt;=3D f &lt;=3D 1.</span></p><br><br><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap">Element Name: PrimaryBChromaticityX</span></p><p dir=3D=
"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span sty=
le=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:=
baseline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A06</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;m=
argin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D5]</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p>=
<p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt">=
<span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertic=
al-align:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-=
</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-b=
ottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&=
#39;;vertical-align:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&=
#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">f</span>=
</p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0=
pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;ve=
rtical-align:baseline;white-space:pre-wrap">Description: =C2=A0Valid value =
is in the range 0 &lt;=3D f &lt;=3D 1.</span></p><br><br><p dir=3D"ltr" sty=
le=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fon=
t-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;=
white-space:pre-wrap">Element Name: PrimaryBChromaticityY</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A06</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0p=
t;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Co=
urier New&#39;;vertical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D6]</span></p><p di=
r=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span=
 style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-al=
ign:baseline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p=
><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"=
><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;verti=
cal-align:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0=
-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-=
bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New=
&#39;;vertical-align:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;marg=
in-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-famil=
y:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Type:=
 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0f</span></p><p dir=3D"ltr"=
 style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D=
"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:basel=
ine;white-space:pre-wrap">Description: =C2=A0Valid value is in the range 0 =
&lt;=3D f &lt;=3D 1.</span></p><br><br><p dir=3D"ltr" style=3D"line-height:=
1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;f=
ont-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wr=
ap">Element Name: WhitePointChromaticityX</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A06</span><=
/p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0p=
t"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;ver=
tical-align:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D7]</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" st=
yle=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"fo=
nt-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline=
;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-<=
/span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bo=
ttom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#=
39;;vertical-align:baseline;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0f</span></p><p dir=3D"ltr" style=3D"line-heig=
ht:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667p=
x;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre=
-wrap">Description: =C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1=
.</span></p><br><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt=
;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Cou=
rier New&#39;;vertical-align:baseline;white-space:pre-wrap">Element Name: W=
hitePointChromaticityY</span></p><p dir=3D"ltr" style=3D"line-height:1.38;m=
argin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-fa=
mily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Le=
vel: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A06</span></p><p dir=3D"ltr" s=
tyle=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"f=
ont-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baselin=
e;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0[55][D8]</span></p><p dir=3D"ltr" style=3D"line-height:1.38;=
margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-f=
amily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">M=
andatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height=
:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;=
font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-w=
rap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"=
line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size=
:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-=
space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=
=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span =
style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-ali=
gn:baseline;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0f</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-=
top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&=
#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Descript=
ion: =C2=A0Valid value is in the range 0 &lt;=3D f &lt;=3D 1.</span></p><br=
><br><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;v=
ertical-align:baseline;white-space:pre-wrap">Element Name: LuminanceMax</sp=
an></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-botto=
m:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;=
;vertical-align:baseline;white-space:pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A06</span></p><p dir=3D"ltr" style=3D"line-height:1.38;m=
argin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-fa=
mily:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">ID=
: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][D9]</spa=
n></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom=
:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;=
vertical-align:baseline;white-space:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0=
-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-=
bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New=
&#39;;vertical-align:baseline;white-space:pre-wrap">Multiple: =C2=A0=C2=A0=
=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top=
:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font-family:&#39=
;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap">Default: =
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D"line-heig=
ht:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667p=
x;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre=
-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0f</span></p><p=
 dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><s=
pan style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical=
-align:baseline;white-space:pre-wrap">Description: =C2=A0Maximum luminance.=
 Shall be represented in candelas per square</span></p><p dir=3D"ltr" style=
=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-=
size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;wh=
ite-space:pre-wrap"> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0meter (cd/m=C2=B2). Valid value is in the range 0 &=
lt;=3D f &lt;=3D 9999.99</span></p><br><br><p dir=3D"ltr" style=3D"line-hei=
ght:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667=
px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pr=
e-wrap">Element Name: LuminanceMin</span></p><p dir=3D"ltr" style=3D"line-h=
eight:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.66=
67px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:=
pre-wrap">Level: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A06</span></p><p d=
ir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><spa=
n style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-a=
lign:baseline;white-space:pre-wrap">ID: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0[55][DA]</span></p><p dir=3D"ltr" style=3D"line-=
height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6=
667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white-space=
:pre-wrap">Mandatory: =C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"ltr" style=3D=
"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-siz=
e:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:baseline;white=
-space:pre-wrap">Multiple: =C2=A0=C2=A0=C2=A0=C2=A0-</span></p><p dir=3D"lt=
r" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style=
=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;vertical-align:ba=
seline;white-space:pre-wrap">Default: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0-</span=
></p><p dir=3D"ltr" style=3D"line-height:1.38;margin-top:0pt;margin-bottom:=
0pt"><span style=3D"font-size:12.6667px;font-family:&#39;Courier New&#39;;v=
ertical-align:baseline;white-space:pre-wrap">Type: =C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0f</span></p><p dir=3D"ltr" style=3D"line-height:1.3=
8;margin-top:0pt;margin-bottom:0pt"><span style=3D"font-size:12.6667px;font=
-family:&#39;Courier New&#39;;vertical-align:baseline;white-space:pre-wrap"=
>Description: =C2=A0Minimum luminance. Shall be represented in candelas per=
 square</span></p><span style=3D"font-size:12.6667px;font-family:&#39;Couri=
er New&#39;;vertical-align:baseline;white-space:pre-wrap"> =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0meter (cd/m=
=C2=B2). Valid value is in the range 0 &lt;=3D f &lt;=3D 999.9999</span></s=
pan><br></div></div><br></div></div>

--001a1142ee4ee77dd20529f4191e--


From nobody Sat Jan 23 11:37:00 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 79FE81ACE8A for <cellar@ietfa.amsl.com>; Sat, 23 Jan 2016 11:36:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.58
X-Spam-Level: *
X-Spam-Status: No, score=1.58 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nNSDx5KNYtG1 for <cellar@ietfa.amsl.com>; Sat, 23 Jan 2016 11:36:57 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 85DB81ACE86 for <cellar@ietf.org>; Sat, 23 Jan 2016 11:36:57 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:35485 helo=[10.0.1.4]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aN3zS-002BCQ-6Q for cellar@ietf.org; Sat, 23 Jan 2016 14:36:56 -0500
From: Dave Rice <dave@dericed.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_67128CD2-918B-43AC-A247-2787E46F0E56"
Message-Id: <C3D3D5E7-746E-40FE-93E8-97E882E0763F@dericed.com>
Date: Sat, 23 Jan 2016 14:36:51 -0500
To: cellar@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/1TR1RXo9FfsxOq6K9XdoQyxQquU>
Subject: [Cellar] EBML Introduction section
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jan 2016 19:36:59 -0000

--Apple-Mail=_67128CD2-918B-43AC-A247-2787E46F0E56
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Each RFC must include an Introduction section to follow the TOC. There =
is some detail about the requirements here: =
https://tools.ietf.org/html/rfc7322#section-4.8.1 =
<https://tools.ietf.org/html/rfc7322#section-4.8.1> and last year there =
was some initial discussion about this in a github issue: =
https://github.com/Matroska-Org/ebml-specification/issues/5 =
<https://github.com/Matroska-Org/ebml-specification/issues/5>.

I used the existing EBML Principle =
<https://github.com/Matroska-Org/ebml-specification/blob/master/specificat=
ion.markdown#ebml-principle> section, Moritz's comments =
<https://github.com/Matroska-Org/ebml-specification/issues/5#issuecomment-=
99932625>, and my own text to create an introduction section. Comments?

## Introduction

EBML is short for Extensible Binary Meta Language. EBML specifies a =
binary and octet (byte) aligned format inspired by the principle of XML. =
EBML itself is a generalized description of the technique of binary =
markup. Like XML, it is completely agnostic to any data that it might =
contain. The format is made of 2 parts: the semantic and the structural. =
The structural part defines how EBML elements may be defined, arranged, =
and implemented. The semantic part specifies a number of Elements along =
with their identifier, name, type, and definition. Just like XML, the =
specific "tags" (IDs in EBML parlance) used in an EBML implementation =
are arbitrary. However, the semantic of EBML outlines general data types =
and ID's.

The goal of the EBML Specification is to define a generic, binary, =
space-efficient format which may be utilized to define more complex =
formats (such a containers for multimedia content) using an EBML Schema. =
The definition of the EBML format recognizes the idea behind HTML and =
XML as a good one: separate structure and semantics allowing the same =
structural layer to be used with multiple, possibly widely differing =
semantic layers. Except for the EBML Header and a few global elements =
this specification does not define particular EBML format semantics; =
however this specification is intended to define how other EBML-based =
formats may be defined.

EBML uses a simple approach of building Elements upon three pieces of =
data (tag, length, and value) as this approach is well-known, easy to =
parse, and allows selective data parsing. The EBML structure =
additionally allows for hierarchical arrangement to support complex =
structural formats in an efficient manner.

Dave Rice=

--Apple-Mail=_67128CD2-918B-43AC-A247-2787E46F0E56
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Each RFC must include an Introduction section to follow the =
TOC. There is some detail about the requirements here:&nbsp;<a =
href=3D"https://tools.ietf.org/html/rfc7322#section-4.8.1" =
class=3D"">https://tools.ietf.org/html/rfc7322#section-4.8.1</a>&nbsp;and =
last year there was some initial discussion about this in a github =
issue:&nbsp;<a =
href=3D"https://github.com/Matroska-Org/ebml-specification/issues/5" =
class=3D"">https://github.com/Matroska-Org/ebml-specification/issues/5</a>=
.<div class=3D""><br class=3D""></div><div class=3D"">I used the =
existing&nbsp;<a =
href=3D"https://github.com/Matroska-Org/ebml-specification/blob/master/spe=
cification.markdown#ebml-principle" class=3D"">EBML =
Principle</a>&nbsp;section, Moritz's&nbsp;<a =
href=3D"https://github.com/Matroska-Org/ebml-specification/issues/5#issuec=
omment-99932625" class=3D"">comments</a>, and my own text to create an =
introduction section. Comments?</div><div class=3D""><br =
class=3D""></div><div class=3D""><div class=3D"">## =
Introduction</div><div class=3D""><br class=3D""></div><div =
class=3D"">EBML is short for Extensible Binary Meta Language. EBML =
specifies a binary and octet (byte) aligned format inspired by the =
principle of XML. EBML itself is a generalized description of the =
technique of binary markup. Like XML, it is completely agnostic to any =
data that it might contain. The format is made of 2 parts: the semantic =
and the structural. The structural part defines how EBML elements may be =
defined, arranged, and implemented. The semantic part specifies a number =
of Elements along with their identifier, name, type, and definition. =
Just like XML, the specific "tags" (IDs in EBML parlance) used in an =
EBML implementation are arbitrary. However, the semantic of EBML =
outlines general data types and ID's.</div><div class=3D""><br =
class=3D""></div><div class=3D"">The goal of the EBML Specification is =
to define a generic, binary, space-efficient format which may be =
utilized to define more complex formats (such a containers for =
multimedia content) using an EBML Schema. The definition of the EBML =
format recognizes the idea behind HTML and XML as a good one: separate =
structure and semantics allowing the same structural layer to be used =
with multiple, possibly widely differing semantic layers. Except for the =
EBML Header and a few global elements this specification does not define =
particular EBML format semantics; however this specification is intended =
to define how other EBML-based formats may be defined.</div><div =
class=3D""><br class=3D""></div><div class=3D"">EBML uses a simple =
approach of building Elements upon three pieces of data (tag, length, =
and value) as this approach is well-known, easy to parse, and allows =
selective data parsing. The EBML structure additionally allows for =
hierarchical arrangement to support complex structural formats in an =
efficient manner.</div></div><div class=3D""><br class=3D""></div><div =
class=3D"">Dave Rice</div></body></html>=

--Apple-Mail=_67128CD2-918B-43AC-A247-2787E46F0E56--


From nobody Sat Jan 23 11:50:15 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3D4DB1ACEC0 for <cellar@ietfa.amsl.com>; Sat, 23 Jan 2016 11:50:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.416
X-Spam-Level: ***
X-Spam-Status: No, score=3.416 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, MANY_SPAN_IN_TEXT=1.836, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6yFgfJ0QAB9J for <cellar@ietfa.amsl.com>; Sat, 23 Jan 2016 11:50:07 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B0001ACEAE for <cellar@ietf.org>; Sat, 23 Jan 2016 11:50:07 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:42305 helo=[10.0.1.4]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aN4C3-002LQO-Dn; Sat, 23 Jan 2016 14:50:06 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_05F5FD23-BA86-47FC-99A9-A8E598E9A267"
Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\))
From: Dave Rice <dave@dericed.com>
In-Reply-To: <CAOXsMF+riDbu-v_g_9GrE2FXC40agpnrXDc9jagdMthTKQA2tw@mail.gmail.com>
Date: Sat, 23 Jan 2016 14:49:53 -0500
Message-Id: <DDD915AE-0771-4D50-8837-C072761D91CC@dericed.com>
References: <21E28D45-E45F-4CBE-AC3D-6E41DCE172B9@dericed.com> <20150828065002.GH3813@bunkus.org> <CE3611BE-40C3-4A3C-A477-FE62145764E6@dericed.com> <CAOXsMFJuJkVh+hBeOsnaeXmVUhBTP9UxL0zRaeaLCkU3oTm7oA@mail.gmail.com> <5606B89B-FCF0-4C75-BAB8-FB1E212F8D82@dericed.com> <5EDBE9D2-3E2F-4865-ACF9-497706E0CA07@dericed.com> <87110F5D-3199-4CF5-887E-D5B8C7A08C6C@dericed.com> <CAOXsMFKmH_o_bE8+qMqVB0f2Ri4ZZ2Sq9UwAH+MzaKCO66DvFQ@mail.gmail.com> <E033A534-557F-430A-B3E4-D4C20E04C471@dericed.com> <CAOXsMF+riDbu-v_g_9GrE2FXC40agpnrXDc9jagdMthTKQA2tw@mail.gmail.com>
To: cellar@ietf.org
X-Mailer: Apple Mail (2.1990.1)
X-OutGoing-Spam-Status: No, score=1.1
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/01h8mBJdam4c_F3JED-dNMkvQqI>
Cc: Steve Lhomme <slhomme@matroska.org>
Subject: Re: [Cellar] EBML Schema
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jan 2016 19:50:14 -0000

--Apple-Mail=_05F5FD23-BA86-47FC-99A9-A8E598E9A267
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Jan 17, 2016, at 8:05 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>=20
> 2016-01-15 16:35 GMT+01:00 Dave Rice <dave@dericed.com>:
>>=20
>>> On Jan 15, 2016, at 7:44 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>=20
>>> 2016-01-15 7:27 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>>=20
>>>> On Dec 1, 2015, at 10:40 AM, Dave Rice <dave@dericed.com> wrote:
>>>>=20
>>>> On Nov 9, 2015, at 1:19 PM, Dave Rice <dave@dericed.com> wrote:
>>>>=20
>>>> On Oct 3, 2015, at 9:46 AM, Steve Lhomme <slhomme@matroska.org> =
wrote:
>>>>=20
>>>> On Aug 28, 2015 17:00, "Dave Rice" <dave@dericed.com> wrote:
>>>>=20
>>>>>> On Aug 28, 2015, at 2:50 AM, Moritz Bunkus <moritz@bunkus.org> =
wrote:
>>>>>>=20
>>>>>> Hey,
>>>>>>=20
>>>>>> I have no objections, however I don't know a lot about XML =
schemas in
>>>>>> the first place (neither about DTDs, to be honest).
>>>>>=20
>>>>>=20
>>>>> Honestly, I know a lot more about XML Schemas than I do about =
DTDs. As
>>>>> wikipedia mentions at
>>>>> https://en.wikipedia.org/wiki/Document_type_definition, DTDs have =
largely
>>>>> been superseded by XML Schemas. And at this point I think that XML =
Schemas
>>>>> may be a more familiar analogy to use.
>>>>>=20
>>>>> I think XML Schemas also share more in common with specdata.xml =
than DTDs
>>>>> do. Schemas use the <element> node and have maxOccurs and =
minOccurs
>>>>> attributes (specdata has semantically the same thing with =
mandatory and
>>>>> multiple), they both have a similar declaration of element type, =
element
>>>>> name and element description. Actually I think a semantically =
equivalent
>>>>> version of specdata.xml could be written as an XML Schema.
>>>>>=20
>>>>> XML Schemas also offer a few advantages for machine readable =
expressions;
>>>>> for instance XML Schemas can mandate a particular pattern or regex =
for a
>>>>> value.
>>>>>=20
>>>>>>> I propose the specdata.xml file here
>>>>>>>=20
>>>>>>> =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml
>>>>>>>=20
>>>>>>> =
<https://github.com/Matroska-Org/foundation-source/blob/master/spectool/sp=
ecdata.xml>
>>>>>>> is a good basis for the consideration of an EBML Schema. =46rom =
what I
>>>>>>> can see, specdata.xml is an expression of the EBML + Matroska
>>>>>>> specifications to support automated creation of documentation, =
but the
>>>>>>> structure of this already shares a lot of similarity to XML =
Schemas.
>>>>>>=20
>>>>>>=20
>>>>>> For both documentation (e.g. the table on the matroska.org specs =
page is
>>>>>> generated from this file) and code (libMatroska's class hierarchy =
is
>>>>>> generated automatically from this file) actually.
>>>>>=20
>>>>>=20
>>>>> Does specdata.xml play a role in mkvalidate? I'm thinking of the =
potential
>>>>> to have an ebmlvalidator where you can provide the EBML Schema to =
validate
>>>>> particular EBML docType.
>>>>=20
>>>> Well the parsing code is generated from the XML file, so in a way, =
yes. But
>>>> it's not parsed "live".
>>>>=20
>>>>>>> Is there a preference in handling the standardization of =
Matroska:
>>>>>>> documenting it in a similar fashion to our work in the EBML spec =
or to
>>>>>>> define what an EBML Schema is and consider matroska an =
expression of
>>>>>>> it?
>>>>>>=20
>>>>>>=20
>>>>>> I'm not sure whether or not I understand the implications. But my =
gut
>>>>>> feeling is that having a definition for an EBML Schema would =
benefit
>>>>>> other formats than Matroska, too, therefore the latter seems the =
way to
>>>>>> go.
>>>>>=20
>>>>>=20
>>>>> I have the same feeling:
>>>>> - document EBML as a specification that includes rules for =
defining a
>>>>> docType in the form of an EBML Schema
>>>>> - write an EBML Schema (updated specdata.xml) for Matroska and =
maybe webM
>>>>>=20
>>>>>>> Are some changes to specdata.xml acceptable? Such as a filename =
change
>>>>>>> or changing the name of the <table> element of some attributes?
>>>>>>=20
>>>>>>=20
>>>>>> Well, like I said above the specdata.xml is used for generating =
both
>>>>>> documentation and code. Both should stay viable. If changes to it =
are
>>>>>> made then the accompanying tools must be updated as well.
>>>>>>=20
>>>>>>> Neither the current EBML specs nor the specdata.xml specifically =
refer
>>>>>>> to the hierarchical arrangement of the elements, but this could =
be
>>>>>>> presumed by their ordering. For instance, could any level 3 =
element be
>>>>>>> a child of any level 2 Master-element? I presume not, but I =
don't
>>>>>>> think it's clear anywhere what parent-child relationships are
>>>>>>> feasible. Possibly specdata.xml and/or the EBML Schema =
Definition
>>>>>>> could define the relationship between levels of related elements
>>>>>>> similar to how an XML Schema (XSD) does.
>>>>>>=20
>>>>>>=20
>>>>>> So far it is understood that an element not marked as a global =
element
>>>>>> must only occur as a child of its parent. Its parent is the last =
element
>>>>>> located before the child element in the specdata file with a =
lower level
>>>>>> than the child element. Or something like that.
>>>>>=20
>>>>>=20
>>>>> This will need some documentation. That's how I've understood the =
mkv spec
>>>>> as well but the definition for how an EBML Schema works should be =
explicit
>>>>> about this.
>>>>=20
>>>> Any more opinion about how to go about (or if to go about) =
modifying
>>>> specdata.xml towards becoming an expression of a to-be-defined EBML =
Schema
>>>> for matroska and webm? As a summary of proposed changes to =
specdata.xml
>>>>=20
>>>> - change to XML Schema conventions where relevant:
>>>> - use maxOccurs attribute instead of the current Multiple =
attribute.
>>>> - use minOccurs attribute instead of the current Mandatory =
attribute.
>>>> - move documentation of elements to a sub-element (allows for =
possible
>>>> internationalization in the schema and better semantics)
>>>> - arrange elements in hierarchical form to indicate parent-child
>>>> relationships (rather than the current practices where all elements =
are
>>>> defined at the same level, and you have to parse back in elements =
to the one
>>>> with the lower-numbered level attribute to find the parent)
>>>>=20
>>>> A draft of specdata.xml with these changes is at
>>>> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347. I can =
continue to work
>>>> on this and send back changes for advice/approval but if I do so is =
there
>>>> someone who could later update the tools that use specdata.xml so =
that
>>>> newly-defined EBML Schemas may later to be into use?
>>>>=20
>>>>=20
>>>> I=E2=80=99m preparing a pull request on specdata.xml but want to =
update the
>>>> utilities in spectool at the same time so that spec2data, data2lib, =
and
>>>> data2spec still function properly. I=E2=80=99m having trouble =
getting the spectool
>>>> utilities to build properly so that I can test them. I was able to =
build
>>>> coremake but not sure where to go from here. I=E2=80=99ve read =
spec2data and have an
>>>> idea of how it works and am thinking that I could reproduce the =
spec2data
>>>> workflow with xsl and then we could have a make file which uses =
xsltproc to
>>>> convert an EBML Schema into the Drupal table and library files as =
needed.
>>>> Any advice on which route to take: continue trying with getting =
spectool
>>>> utilities to build or redo the utilities in xsl?
>>>>=20
>>>>=20
>>>> I=E2=80=99d like to revive this thread to propose some changes in =
the definition of
>>>> the EBML Schema. The EBML Schema is intended to be a =
machine-readible
>>>> document that details the semantics and structure of an EBML =
Document Type.
>>>> The EBML Schema for a Document Type is essential for understanding =
the
>>>> semantics and validating an EBML Document. This proposal builds =
upon an
>>>> earlier conversation started last year on matroska-devel,
>>>> =
http://lists.matroska.org/pipermail/matroska-devel/2015-August/004765.html=
,
>>>> =
http://lists.matroska.org/pipermail/matroska-devel/2015-October/004807.htm=
l.
>>>>=20
>>>> I=E2=80=99m open to other solutions or approaches, but since =
Matroska is based on
>>>> EBML which itself is becoming well-defined. I think there is =
utility in
>>>> documenting how to create a machine-readible document that =
describes an EBML
>>>> Document Type. I think the concept of the XML Schema and XML =
Document is
>>>> analogous to EBML Schema and EBML Document and that adopting from =
the XML
>>>> community for documenting form may be beneficial.
>>>>=20
>>>> Thus far we have this section
>>>> =
https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c6=
0294c1e7ea68f703e07e50/specification.markdown#ebml-schema
>>>> which introduces the concept for the EBML Schema and then provides =
a list of
>>>> attributes for defining Elements that make up a specific EBML =
Document Type
>>>> =
https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2adb6a22c6=
0294c1e7ea68f703e07e50/specification.markdown#ebml-schema-element-attribut=
es.
>>>> This documentation currently reflects the specdata.xml file of the =
Matroska
>>>> foundation-source repo, which is here
>>>> =
https://github.com/Matroska-Org/foundation-source/blob/master/spectool/spe=
cdata.xml.
>>>> The specdata.xml file is used to create the HTML table of elements =
on
>>>> http://matroska.org/technical/specs/index.html and libraries used =
by
>>>> mkvalidate and other files. After drafting the EBML Schema and =
Attribute
>>>> documentation I found
>>>> http://matroska.org/technical/specs/notes.html#Table_Columns which =
covers
>>>> similar concepts.
>>>>=20
>>>> I=E2=80=99d like to propose the following changes to the definition =
of EBML Schema:
>>>>=20
>>>> - Replace <table> with <EBMLSchema>.
>>>>=20
>>>> The node <table> makes sense in the context of the HTML table on
>>>> matroska.org but if there will be greater machine-readible usage I =
think a
>>>> rename would clarify.
>>>>=20
>>>> - Add an XML NameSpace attribute to <EBMLSchema>.
>>>>=20
>>>> This would add something like
>>>> =
xmlns=3D=E2=80=9Chttp://official_url_of_EBML_Schema_definition.org/EBMLSch=
ema.xsd=E2=80=9D.
>>>> The EBMLSchema.xsd file would be an XML Schema that defines the =
EBMLSchema
>>>> document itself. Yes, this uses an XML Schema to define the EBML =
Schema, but
>>>> this gives a way to validate the EBML Schemas and docType =
definitions made
>>>> by others.
>>>>=20
>>>> - Add a =E2=80=9CdocType=E2=80=9D attribute to <EBMLSchema>
>>>>=20
>>>> This would clarify what the EBMLSchema is documenting, thus it =
would start
>>>> with <EBMLSchema docType=3D=E2=80=9Cmatroska=E2=80=9D>
>>>>=20
>>>> - Add =E2=80=9Cversion=E2=80=9D attribute to <EBMLSchema>
>>>>=20
>>>> This would note the highest version number of the docType =
officially
>>>> documented by the EBML Schema, so the EBML Schema would be inferred =
to
>>>> document the noted docType from version 0 up to the version value =
listed
>>>> here.
>>>=20
>>> Maybe we need something to say it's the final version or a draft.
>>=20
>> With XML Schemas this is done by having an entirely separate document =
per version. We could have separate files such as:
>>=20
>> matroska_v1.xml
>> matroska_v2.xml
>> matroska_v3.xml
>> matroska_v4.xml
>> matroska_v5RC.xml
>> webm_v1.xml
>>=20
>> Or we could add an attribute called something like "unofficial" so =
that we may have an EBML Schema with non-standardized elements for =
testing.
>>=20
>> Any preference at which tactic? An advantage of having versioned EBML =
Schemas (one doc per version) is that the deprecated elements are simply =
removed rather than an eternal lingering presence. It may accept =
complexity in use though since you'd have to use the proper schema that =
matches both the docType and docTypeVersion.
>=20
> That makes omission by mistake a possibility, involves more proof
> reading and it becomes harder to know which elements changed between
> what versions. It's also harder to process to generate code. Also
> should the documentation we currently have be duplicated on each
> document ? I'd rather keep a single document.
>=20
>>>> - Rename =E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D =
and rename =E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D
>>>=20
>>> That may be odd when we add "repeatable" elements that must be =
maxOccurs =3D 1.
>>=20
>> With maxOccurs it is usually set via numbers, however 'unbounded' is =
an accepted maxOccurs value to say that the element may repeat for an =
infinite amount of times. In addition to "unbounded" we could also add a =
value "identical" which would mean the same as "unbounded" with the =
added constraint that every copy be identical.
>=20
> That sounds good, yes.
>=20
>>>> This is to match the meaning of minOccurs and maxOccurs in XML =
Schema,
>>>> https://www.w3.org/TR/xmlschema-0/#ref6.
>>>> mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C0"
>>>> mandatory=3D=E2=80=9C1=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C1=E2=80=9D
>>>> no mandatory attribute would be equivalent of no minOccurs =
attribute which
>>>> is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as is true with =
minOccurs within an XML
>>>> Schema)
>>>>=20
>>>> multiple=3D=E2=80=9C0=E2=80=9D would be equivalent to maxOccurs =
=3D=E2=80=9C1"
>>>> multiple =3D=E2=80=9C1=E2=80=9D would be equivalent to maxOccurs =
=3D=E2=80=9Cunbounded=E2=80=9D
>>>> no multiple attribute would be equivalent of no maxOccurs attribute =
which is
>>>> equivalent to maxOccurs =3D=E2=80=9C1=E2=80=9D (as is true with =
maxOccurs within an XML
>>>> Schema)
>>>>=20
>>>> Moving from mandatory/multiple to minOccurs/maxOccurs can be done =
with no
>>>> semantic differences, but we=E2=80=99d have to advantage of =
allowing for constraints
>>>> to the number of usage that are not 0, 1, and infinite. For =
instance, I
>>>> understand the logic to have 2 SeekHead Elements, but is there a =
scenario
>>>> for 3 or more SeekHeads at the same Level within the same EBML =
Document?
>>>=20
>>> Limiting the amount of redirection might be a good thing indeed.
>>=20
>> Are there other elements currently listed as multiple=3D"1" where =
they are intended for use greater than 1 and less than unbounded. =
SeekHead was the only one coming to mind.
>=20
> Not from the top of my mind.
>=20
>>>> - Store <element> nodes hierarchically rather than all at the same =
level.
>>>>=20
>>>> Currently with in the specdata.xml file it is difficult to =
ascertain the
>>>> parent of a given element. It can be done by seeking to the =
previous element
>>>> where the level of the element is one value lower, but there are =
exceptions
>>>> for global elements. I suggest that a structure of
>>>> <element>
>>>> <element>...</element>
>>>> <element>...</element>
>>>> </element>
>>>> is more clear than all elements at the same level. I made an =
example draft
>>>> of specdata.xml with nested implementing here:
>>>> https://gist.github.com/dericed/f0a4bb0e7dc635ed1347.
>>>>=20
>>>> I can provide a patch to the current EBML Schema and EBML Schema =
Attributes
>>>> as well as incorporate a sample EBML Schema into the specification, =
but
>>>> wanted to nudge for comments before proceeding.
>>>=20
>>> The current flat hierarchy is not good anyway. I will need a bit of
>>> time to update the spec tools accordingly. But the change is OK for
>>> me.
>>=20
>> Thanks. Should I cross-post this to webm lists?
>=20
> No idea if they use the document but it's worth a try.

Here are some changes made to the definition of EBML Schema. I placed =
them into a pull request in github, =
https://github.com/Matroska-Org/ebml-specification/pull/51/files =
<https://github.com/Matroska-Org/ebml-specification/pull/51/files>, and =
will summarize the changes here.

I removed the attributes for mandatory, multiple, and identical and =
replaced them with minOccurs and maxOccurs (see in context at =
https://github.com/MediaArea/ebml-specification/blob/ebml-schema-refactor/=
specification.markdown#ebml-schema-element-attributes =
<https://github.com/MediaArea/ebml-specification/blob/ebml-schema-refactor=
/specification.markdown#ebml-schema-element-attributes>)

minOccurs:
An integer to express the minimal number of occurrences that the EBML =
Element MUST occur within its Parent Element if its Parent Element is =
used. If the minOccurs attribute is not expressed for that Element then =
that Element shall be considered to have a minOccurs value of 0. This =
value of minOccurs MUST be a positive integer. The semantic meaning of =
minOccurs within an EBML Schema is considered analogous to the meaning =
of minOccurs within an [XML =
Schema](https://www.w3.org/TR/xmlschema-0/#ref6).

maxOccurs
A value to express the maximum number of occurrences that the EBML =
Element MUST occur within its Parent Element if its Parent Element is =
used. This value may be either a positive integer or the term =
`unbounded` to indicate there is no maximum number of occurrences or the =
term `identical` to indicate that the Element is an =
Identically-Recurring Element. If the maxOccurs attribute is not =
expressed for that Element then that Element shall be considered to have =
a maxOccurs value of 1. The semantic meaning of maxOccurs within an EBML =
Schema is considered analogous to the meaning of minOccurs within an =
[XML Schema](https://www.w3.org/TR/xmlschema-0/#ref6), with EBML Schema =
adding the concept of Identically-Recurring Elements.

I also added a section called "Identically-Recurring Elements" to define =
them since they are enabled by setting maxOccurs to "enabled". See in =
context at =
https://github.com/MediaArea/ebml-specification/blob/ebml-schema-refactor/=
specification.markdown#identically-recurring-elements =
<https://github.com/MediaArea/ebml-specification/blob/ebml-schema-refactor=
/specification.markdown#identically-recurring-elements>.

An Identically-Recurring Element is an Element that may occur within its =
Parent Element more than once but that each recurrence within that =
Parent Element MUST be identical both in storage and semantics. =
Identically-Recurring Elements are permitted to be stored multiple times =
within the same Parent Element in order to increase data resilience and =
optimize the use of EBML in transmission. Identically-Recurring Elements =
SHOULD include a CRC-32 Element as a Child Element; this is especially =
recommended when EBML is used for long-term storage or transmission. If =
a Parent Element contains more than one copy of an Identically-Recurring =
Element which includes a CRC-32 Child Element then the first instance of =
the Identically-Recurring Element with a valid CRC-32 value should be =
used for interpretation. If a Parent Element contains more than one copy =
of an Identically-Recurring Element which does not contain a CRC-32 =
Child Element or if CRC-32 Child Elements are present but none are valid =
then the first instance of the Identically-Recurring Element should be =
used for interpretation.


I also drafted a new section called "EBML Schema example" as a =
demonstration of an EBML Schema. This example EBML Schema is simply the =
EBML Header with some structure to store files (somewhat based on the =
Attachments Element of Matroska). The section can be seen in a GitHub =
branch here: =
https://github.com/MediaArea/ebml-specification/blob/ebml-schema-refactor/=
specification.markdown#ebml-schema-example =
<https://github.com/MediaArea/ebml-specification/blob/ebml-schema-refactor=
/specification.markdown#ebml-schema-example> or is pasted here. Compared =
to the existing implementation of specdata.xml, this uses hierarchical =
arrangement and the changes mentioned above.
<?xml version=3D"1.0" encoding=3D"utf-8"?>
<EBMLSchema docType=3D"files-in-ebml-demo">
  <element name=3D"EBML" level=3D"0" id=3D"0x1A45DFA3" type=3D"master" =
minOccurs=3D"1" maxOccurs=3D"1" minver=3D"1">
    <documentation lang=3D"en">Set the EBML characteristics of the data =
to follow. Each EBML Document has to start with this.</documentation>
    <element name=3D"EBMLVersion" level=3D"1" id=3D"0x4286" =
type=3D"uinteger" minOccurs=3D"1" default=3D"1" minver=3D"1">
      <documentation lang=3D"en">The version of EBML parser used to =
create the EBML Document.</documentation>
    </element>
    <element name=3D"EBMLReadVersion" level=3D"1" id=3D"0x42F7" =
type=3D"uinteger" minOccurs=3D"1" default=3D"1" minver=3D"1">
      <documentation lang=3D"en">The minimum EBML version a parser has =
to support to read this EBML Document.</documentation>
    </element>
    <element name=3D"EBMLMaxIDLength" level=3D"1" id=3D"0x42F2" =
type=3D"uinteger" minOccurs=3D"1" default=3D"4" minver=3D"1">
      <documentation lang=3D"en">The EBMLMaxIDLength is the maximum =
length in octets of the Element IDs to be found within the EBML Body. An =
EBMLMaxIDLength value of four is recommended, though larger values are =
allowed.</documentation>
    </element>
    <element name=3D"EBMLMaxSizeLength" level=3D"1" id=3D"0x42F3" =
type=3D"uinteger" minOccurs=3D"1" default=3D"8" minver=3D"1">
      <documentation lang=3D"en">The EBMLMaxSizeLength is the maximum =
length in octets of the expression of all Element Data Sizes to be found =
within the EBML Body. To be clear EBMLMaxSizeLength documents the =
maximum 'length' of all Element Data Size expressions within the EBML =
Body and not the maximum 'value' of all Element Data Size expressions =
within the EBML Body. Elements that have a Element Data Size expression =
which is larger in octets than what is expressed by EBMLMaxSizeLength =
SHALL be considered invalid.</documentation>
    </element>
    <element name=3D"DocType" level=3D"1" id=3D"0x4282" type=3D"string" =
minOccurs=3D"1" default=3D"matroska" minver=3D"1">
      <documentation lang=3D"en">A string that describes and identifies =
the content of the EBML Body that follows this EBML =
Header.</documentation>
    </element>
    <element name=3D"DocTypeVersion" level=3D"1" id=3D"0x4287" =
type=3D"uinteger" minOccurs=3D"1" default=3D"1" minver=3D"1">
      <documentation lang=3D"en">The version of DocType interpreter used =
to create the EBML Document.</documentation>
    </element>
    <element name=3D"DocTypeReadVersion" level=3D"1" id=3D"0x4285" =
type=3D"uinteger" minOccurs=3D"1" default=3D"1" minver=3D"1">
      <documentation lang=3D"en">The minimum DocType version an =
interpreter has to support to read this EBML Document.</documentation>
    </element>
  </element>
  <element name=3D"Void" global=3D"1" level=3D"0+" id=3D"0xEC" =
type=3D"binary" minver=3D"1">
    <documentation lang=3D"en">Used to void damaged data, to avoid =
unexpected behaviors when using damaged data. The content is discarded. =
Also used to reserve space in a sub-element for later =
use.</documentation>
  </element>
  <element name=3D"CRC-32" global=3D"1" level=3D"1+" id=3D"0xBF" =
type=3D"binary" minver=3D"1">
    <documentation lang=3D"en">The CRC is computed on all the data from =
the last CRC element (or start of the upper level element), up to the =
CRC element, including other previous CRC elements. All level 1 elements =
SHOULD include a CRC-32.</documentation>
  </element>
  <element name=3D"Files" level=3D"0" id=3D"0x1946696C" type=3D"master" =
minver=3D"1">
    <documentation lang=3D"en">Container of data and attributes =
representing one or many files.</documentation>
    <element name=3D"File" level=3D"1" id=3D"0x6146" type=3D"master" =
minOccurs=3D"1" maxOccurs=3D"unbounded" minver=3D"1">
      <documentation lang=3D"en">An attached file.</documentation>
      <element name=3D"FileName" level=3D"2" id=3D"0x614E" type=3D"utf-8" =
minOccurs=3D"1">
        <documentation lang=3D"en">Filename of the attached =
file.</documentation>
      </element>
      <element name=3D"MimeType" level=3D"2" id=3D"0x464D" type=3D"string"=
 minOccurs=3D"1">
        <documentation lang=3D"en">MIME type of the =
file.</documentation>
      </element>
      <element name=3D"ModificationTimestamp" level=3D"2" id=3D"0x4654" =
type=3D"date" minOccurs=3D"1">
        <documentation lang=3D"en">Modification timestamp of the =
file.</documentation>
      </element>
      <element name=3D"Data" level=3D"2" id=3D"0x4664" type=3D"binary" =
minOccurs=3D"1">
        <documentation lang=3D"en">The data of the file.</documentation>
      </element>
    </element>
  </element>
</EBMLSchema>

If this approach seems agreeable for defining machine-readable documents =
of EBML DocTypes then can next create versions of them according to =
Matroska and webm.

Best Regards,
Dave Rice=

--Apple-Mail=_05F5FD23-BA86-47FC-99A9-A8E598E9A267
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Jan 17, 2016, at 8:05 AM, Steve Lhomme &lt;<a =
href=3D"mailto:slhomme@matroska.org" =
class=3D"">slhomme@matroska.org</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D"">2016-01-15 16:35 =
GMT+01:00 Dave Rice &lt;<a href=3D"mailto:dave@dericed.com" =
class=3D"">dave@dericed.com</a>&gt;:<br class=3D""><blockquote =
type=3D"cite" class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D"">On Jan 15, 2016, at 7:44 AM, Steve Lhomme &lt;<a =
href=3D"mailto:slhomme@matroska.org" =
class=3D"">slhomme@matroska.org</a>&gt; wrote:<br class=3D""><br =
class=3D"">2016-01-15 7:27 GMT+01:00 Dave Rice &lt;<a =
href=3D"mailto:dave@dericed.com" class=3D"">dave@dericed.com</a>&gt;:<br =
class=3D""><blockquote type=3D"cite" class=3D""><br class=3D"">On Dec 1, =
2015, at 10:40 AM, Dave Rice &lt;<a href=3D"mailto:dave@dericed.com" =
class=3D"">dave@dericed.com</a>&gt; wrote:<br class=3D""><br class=3D"">On=
 Nov 9, 2015, at 1:19 PM, Dave Rice &lt;<a =
href=3D"mailto:dave@dericed.com" class=3D"">dave@dericed.com</a>&gt; =
wrote:<br class=3D""><br class=3D"">On Oct 3, 2015, at 9:46 AM, Steve =
Lhomme &lt;<a href=3D"mailto:slhomme@matroska.org" =
class=3D"">slhomme@matroska.org</a>&gt; wrote:<br class=3D""><br =
class=3D"">On Aug 28, 2015 17:00, "Dave Rice" &lt;<a =
href=3D"mailto:dave@dericed.com" class=3D"">dave@dericed.com</a>&gt; =
wrote:<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D""><blockquote type=3D"cite" class=3D"">On Aug 28, 2015, at 2:50 =
AM, Moritz Bunkus &lt;<a href=3D"mailto:moritz@bunkus.org" =
class=3D"">moritz@bunkus.org</a>&gt; wrote:<br class=3D""><br =
class=3D"">Hey,<br class=3D""><br class=3D"">I have no objections, =
however I don't know a lot about XML schemas in<br class=3D"">the first =
place (neither about DTDs, to be honest).<br class=3D""></blockquote><br =
class=3D""><br class=3D"">Honestly, I know a lot more about XML Schemas =
than I do about DTDs. As<br class=3D"">wikipedia mentions at<br =
class=3D""><a =
href=3D"https://en.wikipedia.org/wiki/Document_type_definition" =
class=3D"">https://en.wikipedia.org/wiki/Document_type_definition</a>, =
DTDs have largely<br class=3D"">been superseded by XML Schemas. And at =
this point I think that XML Schemas<br class=3D"">may be a more familiar =
analogy to use.<br class=3D""><br class=3D"">I think XML Schemas also =
share more in common with specdata.xml than DTDs<br class=3D"">do. =
Schemas use the &lt;element&gt; node and have maxOccurs and minOccurs<br =
class=3D"">attributes (specdata has semantically the same thing with =
mandatory and<br class=3D"">multiple), they both have a similar =
declaration of element type, element<br class=3D"">name and element =
description. Actually I think a semantically equivalent<br =
class=3D"">version of specdata.xml could be written as an XML Schema.<br =
class=3D""><br class=3D"">XML Schemas also offer a few advantages for =
machine readable expressions;<br class=3D"">for instance XML Schemas can =
mandate a particular pattern or regex for a<br class=3D"">value.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D""><blockquote=
 type=3D"cite" class=3D"">I propose the specdata.xml file here<br =
class=3D""><br class=3D""><a =
href=3D"https://github.com/Matroska-Org/foundation-source/blob/master/spec=
tool/specdata.xml" =
class=3D"">https://github.com/Matroska-Org/foundation-source/blob/master/s=
pectool/specdata.xml</a><br class=3D""><br =
class=3D"">&lt;https://github.com/Matroska-Org/foundation-source/blob/mast=
er/spectool/specdata.xml&gt;<br class=3D"">is a good basis for the =
consideration of an EBML Schema. =46rom what I<br class=3D"">can see, =
specdata.xml is an expression of the EBML + Matroska<br =
class=3D"">specifications to support automated creation of =
documentation, but the<br class=3D"">structure of this already shares a =
lot of similarity to XML Schemas.<br class=3D""></blockquote><br =
class=3D""><br class=3D"">For both documentation (e.g. the table on the =
<a href=3D"http://matroska.org" class=3D"">matroska.org</a> specs page =
is<br class=3D"">generated from this file) and code (libMatroska's class =
hierarchy is<br class=3D"">generated automatically from this file) =
actually.<br class=3D""></blockquote><br class=3D""><br class=3D"">Does =
specdata.xml play a role in mkvalidate? I'm thinking of the potential<br =
class=3D"">to have an ebmlvalidator where you can provide the EBML =
Schema to validate<br class=3D"">particular EBML docType.<br =
class=3D""></blockquote><br class=3D"">Well the parsing code is =
generated from the XML file, so in a way, yes. But<br class=3D"">it's =
not parsed "live".<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D""><blockquote type=3D"cite" class=3D""><blockquote type=3D"cite" =
class=3D"">Is there a preference in handling the standardization of =
Matroska:<br class=3D"">documenting it in a similar fashion to our work =
in the EBML spec or to<br class=3D"">define what an EBML Schema is and =
consider matroska an expression of<br class=3D"">it?<br =
class=3D""></blockquote><br class=3D""><br class=3D"">I'm not sure =
whether or not I understand the implications. But my gut<br =
class=3D"">feeling is that having a definition for an EBML Schema would =
benefit<br class=3D"">other formats than Matroska, too, therefore the =
latter seems the way to<br class=3D"">go.<br class=3D""></blockquote><br =
class=3D""><br class=3D"">I have the same feeling:<br class=3D"">- =
document EBML as a specification that includes rules for defining a<br =
class=3D"">docType in the form of an EBML Schema<br class=3D"">- write =
an EBML Schema (updated specdata.xml) for Matroska and maybe webM<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D""><blockquote=
 type=3D"cite" class=3D"">Are some changes to specdata.xml acceptable? =
Such as a filename change<br class=3D"">or changing the name of the =
&lt;table&gt; element of some attributes?<br class=3D""></blockquote><br =
class=3D""><br class=3D"">Well, like I said above the specdata.xml is =
used for generating both<br class=3D"">documentation and code. Both =
should stay viable. If changes to it are<br class=3D"">made then the =
accompanying tools must be updated as well.<br class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D"">Neither the current EBML =
specs nor the specdata.xml specifically refer<br class=3D"">to the =
hierarchical arrangement of the elements, but this could be<br =
class=3D"">presumed by their ordering. For instance, could any level 3 =
element be<br class=3D"">a child of any level 2 Master-element? I =
presume not, but I don't<br class=3D"">think it's clear anywhere what =
parent-child relationships are<br class=3D"">feasible. Possibly =
specdata.xml and/or the EBML Schema Definition<br class=3D"">could =
define the relationship between levels of related elements<br =
class=3D"">similar to how an XML Schema (XSD) does.<br =
class=3D""></blockquote><br class=3D""><br class=3D"">So far it is =
understood that an element not marked as a global element<br =
class=3D"">must only occur as a child of its parent. Its parent is the =
last element<br class=3D"">located before the child element in the =
specdata file with a lower level<br class=3D"">than the child element. =
Or something like that.<br class=3D""></blockquote><br class=3D""><br =
class=3D"">This will need some documentation. That's how I've understood =
the mkv spec<br class=3D"">as well but the definition for how an EBML =
Schema works should be explicit<br class=3D"">about this.<br =
class=3D""></blockquote><br class=3D"">Any more opinion about how to go =
about (or if to go about) modifying<br class=3D"">specdata.xml towards =
becoming an expression of a to-be-defined EBML Schema<br class=3D"">for =
matroska and webm? As a summary of proposed changes to specdata.xml<br =
class=3D""><br class=3D"">- change to XML Schema conventions where =
relevant:<br class=3D"">- use maxOccurs attribute instead of the current =
Multiple attribute.<br class=3D"">- use minOccurs attribute instead of =
the current Mandatory attribute.<br class=3D"">- move documentation of =
elements to a sub-element (allows for possible<br =
class=3D"">internationalization in the schema and better semantics)<br =
class=3D"">- arrange elements in hierarchical form to indicate =
parent-child<br class=3D"">relationships (rather than the current =
practices where all elements are<br class=3D"">defined at the same =
level, and you have to parse back in elements to the one<br =
class=3D"">with the lower-numbered level attribute to find the =
parent)<br class=3D""><br class=3D"">A draft of specdata.xml with these =
changes is at<br class=3D""><a =
href=3D"https://gist.github.com/dericed/f0a4bb0e7dc635ed1347" =
class=3D"">https://gist.github.com/dericed/f0a4bb0e7dc635ed1347</a>. I =
can continue to work<br class=3D"">on this and send back changes for =
advice/approval but if I do so is there<br class=3D"">someone who could =
later update the tools that use specdata.xml so that<br =
class=3D"">newly-defined EBML Schemas may later to be into use?<br =
class=3D""><br class=3D""><br class=3D"">I=E2=80=99m preparing a pull =
request on specdata.xml but want to update the<br class=3D"">utilities =
in spectool at the same time so that spec2data, data2lib, and<br =
class=3D"">data2spec still function properly. I=E2=80=99m having trouble =
getting the spectool<br class=3D"">utilities to build properly so that I =
can test them. I was able to build<br class=3D"">coremake but not sure =
where to go from here. I=E2=80=99ve read spec2data and have an<br =
class=3D"">idea of how it works and am thinking that I could reproduce =
the spec2data<br class=3D"">workflow with xsl and then we could have a =
make file which uses xsltproc to<br class=3D"">convert an EBML Schema =
into the Drupal table and library files as needed.<br class=3D"">Any =
advice on which route to take: continue trying with getting spectool<br =
class=3D"">utilities to build or redo the utilities in xsl?<br =
class=3D""><br class=3D""><br class=3D"">I=E2=80=99d like to revive this =
thread to propose some changes in the definition of<br class=3D"">the =
EBML Schema. The EBML Schema is intended to be a machine-readible<br =
class=3D"">document that details the semantics and structure of an EBML =
Document Type.<br class=3D"">The EBML Schema for a Document Type is =
essential for understanding the<br class=3D"">semantics and validating =
an EBML Document. This proposal builds upon an<br class=3D"">earlier =
conversation started last year on matroska-devel,<br class=3D""><a =
href=3D"http://lists.matroska.org/pipermail/matroska-devel/2015-August/004=
765.html" =
class=3D"">http://lists.matroska.org/pipermail/matroska-devel/2015-August/=
004765.html</a>,<br class=3D""><a =
href=3D"http://lists.matroska.org/pipermail/matroska-devel/2015-October/00=
4807.html" =
class=3D"">http://lists.matroska.org/pipermail/matroska-devel/2015-October=
/004807.html</a>.<br class=3D""><br class=3D"">I=E2=80=99m open to other =
solutions or approaches, but since Matroska is based on<br class=3D"">EBML=
 which itself is becoming well-defined. I think there is utility in<br =
class=3D"">documenting how to create a machine-readible document that =
describes an EBML<br class=3D"">Document Type. I think the concept of =
the XML Schema and XML Document is<br class=3D"">analogous to EBML =
Schema and EBML Document and that adopting from the XML<br =
class=3D"">community for documenting form may be beneficial.<br =
class=3D""><br class=3D"">Thus far we have this section<br class=3D""><a =
href=3D"https://github.com/Matroska-Org/ebml-specification/blob/3b30502d2a=
db6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema" =
class=3D"">https://github.com/Matroska-Org/ebml-specification/blob/3b30502=
d2adb6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema</a><b=
r class=3D"">which introduces the concept for the EBML Schema and then =
provides a list of<br class=3D"">attributes for defining Elements that =
make up a specific EBML Document Type<br =
class=3D"">https://github.com/Matroska-Org/ebml-specification/blob/3b30502=
d2adb6a22c60294c1e7ea68f703e07e50/specification.markdown#ebml-schema-eleme=
nt-attributes.<br class=3D"">This documentation currently reflects the =
specdata.xml file of the Matroska<br class=3D"">foundation-source repo, =
which is here<br =
class=3D"">https://github.com/Matroska-Org/foundation-source/blob/master/s=
pectool/specdata.xml.<br class=3D"">The specdata.xml file is used to =
create the HTML table of elements on<br =
class=3D"">http://matroska.org/technical/specs/index.html and libraries =
used by<br class=3D"">mkvalidate and other files. After drafting the =
EBML Schema and Attribute<br class=3D"">documentation I found<br =
class=3D"">http://matroska.org/technical/specs/notes.html#Table_Columns =
which covers<br class=3D"">similar concepts.<br class=3D""><br =
class=3D"">I=E2=80=99d like to propose the following changes to the =
definition of EBML Schema:<br class=3D""><br class=3D"">- Replace =
&lt;table&gt; with &lt;EBMLSchema&gt;.<br class=3D""><br class=3D"">The =
node &lt;table&gt; makes sense in the context of the HTML table on<br =
class=3D"">matroska.org but if there will be greater machine-readible =
usage I think a<br class=3D"">rename would clarify.<br class=3D""><br =
class=3D"">- Add an XML NameSpace attribute to &lt;EBMLSchema&gt;.<br =
class=3D""><br class=3D"">This would add something like<br =
class=3D"">xmlns=3D=E2=80=9Chttp://official_url_of_EBML_Schema_definition.=
org/EBMLSchema.xsd=E2=80=9D.<br class=3D"">The EBMLSchema.xsd file would =
be an XML Schema that defines the EBMLSchema<br class=3D"">document =
itself. Yes, this uses an XML Schema to define the EBML Schema, but<br =
class=3D"">this gives a way to validate the EBML Schemas and docType =
definitions made<br class=3D"">by others.<br class=3D""><br class=3D"">- =
Add a =E2=80=9CdocType=E2=80=9D attribute to &lt;EBMLSchema&gt;<br =
class=3D""><br class=3D"">This would clarify what the EBMLSchema is =
documenting, thus it would start<br class=3D"">with &lt;EBMLSchema =
docType=3D=E2=80=9Cmatroska=E2=80=9D&gt;<br class=3D""><br class=3D"">- =
Add =E2=80=9Cversion=E2=80=9D attribute to &lt;EBMLSchema&gt;<br =
class=3D""><br class=3D"">This would note the highest version number of =
the docType officially<br class=3D"">documented by the EBML Schema, so =
the EBML Schema would be inferred to<br class=3D"">document the noted =
docType from version 0 up to the version value listed<br =
class=3D"">here.<br class=3D""></blockquote><br class=3D"">Maybe we need =
something to say it's the final version or a draft.<br =
class=3D""></blockquote><br class=3D"">With XML Schemas this is done by =
having an entirely separate document per version. We could have separate =
files such as:<br class=3D""><br class=3D"">matroska_v1.xml<br =
class=3D"">matroska_v2.xml<br class=3D"">matroska_v3.xml<br =
class=3D"">matroska_v4.xml<br class=3D"">matroska_v5RC.xml<br =
class=3D"">webm_v1.xml<br class=3D""><br class=3D"">Or we could add an =
attribute called something like "unofficial" so that we may have an EBML =
Schema with non-standardized elements for testing.<br class=3D""><br =
class=3D"">Any preference at which tactic? An advantage of having =
versioned EBML Schemas (one doc per version) is that the deprecated =
elements are simply removed rather than an eternal lingering presence. =
It may accept complexity in use though since you'd have to use the =
proper schema that matches both the docType and docTypeVersion.<br =
class=3D""></blockquote><br class=3D"">That makes omission by mistake a =
possibility, involves more proof<br class=3D"">reading and it becomes =
harder to know which elements changed between<br class=3D"">what =
versions. It's also harder to process to generate code. Also<br =
class=3D"">should the documentation we currently have be duplicated on =
each<br class=3D"">document ? I'd rather keep a single document.<br =
class=3D""><br class=3D""><blockquote type=3D"cite" class=3D""><blockquote=
 type=3D"cite" class=3D""><blockquote type=3D"cite" class=3D"">- Rename =
=E2=80=9Cmandatory=E2=80=9D as =E2=80=9CminOccurs=E2=80=9D and rename =
=E2=80=9Cmultiple=E2=80=9D as =E2=80=9CmaxOccurs=E2=80=9D<br =
class=3D""></blockquote><br class=3D"">That may be odd when we add =
"repeatable" elements that must be maxOccurs =3D 1.<br =
class=3D""></blockquote><br class=3D"">With maxOccurs it is usually set =
via numbers, however 'unbounded' is an accepted maxOccurs value to say =
that the element may repeat for an infinite amount of times. In addition =
to "unbounded" we could also add a value "identical" which would mean =
the same as "unbounded" with the added constraint that every copy be =
identical.<br class=3D""></blockquote><br class=3D"">That sounds good, =
yes.<br class=3D""><br class=3D""><blockquote type=3D"cite" =
class=3D""><blockquote type=3D"cite" class=3D""><blockquote type=3D"cite" =
class=3D"">This is to match the meaning of minOccurs and maxOccurs in =
XML Schema,<br class=3D""><a =
href=3D"https://www.w3.org/TR/xmlschema-0/#ref6" =
class=3D"">https://www.w3.org/TR/xmlschema-0/#ref6</a>.<br =
class=3D"">mandatory=3D=E2=80=9C0=E2=80=9D would be equivalent to =
minOccurs=3D=E2=80=9C0"<br class=3D"">mandatory=3D=E2=80=9C1=E2=80=9D =
would be equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D<br class=3D"">no =
mandatory attribute would be equivalent of no minOccurs attribute =
which<br class=3D"">is equivalent to minOccurs=3D=E2=80=9C1=E2=80=9D (as =
is true with minOccurs within an XML<br class=3D"">Schema)<br =
class=3D""><br class=3D"">multiple=3D=E2=80=9C0=E2=80=9D would be =
equivalent to maxOccurs =3D=E2=80=9C1"<br class=3D"">multiple =3D=E2=80=9C=
1=E2=80=9D would be equivalent to maxOccurs =3D=E2=80=9Cunbounded=E2=80=9D=
<br class=3D"">no multiple attribute would be equivalent of no maxOccurs =
attribute which is<br class=3D"">equivalent to maxOccurs =3D=E2=80=9C1=E2=80=
=9D (as is true with maxOccurs within an XML<br class=3D"">Schema)<br =
class=3D""><br class=3D"">Moving from mandatory/multiple to =
minOccurs/maxOccurs can be done with no<br class=3D"">semantic =
differences, but we=E2=80=99d have to advantage of allowing for =
constraints<br class=3D"">to the number of usage that are not 0, 1, and =
infinite. For instance, I<br class=3D"">understand the logic to have 2 =
SeekHead Elements, but is there a scenario<br class=3D"">for 3 or more =
SeekHeads at the same Level within the same EBML Document?<br =
class=3D""></blockquote><br class=3D"">Limiting the amount of =
redirection might be a good thing indeed.<br class=3D""></blockquote><br =
class=3D"">Are there other elements currently listed as multiple=3D"1" =
where they are intended for use greater than 1 and less than unbounded. =
SeekHead was the only one coming to mind.<br class=3D""></blockquote><br =
class=3D"">Not from the top of my mind.<br class=3D""><br =
class=3D""><blockquote type=3D"cite" class=3D""><blockquote type=3D"cite" =
class=3D""><blockquote type=3D"cite" class=3D"">- Store &lt;element&gt; =
nodes hierarchically rather than all at the same level.<br class=3D""><br =
class=3D"">Currently with in the specdata.xml file it is difficult to =
ascertain the<br class=3D"">parent of a given element. It can be done by =
seeking to the previous element<br class=3D"">where the level of the =
element is one value lower, but there are exceptions<br class=3D"">for =
global elements. I suggest that a structure of<br =
class=3D"">&lt;element&gt;<br =
class=3D"">&lt;element&gt;...&lt;/element&gt;<br =
class=3D"">&lt;element&gt;...&lt;/element&gt;<br =
class=3D"">&lt;/element&gt;<br class=3D"">is more clear than all =
elements at the same level. I made an example draft<br class=3D"">of =
specdata.xml with nested implementing here:<br class=3D""><a =
href=3D"https://gist.github.com/dericed/f0a4bb0e7dc635ed1347" =
class=3D"">https://gist.github.com/dericed/f0a4bb0e7dc635ed1347</a>.<br =
class=3D""><br class=3D"">I can provide a patch to the current EBML =
Schema and EBML Schema Attributes<br class=3D"">as well as incorporate a =
sample EBML Schema into the specification, but<br class=3D"">wanted to =
nudge for comments before proceeding.<br class=3D""></blockquote><br =
class=3D"">The current flat hierarchy is not good anyway. I will need a =
bit of<br class=3D"">time to update the spec tools accordingly. But the =
change is OK for<br class=3D"">me.<br class=3D""></blockquote><br =
class=3D"">Thanks. Should I cross-post this to webm lists?<br =
class=3D""></blockquote><br class=3D"">No idea if they use the document =
but it's worth a try.<br class=3D""></div></blockquote></div><br =
class=3D""><div class=3D"">Here are some changes made to the definition =
of EBML Schema. I placed them into a pull request in github,&nbsp;<a =
href=3D"https://github.com/Matroska-Org/ebml-specification/pull/51/files" =
class=3D"">https://github.com/Matroska-Org/ebml-specification/pull/51/file=
s</a>,&nbsp;and will summarize the changes here.</div><div class=3D""><br =
class=3D""></div><div class=3D"">I removed the attributes for mandatory, =
multiple, and identical and replaced them with minOccurs and maxOccurs =
(see in context at&nbsp;<a =
href=3D"https://github.com/MediaArea/ebml-specification/blob/ebml-schema-r=
efactor/specification.markdown#ebml-schema-element-attributes" =
class=3D"">https://github.com/MediaArea/ebml-specification/blob/ebml-schem=
a-refactor/specification.markdown#ebml-schema-element-attributes</a>)</div=
><div class=3D""><br class=3D""></div><div class=3D"">minOccurs:</div><div=
 class=3D"">An integer to express the minimal number of occurrences that =
the EBML Element MUST occur&nbsp;within its Parent Element if its Parent =
Element is used. If the minOccurs attribute is not expressed&nbsp;for =
that Element then that Element shall be considered to have a minOccurs =
value of 0. This value&nbsp;of minOccurs MUST be a positive integer. The =
semantic meaning of minOccurs within an EBML&nbsp;Schema is considered =
analogous to the meaning of minOccurs within an [XML Schema](<a =
href=3D"https://www.w3.org/TR/xmlschema-0/#ref6" =
class=3D"">https://www.w3.org/TR/xmlschema-0/#ref6</a>).<br class=3D""><br=
 class=3D""></div><div class=3D"">maxOccurs</div><div class=3D"">A value =
to express the maximum number of occurrences that the EBML Element MUST =
occur within its Parent&nbsp;Element if its Parent Element is used. This =
value may be either a positive integer or the term `unbounded` to =
indicate there is no&nbsp;maximum number of occurrences or the term =
`identical` to indicate that the Element is an Identically-Recurring =
Element. If the&nbsp;maxOccurs attribute is not expressed for that =
Element then that Element shall be considered to have a maxOccurs value =
of 1. The&nbsp;semantic meaning of maxOccurs within an EBML Schema is =
considered analogous to the meaning of minOccurs within an =
[XML&nbsp;Schema](<a href=3D"https://www.w3.org/TR/xmlschema-0/#ref6" =
class=3D"">https://www.w3.org/TR/xmlschema-0/#ref6</a>), with EBML =
Schema adding the concept of Identically-Recurring Elements.</div><div =
class=3D""><br class=3D""></div><div class=3D"">I also added a section =
called "Identically-Recurring Elements" to define them since they are =
enabled by setting maxOccurs to "enabled". See in context at&nbsp;<a =
href=3D"https://github.com/MediaArea/ebml-specification/blob/ebml-schema-r=
efactor/specification.markdown#identically-recurring-elements" =
class=3D"">https://github.com/MediaArea/ebml-specification/blob/ebml-schem=
a-refactor/specification.markdown#identically-recurring-elements</a>.</div=
><div class=3D""><br class=3D""></div><div class=3D"">An =
Identically-Recurring Element is an Element that may occur within its =
Parent Element more than once but that each recurrence&nbsp;within that =
Parent Element MUST be identical both in storage and semantics. =
Identically-Recurring Elements are permitted to be&nbsp;stored multiple =
times within the same Parent Element in order to increase data =
resilience and optimize the use of EBML in&nbsp;transmission. =
Identically-Recurring Elements SHOULD include a CRC-32 Element as a =
Child Element; this is especially recommended&nbsp;when EBML is used for =
long-term storage or transmission. If a Parent Element contains more =
than one copy of an Identically-Recurring Element which includes a =
CRC-32 Child Element then the first instance of the =
Identically-Recurring Element with a valid&nbsp;CRC-32 value should be =
used for interpretation. If a Parent Element contains more than one copy =
of an Identically-Recurring Element&nbsp;which does not contain a CRC-32 =
Child Element or if CRC-32 Child Elements are present but none are valid =
then the first instance of&nbsp;the Identically-Recurring Element should =
be used for interpretation.</div><div class=3D""><br class=3D""></div><div=
 class=3D""><br class=3D""></div><div class=3D"">I also drafted a new =
section called "EBML Schema example" as a demonstration of an EBML =
Schema. This example EBML Schema is simply the EBML Header with some =
structure to store files (somewhat based on the Attachments Element of =
Matroska). The section can be seen in a GitHub branch here:&nbsp;<a =
href=3D"https://github.com/MediaArea/ebml-specification/blob/ebml-schema-r=
efactor/specification.markdown#ebml-schema-example" =
class=3D"">https://github.com/MediaArea/ebml-specification/blob/ebml-schem=
a-refactor/specification.markdown#ebml-schema-example</a>&nbsp;or is =
pasted here. Compared to the existing implementation of specdata.xml, =
this uses hierarchical arrangement and the changes mentioned =
above.</div><div class=3D""><pre class=3D"">&lt;?<span =
class=3D"pl-ent">xml</span><span class=3D"pl-e"> version</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>1.0<span =
class=3D"pl-pds">"</span></span><span class=3D"pl-e"> =
encoding</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>utf-8<span class=3D"pl-pds">"</span></span>?&gt;
&lt;<span class=3D"pl-ent">EBMLSchema</span> <span =
class=3D"pl-e">docType</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>files-in-ebml-demo<span =
class=3D"pl-pds">"</span></span>&gt;
  &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>EBML<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x1A45DFA3<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>master<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">maxOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
    &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;Set =
the EBML characteristics of the data to follow. Each EBML Document has =
to start with this.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>EBMLVersion<span class=3D"pl-pds">"</span></span>=
 <span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x4286<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>uinteger<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
version of EBML parser used to create the EBML Document.&lt;/<span =
class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>EBMLReadVersion<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">level</span>=3D<span=
 class=3D"pl-s"><span class=3D"pl-pds">"</span>1<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">id</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>0x42F7<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">type</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>uinteger<span =
class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
minimum EBML version a parser has to support to read this EBML =
Document.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>EBMLMaxIDLength<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">level</span>=3D<span=
 class=3D"pl-s"><span class=3D"pl-pds">"</span>1<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">id</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>0x42F2<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">type</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>uinteger<span =
class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>4<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
EBMLMaxIDLength is the maximum length in octets of the Element IDs to be =
found within the EBML Body. An EBMLMaxIDLength value of four is =
recommended, though larger values are allowed.&lt;/<span =
class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>EBMLMaxSizeLength<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">level</span>=3D<span=
 class=3D"pl-s"><span class=3D"pl-pds">"</span>1<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">id</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>0x42F3<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">type</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>uinteger<span =
class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>8<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
EBMLMaxSizeLength is the maximum length in octets of the expression of =
all Element Data Sizes to be found within the EBML Body. To be clear =
EBMLMaxSizeLength documents the maximum 'length' of all Element Data =
Size expressions within the EBML Body and not the maximum 'value' of all =
Element Data Size expressions within the EBML Body. Elements that have a =
Element Data Size expression which is larger in octets than what is =
expressed by EBMLMaxSizeLength SHALL be considered invalid.&lt;/<span =
class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>DocType<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x4282<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>string<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>matroska<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;A =
string that describes and identifies the content of the EBML Body that =
follows this EBML Header.&lt;/<span =
class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>DocTypeVersion<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">level</span>=3D<span=
 class=3D"pl-s"><span class=3D"pl-pds">"</span>1<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">id</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>0x4287<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">type</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>uinteger<span =
class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
version of DocType interpreter used to create the EBML =
Document.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>DocTypeReadVersion<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">level</span>=3D<span=
 class=3D"pl-s"><span class=3D"pl-pds">"</span>1<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">id</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>0x4285<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">type</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>uinteger<span =
class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">default</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
minimum DocType version an interpreter has to support to read this EBML =
Document.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
  &lt;/<span class=3D"pl-ent">element</span>&gt;
  &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>Void<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">global</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0+<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0xEC<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>binary<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
    &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;Used =
to void damaged data, to avoid unexpected behaviors when using damaged =
data. The content is discarded. Also used to reserve space in a =
sub-element for later use.&lt;/<span =
class=3D"pl-ent">documentation</span>&gt;
  &lt;/<span class=3D"pl-ent">element</span>&gt;
  &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>CRC-32<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">global</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1+<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0xBF<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>binary<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
    &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
CRC is computed on all the data from the last CRC element (or start of =
the upper level element), up to the CRC element, including other =
previous CRC elements. All level 1 elements SHOULD include a =
CRC-32.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
  &lt;/<span class=3D"pl-ent">element</span>&gt;
  &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>Files<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x1946696C<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>master<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
    &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span =
class=3D"pl-pds">"</span></span>&gt;Container of data and attributes =
representing one or many files.&lt;/<span =
class=3D"pl-ent">documentation</span>&gt;
    &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>File<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x6146<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>master<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">maxOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>unbounded<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minver</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
      &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;An =
attached file.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
      &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>FileName<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>2<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x614E<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>utf-8<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
        &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span =
class=3D"pl-pds">"</span></span>&gt;Filename of the attached =
file.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
      &lt;/<span class=3D"pl-ent">element</span>&gt;
      &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>MimeType<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>2<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x464D<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>string<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
        &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;MIME =
type of the file.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
      &lt;/<span class=3D"pl-ent">element</span>&gt;
      &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>ModificationTimestamp<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">level</span>=3D<span=
 class=3D"pl-s"><span class=3D"pl-pds">"</span>2<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">id</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>0x4654<span =
class=3D"pl-pds">"</span></span> <span class=3D"pl-e">type</span>=3D<span =
class=3D"pl-s"><span class=3D"pl-pds">"</span>date<span =
class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
        &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span =
class=3D"pl-pds">"</span></span>&gt;Modification timestamp of the =
file.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
      &lt;/<span class=3D"pl-ent">element</span>&gt;
      &lt;<span class=3D"pl-ent">element</span> <span =
class=3D"pl-e">name</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>Data<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">level</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>2<span class=3D"pl-pds">"</span></span> <span =
class=3D"pl-e">id</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>0x4664<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">type</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>binary<span class=3D"pl-pds">"</span></span> =
<span class=3D"pl-e">minOccurs</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>1<span class=3D"pl-pds">"</span></span>&gt;
        &lt;<span class=3D"pl-ent">documentation</span> <span =
class=3D"pl-e">lang</span>=3D<span class=3D"pl-s"><span =
class=3D"pl-pds">"</span>en<span class=3D"pl-pds">"</span></span>&gt;The =
data of the file.&lt;/<span class=3D"pl-ent">documentation</span>&gt;
      &lt;/<span class=3D"pl-ent">element</span>&gt;
    &lt;/<span class=3D"pl-ent">element</span>&gt;
  &lt;/<span class=3D"pl-ent">element</span>&gt;
&lt;/<span class=3D"pl-ent">EBMLSchema</span>&gt;</pre><div class=3D""><br=
 class=3D""></div><div class=3D"">If this approach seems agreeable for =
defining machine-readable documents of EBML DocTypes then can next =
create versions of them according to Matroska and webm.</div><div =
class=3D""><br class=3D""></div><div class=3D"">Best =
Regards,</div></div><div class=3D"">Dave Rice</div></body></html>=

--Apple-Mail=_05F5FD23-BA86-47FC-99A9-A8E598E9A267--


From nobody Sat Jan 23 12:59:24 2016
Return-Path: <bastik.public.mailinglist@gmx.de>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 262FB1A8781 for <cellar@ietfa.amsl.com>; Sat, 23 Jan 2016 12:59:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2Py56WQ6_WGH for <cellar@ietfa.amsl.com>; Sat, 23 Jan 2016 12:59:10 -0800 (PST)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E93191A877A for <cellar@ietf.org>; Sat, 23 Jan 2016 12:59:09 -0800 (PST)
Received: from [192.168.2.129] ([188.100.175.162]) by mail.gmx.com (mrgmx003) with ESMTPSA (Nemesis) id 0LqRKT-1ZrtBS0wVd-00e2Qi for <cellar@ietf.org>; Sat, 23 Jan 2016 21:59:07 +0100
To: cellar@ietf.org
References: <C3D3D5E7-746E-40FE-93E8-97E882E0763F@dericed.com>
From: "Sebastian G. <bastik>" <bastik.public.mailinglist@gmx.de>
Openpgp: id=BFE90DE515B6F548CDE298939902921C2B944DAE
X-Enigmail-Draft-Status: N1110
Message-ID: <56A3E997.6050408@gmx.de>
Date: Sat, 23 Jan 2016 21:59:03 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version: 1.0
In-Reply-To: <C3D3D5E7-746E-40FE-93E8-97E882E0763F@dericed.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 8bit
X-Provags-ID: V03:K0:VbSpvuDIT7VXd2Cwc7VUuravquZlmn6YxHfK1I8nFF1QiPcEYlh xZWO72Od+iFU7eD8Fr4BwLy5V1sL24uuxiBfYGqX+zHRTXzFqohTHtQzTOZGF/FrvF7hFqZ UALuBbA3wL2QrYW06+HK3AIRnaxjeggZtb8BBH8yHxhLH9EGtACTyZQmLP5FFMPmRVEahTI osxCYpTjWq0kjSWOcyRGA==
X-UI-Out-Filterresults: notjunk:1;V01:K0:eoUPZ5NAoyg=:fAsZroZobuXoPy/XTxMOB5 XgRdB/KjlCyd8PTDSujn4wR2qkWZGKETgK4pCrvPIGmPxXoX+7JJeduwFuVyiNbI6TqXVT3Un d+wLV7orZZtUb5GOkzyuEPv+bYcZNAcaEHcu4fyq4fhIcWl2VfDFQuC8lnjzD3RrP6nPsxRRb okfNSGlTfiTrhK4D8gKE1a/EygVtQZT3mK7niWs5B+9miHucqmh5n2hpiCkTtpDVM3ERf5U07 BnBXdXFEzUPdAft2nAJ+BiMuRHGXwQ+PIlhVHWO8Ae8JXK2rTqgeboSngBi2ArpTZPXwaQ2BZ sifwCaouFQRlnKQsXnbZ1MZbvxXd5mK9A/9KCi4ZQXBrGItM/Op89mmvP8ZKMCA2w7RwvKWjS 0WkKLT4Dxw+K+0TLsKubXMLqFCP/S7RpD8b7RfyebFSW6JGCynsEk3aFpx5p2njXS+D7WPHq0 h/VNtzN/k6Dr9CgC3mqeoUOGPb6sWASu4ZJ+PYmf1UwKKE1vKjO40shgsKFlU3wTd4e4cJ2ZI YgyD3T3gLgI7IQmbgiXLZLgBloCYD/FkC8MCVl/C0OK7eR7A85Ycn+Bx5hp82SxvvsZH3ANKG tGxlYeW9MGbdv14wpV3SLL1XkAxZN+Lc6nP5hVTVuuN3+PiI5R/ER9bY46Ut+tcfyEJMxlkhH PsQ5pjuBdztVapWja+ejXBJCdxQS3+Y0lll/GRncjPdq9XrVKLmYfvj3S/xZsdDW1DYOW+4ZM YHiX6/NZA8z7k1Id4TUoArvXjdY3EToDo+BUdL8VD6GZhh2Gy3DjnUr73POOZ2+RIjUEuJS18 cIw/1QI
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Jvr0yNJUjJPkioiKhna5JF9HaXk>
Subject: Re: [Cellar] EBML Introduction section
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jan 2016 20:59:15 -0000

23.01.2016, 20:36 Dave Rice:
> Each RFC must include an Introduction section to follow the TOC.
> There is some detail about the requirements [...]
>
> I used the existing EBML Principle
> <https://github.com/Matroska-Org/ebml-specification/blob/master/specification.markdown#ebml-principle>
> section, Moritz's comments
> <https://github.com/Matroska-Org/ebml-specification/issues/5#issuecomment-99932625>,
> and my own text to create an introduction section. Comments?

Nothing of great importance from my side. Just a few thoughts or
suggestions.

> ## Introduction
> 
> EBML is short for Extensible Binary Meta Language. EBML specifies a
> binary and octet (byte) aligned format inspired by the principle of
> XML. EBML itself is a generalized description of the technique of
> binary markup. Like XML, it is completely agnostic to any data that
> it might contain. The format is made of 2 parts: the semantic and the
> structural. The structural part defines how EBML elements may be
> defined, arranged, and implemented. The semantic part specifies a
> number of Elements along with their identifier, name, type, and
> definition. Just like XML, the specific "tags" (IDs in EBML parlance)
> used in an EBML implementation are arbitrary. However, the semantic
> of EBML outlines general data types and ID's.

The start might be shortened to:

"EBML, short for Extensible Binary Meta Language, specifies a binary and
octet (byte) aligned format inspired by the principle of XML."

> The goal of the EBML Specification is to define a generic, binary,
> space-efficient format which may be utilized to define more complex
> formats (such a containers for multimedia content) using an EBML

'such a' has to be 'such as'. You could also use 'like', although that
gets used often in the section already.

> Schema. The definition of the EBML format recognizes the idea behind
> HTML and XML as a good one: separate structure and semantics allowing
> the same structural layer to be used with multiple, possibly widely
> differing semantic layers. Except for the EBML Header and a few
> global elements this specification does not define particular EBML
> format semantics; however this specification is intended to define
> how other EBML-based formats may be defined.
> 
> EBML uses a simple approach of building Elements upon three pieces of
> data (tag, length, and value) as this approach is well-known, easy to
> parse, and allows selective data parsing. The EBML structure
> additionally allows for hierarchical arrangement to support complex
> structural formats in an efficient manner.
> 
> Dave Rice
> 

--
Sebastian


From nobody Sun Jan 24 12:54:51 2016
Return-Path: <dave@dericed.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 39A7D1AD0B2 for <cellar@ietfa.amsl.com>; Sun, 24 Jan 2016 12:54:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.579
X-Spam-Level: *
X-Spam-Status: No, score=1.579 tagged_above=-999 required=5 tests=[BAYES_50=0.8, SPF_NEUTRAL=0.779] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zOOc-NVJfHj6 for <cellar@ietfa.amsl.com>; Sun, 24 Jan 2016 12:54:48 -0800 (PST)
Received: from s172.web-hosting.com (s172.web-hosting.com [68.65.122.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B0AD71A039F for <cellar@ietf.org>; Sun, 24 Jan 2016 12:54:48 -0800 (PST)
Received: from user-387g4ij.cable.mindspring.com ([208.120.18.83]:36945 helo=[10.0.1.3]) by server172.web-hosting.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.86) (envelope-from <dave@dericed.com>) id 1aNRgL-0001Ha-7O for cellar@ietf.org; Sun, 24 Jan 2016 15:54:46 -0500
From: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Message-Id: <ECE414EE-4ED6-4E45-A192-DAEFA4F2B63F@dericed.com>
Date: Sun, 24 Jan 2016 15:54:43 -0500
To: cellar@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
X-Mailer: Apple Mail (2.3112)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server172.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - dericed.com
X-Get-Message-Sender-Via: server172.web-hosting.com: authenticated_id: dave@dericed.com
X-Authenticated-Sender: server172.web-hosting.com: dave@dericed.com
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-From-Rewrite: unmodified, already matched
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/JaTB2DY1e5shCRRy5O9dM84IEZg>
Subject: [Cellar] Matroska SeekHead questions
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 24 Jan 2016 20:54:50 -0000

Hi all,

The current definition of SeekHead is "Contains the position of other =
level 1 elements.=E2=80=9D

Is it valid to use the SeekHead to reference Elements that are not Level =
1?

Is there any existing official text about the use of chained SeekHeads =
(SeekHeads that link to other SeekHeads)?

In the related section on =E2=80=9CPosition References=E2=80=9D it says: =
"The position in some elements refers to the position, in octets, from =
the beginning of an element. The reference is the beginning of the first =
Segment element (=3D its position + the size of its ID and size =
fields).=E2=80=9D Since the Segment Element can occur more than one time =
in an EBML Document I wanted to verify how SeekHead works in Matroska =
EBML Documents with multiple Segments. For instance in a file structure =
like:

<EBML>
<Segment>
	<SeekHead/>
	<Info/>
	<SeekHead/>
</Segment>
<Segment>
	<SeekHead/>
</Segment>

So if I understand the definition correctly, the SeekPosition values in =
all three example <SeekHead> Elements reference the offset from the =
beginning of the FIRST Segment, correct?

Related to the last question, is there a reason for the Segment element =
to be multiple. I know an EBML Stream may be =
<EBML/><Segment/><EBML/><Segment/>, but is =
<EBML/><Segment/><Segment/><EBML/><Segment/> allowed? If we clarify that =
the =E2=80=98multiple/maxOccurs=E2=80=99 value of Level 0 Elements =
refers to the occurrence within an EBML Document rather than a file, =
could the Segment Element be set to non-multiple?

Also SeekHead refers to the other level 1 elements, but is there any =
issue if the SeekHead only refers to some and not all of the other Level =
1 elements?

Dave Rice


From nobody Mon Jan 25 06:09:38 2016
Return-Path: <nithinmkurien@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C72F31ACCE3 for <cellar@ietfa.amsl.com>; Mon, 25 Jan 2016 06:09:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.7
X-Spam-Level: 
X-Spam-Status: No, score=0.7 tagged_above=-999 required=5 tests=[BAYES_50=0.8,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8AJabhy6KeNc for <cellar@ietfa.amsl.com>; Mon, 25 Jan 2016 06:09:33 -0800 (PST)
Received: from mail-yk0-x22c.google.com (mail-yk0-x22c.google.com [IPv6:2607:f8b0:4002:c07::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 445021ACCEB for <cellar@ietf.org>; Mon, 25 Jan 2016 06:09:33 -0800 (PST)
Received: by mail-yk0-x22c.google.com with SMTP id v14so161472940ykd.3 for <cellar@ietf.org>; Mon, 25 Jan 2016 06:09:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:date:message-id:subject:from:to:content-type; bh=mimb3NvgFH7AaaBJtvOrzBBQiv0MwzA4PnhijRnqTY0=; b=wluMtM/icrNaTBNk06CCaCxE6u30dV4JFUw54q/xBiIy77Alb5he4YpkE5bvVYRW7D NL6oRRiJi+BT73hp56cjPHkXCNqfzdtzdfw2wcM0L+/+KjF8l+gB9tbxf2yFWGnWVSHc xeu6UoqLluvWV0ryXI3h/T5U1UGbVLyquGYe5KQWVKDqwdie/qfIPY/Ziyo/hWisDzOB aodKwBw9zaOczmpw58ng3pkDbnUEiyTcG3t2ACPBnWkdo1i0ydW24F3GTCWl5TbAh2j1 9BOFKTtRUQHiv9AZDUwYEgTJE/lMhL++4CFbGhpaQrd+jjfwf8Pd/WKhUQO3TYxnW3CE EbIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=mimb3NvgFH7AaaBJtvOrzBBQiv0MwzA4PnhijRnqTY0=; b=IBe8v/a9Enx2gBbdsJ5Q1HJdk+6SDcZk3sJxyMX8ZTapoCSxCaos9yDD7pa+xeSOEn u3UhYcMnp5RDYnVihSL6okA9wiQ/vlAgOn6zIECDnuTvgJxxRedqR1aEVCn4TXnGeEMD BgdrCDDy87dgIBfSjXFHLXrDnWfFsKVWmQkRa6G5iMkRIt5mdtED/XV6BygyGzw2jpgK kKAlHOqNK1OKs3bL6/RC+mNZ9xE1dD0OqGZDcKaj0eEiDUrgLywyxGC2WWsH8KOVsq94 5LIbS+jPQ+6HdSdlRDh4DvRS+sAV1sC4Xji3OPRnbrBuBb2KtTsNcnDu6DRcdZfC/tir wrxg==
X-Gm-Message-State: AG10YOQy4EVZ0ncdU0XrKObIJocHO5GlmVcCKLDZWDU2ft6wmw7LhYCoVs3hZwH0SgyzmStCgvaQqGwbA+yXhA==
MIME-Version: 1.0
X-Received: by 10.129.148.133 with SMTP id l127mr8777737ywg.272.1453730972490;  Mon, 25 Jan 2016 06:09:32 -0800 (PST)
Received: by 10.129.113.133 with HTTP; Mon, 25 Jan 2016 06:09:32 -0800 (PST)
Date: Mon, 25 Jan 2016 19:39:32 +0530
Message-ID: <CAC9y1U=-CEKa1Wjq1pXbE-Harh9BO=265b7vgmnSvTimnjgNDA@mail.gmail.com>
From: Nithin Mathew Kurien <nithinmkurien@gmail.com>
To: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/T93aDLU5uoE9p6k1XLHIeoOkpxE>
Subject: [Cellar] Depth offsets for subtitles in case of 3D MVC tracks in MKV files
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jan 2016 14:09:34 -0000

Hi,

Playback of 3D MVC tracks in MKV files is now possible through LAV
splitter and madVR. I would like to request an information field in
Matroska that specifies the depth offsets for subtitles when playing
such video files. According to the Blu-ray whitepaper
(http://www.blu-raydisc.com/assets/Downloadablefile/BD-ROM-AV-WhitePaper_110712.pdf),
the way it is done in 3D Blu-rays is like this. The MVC track can have
up to 32 Offset Metadata Sequences (OFS, also called 3D offsets in
TSMuxer). An Offset Metadata Sequence has one depth offset (in pixels,
either in front of or behind the plane of the screen) for each video
frame. Each subtitle and menu track has one of these 32 Offset
Metadata Sequences assigned to it in the M2TS file. In this way, when
a 3D Blu-ray is being played, the subtitle or menu track can be
displayed at the proper depth in 3D space (otherwise it would cut
through the objects in the video, disrupting the viewing experience).
Currently, there is no means for specifying the 3D depth of subtitles
when playing 3D MVC MKVs. I would like to request support for the
same.

Thanks and regards,
Nithin


From nobody Mon Jan 25 07:53:12 2016
Return-Path: <nithinmkurien@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D02921B2C78 for <cellar@ietfa.amsl.com>; Mon, 25 Jan 2016 07:53:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.7
X-Spam-Level: 
X-Spam-Status: No, score=0.7 tagged_above=-999 required=5 tests=[BAYES_50=0.8,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ume7-21bxOoS for <cellar@ietfa.amsl.com>; Mon, 25 Jan 2016 07:53:09 -0800 (PST)
Received: from mail-yk0-x22a.google.com (mail-yk0-x22a.google.com [IPv6:2607:f8b0:4002:c07::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1DF1B1B2C7B for <cellar@ietf.org>; Mon, 25 Jan 2016 07:53:09 -0800 (PST)
Received: by mail-yk0-x22a.google.com with SMTP id a85so165296468ykb.1 for <cellar@ietf.org>; Mon, 25 Jan 2016 07:53:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=MZGE5DNIMV9Mrk2xiorf3uI2oHzrUL5zxZ00Ttp5yXE=; b=rbER8GBSWoQDNfN02PDkFcn9q+an0KfjOMC2p5F06dI4W7fF4fjicgegV+B/j+fU5P mPUc02jZFe+e+CbTWiUNEEviw6mlyJDS1LwierwyDSwELEgsBErcJ+YiAlwwyqL8XoIP Z0t1RMLgn82BDp4Ht/+rFpmACR6ccp1XmXogOZiDM8fSS/YDUBc8dfdtmVlhBi4jiFnX B5bChqsaB6GK8wp9PIBXoWGh/W3lJFUI8JInZDeV+2LRICkmL0ACk2YtEjynEWrHwrJ7 A604moXY+j9MHsTT9DCjdMfH3Vt9m0Ve7VqstUMFhcNIkxb0+quXQmDQEltEvDAyfYTa R7Xg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=MZGE5DNIMV9Mrk2xiorf3uI2oHzrUL5zxZ00Ttp5yXE=; b=PqRw9PwRYqQPvAuuDvX92rnq9UJsdm68fTVLzAxqtQVcapSkC5CRb88y/AAIxctmUb 23Zg58B5cvP4xkqpNvvOPlwtumyIh6q59vFjKQh9sGshtjmLd2n1jdZ8/bKsuW9ktEoT 0BmaLIjvkmN70rzXQnFe0Ex0+0H5UjY0IYgo94vjLmuZuMrEMTic/fwpOk5bLpkS1P9p igpZJ7ynTfx9dFsf0rw41gv4D4tsOpZd0nhQ9j+lZLkR4oQ614TrbOPeECM9dP8QNc4+ lOcSp42+YVvGy1zQqJNt+3H1dcg1NihWttU7EFgJvq2ITVC3bznU6KjDA2hb9qb37gIB +S+g==
X-Gm-Message-State: AG10YOSZ+IBzTR96v5lGDVMCjbqEsTKoDtuU7fS1j5tpPiQGFz/rlE8BtxdJkXylddRZkG/tPJ6TIlA+PTTDFA==
MIME-Version: 1.0
X-Received: by 10.13.192.130 with SMTP id b124mr9972107ywd.218.1453737188320;  Mon, 25 Jan 2016 07:53:08 -0800 (PST)
Received: by 10.129.113.133 with HTTP; Mon, 25 Jan 2016 07:53:08 -0800 (PST)
In-Reply-To: <CAOXsMFKtCxFEzK_qmbvPKpWFi+_jukhTSeApHr=N2OEJwbWa=Q@mail.gmail.com>
References: <CAC9y1Um99BfDy1LWBjyrkb0_cWSh3HUN=sJoXkjWx2y1HRhzRw@mail.gmail.com> <CAOXsMFKtCxFEzK_qmbvPKpWFi+_jukhTSeApHr=N2OEJwbWa=Q@mail.gmail.com>
Date: Mon, 25 Jan 2016 21:23:08 +0530
Message-ID: <CAC9y1UkLst9VL8ruHOvmbaDwPMj05HyyzvpQcSzGq2aX_Q4dMw@mail.gmail.com>
From: Nithin Mathew Kurien <nithinmkurien@gmail.com>
To: Steve Lhomme <slhomme@matroska.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/HvSoK4SepTG3luqNVMCnWJ6AXVM>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Menu System in Matroska Files
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Jan 2016 15:53:11 -0000

Hi,

I downloaded DvdMenuXtractor (rev1295) from
http://tirnanog.fate.jp/mirror/DvdMenuXtractor/ and tested it on a
DVD. The program completed execution and output .BAT files along with
the demuxed tracks. I use the latest versions of MKVToolNix (v.8.8.0)
and VLC Player (v.2.2.1). When I ran the .BAT files which invoked
MKVToolNix, most of them aborted execution midway with error. A few of
them completed, but when I opened the resulting MKV files in VLC, it
showed the error "VLC can't recognize the input's format:
The format cannot be detected." It seems that DVDMenuXtractor is not
working correctly. Is there any way to fix this? Are there some
example MKV files with menus which I can test in VLC?

Thanks and regards,
Nithin


On Sat, Jan 2, 2016 at 1:49 PM, Steve Lhomme <slhomme@matroska.org> wrote:
> 2015-12-17 11:41 GMT+01:00 Nithin Mathew Kurien <nithinmkurien@gmail.com>:
>> Dear all,
>>
>> The Matroska specification includes a menu system which is currently
>> in a draft state (http://matroska.org/technical/menu/index.html).
>> Currently there are no open-source players supporting this feature.
>
> Yes, VLC can handle Matroska files with DVD menus extracted using
> DVDMenuXtractor:
> https://github.com/Matroska-Org/dvdmenuxtractor
>
> This was a project meant to demonstrate that Matroska menus are
> possible. It was never finished though as not all DVD commands were
> translated into Matroska menus. It was also done ~10 years ago and
> support in VLC might be broken by now.
>
> The idea was to be able to keep all the information contained in a DVD
> ISO, but in a different format.
>
>> But there is at least one proprietary format, namely PGMX, a variant
>> of MKV, that includes a working menu. These files are created by a
>> proprietary TMPGENC PGMX creator and played by a freeware TMPGENC PGMX
>> player. A PGMX file also supports including multiple related titles
>> inside a single file. Opening this file on open-source players will
>> play it as a normal MKV file without menus. There are some samples
>> given in their website
>> (http://tmpgenc.pegasys-inc.com/en/download/tpxp.html).
>>
>> I think the menu feature would be a good idea to implement in Matroska
>> files and humbly request for the same. I think this feature would be
>> useful for content authors who would like to distribute their works
>> freely under a Creative Commons license, for example, who would
>> otherwise have to adopt proprietary formats like DVD and Blu-ray. I
>> understand that implementing a menu system from scratch might involve
>> some complexity. In that case, would it be possible to adopt some
>> features from the open-source libdvdnav and libbluray?
>>
>> Thanks and regards,
>> Nithin
>>
>> _______________________________________________
>> Cellar mailing list
>> Cellar@ietf.org
>> https://www.ietf.org/mailman/listinfo/cellar
>
>
>
> --
> Steve Lhomme
> Matroska association Chairman


From nobody Tue Jan 26 02:29:35 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A5E011ACCF0 for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 02:29:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hl-EqTy4ht7V for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 02:29:33 -0800 (PST)
Received: from mail-vk0-x22f.google.com (mail-vk0-x22f.google.com [IPv6:2607:f8b0:400c:c05::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E8BB91AC43A for <cellar@ietf.org>; Tue, 26 Jan 2016 02:29:32 -0800 (PST)
Received: by mail-vk0-x22f.google.com with SMTP id e64so89832101vkg.0 for <cellar@ietf.org>; Tue, 26 Jan 2016 02:29:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=x5vDQRTD6Q9YnXR3JGLvxq07mr5/i4e47MONrL65ccg=; b=0isHBuWGeOF8GxMqp4BdHn6BSzItc74X4BTFI1VLM0HewQ+rVk7huA6EaPnHL9EGlg OD/KZk0/qtLZ8PcXeP2kuEoewkdIuSCgcUYEKKkXVTbnODnp2ernLpbBnTUxLE11d4rv 2uEg+HCgXtWJ1Fg9CPu0sudha6g8cE74rEN/UYZEH2d4OvP11UJ1jSCsncjfQyfJD70r Qp9NAjB+DAKPhzVuHOKWIaf3ZNaRO2f5ioY/sDRdO2hOG/mCPnrxvimSQGk2ZEZfmfwr Yl2r03c5uAm0TGYTAusRbNbqTrt7EdXJ2HuchHPcS64fFk+hmB1bYFYA1bJ2MA+oZALm O3mg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=x5vDQRTD6Q9YnXR3JGLvxq07mr5/i4e47MONrL65ccg=; b=lkqT/FCAVXflir0/HrlesMdB4WYjOzr5UfnGDTC4r2dHhMwz33bh9S1T03QHNwRfiJ TlyfhTNKMuiY1u4MhbQBcr/ffvmESF2Exe5ivSTENht/eZ1tqKjRj5BMrdbagQ8MlJi4 ytGVG7dn3qEq6Yga5uM9q+ecooehjrL0/cP3pBpUKYnhQ46HoXtX0w90i1ebNA/hOGmJ F8hlS/fFwNs33gFDuzqNX/nAyee8U/QxaQibGobErbgL/C1QNPcmIpz7F1mu8fphVQD5 m+1lo7CGvgJZO7+OfMfZBjGt/5yJeZG6fwU8GQ6P6XZQUJ7eDKNPgJOfPjzWAXVG+CCD RTQw==
X-Gm-Message-State: AG10YOQWkrSMzl8vdKIkT0rYCjM3SjC+gSOw7rTGolV+iwjVGvZe2VVpk5QRj8iY5JKejqneERVdnKUfJTgOoA==
MIME-Version: 1.0
X-Received: by 10.31.47.205 with SMTP id v196mr13854503vkv.18.1453804172132; Tue, 26 Jan 2016 02:29:32 -0800 (PST)
Received: by 10.31.83.71 with HTTP; Tue, 26 Jan 2016 02:29:32 -0800 (PST)
In-Reply-To: <C3D3D5E7-746E-40FE-93E8-97E882E0763F@dericed.com>
References: <C3D3D5E7-746E-40FE-93E8-97E882E0763F@dericed.com>
Date: Tue, 26 Jan 2016 11:29:32 +0100
Message-ID: <CAOXsMF+q9EpEGNUMkxQJAUmN0dCp6NFjR-U=+=TdEYyBCo1kmw@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/mEo8B0Rp8UwY0xNgjQxIR264sts>
Cc: cellar@ietf.org
Subject: Re: [Cellar] EBML Introduction section
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 10:29:34 -0000

2016-01-23 20:36 GMT+01:00 Dave Rice <dave@dericed.com>:
> Each RFC must include an Introduction section to follow the TOC. There is
> some detail about the requirements here:
> https://tools.ietf.org/html/rfc7322#section-4.8.1 and last year there was
> some initial discussion about this in a github issue:
> https://github.com/Matroska-Org/ebml-specification/issues/5.
>
> I used the existing EBML Principle section, Moritz's comments, and my own
> text to create an introduction section. Comments?
>
> ## Introduction
>
> EBML is short for Extensible Binary Meta Language. EBML specifies a binary
> and octet (byte) aligned format inspired by the principle of XML. EBML
> itself is a generalized description of the technique of binary markup. Like
> XML, it is completely agnostic to any data that it might contain.

I would strip that part, or split it.

> The format
> is made of 2 parts: the semantic and the structural. The structural part
> defines how EBML elements may be defined, arranged, and implemented. The
> semantic part specifies a number of Elements along with their identifier,
> name, type, and definition. Just like XML, the specific "tags" (IDs in EBML
> parlance) used in an EBML implementation are arbitrary. However, the
> semantic of EBML outlines general data types and ID's.

Up to here

> The goal of the EBML Specification is to define a generic, binary,
> space-efficient format which may be utilized to define more complex formats
> (such a containers for multimedia content) using an EBML Schema. The
> definition of the EBML format recognizes the idea behind HTML and XML as a
> good one: separate structure and semantics allowing the same structural
> layer to be used with multiple, possibly widely differing semantic layers.
> Except for the EBML Header and a few global elements this specification does
> not define particular EBML format semantics; however this specification is
> intended to define how other EBML-based formats may be defined.
>
> EBML uses a simple approach of building Elements upon three pieces of data
> (tag, length, and value) as this approach is well-known, easy to parse, and
> allows selective data parsing. The EBML structure additionally allows for
> hierarchical arrangement to support complex structural formats in an
> efficient manner.
>
> Dave Rice
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar
>



-- 
Steve Lhomme
Matroska association Chairman


From nobody Tue Jan 26 02:42:46 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8B6641ACE81 for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 02:42:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IW3lklrh2jzc for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 02:42:43 -0800 (PST)
Received: from mail-vk0-x235.google.com (mail-vk0-x235.google.com [IPv6:2607:f8b0:400c:c05::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 216521ACE80 for <cellar@ietf.org>; Tue, 26 Jan 2016 02:42:43 -0800 (PST)
Received: by mail-vk0-x235.google.com with SMTP id n1so89080971vkb.3 for <cellar@ietf.org>; Tue, 26 Jan 2016 02:42:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=sh7r43u83QZ61FoLF8B7SYVC2FfMmvfRIxeF8Ew0RGw=; b=LGwaTZ+MYMl3oVUJD7m6yQSoXZziejb7ulNSM3dTDsUZZ0E14P6eKC8/4LwHU0GwzF CFKR7MQ+ujNzUDc/MV6If7nsRyoXTZ6m8w+IAKhVjGDgpQOhYXPI77eIvLTIiWZTIKN2 rvFLaejhJxrJF4tgmX5cJ82uktCH2VT6swpba1KzcRzciOEF4oXI7e7j8cGM9heuLWof iVxtjbc5z679+yFsIpxgxgpzXBvEzK72DZYFoJKfNZk1oWoCSIeb2mhyJatwHnja31Ji spXz8YI7vFo1OiI+STVd1qhTHs47wjaBNDjh5IKCRTGZrwWDsPCh+25UUo3+zoc/j/fb L+Vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=sh7r43u83QZ61FoLF8B7SYVC2FfMmvfRIxeF8Ew0RGw=; b=l6j26iE91ZUlX6F2k9CIhULK3GteSEGkICjDLEr/QIIacDxvE6MJDLWT3hw0ZZhONb pUMIEQVzQJPOqO4yLjGN+v13CY6vH2KkbnLOxxihQERjqSNBfeXu3C88ajmMNhgv2YEq ik1oBOJUe4Ezs3WIAj405TB83fk7vjFxwWAe5VEDT7bNEqW+PtT/Vu/HFv4+H5I3tTTx 5YCLG5IK4KIEG0oM2g9qQQ0W+1Ps2h4utw5FlpBh+wSyMHOfY61q6V+oaaybMc6pDAic jngpNDiaYAmmajD8dKdBNReaR3AY0NdkdD67PCLEXWGFyV83Pd2BAz6cPIhsQlCQNidh ++lA==
X-Gm-Message-State: AG10YOTztLDdSt5mWAe+D6OJktiA8MM8D8JCiR5sq6BCm6ty4EgHeMG8yzSQgDJUvImlfZaKQtA8aE7c/81BQQ==
MIME-Version: 1.0
X-Received: by 10.31.135.79 with SMTP id j76mr13158991vkd.91.1453804962213; Tue, 26 Jan 2016 02:42:42 -0800 (PST)
Received: by 10.31.83.71 with HTTP; Tue, 26 Jan 2016 02:42:42 -0800 (PST)
In-Reply-To: <ECE414EE-4ED6-4E45-A192-DAEFA4F2B63F@dericed.com>
References: <ECE414EE-4ED6-4E45-A192-DAEFA4F2B63F@dericed.com>
Date: Tue, 26 Jan 2016 11:42:42 +0100
Message-ID: <CAOXsMFLbbD0gDTW7WK2qwags-cUduv3KzxzaMvVYCME7Y7cJCA@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/UZMYejpNV7roYBsrXDzQKDfJSd0>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroska SeekHead questions
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 10:42:44 -0000

2016-01-24 21:54 GMT+01:00 Dave Rice <dave@dericed.com>:
> Hi all,
>
> The current definition of SeekHead is "Contains the position of other lev=
el 1 elements.=E2=80=9D
>
> Is it valid to use the SeekHead to reference Elements that are not Level =
1?

There's a very good chances no player will use such values. Also
they'd be harder to interpret, since you don't know in which parent
element they belong to.

> Is there any existing official text about the use of chained SeekHeads (S=
eekHeads that link to other SeekHeads)?
>
> In the related section on =E2=80=9CPosition References=E2=80=9D it says: =
"The position in some elements refers to the position, in octets, from the =
beginning of an element. The reference is the beginning of the first Segmen=
t element (=3D its position + the size of its ID and size fields).=E2=80=9D=
 Since the Segment Element can occur more than one time in an EBML Document=
 I wanted to verify how SeekHead works in Matroska EBML Documents with mult=
iple Segments. For instance in a file structure like:
>
> <EBML>
> <Segment>
>         <SeekHead/>
>         <Info/>
>         <SeekHead/>
> </Segment>
> <Segment>
>         <SeekHead/>
> </Segment>
>
> So if I understand the definition correctly, the SeekPosition values in a=
ll three example <SeekHead> Elements reference the offset from the beginnin=
g of the FIRST Segment, correct?

No, multiple concatenated either come different sources or an original
file that was split. In all cases the SeekHead references the Segment
it belongs to. It works even if you don't have the other segments.

> Related to the last question, is there a reason for the Segment element t=
o be multiple. I know an EBML Stream may be <EBML/><Segment/><EBML/><Segmen=
t/>, but is <EBML/><Segment/><Segment/><EBML/><Segment/> allowed? If we cla=
rify that the =E2=80=98multiple/maxOccurs=E2=80=99 value of Level 0 Element=
s refers to the occurrence within an EBML Document rather than a file, coul=
d the Segment Element be set to non-multiple?

IMO <EBML/><Segment/><Segment/> is not allowed. And such files
probably don't exist. But we may allow it. It's not that different to
parse than when the EBML header is always preceding the Segment.

> Also SeekHead refers to the other level 1 elements, but is there any issu=
e if the SeekHead only refers to some and not all of the other Level 1 elem=
ents?

No, it's optional, not a guarantee it contains all the Level 1
elements. We may add a rule that if you add one type of level 1 (eg
Tags) all these elements must be referenced (all Tags found in that
segment). Otherwise it's kinda useless. Also the SeekHead cannot
reference itself...

> Dave Rice
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



--=20
Steve Lhomme
Matroska association Chairman


From nobody Tue Jan 26 03:48:09 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A22561AD49B for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 03:48:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AK1t1cpz96jY for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 03:48:06 -0800 (PST)
Received: from mail-vk0-x22d.google.com (mail-vk0-x22d.google.com [IPv6:2607:f8b0:400c:c05::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7BA4C1AD481 for <cellar@ietf.org>; Tue, 26 Jan 2016 03:48:06 -0800 (PST)
Received: by mail-vk0-x22d.google.com with SMTP id k1so89960847vkb.2 for <cellar@ietf.org>; Tue, 26 Jan 2016 03:48:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=nq/k0VSWZ3GXWZSDI4Q5Wkp4nnt3lSX4NsptyXZ3OVs=; b=RbT9XyDv7DvDlvcPNKryaDNp/Y+tjtYjdJfJzW3wq9ATox5B0a7phbsoBsQdRiKCEa buxK5hYlYB+vW4FYifnwU0xJTltdxtajmUeEbA1mVPhPsVriF8W85WLUzSQbHz1NOJ1j /DZ932E80Oe1FouuppY5chRMxrT8+CtnkpSRBZ3fBKc0AfpHrwy2fry1AdUGn4teKwa2 UUh8usQYKQusNSUJ9g2k36dyUjCI1+hNWlj9ryX6av1F8EVHtKbt1T+TeMdY9QfRsBrL BquRLLLg4n0RPMypezfbJVeoK5p9pL+c6HGK58FsHhxvther5nqYv1oJP2/O3J6jeYbx +l5A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=nq/k0VSWZ3GXWZSDI4Q5Wkp4nnt3lSX4NsptyXZ3OVs=; b=Yb+CWJxSD9upZLnDngdV7M4YZm5EzRehNCNCvQG0xRS7wF9/zD1lvmwnom36bdpbfC RzKSZ4sGpBNCYwxkRk82osfk4/1kjXoaw/CdU226bKk4rlH4ph93KpKnyeQwRg2Pyf4s J8Ute/ASQXEdak79rslvVoF9HrZAdnp2eEevyEAJexM+wHq7diVjvzuzwLgNLQVa9wU1 7iYSgzivKNL2fkHsQeNnVxyKmjH5kiZ/gkc7/SrTMySdGDv0TkxYMeq+u1xbXLBJ2APV 8Ax6fmp37PhSGPEVefMIBhupWGFOKwAG3Y46nON44qGzdQFB1x4HwMkFlsxrIG2BwufU ykVw==
X-Gm-Message-State: AG10YOTzz1bSyhKaUNRBr/hF6s1NieHSoOiV5lM+9j6gsYBzDgRy87hTVwub8Ujz7h+2OtwBvp8JyLkPYZAxIg==
MIME-Version: 1.0
X-Received: by 10.31.160.6 with SMTP id j6mr5021924vke.87.1453808885604; Tue, 26 Jan 2016 03:48:05 -0800 (PST)
Received: by 10.31.83.71 with HTTP; Tue, 26 Jan 2016 03:48:05 -0800 (PST)
In-Reply-To: <ECCBFAC3-0EB9-4A90-9529-42132CE9733B@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com> <CAOXsMFJkNAqn2FMfsETxSCbeCmS_OTWT41MaOXif0bwrwwJCyA@mail.gmail.com> <ECCBFAC3-0EB9-4A90-9529-42132CE9733B@dericed.com>
Date: Tue, 26 Jan 2016 12:48:05 +0100
Message-ID: <CAOXsMFJJ4efbFtsgnWOF_SJ9qQjCXnRAf4ZuUcn2Z6MOLf5upg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/ailoinDyF3oYOu1UY3drxTxl1FA>
Cc: Jerome Martinez <jerome@mediaarea.net>, cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 11:48:08 -0000

2016-01-22 6:26 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 14, 2016, at 5:56 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-11 18:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>
>>>> On Jan 11, 2016, at 11:40 AM, Jerome Martinez <jerome@mediaarea.net> w=
rote:
>>>>
>>>> Le 11/01/2016 17:24, Dave Rice a =C3=A9crit :
>>>>>> On Jan 11, 2016, at 5:12 AM, Steve Lhomme <slhomme@matroska.org> wro=
te:
>>>>>>
>>>>>> 2016-01-10 21:08 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>>>>> Hi Cellar,
>>>>>>>
>>>>>>> This proposal continues from earlier conversation on matroska-devel=
: http://lists.matroska.org/pipermail/matroska-devel/2015-October/004808.ht=
ml.
>>>>>>>
>>>>>>> Currently Matroska only expresses video interlacement in the FlagIn=
terlaced Element, which is defined like this (see: http://matroska.org/tech=
nical/specs/index.html#FlagInterlaced):
>>>>>>>
>>>>>>> Element Name: FlagInterlaced
>>>>>>> Level:        4
>>>>>>> ID:           [9A]
>>>>>>> Mandatory:    mand.
>>>>>>> Multiple:     -
>>>>>>> Range:  0-1
>>>>>>> Default:      0
>>>>>>> Type:         u
>>>>>>> Description:  Set if the video is interlaced. (1 bit)
>>>>>>>
>>>>>>> An issue here is that there isn=E2=80=99t a distinction between unk=
nown and progressive interlacement. Also if the video is interlaced there i=
s no clarification if it is top or bottom field first (or one of the progre=
ssive segmented frame options). While some video encodings (such as DV and =
FFV1) can contain their own information about interlacement, many (especial=
ly uncompressed formats) can not.
>>>>>>>
>>>>>>> I propose the values are expanded such as:
>>>>>>>
>>>>>>> 0       undetermined
>>>>>>> 1       interlaced
>>>>>>> 2       progressive
>>>>>>>
>>>>>>> or
>>>>>>>
>>>>>>> 0       progressive
>>>>>>> 1       interlaced
>>>>>>> 2       undetermined
>>>>>>>
>>>>>>> I am unclear if FlagInterlaced=3D0 has been traditionally interpret=
ed as undetermined or progressive. Advice?
>>>>>> Progressive.
>>>>>>
>>>>>>> Then a second element can optionally contain field ordering metadat=
a.
>>>>>>>
>>>>>>> Element Name: FieldOrdering
>>>>>>> Level:        4
>>>>>>> ID:           [9D]
>>>>>>> Mandatory:    -
>>>>>>> Multiple:     -
>>>>>>> Range:  0-2
>>>>>>> Default:      0
>>>>>>> Type:         u
>>>>>>> Description:  Declare the field ordering of the video. If FlagInter=
laced is not set to 1, this Element MUST be ignored.
>>>>>>>
>>>>>>> 0       undetermined
>>>>>>> 1       interlaced (bottom field first)
>>>>>>> 2       interlaced (top field first)
>>>>>>>
>>>>>>> To do:
>>>>>>> - consider progressive segmented fields
>>>>>>> - consider noting field storage order in addition to field display =
order
>>>>>>>
>>>>>>> I did consider that bff and tff values could be added as new values=
 to FlagInterlaced, so that only one element would be needed. However it ma=
y affect reverse compatibility since some muxer may interpret only a value =
of FlagInterlaced=3D1 as interlaced.
>>>>>> Not sure any player/demuxer/muxer would make much use of that flag a=
s
>>>>>> it is now (VLC ignores the data). So it's ok to break backward
>>>>>> compatibility.
>>>>> It does seem unconventional to have the default value be progressive =
rather than undetermined. From the prior definition of FlagInterlaced, "Set=
 if the video is interlaced. (1 bit)=E2=80=9D, it doesn=E2=80=99t not indic=
ate whether a zero value means progressive or undetermined. For instance, i=
f I create a file under the rules below and want to express certainty that =
the file is progressive I can set FlagInterlaced to 0; however that file is=
 no different than an older file which has FlagInterlaced set to 0 because =
there is no certainly about that quality at all.
>>>>
>>>> +1 (we have no way to know if the muxer wanted to say "undetermined" o=
r "progressive", and I prefer "undetermined" in that case)
>>>>
>>>>>
>>>>> I updated and merging the concepts of FlagInterlaced and FieldOrderin=
g into only FlagInterlaced. I suggest considering 0 as undetermined and 2 a=
s progressive as I think this more clearly reflects the level of certainty =
used in past files. Also note that I left FlagInterlaced=3D1 to still be co=
nsidered as interlaced although the field dominance is not clear as this se=
ems semantically equivalent to the current specs, though maybe its usage sh=
ould not be recommended.
>>>>
>>>> -1.
>>>> From my point of view, they are 2 different pieces of metadata, so I p=
refer to have 2 Matroska elements, with 2 different lists we could expand i=
n the future independently.
>>>> BTW, what about 3:2 pulldown? set as "undetermined" or a specific item=
? This is an example of the reason I prefer 2 Matroska elements: let's imag=
ine that we don't put a 3:2 pulldown specific item now (set as "undetermine=
d field ordering"), but we decide later to add it (let say 5). with merged =
concepts, an old reader would lose the interlace information despite the fa=
ct stream has not changed but the element has changed from 1 ("interlaced u=
ndetermined") to 5 ("interlaced 3:2 pulldown", but "unknown for this old re=
ader). With separate concepts, the old reader would still know that the str=
eam is interlaced.
>>>
>>> Update FlagInterlaced  version 3
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> Element Name: FlagInterlaced
>>> Level:        4
>>> ID:           [9A]
>>> Mandatory:    mand.
>>> Multiple:     -
>>> Range:  0-2
>>> Default:      0
>>> Type:         u
>>> Description:    A flag to declare is the video is known to be progressi=
ve or interlaced and if applicable to declare details about the interlaceme=
nt.
>>>                        0: undetermined
>>>                        1: interlacement (unknown field ordering)
>>>                        2: progressive
>>
>> Given that element is just informational (only the codec can actually
>> decide how to handle the data), I'm fine with this change. It won't
>> change playback of anything. I don't think raw video was stored with a
>> codec that doesn't store this information.
>
> But doesn't 'raw video' imply that the interlacement information is not s=
tored within the encoding. For instance v210 or uyvy422 or yuvy422 in Matro=
ska is only sample values (some null bit padding with v210 as well), but th=
ere's no metadata about interlacement, so such encodings are wholly depende=
nt on the container to clarify such information.

Correct, this is the same reason there are fields for audio as well.
It's informational when contained in the codec, because the codec
should know better its encoding. In that case it should be moderately
trusted. When there's no other source for that information, then
that's the main source.

> Another example was the use of FFV1 version 1 in Matroska. Neither FFV1 n=
or Matroksa declared field order so it was unknown. FFV1 version 3 has sinc=
e added interlacement data to the encoding.
>
> Dave Rice
>
>>> Element Name: FieldOrdering
>>> Level:        4
>>> ID:           [9D]
>>> Mandatory:    mand.
>>> Multiple:     -
>>> Range:  0-2
>>> Default:      0
>>> Type:         u
>>> Description:  Declare the field ordering of the video. If FlagInterlace=
d is not set to 1, this Element MUST be ignored.
>>>
>>> 0       undetermined
>>> 1       interlaced (bottom field first)
>>> 2       interlaced (top field first)
>>>
>>> For "interlaced 3:2 pulldown=E2=80=9D, wouldn=E2=80=99t such as express=
ion require additional information to align the ordered frames with the pat=
tern of the pulldown? Additionally if the content is edited the application=
 of the pulldown could be offset within the timeline. Perhaps we should con=
sider extending FieldOrdering to encompass "interlaced 3:2 pulldown" as a s=
eparate issue and focus the thread on clarifying progressive, interlaced, o=
r undetermined along with field ordering information.
>>>
>>> Dave Rice
>>> _______________________________________________
>>> Cellar mailing list
>>> Cellar@ietf.org
>>> https://www.ietf.org/mailman/listinfo/cellar
>>
>>
>>
>> --
>> Steve Lhomme
>> Matroska association Chairman
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Tue Jan 26 03:53:17 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 585791AE4CB for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 03:53:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1qM8gpPG3Ziw for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 03:53:11 -0800 (PST)
Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7AB0E1ADBFC for <cellar@ietf.org>; Tue, 26 Jan 2016 03:53:11 -0800 (PST)
Received: by mail-vk0-x22a.google.com with SMTP id n1so89933860vkb.3 for <cellar@ietf.org>; Tue, 26 Jan 2016 03:53:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=w3Ny5QfGsZC4Lg2twhWY85KGyw7jkF8/9auxo7QJLZg=; b=hcSPq1E5ij67K0Qk2fT1g7MZoip3T++H6he7DXNcvqeFTKAiYl40oPkbhDN3ERq3Dl pKrFHCpH8snjKWWK+7MYTgDssOYb+gPH39/67xoIGnssmpYuc4s+Tfq5drIEKkAKICgH pKLk7uCvcV3pOAljgQezXbuaw/g5h/ObZRbNu3RC3AsrwIOjjOB45wY+deR/2W3tUFw6 /X3JTSfv+/g2njmPigCMvwSI1hvTszhgV6IcBc4IKquDXAyIhFOfcump5zE4mLdrQ3PP W0TNmSOFG/3qI9rKHb8PYx4KMqYA3PvKl1EMuCQXbqZF1QpBpEvMUVTszHOY9S4Jh9K5 wN6Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=w3Ny5QfGsZC4Lg2twhWY85KGyw7jkF8/9auxo7QJLZg=; b=L2YeqNwor+12lnO1knYBAwLkMmJUEqH9iTya2EialShi5r7huWVZkY0dWEExjhCUuK xp+9kg0CVnIZccXCkEvI/z+Umul+2ylKcUse+5RFKeAB07y/YcU4j+70ZvUnySy/ayZD Pgt3IdfOOAD17GruTmuPfEzWMyuiXQlwNCw3bmqvStkmkM9B/RQ0m71/hjpvkyjEBdk/ LPiz5wTPpaRjF/12x66d6vjArbRDxt/Z48wkmJKAa8BflJUqmOp1O72oLg73mV2MqGOA vOiJTf/kBZWLlWe421Nf3jeqtbD/+/c3F2MBEPTvMI3UHV02NNZAlaEhK4itgm+AxBwf oCEA==
X-Gm-Message-State: AG10YOTfkS7DWOiuLlNY4DwyJ9NjtogEEC/pNOer+Ck2f9kQ1A7AB+9GlebwZ7pOFgzxTZLbpYvFt3HdRTvfvQ==
MIME-Version: 1.0
X-Received: by 10.31.5.71 with SMTP id 68mr1041514vkf.157.1453809190609; Tue, 26 Jan 2016 03:53:10 -0800 (PST)
Received: by 10.31.83.71 with HTTP; Tue, 26 Jan 2016 03:53:10 -0800 (PST)
In-Reply-To: <970BC6A9-BDED-4743-9D40-7FAC266B53EF@dericed.com>
References: <67CC4B76-C58C-452C-BFA4-735D1469F5C5@dericed.com> <CAOXsMFJj=sEUXby1u0LBULw8Yzd1Om=WL0vsBh___Rv8U0Ex1Q@mail.gmail.com> <DA576560-1341-435D-B21A-2DB588745DD9@dericed.com> <5693DAF4.7090803@mediaarea.net> <9F069A81-015C-436E-96BE-CD014DD5591D@dericed.com> <5693F2AD.4080206@gmx.de> <5BBDFD1A-E2B2-40D8-B61D-1B4000B84372@dericed.com> <CAOXsMF+o+_2L=sbOitp6pjrtVC5pNW9-kuXoObytcPoB1vXdkQ@mail.gmail.com> <970BC6A9-BDED-4743-9D40-7FAC266B53EF@dericed.com>
Date: Tue, 26 Jan 2016 12:53:10 +0100
Message-ID: <CAOXsMF+atAmkHKGPR0sWfoQZi-HRGOvb_DCS7Oc_-ZsC8C33kg@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Dave Rice <dave@dericed.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/RzRNWWMlOAUDYDOQeFtqFafb0nU>
Cc: cellar@ietf.org
Subject: Re: [Cellar] Matroska Interlacement proposal draft (+ minver and webm in EBML Schemas)
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 11:53:14 -0000

2016-01-22 6:29 GMT+01:00 Dave Rice <dave@dericed.com>:
>
>> On Jan 14, 2016, at 7:13 AM, Steve Lhomme <slhomme@matroska.org> wrote:
>>
>> 2016-01-11 21:42 GMT+01:00 Dave Rice <dave@dericed.com>:
>>>
>>>> On Jan 11, 2016, at 1:21 PM, Sebastian G. <bastik> wrote:
>>>>
>>>> 11.01.2016, 18:08 Dave Rice:
>>>>> Update FlagInterlaced  version 3
>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>>>> Element Name: FlagInterlaced
>>>>> Level:        4
>>>>> ID:           [9A]
>>>>> Mandatory:    mand.
>>>>> Multiple:     -
>>>>> Range:  0-2
>>>>> Default:      0
>>>>> Type:         u
>>>>> Description:         A flag to declare is the video is known to be pr=
ogressive or interlaced and if applicable to declare details about the inte=
rlacement.
>>>>>                     0: undetermined
>>>>>                     1: interlacement (unknown field ordering)
>>>>
>>>> '(unknown field order)' is not required if it is split into to element=
s.
>>>> I have no preference for or against splitting it up.
>>>>
>>>>>                     2: progressive
>>>>>
>>>>> Element Name: FieldOrdering
>>>>> Level:        4
>>>>> ID:           [9D]
>>>>> Mandatory:    mand.
>>>>> Multiple:     -
>>>>> Range:  0-2
>>>>> Default:      0
>>>>> Type:         u
>>>>> Description:  Declare the field ordering of the video. If FlagInterla=
ced is not set to 1, this Element MUST be ignored.
>>>>>
>>>>> 0       undetermined
>>>>> 1       interlaced (bottom field first)
>>>>> 2       interlaced (top field first)
>>>>
>>>> I think that using '0' as no statement is a good decision.
>>>
>>> [=E2=80=A6]
>>>
>>> Based on comments, I made the following patch. I also renamed the propo=
sed =E2=80=9CFieldOrdering=E2=80=9D element to =E2=80=9CField Order=E2=80=
=9D and change the meaning of FlagInterlaced=3D1 to simply =E2=80=9Cinterla=
ced=E2=80=9D.
>>>
>>> Creating the patch for specdata.xml brought up two new issues:
>>>
>>> The format of specdata.xml includes an attribute called =E2=80=98minver=
=E2=80=99 to refer to which version of Matroska began supporting the elemen=
t. According to matroska.org "Version 4 is currently work in progress. Ther=
e may be further additions to v4.=E2=80=9D; however there has been no disti=
nction within specdata.xml between =E2=80=98in progress=E2=80=99 and offici=
al. Perhaps Matroska should mark version 4 as official as-is and the ongoin=
g work within CELLAR would work towards a release of version 5. In the patc=
h below I used minver=3D=E2=80=9C5RC=E2=80=9D as (version 5 release candida=
te) in infer that it is not official (yet).
>>>
>>> Also specdata.xml includes a boolean attribute to say if the element is=
 supported by webm. FlagInterlaced is supported by webm (as correlates to h=
ttp://www.webmproject.org/docs/container/), but I=E2=80=99m leaving webm=3D=
=E2=80=9C1=E2=80=9D off of the new element =E2=80=9CFieldOrder=E2=80=9D (as=
 I=E2=80=99m not on that team).
>>>
>>> From 5d7f7b8122232c20a3e39de70d587f684b48cd2f Mon Sep 17 00:00:00 2001
>>> From: dericed <dave@dericed.com>
>>> Date: Mon, 11 Jan 2016 15:11:26 -0500
>>> Subject: [PATCH] clarify FlagInterlaced and add FieldOrder element
>>>
>>> ---
>>> spectool/specdata.xml | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/spectool/specdata.xml b/spectool/specdata.xml
>>> index 57abb97..2167e15 100644
>>> --- a/spectool/specdata.xml
>>> +++ b/spectool/specdata.xml
>>> @@ -109,7 +109,8 @@ between two successive fields at the output of the =
decoding process (see <a href
>>>   <element name=3D"TrackTranslateCodec" level=3D"4" id=3D"0x66BF" type=
=3D"uinteger" mandatory=3D"1" minver=3D"1" webm=3D"0">The <a href=3D"http:/=
/www.matroska.org/technical/specs/index.html#ChapProcessCodecID">chapter co=
dec</a> using this ID (0: Matroska Script, 1: DVD-menu).</element>
>>>   <element name=3D"TrackTranslateTrackID" level=3D"4" id=3D"0x66A5" typ=
e=3D"binary" mandatory=3D"1" minver=3D"1" webm=3D"0">The binary value used =
to represent this track in the chapter codec data. The format depends on th=
e <a href=3D"http://www.matroska.org/technical/specs/index.html#ChapProcess=
CodecID">ChapProcessCodecID</a> used.</element>
>>>   <element name=3D"Video" cppname=3D"TrackVideo" level=3D"3" id=3D"0xE0=
" type=3D"master" minver=3D"1">Video settings.</element>
>>> -  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" lev=
el=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" webm=3D=
"1" default=3D"0" range=3D"0-1">Set if the video is interlaced. (1 bit)</el=
ement>
>>> +  <element name=3D"FlagInterlaced" cppname=3D"VideoFlagInterlaced" lev=
el=3D"4" id=3D"0x9A" type=3D"uinteger" mandatory=3D"1" minver=3D"2" webm=3D=
"1" default=3D"0" range=3D"0-2">A flag to declare is the video is known to =
be progressive or interlaced and if applicable to declare details about the=
 interlacement. (0: undetermined, 1: interlaced, 2: progressive)</element>
>>> +  <element name=3D"FieldOrder" cppname=3D"VideoFieldOrder" level=3D"4"=
 id=3D"0x9D" type=3D"uinteger" mandatory=3D"1" minver=3D"5RC" default=3D"0"=
 range=3D"0-2">Declare the field ordering of the video. If FlagInterlaced i=
s not set to 1, this Element MUST be ignored. (0: undetermined, 1: interlac=
ed with bottom field first, 2: interlaced with top field first)</element>
>>
>> I'll have to check if the spec generating tools supports minver as a
>> non integer before merging this.
>
> So perhaps we should have a separate xml for drafting while the work on t=
he version is underway. Such as:
>
> - specdata.xml (as the official version 4 EBML Schema)
> - specdata_v5_draft.xml as a working document to patch to until Matroska =
version 5 is deemed official

Sounds like a good plan.

>>>   <element name=3D"StereoMode" cppname=3D"VideoStereoMode" level=3D"4" =
id=3D"0x53B8" type=3D"uinteger" minver=3D"3" webm=3D"1" default=3D"0">Stere=
o-3D video mode (0: mono, 1: side by side (left eye is first), 2: top-botto=
m (right eye is first), 3: top-bottom (left eye is first), 4: checkboard (r=
ight is first), 5: checkboard (left is first), 6: row interleaved (right is=
 first), 7: row interleaved (left is first), 8: column interleaved (right i=
s first), 9: column interleaved (left is first), 10: anaglyph (cyan/red), 1=
1: side by side (right eye is first), 12: anaglyph (green/magenta), 13 both=
 eyes laced in one Block (left eye is first), 14 both eyes laced in one Blo=
ck (right eye is first)) . There are some more details on <a href=3D"http:/=
/www.matroska.org/technical/specs/notes.html#3D">3D support in the Specific=
ation Notes</a>.</element>
>>>   <element name=3D"AlphaMode" cppname=3D"VideoAlphaMode" level=3D"4" id=
=3D"0x53C0" type=3D"uinteger" minver=3D"3" webm=3D"1" default=3D"0">Alpha V=
ideo Mode. Presence of this element indicates that the BlockAdditional elem=
ent could contain Alpha data.</element>  <element name=3D"OldStereoMode" le=
vel=3D"4" id=3D"0x53B9" type=3D"uinteger" maxver=3D"0" webm=3D"0" divx=3D"0=
">DEPRECATED, DO NOT USE. Bogus StereoMode value used in old versions of li=
bmatroska. (0: mono, 1: right eye, 2: left eye, 3: both eyes).</element>
>>>   <element name=3D"PixelWidth" cppname=3D"VideoPixelWidth" level=3D"4" =
id=3D"0xB0" type=3D"uinteger" mandatory=3D"1" minver=3D"1" range=3D"not 0">=
Width of the encoded video frames in pixels.</element>
>>> --
>>> 2.6.4
>>>
>>> Best Regards,
>>> Dave Rice
>>> _______________________________________________
>>> Cellar mailing list
>>> Cellar@ietf.org
>>> https://www.ietf.org/mailman/listinfo/cellar
>>
>>
>>
>> --
>> Steve Lhomme
>> Matroska association Chairman
>



--=20
Steve Lhomme
Matroska association Chairman


From nobody Tue Jan 26 04:34:44 2016
Return-Path: <slhomme@matroska.org>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F0A441B2FE2 for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 04:34:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1A-pAvzti2Fz for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 04:34:41 -0800 (PST)
Received: from mail-vk0-x231.google.com (mail-vk0-x231.google.com [IPv6:2607:f8b0:400c:c05::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9D18D1B2FDD for <cellar@ietf.org>; Tue, 26 Jan 2016 04:34:41 -0800 (PST)
Received: by mail-vk0-x231.google.com with SMTP id n1so90472529vkb.3 for <cellar@ietf.org>; Tue, 26 Jan 2016 04:34:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=matroska-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=hjju2UazV9JGsgFpx7K/NXRrWjumnre0H5VxI6wyfUY=; b=l47N6xpqlPEOdCGCuwRjCjqxRCNC8TonVPTkhA1iw7pSoNTAkdM9ng/KwkrnEvmuWG RgL5mh5nRsy9HCx9Bs/eiS1mkcIU5YII3DOnRkRg9iM3b3S3KlV7Q1nUSkIksqKtrru0 x8qHpJ+8Mc4nd+6m/OyWyV85A9dRUtjWFT0XiIDxbur7cPorLMmDPlLmXwyU/xCOnDAi sRfgVjFTXiBgO38iDbSpBXaaHNxx0ogo3QcLbjlkzlhsV8GWpcjChzAeYiuKXXBPZ3Xf ZGpLs8uigcVSjalyk9ao5DV3G3xnftCi2egVdw49KYOISfkh+kz68jte4oX11Y8rKMht +BWg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=hjju2UazV9JGsgFpx7K/NXRrWjumnre0H5VxI6wyfUY=; b=lFNVAkv8SyyQ6ke+0JWcuX7XFY0ImA6s2XZEyc29Jrop338ZKzbHyHfRaFHsqepcbJ Q5Xl2apNqxCyXymdpNKCCsOBzaFgOkncimMaTkOxZtsNHDK0nHTyuRf13HLvD8ILVHg5 l96/nO7jU6c3b7aj4Tcl6ylBJnHS2YsMo0lUhxbrszSusryDvd8yNhtg9aBVJSI5tSYS T9O5azNxtwDGmzn/Hs2qqmpnG1V2f4ks+JmgUgMgT8dpwL8NH3ZbZWzN2Uk5XDwJu2/W 5M7qEOBZv6GUN4w8IeBNcqTU+37G7jgTZ1xuYWxiaxyG+VciGvO23HJeGYymXP4fioY7 c5Tw==
X-Gm-Message-State: AG10YOQgm86dqfBwBeU9hYuyVX/KOG8nrQ9VG+lD5J6OkbgonWg88lvrWmTicGWV3bdk4t5hmyO42JYUsoysNQ==
MIME-Version: 1.0
X-Received: by 10.31.47.205 with SMTP id v196mr14176325vkv.18.1453811680732; Tue, 26 Jan 2016 04:34:40 -0800 (PST)
Received: by 10.31.83.71 with HTTP; Tue, 26 Jan 2016 04:34:40 -0800 (PST)
In-Reply-To: <CAC9y1U=-CEKa1Wjq1pXbE-Harh9BO=265b7vgmnSvTimnjgNDA@mail.gmail.com>
References: <CAC9y1U=-CEKa1Wjq1pXbE-Harh9BO=265b7vgmnSvTimnjgNDA@mail.gmail.com>
Date: Tue, 26 Jan 2016 13:34:40 +0100
Message-ID: <CAOXsMFK_ASms4srarfadBKqA4v7Vd_FAVbO7DPgdS5hOtsV23A@mail.gmail.com>
From: Steve Lhomme <slhomme@matroska.org>
To: Nithin Mathew Kurien <nithinmkurien@gmail.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/hVmfi5xC5We9J2wLt24ENQs-yik>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] Depth offsets for subtitles in case of 3D MVC tracks in MKV files
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 12:34:43 -0000

2016-01-25 15:09 GMT+01:00 Nithin Mathew Kurien <nithinmkurien@gmail.com>:
> Hi,
>
> Playback of 3D MVC tracks in MKV files is now possible through LAV
> splitter and madVR. I would like to request an information field in

Sounds great !

> Matroska that specifies the depth offsets for subtitles when playing
> such video files. According to the Blu-ray whitepaper
> (http://www.blu-raydisc.com/assets/Downloadablefile/BD-ROM-AV-WhitePaper_110712.pdf),
> the way it is done in 3D Blu-rays is like this. The MVC track can have
> up to 32 Offset Metadata Sequences (OFS, also called 3D offsets in
> TSMuxer). An Offset Metadata Sequence has one depth offset (in pixels,
> either in front of or behind the plane of the screen) for each video
> frame. Each subtitle and menu track has one of these 32 Offset
> Metadata Sequences assigned to it in the M2TS file. In this way, when
> a 3D Blu-ray is being played, the subtitle or menu track can be
> displayed at the proper depth in 3D space (otherwise it would cut
> through the objects in the video, disrupting the viewing experience).
> Currently, there is no means for specifying the 3D depth of subtitles
> when playing 3D MVC MKVs. I would like to request support for the
> same.

I'm not sure I understand. Is the offset per track or per frame for
the subtitle ? If it's per track it should go in the Track Info. If
not that means a mechanism to add that information for each frame.
Maybe BlockGroup could help.

> Thanks and regards,
> Nithin
>
> _______________________________________________
> Cellar mailing list
> Cellar@ietf.org
> https://www.ietf.org/mailman/listinfo/cellar



-- 
Steve Lhomme
Matroska association Chairman


From nobody Tue Jan 26 05:39:26 2016
Return-Path: <nithinmkurien@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F25E01A8A7E for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 05:39:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.739
X-Spam-Level: 
X-Spam-Status: No, score=-1.739 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, HTML_OBFUSCATE_05_10=0.26, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id u_lPple87fo2 for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 05:39:22 -0800 (PST)
Received: from mail-yk0-x22b.google.com (mail-yk0-x22b.google.com [IPv6:2607:f8b0:4002:c07::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 86AA61A8A79 for <cellar@ietf.org>; Tue, 26 Jan 2016 05:39:22 -0800 (PST)
Received: by mail-yk0-x22b.google.com with SMTP id u68so70300417ykd.2 for <cellar@ietf.org>; Tue, 26 Jan 2016 05:39:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=fAh3JQbEBtcwmKKmc1yULaEvpNMpooKX6LJQf+dKnE0=; b=EyU+MXA66aKsgBaChRDgJ0K+FRP9ISCMIyJpAyQtC8BfVPYDBub8gXuxf1agkmtCbh YNfK0iOEfPh3fk8Cf7VkocQJFxoKEc0FRGPZkQqFSznPCdtSn+dPanfEdXXOxk7xvobO AzOkjNwWjzLDCvMDf+r3DHMW9KIg6aDFkQ7CQxpsXi+fnhNsVn7jwxMPdh5f0MhZ25fA aF0JVJYjq3Vi5XFzh7n87XkrkR+ntbyR1mSy0uduv7iJ0robCqWomaTmu47q/wVmI67r 4sfn1YvW12ZhyGCOUlEpgka/sb7B3SH2m24qNXUhuRpdn1jAWzAI33zr8McNmdxtNXU7 BM7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=fAh3JQbEBtcwmKKmc1yULaEvpNMpooKX6LJQf+dKnE0=; b=HiiTxc+/OJsq/kd1fLH81BnZ1Os6O6iuwycPXi5Q/4RpJ62Vjp2Yo6N0QwFrYHhTXr wZpiNVAN9FSPVIEgnRhq0Ag8PdZQgWjgYBlmDvf9xDuINK913erHVVxRBRSDX7wOHgqb c7jESTDishfG2kdMNXPFnm8qm11O8nFl1hphViqdv+StGxN0wU9Hd8KAnvD3Pzh2qIe0 xJJdJphGm8ZK0tcQw2LZe3tlJSIbdGZUNvE/zfjtwXU0qW2d6uYlNOjTwKyeokaP/Iff N/YrgWJi6bfFkMA25wbWGPpghD3Lx0x0uO3cNg2CtpBukrCtw8h3xaC7DwJdCYRoUafz FUgw==
X-Gm-Message-State: AG10YOR6S2pODDZ3mTF/wzmPS627bXEdNgM8fSJhrQacZ4c2YAS042KApc86UXvoWqVhT71r4+F3D7xzBWrAvw==
MIME-Version: 1.0
X-Received: by 10.129.49.201 with SMTP id x192mr11520381ywx.8.1453815561914; Tue, 26 Jan 2016 05:39:21 -0800 (PST)
Received: by 10.129.113.133 with HTTP; Tue, 26 Jan 2016 05:39:21 -0800 (PST)
In-Reply-To: <CAJg10PJd6LQGsZSDNETMhvwPPsE=g-+N8Y5czPuaJRzeTNCPPQ@mail.gmail.com>
References: <CAC9y1U=-CEKa1Wjq1pXbE-Harh9BO=265b7vgmnSvTimnjgNDA@mail.gmail.com> <CAOXsMFK_ASms4srarfadBKqA4v7Vd_FAVbO7DPgdS5hOtsV23A@mail.gmail.com> <CAJg10PJd6LQGsZSDNETMhvwPPsE=g-+N8Y5czPuaJRzeTNCPPQ@mail.gmail.com>
Date: Tue, 26 Jan 2016 19:09:21 +0530
Message-ID: <CAC9y1UnhgsP6FDJuKheYdOBCs0PR_AdjETepMRE3ovrTJb_evQ@mail.gmail.com>
From: Nithin Mathew Kurien <nithinmkurien@gmail.com>
To: Steve Lhomme <slhomme@matroska.org>, madshi <madshi@gmail.com>
Content-Type: multipart/alternative; boundary=001a11421f702310c5052a3cd04c
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/GecLyPLd1_ZWeLYONS2_j7dfHO0>
Cc: Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>, cellar@ietf.org
Subject: Re: [Cellar] [Matroska-devel] Depth offsets for subtitles in case of 3D MVC tracks in MKV files
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 13:39:25 -0000

--001a11421f702310c5052a3cd04c
Content-Type: text/plain; charset=UTF-8

Hi,

It's like this. Suppose the MVC video track has 8 frames. Also suppose it
has 5 Offset Metadata Sequences embedded in it at the time of encoding.
(Sequence entries are in pixels, positive if in front of the screen, and
negative if behind.)

*Frame*  *1  2  3  4  5  6  7  8*
*Seq1*    5  1 -8 -2 -9  1 -3 -1
*Seq2*    8  1  0  8 -4 -5  4 -1
*Seq3*   -2  8 -3 -5  7  5 -5 -4
*Seq4*    9  0  0 -5 -2  1 -4 -1
*Seq5*   -9  3 -2 -4 -6  0 -3  6

If the M2TS container has 2 subtitle tracks P1, P2 and 1 menu track I1,
then a mapping can be defined in the M2TS container like this:
P1 : Seq1
P2 : Seq3
I1  : Seq4

So basically, *the sequences are defined in the MVC track and the mapping
is defined in the M2TS container.* If this mapping is not defined in the
container, the player would display the subtitle or menu track at the plane
of the screen. Thus the outcome would be as if a sequence whose all entries
are 0, is assigned to the subtitle or menu track. This has been a problem
with the few hardware media players supporting MVC inside MKV, for example
the Mede8er ones (http://www.mede8erforum.com/index.php?topic=9624.0).

Ideally, a menu track should be displayed in front of the subtitle track,
which should be in front of the video track. This can be done through the
proper definitions of sequences and mappings. The free program
MVCPlanes2OFS.exe from the package BD3D2MK3D (
http://forum.doom9.org/showthread.php?t=170828) can display all Offset
Metadata Sequences embedded in a .MVC file.

Thanks and regards,
Nithin


On Tue, Jan 26, 2016 at 6:46 PM, madshi <madshi@gmail.com> wrote:

> 2016-01-26 13:34 GMT+01:00 Steve Lhomme via Matroska-devel
> <matroska-devel@lists.matroska.org>:
> > I'm not sure I understand. Is the offset per track or per frame for
> > the subtitle ? If it's per track it should go in the Track Info. If
> > not that means a mechanism to add that information for each frame.
> > Maybe BlockGroup could help.
>
> The 3D Blu-Ray spec says:
>
> > P.9.3.3.6 Offset metadata
> > The offset_metadata() shall be stored in the user data container
> > (defined in 9.16.3.1) which is contained in MVC scalable nesting
> > SEI message of the first view component of each GOP of MPEG-4
> > MVC Dependent view video stream in decoding order.
>
> I'm not a big expert on these things, but doesn't that mean it's part
> of the MVC video bitstream? In that case there's probably no need to
> store it in separate MKV fields/properties?
>
> Best regards, Mathias.
>

--001a11421f702310c5052a3cd04c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<br><br>It&#39;s like this. Suppose the MVC video track=
 has 8 frames. Also suppose it has 5 Offset Metadata Sequences embedded in =
it at the time of encoding. (Sequence entries are in pixels, positive if in=
 front of the screen, and negative if behind.)<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<br><b>Frame</b>=C2=A0=
=C2=A0<b>1 =C2=A02 =C2=A03 =C2=A04 =C2=A05 =C2=A06 =C2=A07 =C2=A08</b><br><=
b>Seq1</b>=C2=A0 =C2=A0 5 =C2=A01 -8 -2 -9 =C2=A01 -3 -1<br><b>Seq2</b>=C2=
=A0 =C2=A0 8 =C2=A01 =C2=A00 =C2=A08 -4 -5 =C2=A04 -1<br><b>Seq3</b>=C2=A0 =
=C2=A0-2 =C2=A08 -3 -5 =C2=A07 =C2=A05 -5 -4<br><b>Seq4</b>=C2=A0 =C2=A0 9 =
=C2=A00 =C2=A00 -5 -2 =C2=A01 -4 -1<br><b>Seq5</b>=C2=A0 =C2=A0-9 =C2=A03 -=
2 -4 -6 =C2=A00 -3 =C2=A06<br><div><br></div><div>If the M2TS container has=
 2 subtitle tracks P1, P2 and 1 menu track I1, then a mapping can be define=
d in the M2TS container like this:</div><div>P1 : Seq1</div><div>P2 : Seq3<=
/div><div>I1 =C2=A0: Seq4</div><div><br></div><div>So basically, <b>the seq=
uences are defined in the MVC track and the mapping is defined in the M2TS =
container.</b> If this mapping is not defined in the container, the player =
would display the subtitle or menu track at the plane of the screen. Thus t=
he outcome would be as if a sequence whose all entries are 0, is assigned t=
o the subtitle or menu track. This has been a problem with the few hardware=
 media players supporting MVC inside MKV, for example the Mede8er ones (<a =
href=3D"http://www.mede8erforum.com/index.php?topic=3D9624.0">http://www.me=
de8erforum.com/index.php?topic=3D9624.0</a>).</div><div><br></div><div>Idea=
lly, a menu track should be displayed in front of the subtitle track, which=
 should be in front of the video track. This can be done through the proper=
 definitions of sequences and mappings. The free program MVCPlanes2OFS.exe =
from the package BD3D2MK3D (<a href=3D"http://forum.doom9.org/showthread.ph=
p?t=3D170828">http://forum.doom9.org/showthread.php?t=3D170828</a>) can dis=
play all Offset Metadata Sequences embedded in a .MVC file.</div><div><br><=
/div><div>Thanks and regards,</div><div>Nithin</div><div><br></div></div><d=
iv class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Tue, Jan 26, 201=
6 at 6:46 PM, madshi <span dir=3D"ltr">&lt;<a href=3D"mailto:madshi@gmail.c=
om" target=3D"_blank">madshi@gmail.com</a>&gt;</span> wrote:<br><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">2016-01-26 13:34 GMT+01:00 Steve Lhomme via Matroska-de=
vel<br>
&lt;<a href=3D"mailto:matroska-devel@lists.matroska.org">matroska-devel@lis=
ts.matroska.org</a>&gt;:<br>
<span class=3D"">&gt; I&#39;m not sure I understand. Is the offset per trac=
k or per frame for<br>
&gt; the subtitle ? If it&#39;s per track it should go in the Track Info. I=
f<br>
&gt; not that means a mechanism to add that information for each frame.<br>
&gt; Maybe BlockGroup could help.<br>
<br>
</span>The 3D Blu-Ray spec says:<br>
<br>
&gt; P.9.3.3.6 Offset metadata<br>
&gt; The offset_metadata() shall be stored in the user data container<br>
&gt; (defined in 9.16.3.1) which is contained in MVC scalable nesting<br>
&gt; SEI message of the first view component of each GOP of MPEG-4<br>
&gt; MVC Dependent view video stream in decoding order.<br>
<br>
I&#39;m not a big expert on these things, but doesn&#39;t that mean it&#39;=
s part<br>
of the MVC video bitstream? In that case there&#39;s probably no need to<br=
>
store it in separate MKV fields/properties?<br>
<br>
Best regards, Mathias.<br>
</blockquote></div><br></div>

--001a11421f702310c5052a3cd04c--


From madshi@gmail.com  Tue Jan 26 05:16:41 2016
Return-Path: <madshi@gmail.com>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E527E1A8993 for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 05:16:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1dHLnrTbTkjr for <cellar@ietfa.amsl.com>; Tue, 26 Jan 2016 05:16:40 -0800 (PST)
Received: from mail-yk0-x235.google.com (mail-yk0-x235.google.com [IPv6:2607:f8b0:4002:c07::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3D25D1A8992 for <cellar@ietf.org>; Tue, 26 Jan 2016 05:16:40 -0800 (PST)
Received: by mail-yk0-x235.google.com with SMTP id a85so198249287ykb.1 for <cellar@ietf.org>; Tue, 26 Jan 2016 05:16:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=X3QUsWgVad2rC7EsoOvgzDuNoNoNJBCPBk/W9yqIfMA=; b=D9BlMFLQIrg45HTg55uQteHqpV57FPTI6lqV7/CGFNgtYu/KLtKs83sQwTY/fKr1Bw ngj5MBcj+oRDMvCtYh9REFrxQO3rcPD1qjOSbzuPeNsuf8h044YR0/MD58098CEm8nM1 58hJaWXBXrIdxFBkadbVE82geFH6bD8euPP+DDBznVVsNOQ5kpHDVf8UCLTUwXPwGdOC C0CtL1t3aNLq8HSI3B+S+MWdA4JD5/juvworuyzIR1eAjIIoVBGjXRWPVJauqYwwx8mq +7ilTUjqU3zDkzD189DA6QefavpeBISzUeiT8PxAqF/GYNXVcnzNHdNfzG8sp4eHVS4M NO8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=X3QUsWgVad2rC7EsoOvgzDuNoNoNJBCPBk/W9yqIfMA=; b=hh/mPDE7i48MhbR+F1/hmkWS4FwBGvwbygWWqKvoNA4SJ3wxi7SbsaBdNLjjdw5O6m 6/CjtPjCJ6GrMcbDwNBvp1D1FdeSaQ9IRlSZI6DipPUcm5e9MS1gFX9OXkCQuzzxaTF6 +kv2/7jRfUINtaBxv+L0ygFC6aqFhBST4YP01l7daOv9Hy5JKklVgXiH7HYvdZTSuTZO 274hzX6rBhzH0Iag148ByjT0nQrCLwhAxXWDe4tllgcWEEoim96+TnC1uMd8vCGEteuz bR2UglX6p62UjxGdCF0bFl4Oo/8XX+7r8Y1p/u7lGt3ond4UK1oxPkHMfjoe9rOJmFfW kLEw==
X-Gm-Message-State: AG10YOSulzpHIyiZHaP9SRcWMx9cm47yov7TxCtx99IYsdeytgdil+HdXe6t1KZygBNbQl/k55WdGuckjnfA+g==
MIME-Version: 1.0
X-Received: by 10.129.80.131 with SMTP id e125mr11266380ywb.90.1453814199483;  Tue, 26 Jan 2016 05:16:39 -0800 (PST)
Received: by 10.37.209.139 with HTTP; Tue, 26 Jan 2016 05:16:39 -0800 (PST)
In-Reply-To: <CAOXsMFK_ASms4srarfadBKqA4v7Vd_FAVbO7DPgdS5hOtsV23A@mail.gmail.com>
References: <CAC9y1U=-CEKa1Wjq1pXbE-Harh9BO=265b7vgmnSvTimnjgNDA@mail.gmail.com> <CAOXsMFK_ASms4srarfadBKqA4v7Vd_FAVbO7DPgdS5hOtsV23A@mail.gmail.com>
Date: Tue, 26 Jan 2016 14:16:39 +0100
Message-ID: <CAJg10PJd6LQGsZSDNETMhvwPPsE=g-+N8Y5czPuaJRzeTNCPPQ@mail.gmail.com>
From: madshi <madshi@gmail.com>
To: Steve Lhomme <slhomme@matroska.org>,  Discussion about the current and future development of Matroska <matroska-devel@lists.matroska.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/cellar/Tu8WtOMOx2diw5ZZnV1LrE2oJ1U>
X-Mailman-Approved-At: Tue, 26 Jan 2016 08:21:17 -0800
Cc: cellar@ietf.org, Nithin Mathew Kurien <nithinmkurien@gmail.com>
Subject: Re: [Cellar] [Matroska-devel] Depth offsets for subtitles in case of 3D MVC tracks in MKV files
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Jan 2016 13:17:11 -0000

2016-01-26 13:34 GMT+01:00 Steve Lhomme via Matroska-devel
<matroska-devel@lists.matroska.org>:
> I'm not sure I understand. Is the offset per track or per frame for
> the subtitle ? If it's per track it should go in the Track Info. If
> not that means a mechanism to add that information for each frame.
> Maybe BlockGroup could help.

The 3D Blu-Ray spec says:

> P.9.3.3.6 Offset metadata
> The offset_metadata() shall be stored in the user data container
> (defined in 9.16.3.1) which is contained in MVC scalable nesting
> SEI message of the first view component of each GOP of MPEG-4
> MVC Dependent view video stream in decoding order.

I'm not a big expert on these things, but doesn't that mean it's part
of the MVC video bitstream? In that case there's probably no need to
store it in separate MKV fields/properties?

Best regards, Mathias.

