From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BA264C433E0 for ; Fri, 3 Jul 2020 08:41:15 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8A968206DF for ; Fri, 3 Jul 2020 08:41:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="J6YVH3/a" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8A968206DF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C604E6E190; Fri, 3 Jul 2020 08:41:14 +0000 (UTC) Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by gabe.freedesktop.org (Postfix) with ESMTPS id C54A66E190 for ; Fri, 3 Jul 2020 08:41:13 +0000 (UTC) Received: by mail-wm1-x341.google.com with SMTP id 22so31256405wmg.1 for ; Fri, 03 Jul 2020 01:41:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:autocrypt:organization:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=kt8TSgbgg/MAp+KoxiuXEC1DIHK29TFfF5Yaj2aznOg=; b=J6YVH3/auHGVcz0zLf39fb1vxgmNRfhXbGOZQWSuzRsO3Ks1GolBdgn1wBH9CJIPS5 V2qpqqLa2sJXdrRYDvPIjUzYFobqFsPPUUv2CDyZM2ZNiEZxSrl1BzGCq09wmgB+F2oA Ymepg0212OvVQalSJ+39ro5qR1QcdxLZAGwCYe+RZ7lchlxcUTVjComJVBJix4gxdp0V uuUtiwKON4WGvBWZs+3CjFYX4UUPOGty+uf+8/1LMsQj3o67jHCz07DFz9nZw8W0MwpE 77QnBq8Vx23HwMuFsrIcPiKIteSlRcAP3cT2duBAPjbOl4WB5bm2dh1vVjyipxb/ASqz 6Qkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:autocrypt :organization:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=kt8TSgbgg/MAp+KoxiuXEC1DIHK29TFfF5Yaj2aznOg=; b=kKkK8lApGz65YNN9tvxgIKQKodErhRZHb12emXboaA/P+R0kbYD9AvEbTNiN6L1VY8 hg7bLF03FpSkh3mhBwbErgDtZXb3gWT78f+bxNs4dw1TTEUI+RKVQZpT6FXkBFODh5hs D3Pu4WT4q4sY7kVoWjjMRi8lu9Bn5xZigS6SyhiTN5/tNW07N5/f4uk7FqaPhZuPsrd6 CVAeB3vIle5goqQLlaHtS05nyGbPpJvHOByJlnTlUsdWVLT4j6Ucq8xJ2r2tNbsKRk46 In0Yp0R92qB9Twl6nXX7+PX4Rjnjy7vKu/M6Ru2i2LIhwpGPhJT9ac95xGIXUNyal4sH TmXg== X-Gm-Message-State: AOAM533+EoS31nK05YdNFHb8nPk48L5An+FGzzqs/RTumvGF0uKZCNJA hUevlWQZjLuJNhcMjSIhub9tDgMz3g5cuw== X-Google-Smtp-Source: ABdhPJwTLwO4M65mjltRy4UKRYarKHDEaC3LPVxu/kbMXNOKIbU+zjGEYK/IWSmUtu4/suL5F+EVcg== X-Received: by 2002:a1c:2d83:: with SMTP id t125mr36497220wmt.187.1593765671825; Fri, 03 Jul 2020 01:41:11 -0700 (PDT) Received: from ?IPv6:2a01:e35:2ec0:82b0:6959:e617:6562:cabf? ([2a01:e35:2ec0:82b0:6959:e617:6562:cabf]) by smtp.gmail.com with ESMTPSA id x5sm13218677wmg.2.2020.07.03.01.41.10 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Jul 2020 01:41:11 -0700 (PDT) Subject: Re: [PATCH v2] drm/fourcc: Add bayer formats and modifiers To: Laurent Pinchart , Sakari Ailus References: <20200521235201.279642-1-niklas.soderlund@ragnatech.se> <20200525103143.GF7618@paasikivi.fi.intel.com> <20200702215155.GU12562@pendragon.ideasonboard.com> From: Neil Armstrong Autocrypt: addr=narmstrong@baylibre.com; prefer-encrypt=mutual; keydata= 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 BSwxi7g3Mu7u5kUByanqHyA= Organization: Baylibre Message-ID: <48441a19-dbf3-feeb-b00c-78e61fd665dc@baylibre.com> Date: Fri, 3 Jul 2020 10:41:10 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200702215155.GU12562@pendragon.ideasonboard.com> Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?Q?Niklas_S=c3=b6derlund?= , libcamera-devel@lists.libcamera.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgTmlrbGFzLAoKT24gMDIvMDcvMjAyMCAyMzo1MSwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToK PiBIaSBTYWthcmksCj4gCj4gT24gTW9uLCBNYXkgMjUsIDIwMjAgYXQgMDE6MzE6NDNQTSArMDMw MCwgU2FrYXJpIEFpbHVzIHdyb3RlOgo+PiBPbiBGcmksIE1heSAyMiwgMjAyMCBhdCAwMTo1Mjow MUFNICswMjAwLCBOaWtsYXMgU8O2ZGVybHVuZCB3cm90ZToKPj4+IEJheWVyIGZvcm1hdHMgYXJl IHVzZWQgd2l0aCBjYW1lcmFzIGFuZCBjb250YWluIGdyZWVuLCByZWQgYW5kIGJsdWUKPj4+IGNv bXBvbmVudHMsIHdpdGggYWx0ZXJuYXRpbmcgbGluZXMgb2YgcmVkIGFuZCBncmVlbiwgYW5kIGJs dWUgYW5kIGdyZWVuCj4+PiBwaXhlbHMgaW4gZGlmZmVyZW50IG9yZGVycy4gRm9yIGVhY2ggYmxv Y2sgb2YgMngyIHBpeGVscyB0aGVyZSBpcyBvbmUKPj4+IHBpeGVsIHdpdGggYSByZWQgZmlsdGVy LCB0d28gd2l0aCBhIGdyZWVuIGZpbHRlciwgYW5kIG9uZSB3aXRoIGEgYmx1ZQo+Pj4gZmlsdGVy LiBUaGUgZmlsdGVycyBjYW4gYmUgYXJyYW5nZWQgaW4gZGlmZmVyZW50IHBhdHRlcm5zLgo+Pj4K Pj4+IEFkZCBEUk0gZm91cmNjIGZvcm1hdHMgdG8gZGVzY3JpYmUgdGhlIG1vc3QgY29tbW9uIEJh eWVyIGZvcm1hdHMuIEFsc28KPj4+IGFkZCBhIG1vZGlmaWVycyB0byBkZXNjcmliZSB0aGUgY3Vz dG9tIHBhY2tpbmcgbGF5b3V0cyB1c2VkIGJ5IHRoZSBJbnRlbAo+Pj4gSVBVMyBhbmQgaW4gdGhl IE1JUEkgKE1vYmlsZSBJbmR1c3RyeSBQcm9jZXNzb3IgSW50ZXJmYWNlKSBDU0ktMgo+Pj4gc3Bl Y2lmaWNhdGlvbi4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBOaWtsYXMgU8O2ZGVybHVuZCA8bmlr bGFzLnNvZGVybHVuZEByYWduYXRlY2guc2U+Cj4+PiAtLS0KPj4+ICogQ2hhbmdlcyBzaW5jZSB2 MQo+Pj4gLSBSZW5hbWUgdGhlIGRlZmluZXMgZnJvbSBEUk1fRk9STUFUX1NSR0dCOCB0byBEUk1f Rk9STUFUX0JBWUVSX1JHR0I4Lgo+Pj4gLSBVcGRhdGUgdGhlIGZvdXJjYyBjb2RlcyBwYXNzZWQg dG8gZm91cmNjX2NvZGUoKSB0byBhdm9pZCBhIGNvbmZsaWN0Lgo+Pj4gLSBBZGQgZGlhZ3JhbXMg Zm9yIGFsbCBCYXllciBmb3JtYXRzIG1lbW9yeSBsYXlvdXQuCj4+PiAtIFVwZGF0ZSBkb2N1bWVu dGF0aW9uLgo+Pj4gLS0tCj4+PiAgaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNjLmggfCAyMDUg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAy MDUgaW5zZXJ0aW9ucygrKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2Ry bV9mb3VyY2MuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oCj4+PiBpbmRleCA4YmMw YjMxNTk3ZDgwNzM3Li5kMDdkZDI0YjQ5YmRlNmMxIDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS91 YXBpL2RybS9kcm1fZm91cmNjLmgKPj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJj Yy5oCj4+PiBAQCAtMjg1LDYgKzI4NSw3MyBAQCBleHRlcm4gIkMiIHsKPj4+ICAjZGVmaW5lIERS TV9GT1JNQVRfWVVWNDQ0CWZvdXJjY19jb2RlKCdZJywgJ1UnLCAnMicsICc0JykgLyogbm9uLXN1 YnNhbXBsZWQgQ2IgKDEpIGFuZCBDciAoMikgcGxhbmVzICovCj4+PiAgI2RlZmluZSBEUk1fRk9S TUFUX1lWVTQ0NAlmb3VyY2NfY29kZSgnWScsICdWJywgJzInLCAnNCcpIC8qIG5vbi1zdWJzYW1w bGVkIENyICgxKSBhbmQgQ2IgKDIpIHBsYW5lcyAqLwo+Pj4gIAo+Pj4gKy8qCj4+PiArICogQmF5 ZXIgZm9ybWF0cwo+Pj4gKyAqCj4+PiArICogQmF5ZXIgZm9ybWF0cyBjb250YWluIGdyZWVuLCBy ZWQgYW5kIGJsdWUgY29tcG9uZW50cywgd2l0aCBhbHRlcm5hdGluZyBsaW5lcwo+Pj4gKyAqIG9m IHJlZCBhbmQgZ3JlZW4sIGFuZCBibHVlIGFuZCBncmVlbiBwaXhlbHMgaW4gZGlmZmVyZW50IG9y ZGVycy4gRm9yIGVhY2gKPj4+ICsgKiBibG9jayBvZiAyeDIgcGl4ZWxzIHRoZXJlIGlzIG9uZSBw aXhlbCB3aXRoIGEgcmVkIGZpbHRlciwgdHdvIHdpdGggYSBncmVlbgo+Pj4gKyAqIGZpbHRlciwg YW5kIG9uZSB3aXRoIGEgYmx1ZSBmaWx0ZXIuIFRoZSBmaWx0ZXJzIGNhbiBiZSBhcnJhbmdlZCBp biBkaWZmZXJlbnQKPj4+ICsgKiBwYXR0ZXJucy4KPj4+ICsgKgo+Pj4gKyAqIEZvciBleGFtcGxl LCBSR0dCOgo+Pj4gKyAqCXJvdzA6IFJHUkdSR1JHLi4uCj4+PiArICoJcm93MTogR0JHQkdCR0Iu Li4KPj4+ICsgKglyb3cyOiBSR1JHUkdSRy4uLgo+Pj4gKyAqCXJvdzM6IEdCR0JHQkdCLi4uCj4+ PiArICoJLi4uCj4+PiArICoKPj4+ICsgKiBWZW5kb3JzIGhhdmUgZGlmZmVyZW50IG1ldGhvZHMg dG8gcGFjayB0aGUgcGl4ZWwgc2FtcGxlcy4gRm9yIHRoaXMgcmVhc29uIHRoZQo+Pj4gKyAqIGZv dXJjYyBvbmx5IGRlc2NyaWJlcyBwaXhlbCBzYW1wbGUgc2l6ZSBhbmQgdGhlIGZpbHRlciBwYXR0 ZXJuIGZvciBlYWNoIGJsb2NrCj4+PiArICogb2YgMngyIHBpeGVscy4gQSBtb2RpZmllciBpcyBu ZWVkZWQgdG8gZGVzY3JpYmUgdGhlIG1lbW9yeSBsYXlvdXQuCj4+PiArICoKPj4+ICsgKiBJbiBh ZGRpdGlvbiB0byB2ZW5kb3IgbW9kaWZpZXJzIGZvciBtZW1vcnkgbGF5b3V0IERSTV9GT1JNQVRf TU9EX0xJTkVBUiBtYXkKPj4+ICsgKiBiZSB1c2VkIHRvIGRlc2NyaWJlIGEgbGF5b3V0IHdoZXJl IGFsbCBzYW1wbGVzIGFyZSBwbGFjZWQgY29uc2VjdXRpdmVseSBpbgo+Pj4gKyAqIG1lbW9yeS4g SWYgdGhlIHNhbXBsZSBkb2VzIG5vdCBmaXQgaW5zaWRlIGEgc2luZ2xlIGJ5dGUgZWFjaCBzYW1w bGUgaXMgc3RvcmVkCj4+PiArICogaW4gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5dGVzIHJlcXVp cmVkLiBBbnkgdW51c2VkIGJpdHMgaW4gZWFjaCBzYW1wbGUgYXJlCj4+PiArICogZGVmaW5lZCBh cyBwYWRkaW5nIGJpdHMgYW5kIHNldCB0byB6ZXJvLgo+Pj4gKyAqCj4+PiArICogRm9yIGV4YW1w bGUsIERSTV9GT1JNQVRfQkFZRVJfUkdHQjEwIHdpdGggRFJNX0ZPUk1BVF9NT0RfTElORUFSOgo+ Pj4gKyAqCj4+PiArICogIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcm93IDAgKFJHUkcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAzMQo+Pj4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsKPj4+ICsgKiAgfCByMCByMCByMCByMCByMCByMCByMCByMCB8ICAwICAwICAwICAw ICAwICAwIHIwIHIwIHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCAgMCAgMCAgMCAgMCAgMCAg MCBnMCBnMCB8Cj4+PiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKwo+Pj4gKyAqICB8IHIxIHIxIHIxIHIxIHIxIHIxIHIxIHIxIHwgIDAgIDAgIDAg IDAgIDAgIDAgcjEgcjEgfCBnMSBnMSBnMSBnMSBnMSBnMSBnMSBnMSB8ICAwICAwICAwICAwICAw ICAwIGcxIGcxIHwKPj4+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAt ICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAg LSAgLSAgLSAgLSArCj4+PiArICoKPj4+ICsgKiAgMCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByb3cgMSAoR0JHQikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDMxCj4+PiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g KyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0g IC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICB8IGcwIGcwIGcwIGcwIGcwIGcwIGcwIGcw IHwgIDAgIDAgIDAgIDAgIDAgIDAgZzAgZzAgfCBiMCBiMCBiMCBiMCBiMCBiMCBiMCBiMCB8ICAw ICAwICAwICAwICAwICAwIGIwIGIwIHwKPj4+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAg LSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAg LSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4+PiArICogIHwgZzEgZzEgZzEgZzEgZzEgZzEgZzEg ZzEgfCAgMCAgMCAgMCAgMCAgMCAgMCBnMSBnMSB8IGIxIGIxIGIxIGIxIGIxIGIxIGIxIGIxIHwg IDAgIDAgIDAgIDAgIDAgIDAgYjEgYjEgfAo+Pj4gKyAqICArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr ICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKi8KPj4+ICsKPj4+ICsvKiA4LWJpdHMg QmF5ZXIgZm9ybWF0cyAqLwo+Pj4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlFUl9SR0dCOAkJZm91 cmNjX2NvZGUoJ1InLCAnRycsICdHJywgJ0InKQo+Pj4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlF Ul9HUkJHOAkJZm91cmNjX2NvZGUoJ0cnLCAnUicsICdCJywgJ0cnKQo+Pj4gKyNkZWZpbmUgRFJN X0ZPUk1BVF9CQVlFUl9HQlJHOAkJZm91cmNjX2NvZGUoJ0cnLCAnQicsICdSJywgJ0cnKQo+Pj4g KyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlFUl9CR0dSOAkJZm91cmNjX2NvZGUoJ0InLCAnRycsICdH JywgJ1InKQo+Pj4gKwo+Pj4gKy8qIDEwLWJpdCBCYXllciBmb3JtYXRzICovCj4+PiArI2RlZmlu ZSBEUk1fRk9STUFUX0JBWUVSX1JHR0IxMAkJZm91cmNjX2NvZGUoJ1InLCAnRycsICcxJywgJzAn KQo+Pj4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlFUl9HUkJHMTAJCWZvdXJjY19jb2RlKCdHJywg J1InLCAnMScsICcwJykKPj4+ICsjZGVmaW5lIERSTV9GT1JNQVRfQkFZRVJfR0JSRzEwCQlmb3Vy Y2NfY29kZSgnRycsICdCJywgJzEnLCAnMCcpCj4+PiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVS X0JHR1IxMAkJZm91cmNjX2NvZGUoJ0InLCAnRycsICcxJywgJzAnKQo+Pj4gKwo+Pj4gKy8qIDEy LWJpdCBCYXllciBmb3JtYXRzICovCj4+PiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX1JHR0Ix MgkJZm91cmNjX2NvZGUoJ1InLCAnRycsICcxJywgJzInKQo+Pj4gKyNkZWZpbmUgRFJNX0ZPUk1B VF9CQVlFUl9HUkJHMTIJCWZvdXJjY19jb2RlKCdHJywgJ1InLCAnMScsICcyJykKPj4+ICsjZGVm aW5lIERSTV9GT1JNQVRfQkFZRVJfR0JSRzEyCQlmb3VyY2NfY29kZSgnRycsICdCJywgJzEnLCAn MicpCj4+PiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX0JHR1IxMgkJZm91cmNjX2NvZGUoJ0In LCAnRycsICcxJywgJzInKQo+Pj4gKwo+Pj4gKy8qIDE0LWJpdCBCYXllciBmb3JtYXRzICovCj4+ PiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX1JHR0IxNAkJZm91cmNjX2NvZGUoJ1InLCAnRycs ICcxJywgJzQnKQo+Pj4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlFUl9HUkJHMTQJCWZvdXJjY19j b2RlKCdHJywgJ1InLCAnMScsICc0JykKPj4+ICsjZGVmaW5lIERSTV9GT1JNQVRfQkFZRVJfR0JS RzE0CQlmb3VyY2NfY29kZSgnRycsICdCJywgJzEnLCAnNCcpCj4+PiArI2RlZmluZSBEUk1fRk9S TUFUX0JBWUVSX0JHR1IxNAkJZm91cmNjX2NvZGUoJ0InLCAnRycsICcxJywgJzQnKQo+Pj4gKwo+ Pj4gIAo+Pj4gIC8qCj4+PiAgICogRm9ybWF0IE1vZGlmaWVyczoKPj4+IEBAIC0zMDksNiArMzc2 LDcgQEAgZXh0ZXJuICJDIiB7Cj4+PiAgI2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfQlJP QURDT00gMHgwNwo+Pj4gICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX0FSTSAgICAgMHgw OAo+Pj4gICNkZWZpbmUgRFJNX0ZPUk1BVF9NT0RfVkVORE9SX0FMTFdJTk5FUiAweDA5Cj4+PiAr I2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfTUlQSSAweDBhCgpJIGp1c3QgYXBwbGllZDoK IDMzNCAjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9BTUxPR0lDIDB4MGEKClNvIHlvdSds bCBuZWVkIHRvIHJlYmFzZSBvbiBkcm0tbWlzYy1uZXh0LgoKVGhhbmtzLApOZWlsCgo+Pgo+PiBU aGlzIGlzIGFuIGludGVyZXN0aW5nIG9uZS4gSSBkb24ndCB0aGluayB0aGVzZSBmb3JtYXRzIGhh dmUgb3JpZ2luYXRlZAo+PiBmcm9tIE1JUEkuIFRoZSBjb2xvdXIgcGF0dGVybiBpdHNlbGYgaXMg ZnJvbSBFYXN0bWFuIEtvZGFrIGFwcGFyZW50bHkKPj4gKG5hbWVkIGFmdGVyIEJyeWNlIEJheWVy KSwgYnV0IHRoZSBtZW1vcnkgZm9ybWF0IGlzIG5vdCwgYXBhcnQgZnJvbSB0aGUKPj4gTUlQSSBD U0ktMiBwYWNrZWQgdmFyaWFudC4KPj4KPj4gVGhlIGZvcm1hdHMgYXJlIHByb2JhYmx5IHVubGlr ZSB0aGUgZm9ybWF0cyB1c2VkIG9uIEdQVXMgYXMgdGhleSBhcmUKPj4gcmVsYXRpdmVseSBzaW1p bGFyIGFjcm9zcyBhIG51bWJlciBvZiB2ZW5kb3JzIGFuZCBkZXZpY2VzLgo+Pgo+PiBUaGVyZSBh cmUgbW9yZSByYXcgZm9ybWF0cyB0aGFuIGp1c3QgdGhlIEJheWVyIGZvcm1hdHMsIHNlZSBlLmcu Cj4+Cj4+IDxVUkw6aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmF3X2ltYWdlX2Zvcm1h dD4KPj4KPj4gQXQgdGhlIHNhbWUgdGltZSwgaXQnZCBiZSBnb29kIHRvIGtlZXAgdGhlIENTSS0y IHBhY2tlZCB2YXJpYW50IGFzIGEgZm9ybWF0Cj4+IG1vZGlmaWVyLiBJIHdvbmRlciBpZiB3ZSBj b3VsZCBoYXZlIHNvbWV0aGluZyBsaWtlCj4+IERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9SQVcsIGFs YmVpdCBhIHJhdyBmb3JtYXQgaXMgbm90IGEgdmVuZG9yLgo+IAo+IFRoZSBtb2RpZmllciBkZWZp bmVkIHdpdGggRFJNX0ZPUk1BVF9NT0RfVkVORE9SX01JUEkgaXMgbWVhbnQgdG8gc3BlY2lmeQo+ IGluLW1lbW9yeSBwYWNraW5nIGNvcnJlc3BvbmRpbmcgdG8gaG93IHRoZSBSQVcgZGF0YSBpcyBj YXJyaWVkIG92ZXIKPiBDU0ktMi4gVGhhdCdzIHdoeSBNSVBJIHdhcyBwaWNrZWQgYXMgYSBuYW1l Lgo+IAo+PiBDYyBEYW5pZWwgYW5kIExhdXJlbnQuCj4+Cj4+PiAgLyogYWRkIG1vcmUgdG8gdGhl IGVuZCBhcyBuZWVkZWQgKi8KPj4+ICAKPj4+IEBAIC00MzQsNiArNTAyLDU2IEBAIGV4dGVybiAi QyIgewo+Pj4gICAqLwo+Pj4gICNkZWZpbmUgSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfR0VOMTJf TUNfQ0NTIGZvdXJjY19tb2RfY29kZShJTlRFTCwgNykKPj4+ICAKPj4+ICsKPj4+ICsvKgo+Pj4g KyAqIElQVTMgQmF5ZXIgcGFja2luZyBsYXlvdXQKPj4+ICsgKgo+Pj4gKyAqIFRoZSBJUFUzIHJh dyBCYXllciBmb3JtYXRzIHVzZSBhIGN1c3RvbSBwYWNraW5nIGxheW91dCB3aGVyZSB0aGVyZSBh cmUgbm8KPj4+ICsgKiBnYXBzIGJldHdlZW4gZWFjaCAxMC1iaXQgc2FtcGxlLiBJdCBwYWNrcyAy NSBwaXhlbHMgaW50byAzMiBieXRlcyBsZWF2aW5nCj4+PiArICogdGhlIDYgbW9zdCBzaWduaWZp Y2FudCBiaXRzIGluIHRoZSBsYXN0IGJ5dGUgdW51c2VkIHplcm8gcGFkZGluZyBiaXRzLgo+Pj4g KyAqCj4+PiArICogRm9yIGV4YW1wbGUsIERSTV9GT1JNQVRfQkFZRVJfQkdHUjEwIHdpdGggSVBV M19GT1JNQVRfTU9EX1BBQ0tFRDoKPj4+ICsgKgo+Pj4gKyAqICAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByb3cgMCAoQkdCR0JHQkdCR0JHQkdCR0JHQkdCR0JHQikgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEKPj4+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAg LSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4+PiArICogIHwgYjAgYjAgYjAgYjAgYjAg YjAgYjAgYjAgfCBnMCBnMCBnMCBnMCBnMCBnMCBiMCBiMCB8IGIxIGIxIGIxIGIxIGcwIGcwIGcw IGcwIHwgZzEgZzEgYjEgYjEgYjEgYjEgYjEgYjEgfAo+Pj4gKyAqICArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgfCBnMSBnMSBnMSBnMSBn MSBnMSBnMSBnMSB8IGIyIGIyIGIyIGIyIGIyIGIyIGIyIGIyIHwgZzIgZzIgZzIgZzIgZzIgZzIg YjIgYjIgfCBiMyBiMyBiMyBiMyBnMiBnMiBnMiBnMiB8Cj4+PiArICogICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICB8IGczIGczIGIzIGIz IGIzIGIzIGIzIGIzIHwgZzMgZzMgZzMgZzMgZzMgZzMgZzMgZzMgfCBiNCBiNCBiNCBiNCBiNCBi NCBiNCBiNCB8IGc0IGc0IGc0IGc0IGc0IGc0IGI0IGI0IHwKPj4+ICsgKiAgKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4+PiArICogIHwgYjUgYjUgYjUg YjUgZzQgZzQgZzQgZzQgfCBnNSBnNSBiNSBiNSBiNSBiNSBiNSBiNSB8IGc1IGc1IGc1IGc1IGc1 IGc1IGc1IGc1IHwgYjYgYjYgYjYgYjYgYjYgYjYgYjYgYjYgfAo+Pj4gKyAqICArICAtICAtICAt ICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAg LSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgfCBnNiBnNiBn NiBnNiBnNiBnNiBiNiBiNiB8IGI3IGI3IGI3IGI3IGc2IGc2IGc2IGc2IHwgZzcgZzcgYjcgYjcg YjcgYjcgYjcgYjcgfCBnNyBnNyBnNyBnNyBnNyBnNyBnNyBnNyB8Cj4+PiArICogICsgIC0gIC0g IC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAt ICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICB8IGI4IGI4 IGI4IGI4IGI4IGI4IGI4IGI4IHwgZzggZzggZzggZzggZzggZzggYjggYjggfCBiOSBiOSBiOSBi OSBnOCBnOCBnOCBnOCB8IGc5IGc5IGI5IGI5IGI5IGI5IGI5IGI5IHwKPj4+ICsgKiAgKyAgLSAg LSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0g IC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4+PiArICogIHwgZzkg ZzkgZzkgZzkgZzkgZzkgZzkgZzkgfCBiQSBiQSBiQSBiQSBiQSBiQSBiQSBiQSB8IGdBIGdBIGdB IGdBIGdBIGdBIGJBIGJBIHwgYkIgYkIgYkIgYkIgZ0EgZ0EgZ0EgZ0EgfAo+Pj4gKyAqICArICAt ICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAg LSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgfCBn QiBnQiBiQiBiQiBiQiBiQiBiQiBiQiB8IGdCIGdCIGdCIGdCIGdCIGdCIGdCIGdCIHwgYkMgYkMg YkMgYkMgYkMgYkMgYkMgYkMgfCAgMCAgMCAgMCAgMCAgMCAgMCBiQyBiQyB8Cj4+PiArICogICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqCj4+ PiArICogIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdyAxIChHUkdSR1JH UkdSR1JHUkdSR1JHUkdSR1JHKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMQo+ Pj4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsK Pj4+ICsgKiAgfCBnMCBnMCBnMCBnMCBnMCBnMCBnMCBnMCB8IHIwIHIwIHIwIHIwIHIwIHIwIGcw IGcwIHwgZzEgZzEgZzEgZzEgcjAgcjAgcjAgcjAgfCByMSByMSBnMSBnMSBnMSBnMSBnMSBnMSB8 Cj4+PiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g Kwo+Pj4gKyAqICB8IHIxIHIxIHIxIHIxIHIxIHIxIHIxIHIxIHwgZzIgZzIgZzIgZzIgZzIgZzIg ZzIgZzIgfCByMiByMiByMiByMiByMiByMiBnMiBnMiB8IGczIGczIGczIGczIHIyIHIyIHIyIHIy IHwKPj4+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAg LSArCj4+PiArICogIHwgcjMgcjMgZzMgZzMgZzMgZzMgZzMgZzMgfCByMyByMyByMyByMyByMyBy MyByMyByMyB8IGc0IGc0IGc0IGc0IGc0IGc0IGc0IGc0IHwgcjQgcjQgcjQgcjQgcjQgcjQgZzQg ZzQgfAo+Pj4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAt ICAtICsKPj4+ICsgKiAgfCBnNSBnNSBnNSBnNSByNCByNCByNCByNCB8IHI1IHI1IGc1IGc1IGc1 IGc1IGc1IGc1IHwgcjUgcjUgcjUgcjUgcjUgcjUgcjUgcjUgfCBnNiBnNiBnNiBnNiBnNiBnNiBn NiBnNiB8Cj4+PiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAg LSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0g IC0gIC0gKwo+Pj4gKyAqICB8IHI2IHI2IHI2IHI2IHI2IHI2IGc2IGc2IHwgZzcgZzcgZzcgZzcg cjYgcjYgcjYgcjYgfCByNyByNyBnNyBnNyBnNyBnNyBnNyBnNyB8IHI3IHI3IHI3IHI3IHI3IHI3 IHI3IHI3IHwKPj4+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAt ICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAg LSAgLSAgLSArCj4+PiArICogIHwgZzggZzggZzggZzggZzggZzggZzggZzggfCByOCByOCByOCBy OCByOCByOCBnOCBnOCB8IGc5IGc5IGc5IGc5IHI4IHI4IHI4IHI4IHwgcjkgcjkgZzkgZzkgZzkg ZzkgZzkgZzkgfAo+Pj4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0g IC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsKPj4+ICsgKiAgfCByOSByOSByOSByOSByOSByOSByOSByOSB8IGdBIGdBIGdB IGdBIGdBIGdBIGdBIGdBIHwgckEgckEgckEgckEgckEgckEgZ0EgZ0EgfCBnQiBnQiBnQiBnQiBy QSByQSByQSByQSB8Cj4+PiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAg LSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKwo+Pj4gKyAqICB8IHJCIHJCIGdCIGdCIGdCIGdCIGdCIGdCIHwgckIgckIg ckIgckIgckIgckIgckIgckIgfCBnQyBnQyBnQyBnQyBnQyBnQyBnQyBnQyB8ICAwICAwICAwICAw ICAwICAwIGdDIGdDIHwKPj4+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArCj4+PiArICovCj4+PiArI2RlZmluZSBJUFUzX0ZPUk1BVF9NT0RfUEFD S0VEIGZvdXJjY19tb2RfY29kZShJTlRFTCwgOCkKPj4+ICsKPj4+ICAvKgo+Pj4gICAqIFRpbGVk LCBOVjEyTVQsIGdyb3VwZWQgaW4gNjQgKHBpeGVscykgeCAzMiAobGluZXMpIC1zaXplZCBtYWNy b2Jsb2Nrcwo+Pj4gICAqCj4+PiBAQCAtODA0LDYgKzkyMiw5MyBAQCBleHRlcm4gIkMiIHsKPj4+ ICAgKi8KPj4+ICAjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0FMTFdJTk5FUl9USUxFRCBmb3VyY2Nf bW9kX2NvZGUoQUxMV0lOTkVSLCAxKQo+Pj4gIAo+Pj4gKy8qIE1vYmlsZSBJbmR1c3RyeSBQcm9j ZXNzb3IgSW50ZXJmYWNlIChNSVBJKSBtb2RpZmllcnMgKi8KPj4+ICsKPj4+ICsvKgo+Pj4gKyAq IE1JUEkgQ1NJLTIgcGFja2luZyBsYXlvdXQKPj4+ICsgKgo+Pj4gKyAqIFRoZSBDU0ktMiBSQVcg Zm9ybWF0cyAoZm9yIGV4YW1wbGUgQmF5ZXIpIHVzZSBhIGRpZmZlcmVudCBwYWNraW5nIGxheW91 dAo+Pj4gKyAqIGRlcGVuZGluZyBvbiB0aGUgc2FtcGxlIHNpemUuCj4+PiArICoKPj4+ICsgKiAt IDEwLWJpdHMgcGVyIHNhbXBsZQo+Pj4gKyAqICAgRXZlcnkgZm91ciBjb25zZWN1dGl2ZSBzYW1w bGVzIGFyZSBwYWNrZWQgaW50byA1IGJ5dGVzLiBFYWNoIG9mIHRoZSBmaXJzdCA0Cj4+PiArICog ICBieXRlcyBjb250YWluIHRoZSA4IGhpZ2ggb3JkZXIgYml0cyBvZiB0aGUgcGl4ZWxzLCBhbmQg dGhlIDV0aCBieXRlCj4+PiArICogICBjb250YWlucyB0aGUgMiBsZWFzdC1zaWduaWZpY2FudCBi aXRzIG9mIGVhY2ggcGl4ZWwsIGluIHRoZSBzYW1lIG9yZGVyLgo+Pj4gKyAqCj4+PiArICogICBG b3IgZXhhbXBsZSwgRFJNX0ZPUk1BVF9CQVlFUl9CR0dSMTAgd2l0aCBNSVBJX0ZPUk1BVF9NT0Rf Q1NJMl9QQUNLRUQ6Cj4+PiArICoKPj4+ICsgKiAgICAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByb3cgMCAoQkdCR0JHQkcpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMzEKPj4+ICsgKiAgICArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr ICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgICB8IGIwIGIwIGIwIGIwIGIwIGIw IGIwIGIwIHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCBiMSBiMSBiMSBiMSBiMSBiMSBiMSBi MSB8IGcxIGcxIGcxIGcxIGcxIGcxIGcxIGcxIHwKPj4+ICsgKiAgICArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgICB8IGcxIGcxIGIxIGIx IGcwIGcwIGIwIGIwIHwgYjIgYjIgYjIgYjIgYjIgYjIgYjIgYjIgfCBnMiBnMiBnMiBnMiBnMiBn MiBnMiBnMiB8IGIzIGIzIGIzIGIzIGIzIGIzIGIzIGIzIHwKPj4+ICsgKiAgICArICAtICAtICAt ICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAg LSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgICB8IGczIGcz IGczIGczIGczIGczIGczIGczIHwgZzMgZzMgYjMgYjMgZzIgZzIgYjIgYjIgfAo+Pj4gKyAqICAg ICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4+ PiArICoKPj4+ICsgKiAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByb3cgMSAoR1JHUkdSR1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMzEKPj4+ICsgKiAgICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0g IC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsKPj4+ICsgKiAgICB8IGcwIGcwIGcwIGcwIGcwIGcwIGcwIGcwIHwgcjAgcjAg cjAgcjAgcjAgcjAgcjAgcjAgfCBnMSBnMSBnMSBnMSBnMSBnMSBnMSBnMSB8IHIxIHIxIHIxIHIx IHIxIHIxIHIxIHIxIHwKPj4+ICsgKiAgICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0g IC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAt ICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgICB8IHIxIHIxIGcxIGcxIHIwIHIwIGcwIGcwIHwg ZzIgZzIgZzIgZzIgZzIgZzIgZzIgZzIgfCByMiByMiByMiByMiByMiByMiByMiByMiB8IGczIGcz IGczIGczIGczIGczIGczIGczIHwKPj4+ICsgKiAgICArICAtICAtICAtICAtICAtICAtICAtICAt ICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAt ICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKiAgICB8IHIzIHIzIHIzIHIzIHIzIHIzIHIz IHIzIHwgcjMgcjMgZzMgZzMgcjIgcjIgZzIgZzIgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4+PiArICoKPj4+ICsgKiAt IDEyLWJpdHMgcGVyIHNhbXBsZQo+Pj4gKyAqICAgRXZlcnkgdHdvIGNvbnNlY3V0aXZlIHNhbXBs ZXMgYXJlIHBhY2tlZCBpbnRvIHRocmVlIGJ5dGVzLiBFYWNoIG9mIHRoZQo+Pj4gKyAqICAgZmly c3QgdHdvIGJ5dGVzIGNvbnRhaW4gdGhlIDggaGlnaCBvcmRlciBiaXRzIG9mIHRoZSBwaXhlbHMs IGFuZCB0aGUgdGhpcmQKPj4+ICsgKiAgIGJ5dGUgY29udGFpbnMgdGhlIGZvdXIgbGVhc3Qtc2ln bmlmaWNhbnQgYml0cyBvZiBlYWNoIHBpeGVsLCBpbiB0aGUgc2FtZQo+Pj4gKyAqICAgb3JkZXIu Cj4+PiArICoKPj4+ICsgKiAgIEZvciBleGFtcGxlLCBEUk1fRk9STUFUX0JBWUVSX0dSQkcxMiB3 aXRoIE1JUElfRk9STUFUX01PRF9DU0kyX1BBQ0tFRDoKPj4+ICsgKgo+Pj4gKyAqICAgIDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93IDAgKEdSR1IpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMQo+Pj4gKyAqICAgICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAg IHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCByMCByMCByMCByMCByMCByMCByMCByMCB8IHIw IHIwIHIwIHIwIGcwIGcwIGcwIGcwIHwgZzEgZzEgZzEgZzEgZzEgZzEgZzEgZzEgfAo+Pj4gKyAq ICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr ICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4g KyAqICAgIHwgcjEgcjEgcjEgcjEgcjEgcjEgcjEgcjEgfCByMSByMSByMSByMSBnMSBnMSBnMSBn MSB8Cj4+PiArICogICAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsKPj4+ICsgKgo+Pj4gKyAqICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcm93IDEgKEJHQkcpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAzMQo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgYjAgYjAgYjAgYjAgYjAgYjAg YjAgYjAgfCBnMCBnMCBnMCBnMCBnMCBnMCBnMCBnMCB8IGcwIGcwIGcwIGcwIGIwIGIwIGIwIGIw IHwgYjEgYjEgYjEgYjEgYjEgYjEgYjEgYjEgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgZzEgZzEgZzEgZzEg ZzEgZzEgZzEgZzEgfCBnMSBnMSBnMSBnMSBiMSBiMSBiMSBiMSB8Cj4+PiArICogICAgKyAgLSAg LSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKgo+ Pj4gKyAqIC0gMTQtYml0cyBwZXIgc2FtcGxlCj4+PiArICogICBFdmVyeSBmb3VyIGNvbnNlY3V0 aXZlIHNhbXBsZXMgYXJlIHBhY2tlZCBpbnRvIHNldmVuIGJ5dGVzLiBFYWNoIG9mIHRoZQo+Pj4g KyAqICAgZmlyc3QgZm91ciBieXRlcyBjb250YWluIHRoZSBlaWdodCBoaWdoIG9yZGVyIGJpdHMg b2YgdGhlIHBpeGVscywgYW5kIHRoZQo+Pj4gKyAqICAgdGhyZWUgZm9sbG93aW5nIGJ5dGVzIGNv bnRhaW5zIHRoZSBzaXggbGVhc3Qtc2lnbmlmaWNhbnQgYml0cyBvZiBlYWNoCj4+PiArICogICBw aXhlbCwgaW4gdGhlIHNhbWUgb3JkZXIuCj4+PiArICoKPj4+ICsgKiAgIEZvciBleGFtcGxlLCBE Uk1fRk9STUFUX0JBWUVSX0dCUkcxNCB3aXRoIE1JUElfRk9STUFUX01PRF9DU0kyX1BBQ0tFRDoK Pj4+ICsgKgo+Pj4gKyAqICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvdyAwIChHQkdCR0JHQikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAzMQo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAg LSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCBiMCBi MCBiMCBiMCBiMCBiMCBiMCBiMCB8IGcxIGcxIGcxIGcxIGcxIGcxIGcxIGcxIHwgYjEgYjEgYjEg YjEgYjEgYjEgYjEgYjEgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAg LSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0g IC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgYjAgYjAgZzAgZzAgZzAgZzAgZzAgZzAg fCBnMSBnMSBnMSBnMSBiMCBiMCBiMCBiMCB8IGIxIGIxIGIxIGIxIGIxIGIxIGcxIGcxIHwgZzIg ZzIgZzIgZzIgZzIgZzIgZzIgZzIgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgYjIgYjIgYjIgYjIgYjIgYjIg YjIgYjIgfCBnMyBnMyBnMyBnMyBnMyBnMyBnMyBnMyB8IGIzIGIzIGIzIGIzIGIzIGIzIGIzIGIz IHwgYjIgYjIgZzIgZzIgZzIgZzIgZzIgZzIgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgZzMgZzMgZzMgZzMg YjIgYjIgYjIgYjIgfCBiMyBiMyBiMyBiMyBiMyBiMyBnMyBnMyB8Cj4+PiArICogICAgKyAgLSAg LSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKgo+ Pj4gKyAqICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJv dyAxIChSR1JHUkdSRykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAz MQo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAg LSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKwo+Pj4gKyAqICAgIHwgcjAgcjAgcjAgcjAgcjAgcjAgcjAgcjAgfCBnMCBnMCBnMCBnMCBn MCBnMCBnMCBnMCB8IHIxIHIxIHIxIHIxIHIxIHIxIHIxIHIxIHwgZzEgZzEgZzEgZzEgZzEgZzEg ZzEgZzEgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgZzAgZzAgcjAgcjAgcjAgcjAgcjAgcjAgfCByMSByMSBy MSByMSBnMCBnMCBnMCBnMCB8IGcxIGcxIGcxIGcxIGcxIGcxIHIxIHIxIHwgcjIgcjIgcjIgcjIg cjIgcjIgcjIgcjIgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAg LSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0g IC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgZzIgZzIgZzIgZzIgZzIgZzIgZzIgZzIgfCBy MyByMyByMyByMyByMyByMyByMyByMyB8IGczIGczIGczIGczIGczIGczIGczIGczIHwgZzIgZzIg cjIgcjIgcjIgcjIgcjIgcjIgfAo+Pj4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g KyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0g IC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+Pj4gKyAqICAgIHwgcjMgcjMgcjMgcjMgZzIgZzIgZzIg ZzIgfCBnMyBnMyBnMyBnMyBnMyBnMyByMyByMyB8Cj4+PiArICogICAgKyAgLSAgLSAgLSAgLSAg LSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPj4+ICsgKi8KPj4+ICsjZGVm aW5lIE1JUElfRk9STUFUX01PRF9DU0kyX1BBQ0tFRCBmb3VyY2NfbW9kX2NvZGUoTUlQSSwgMSkK Pj4+ICsKPj4+ICAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKPj4+ICB9Cj4+PiAgI2VuZGlmCj4g CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK