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=-6.8 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 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 52E61C433E0 for ; Thu, 2 Jul 2020 21:52:04 +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 1F09B20885 for ; Thu, 2 Jul 2020 21:52:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="SMVwS38k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1F09B20885 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.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 3211B6E176; Thu, 2 Jul 2020 21:52:02 +0000 (UTC) Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4EED16E176 for ; Thu, 2 Jul 2020 21:52:01 +0000 (UTC) Received: from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 358DC9CB; Thu, 2 Jul 2020 23:51:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1593726719; bh=gP2pnif9M8t/dfd9i8/KqkaW+VTDLfEar969iil5DCY=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=SMVwS38kxQqTpm4txhfnWwBXYIeO4TNU2kpVl5cdA1NxMH2xBVOCsFgA9YqORrcIO BLNtzNR9k+P2iMSJ60F8rJiXLoOHz7d1g9SslnhmQLrJNPbW5HSwZOcJEyZD0rt6Zt S/E90eLASfShqQw+J4AgV9it/QSDsMKssroA1jaA= Date: Fri, 3 Jul 2020 00:51:55 +0300 From: Laurent Pinchart To: Sakari Ailus Subject: Re: [PATCH v2] drm/fourcc: Add bayer formats and modifiers Message-ID: <20200702215155.GU12562@pendragon.ideasonboard.com> References: <20200521235201.279642-1-niklas.soderlund@ragnatech.se> <20200525103143.GF7618@paasikivi.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200525103143.GF7618@paasikivi.fi.intel.com> 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: Niklas =?utf-8?Q?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" SGkgU2FrYXJpLAoKT24gTW9uLCBNYXkgMjUsIDIwMjAgYXQgMDE6MzE6NDNQTSArMDMwMCwgU2Fr YXJpIEFpbHVzIHdyb3RlOgo+IE9uIEZyaSwgTWF5IDIyLCAyMDIwIGF0IDAxOjUyOjAxQU0gKzAy MDAsIE5pa2xhcyBTw7ZkZXJsdW5kIHdyb3RlOgo+ID4gQmF5ZXIgZm9ybWF0cyBhcmUgdXNlZCB3 aXRoIGNhbWVyYXMgYW5kIGNvbnRhaW4gZ3JlZW4sIHJlZCBhbmQgYmx1ZQo+ID4gY29tcG9uZW50 cywgd2l0aCBhbHRlcm5hdGluZyBsaW5lcyBvZiByZWQgYW5kIGdyZWVuLCBhbmQgYmx1ZSBhbmQg Z3JlZW4KPiA+IHBpeGVscyBpbiBkaWZmZXJlbnQgb3JkZXJzLiBGb3IgZWFjaCBibG9jayBvZiAy eDIgcGl4ZWxzIHRoZXJlIGlzIG9uZQo+ID4gcGl4ZWwgd2l0aCBhIHJlZCBmaWx0ZXIsIHR3byB3 aXRoIGEgZ3JlZW4gZmlsdGVyLCBhbmQgb25lIHdpdGggYSBibHVlCj4gPiBmaWx0ZXIuIFRoZSBm aWx0ZXJzIGNhbiBiZSBhcnJhbmdlZCBpbiBkaWZmZXJlbnQgcGF0dGVybnMuCj4gPiAKPiA+IEFk ZCBEUk0gZm91cmNjIGZvcm1hdHMgdG8gZGVzY3JpYmUgdGhlIG1vc3QgY29tbW9uIEJheWVyIGZv cm1hdHMuIEFsc28KPiA+IGFkZCBhIG1vZGlmaWVycyB0byBkZXNjcmliZSB0aGUgY3VzdG9tIHBh Y2tpbmcgbGF5b3V0cyB1c2VkIGJ5IHRoZSBJbnRlbAo+ID4gSVBVMyBhbmQgaW4gdGhlIE1JUEkg KE1vYmlsZSBJbmR1c3RyeSBQcm9jZXNzb3IgSW50ZXJmYWNlKSBDU0ktMgo+ID4gc3BlY2lmaWNh dGlvbi4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogTmlrbGFzIFPDtmRlcmx1bmQgPG5pa2xhcy5z b2Rlcmx1bmRAcmFnbmF0ZWNoLnNlPgo+ID4gLS0tCj4gPiAqIENoYW5nZXMgc2luY2UgdjEKPiA+ IC0gUmVuYW1lIHRoZSBkZWZpbmVzIGZyb20gRFJNX0ZPUk1BVF9TUkdHQjggdG8gRFJNX0ZPUk1B VF9CQVlFUl9SR0dCOC4KPiA+IC0gVXBkYXRlIHRoZSBmb3VyY2MgY29kZXMgcGFzc2VkIHRvIGZv dXJjY19jb2RlKCkgdG8gYXZvaWQgYSBjb25mbGljdC4KPiA+IC0gQWRkIGRpYWdyYW1zIGZvciBh bGwgQmF5ZXIgZm9ybWF0cyBtZW1vcnkgbGF5b3V0Lgo+ID4gLSBVcGRhdGUgZG9jdW1lbnRhdGlv bi4KPiA+IC0tLQo+ID4gIGluY2x1ZGUvdWFwaS9kcm0vZHJtX2ZvdXJjYy5oIHwgMjA1ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjA1IGlu c2VydGlvbnMoKykKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX2Zv dXJjYy5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNjLmgKPiA+IGluZGV4IDhiYzBiMzE1 OTdkODA3MzcuLmQwN2RkMjRiNDliZGU2YzEgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL3VhcGkv ZHJtL2RybV9mb3VyY2MuaAo+ID4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fZm91cmNjLmgK PiA+IEBAIC0yODUsNiArMjg1LDczIEBAIGV4dGVybiAiQyIgewo+ID4gICNkZWZpbmUgRFJNX0ZP Uk1BVF9ZVVY0NDQJZm91cmNjX2NvZGUoJ1knLCAnVScsICcyJywgJzQnKSAvKiBub24tc3Vic2Ft cGxlZCBDYiAoMSkgYW5kIENyICgyKSBwbGFuZXMgKi8KPiA+ICAjZGVmaW5lIERSTV9GT1JNQVRf WVZVNDQ0CWZvdXJjY19jb2RlKCdZJywgJ1YnLCAnMicsICc0JykgLyogbm9uLXN1YnNhbXBsZWQg Q3IgKDEpIGFuZCBDYiAoMikgcGxhbmVzICovCj4gPiAgCj4gPiArLyoKPiA+ICsgKiBCYXllciBm b3JtYXRzCj4gPiArICoKPiA+ICsgKiBCYXllciBmb3JtYXRzIGNvbnRhaW4gZ3JlZW4sIHJlZCBh bmQgYmx1ZSBjb21wb25lbnRzLCB3aXRoIGFsdGVybmF0aW5nIGxpbmVzCj4gPiArICogb2YgcmVk IGFuZCBncmVlbiwgYW5kIGJsdWUgYW5kIGdyZWVuIHBpeGVscyBpbiBkaWZmZXJlbnQgb3JkZXJz LiBGb3IgZWFjaAo+ID4gKyAqIGJsb2NrIG9mIDJ4MiBwaXhlbHMgdGhlcmUgaXMgb25lIHBpeGVs IHdpdGggYSByZWQgZmlsdGVyLCB0d28gd2l0aCBhIGdyZWVuCj4gPiArICogZmlsdGVyLCBhbmQg b25lIHdpdGggYSBibHVlIGZpbHRlci4gVGhlIGZpbHRlcnMgY2FuIGJlIGFycmFuZ2VkIGluIGRp ZmZlcmVudAo+ID4gKyAqIHBhdHRlcm5zLgo+ID4gKyAqCj4gPiArICogRm9yIGV4YW1wbGUsIFJH R0I6Cj4gPiArICoJcm93MDogUkdSR1JHUkcuLi4KPiA+ICsgKglyb3cxOiBHQkdCR0JHQi4uLgo+ ID4gKyAqCXJvdzI6IFJHUkdSR1JHLi4uCj4gPiArICoJcm93MzogR0JHQkdCR0IuLi4KPiA+ICsg KgkuLi4KPiA+ICsgKgo+ID4gKyAqIFZlbmRvcnMgaGF2ZSBkaWZmZXJlbnQgbWV0aG9kcyB0byBw YWNrIHRoZSBwaXhlbCBzYW1wbGVzLiBGb3IgdGhpcyByZWFzb24gdGhlCj4gPiArICogZm91cmNj IG9ubHkgZGVzY3JpYmVzIHBpeGVsIHNhbXBsZSBzaXplIGFuZCB0aGUgZmlsdGVyIHBhdHRlcm4g Zm9yIGVhY2ggYmxvY2sKPiA+ICsgKiBvZiAyeDIgcGl4ZWxzLiBBIG1vZGlmaWVyIGlzIG5lZWRl ZCB0byBkZXNjcmliZSB0aGUgbWVtb3J5IGxheW91dC4KPiA+ICsgKgo+ID4gKyAqIEluIGFkZGl0 aW9uIHRvIHZlbmRvciBtb2RpZmllcnMgZm9yIG1lbW9yeSBsYXlvdXQgRFJNX0ZPUk1BVF9NT0Rf TElORUFSIG1heQo+ID4gKyAqIGJlIHVzZWQgdG8gZGVzY3JpYmUgYSBsYXlvdXQgd2hlcmUgYWxs IHNhbXBsZXMgYXJlIHBsYWNlZCBjb25zZWN1dGl2ZWx5IGluCj4gPiArICogbWVtb3J5LiBJZiB0 aGUgc2FtcGxlIGRvZXMgbm90IGZpdCBpbnNpZGUgYSBzaW5nbGUgYnl0ZSBlYWNoIHNhbXBsZSBp cyBzdG9yZWQKPiA+ICsgKiBpbiB0aGUgbWluaW11bSBudW1iZXIgb2YgYnl0ZXMgcmVxdWlyZWQu IEFueSB1bnVzZWQgYml0cyBpbiBlYWNoIHNhbXBsZSBhcmUKPiA+ICsgKiBkZWZpbmVkIGFzIHBh ZGRpbmcgYml0cyBhbmQgc2V0IHRvIHplcm8uCj4gPiArICoKPiA+ICsgKiBGb3IgZXhhbXBsZSwg RFJNX0ZPUk1BVF9CQVlFUl9SR0dCMTAgd2l0aCBEUk1fRk9STUFUX01PRF9MSU5FQVI6Cj4gPiAr ICoKPiA+ICsgKiAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByb3cgMCAoUkdSRykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDMxCj4gPiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAg LSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKwo+ID4gKyAqICB8IHIwIHIwIHIwIHIwIHIwIHIwIHIwIHIwIHwgIDAgIDAgIDAgIDAgIDAg IDAgcjAgcjAgfCBnMCBnMCBnMCBnMCBnMCBnMCBnMCBnMCB8ICAwICAwICAwICAwICAwICAwIGcw IGcwIHwKPiA+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArCj4gPiArICogIHwgcjEgcjEgcjEgcjEgcjEgcjEgcjEgcjEgfCAgMCAgMCAgMCAgMCAg MCAgMCByMSByMSB8IGcxIGcxIGcxIGcxIGcxIGcxIGcxIGcxIHwgIDAgIDAgIDAgIDAgIDAgIDAg ZzEgZzEgfAo+ID4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsKPiA+ICsgKgo+ID4gKyAqICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJvdyAxIChHQkdCKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMzEKPiA+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAt ICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAg LSAgLSAgLSAgLSAgLSAgLSArCj4gPiArICogIHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCAg MCAgMCAgMCAgMCAgMCAgMCBnMCBnMCB8IGIwIGIwIGIwIGIwIGIwIGIwIGIwIGIwIHwgIDAgIDAg IDAgIDAgIDAgIDAgYjAgYjAgfAo+ID4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgfCBnMSBnMSBnMSBnMSBnMSBnMSBnMSBnMSB8 ICAwICAwICAwICAwICAwICAwIGcxIGcxIHwgYjEgYjEgYjEgYjEgYjEgYjEgYjEgYjEgfCAgMCAg MCAgMCAgMCAgMCAgMCBiMSBiMSB8Cj4gPiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g KyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0g IC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqLwo+ID4gKwo+ID4gKy8qIDgtYml0cyBCYXll ciBmb3JtYXRzICovCj4gPiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX1JHR0I4CQlmb3VyY2Nf Y29kZSgnUicsICdHJywgJ0cnLCAnQicpCj4gPiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX0dS Qkc4CQlmb3VyY2NfY29kZSgnRycsICdSJywgJ0InLCAnRycpCj4gPiArI2RlZmluZSBEUk1fRk9S TUFUX0JBWUVSX0dCUkc4CQlmb3VyY2NfY29kZSgnRycsICdCJywgJ1InLCAnRycpCj4gPiArI2Rl ZmluZSBEUk1fRk9STUFUX0JBWUVSX0JHR1I4CQlmb3VyY2NfY29kZSgnQicsICdHJywgJ0cnLCAn UicpCj4gPiArCj4gPiArLyogMTAtYml0IEJheWVyIGZvcm1hdHMgKi8KPiA+ICsjZGVmaW5lIERS TV9GT1JNQVRfQkFZRVJfUkdHQjEwCQlmb3VyY2NfY29kZSgnUicsICdHJywgJzEnLCAnMCcpCj4g PiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX0dSQkcxMAkJZm91cmNjX2NvZGUoJ0cnLCAnUics ICcxJywgJzAnKQo+ID4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlFUl9HQlJHMTAJCWZvdXJjY19j b2RlKCdHJywgJ0InLCAnMScsICcwJykKPiA+ICsjZGVmaW5lIERSTV9GT1JNQVRfQkFZRVJfQkdH UjEwCQlmb3VyY2NfY29kZSgnQicsICdHJywgJzEnLCAnMCcpCj4gPiArCj4gPiArLyogMTItYml0 IEJheWVyIGZvcm1hdHMgKi8KPiA+ICsjZGVmaW5lIERSTV9GT1JNQVRfQkFZRVJfUkdHQjEyCQlm b3VyY2NfY29kZSgnUicsICdHJywgJzEnLCAnMicpCj4gPiArI2RlZmluZSBEUk1fRk9STUFUX0JB WUVSX0dSQkcxMgkJZm91cmNjX2NvZGUoJ0cnLCAnUicsICcxJywgJzInKQo+ID4gKyNkZWZpbmUg RFJNX0ZPUk1BVF9CQVlFUl9HQlJHMTIJCWZvdXJjY19jb2RlKCdHJywgJ0InLCAnMScsICcyJykK PiA+ICsjZGVmaW5lIERSTV9GT1JNQVRfQkFZRVJfQkdHUjEyCQlmb3VyY2NfY29kZSgnQicsICdH JywgJzEnLCAnMicpCj4gPiArCj4gPiArLyogMTQtYml0IEJheWVyIGZvcm1hdHMgKi8KPiA+ICsj ZGVmaW5lIERSTV9GT1JNQVRfQkFZRVJfUkdHQjE0CQlmb3VyY2NfY29kZSgnUicsICdHJywgJzEn LCAnNCcpCj4gPiArI2RlZmluZSBEUk1fRk9STUFUX0JBWUVSX0dSQkcxNAkJZm91cmNjX2NvZGUo J0cnLCAnUicsICcxJywgJzQnKQo+ID4gKyNkZWZpbmUgRFJNX0ZPUk1BVF9CQVlFUl9HQlJHMTQJ CWZvdXJjY19jb2RlKCdHJywgJ0InLCAnMScsICc0JykKPiA+ICsjZGVmaW5lIERSTV9GT1JNQVRf QkFZRVJfQkdHUjE0CQlmb3VyY2NfY29kZSgnQicsICdHJywgJzEnLCAnNCcpCj4gPiArCj4gPiAg Cj4gPiAgLyoKPiA+ICAgKiBGb3JtYXQgTW9kaWZpZXJzOgo+ID4gQEAgLTMwOSw2ICszNzYsNyBA QCBleHRlcm4gIkMiIHsKPiA+ICAjZGVmaW5lIERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9CUk9BRENP TSAweDA3Cj4gPiAgI2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfQVJNICAgICAweDA4Cj4g PiAgI2RlZmluZSBEUk1fRk9STUFUX01PRF9WRU5ET1JfQUxMV0lOTkVSIDB4MDkKPiA+ICsjZGVm aW5lIERSTV9GT1JNQVRfTU9EX1ZFTkRPUl9NSVBJIDB4MGEKPiAKPiBUaGlzIGlzIGFuIGludGVy ZXN0aW5nIG9uZS4gSSBkb24ndCB0aGluayB0aGVzZSBmb3JtYXRzIGhhdmUgb3JpZ2luYXRlZAo+ IGZyb20gTUlQSS4gVGhlIGNvbG91ciBwYXR0ZXJuIGl0c2VsZiBpcyBmcm9tIEVhc3RtYW4gS29k YWsgYXBwYXJlbnRseQo+IChuYW1lZCBhZnRlciBCcnljZSBCYXllciksIGJ1dCB0aGUgbWVtb3J5 IGZvcm1hdCBpcyBub3QsIGFwYXJ0IGZyb20gdGhlCj4gTUlQSSBDU0ktMiBwYWNrZWQgdmFyaWFu dC4KPiAKPiBUaGUgZm9ybWF0cyBhcmUgcHJvYmFibHkgdW5saWtlIHRoZSBmb3JtYXRzIHVzZWQg b24gR1BVcyBhcyB0aGV5IGFyZQo+IHJlbGF0aXZlbHkgc2ltaWxhciBhY3Jvc3MgYSBudW1iZXIg b2YgdmVuZG9ycyBhbmQgZGV2aWNlcy4KPiAKPiBUaGVyZSBhcmUgbW9yZSByYXcgZm9ybWF0cyB0 aGFuIGp1c3QgdGhlIEJheWVyIGZvcm1hdHMsIHNlZSBlLmcuCj4gCj4gPFVSTDpodHRwczovL2Vu Lndpa2lwZWRpYS5vcmcvd2lraS9SYXdfaW1hZ2VfZm9ybWF0Pgo+IAo+IEF0IHRoZSBzYW1lIHRp bWUsIGl0J2QgYmUgZ29vZCB0byBrZWVwIHRoZSBDU0ktMiBwYWNrZWQgdmFyaWFudCBhcyBhIGZv cm1hdAo+IG1vZGlmaWVyLiBJIHdvbmRlciBpZiB3ZSBjb3VsZCBoYXZlIHNvbWV0aGluZyBsaWtl Cj4gRFJNX0ZPUk1BVF9NT0RfVkVORE9SX1JBVywgYWxiZWl0IGEgcmF3IGZvcm1hdCBpcyBub3Qg YSB2ZW5kb3IuCgpUaGUgbW9kaWZpZXIgZGVmaW5lZCB3aXRoIERSTV9GT1JNQVRfTU9EX1ZFTkRP Ul9NSVBJIGlzIG1lYW50IHRvIHNwZWNpZnkKaW4tbWVtb3J5IHBhY2tpbmcgY29ycmVzcG9uZGlu ZyB0byBob3cgdGhlIFJBVyBkYXRhIGlzIGNhcnJpZWQgb3ZlcgpDU0ktMi4gVGhhdCdzIHdoeSBN SVBJIHdhcyBwaWNrZWQgYXMgYSBuYW1lLgoKPiBDYyBEYW5pZWwgYW5kIExhdXJlbnQuCj4gCj4g PiAgLyogYWRkIG1vcmUgdG8gdGhlIGVuZCBhcyBuZWVkZWQgKi8KPiA+ICAKPiA+IEBAIC00MzQs NiArNTAyLDU2IEBAIGV4dGVybiAiQyIgewo+ID4gICAqLwo+ID4gICNkZWZpbmUgSTkxNV9GT1JN QVRfTU9EX1lfVElMRURfR0VOMTJfTUNfQ0NTIGZvdXJjY19tb2RfY29kZShJTlRFTCwgNykKPiA+ ICAKPiA+ICsKPiA+ICsvKgo+ID4gKyAqIElQVTMgQmF5ZXIgcGFja2luZyBsYXlvdXQKPiA+ICsg Kgo+ID4gKyAqIFRoZSBJUFUzIHJhdyBCYXllciBmb3JtYXRzIHVzZSBhIGN1c3RvbSBwYWNraW5n IGxheW91dCB3aGVyZSB0aGVyZSBhcmUgbm8KPiA+ICsgKiBnYXBzIGJldHdlZW4gZWFjaCAxMC1i aXQgc2FtcGxlLiBJdCBwYWNrcyAyNSBwaXhlbHMgaW50byAzMiBieXRlcyBsZWF2aW5nCj4gPiAr ICogdGhlIDYgbW9zdCBzaWduaWZpY2FudCBiaXRzIGluIHRoZSBsYXN0IGJ5dGUgdW51c2VkIHpl cm8gcGFkZGluZyBiaXRzLgo+ID4gKyAqCj4gPiArICogRm9yIGV4YW1wbGUsIERSTV9GT1JNQVRf QkFZRVJfQkdHUjEwIHdpdGggSVBVM19GT1JNQVRfTU9EX1BBQ0tFRDoKPiA+ICsgKgo+ID4gKyAq ICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cgMCAoQkdCR0JHQkdCR0JH QkdCR0JHQkdCR0JHQikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEKPiA+ICsg KiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4gPiAr ICogIHwgYjAgYjAgYjAgYjAgYjAgYjAgYjAgYjAgfCBnMCBnMCBnMCBnMCBnMCBnMCBiMCBiMCB8 IGIxIGIxIGIxIGIxIGcwIGcwIGcwIGcwIHwgZzEgZzEgYjEgYjEgYjEgYjEgYjEgYjEgfAo+ID4g KyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g KyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ ICsgKiAgfCBnMSBnMSBnMSBnMSBnMSBnMSBnMSBnMSB8IGIyIGIyIGIyIGIyIGIyIGIyIGIyIGIy IHwgZzIgZzIgZzIgZzIgZzIgZzIgYjIgYjIgfCBiMyBiMyBiMyBiMyBnMiBnMiBnMiBnMiB8Cj4g PiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAg LSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ ID4gKyAqICB8IGczIGczIGIzIGIzIGIzIGIzIGIzIGIzIHwgZzMgZzMgZzMgZzMgZzMgZzMgZzMg ZzMgfCBiNCBiNCBiNCBiNCBiNCBiNCBiNCBiNCB8IGc0IGc0IGc0IGc0IGc0IGc0IGI0IGI0IHwK PiA+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr Cj4gPiArICogIHwgYjUgYjUgYjUgYjUgZzQgZzQgZzQgZzQgfCBnNSBnNSBiNSBiNSBiNSBiNSBi NSBiNSB8IGc1IGc1IGc1IGc1IGc1IGc1IGc1IGc1IHwgYjYgYjYgYjYgYjYgYjYgYjYgYjYgYjYg fAo+ID4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0g IC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAt ICsKPiA+ICsgKiAgfCBnNiBnNiBnNiBnNiBnNiBnNiBiNiBiNiB8IGI3IGI3IGI3IGI3IGc2IGc2 IGc2IGc2IHwgZzcgZzcgYjcgYjcgYjcgYjcgYjcgYjcgfCBnNyBnNyBnNyBnNyBnNyBnNyBnNyBn NyB8Cj4gPiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAg LSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKwo+ID4gKyAqICB8IGI4IGI4IGI4IGI4IGI4IGI4IGI4IGI4IHwgZzggZzggZzggZzggZzgg ZzggYjggYjggfCBiOSBiOSBiOSBiOSBnOCBnOCBnOCBnOCB8IGc5IGc5IGI5IGI5IGI5IGI5IGI5 IGI5IHwKPiA+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArCj4gPiArICogIHwgZzkgZzkgZzkgZzkgZzkgZzkgZzkgZzkgfCBiQSBiQSBiQSBiQSBi QSBiQSBiQSBiQSB8IGdBIGdBIGdBIGdBIGdBIGdBIGJBIGJBIHwgYkIgYkIgYkIgYkIgZ0EgZ0Eg Z0EgZ0EgfAo+ID4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsKPiA+ICsgKiAgfCBnQiBnQiBiQiBiQiBiQiBiQiBiQiBiQiB8IGdCIGdCIGdCIGdC IGdCIGdCIGdCIGdCIHwgYkMgYkMgYkMgYkMgYkMgYkMgYkMgYkMgfCAgMCAgMCAgMCAgMCAgMCAg MCBiQyBiQyB8Cj4gPiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKwo+ID4gKyAqCj4gPiArICogIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJvdyAxIChHUkdSR1JHUkdSR1JHUkdSR1JHUkdSR1JHKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAzMQo+ID4gKyAqICArICAtICAtICAtICAtICAtICAtICAtICAtICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgfCBnMCBnMCBnMCBnMCBnMCBnMCBnMCBnMCB8 IHIwIHIwIHIwIHIwIHIwIHIwIGcwIGcwIHwgZzEgZzEgZzEgZzEgcjAgcjAgcjAgcjAgfCByMSBy MSBnMSBnMSBnMSBnMSBnMSBnMSB8Cj4gPiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g KyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0g IC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICB8IHIxIHIxIHIxIHIxIHIxIHIxIHIxIHIx IHwgZzIgZzIgZzIgZzIgZzIgZzIgZzIgZzIgfCByMiByMiByMiByMiByMiByMiBnMiBnMiB8IGcz IGczIGczIGczIHIyIHIyIHIyIHIyIHwKPiA+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAg LSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAg LSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4gPiArICogIHwgcjMgcjMgZzMgZzMgZzMgZzMgZzMg ZzMgfCByMyByMyByMyByMyByMyByMyByMyByMyB8IGc0IGc0IGc0IGc0IGc0IGc0IGc0IGc0IHwg cjQgcjQgcjQgcjQgcjQgcjQgZzQgZzQgfAo+ID4gKyAqICArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr ICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgfCBnNSBnNSBnNSBnNSByNCByNCBy NCByNCB8IHI1IHI1IGc1IGc1IGc1IGc1IGc1IGc1IHwgcjUgcjUgcjUgcjUgcjUgcjUgcjUgcjUg fCBnNiBnNiBnNiBnNiBnNiBnNiBnNiBnNiB8Cj4gPiArICogICsgIC0gIC0gIC0gIC0gIC0gIC0g IC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAt ICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICB8IHI2IHI2IHI2IHI2IHI2IHI2 IGc2IGc2IHwgZzcgZzcgZzcgZzcgcjYgcjYgcjYgcjYgfCByNyByNyBnNyBnNyBnNyBnNyBnNyBn NyB8IHI3IHI3IHI3IHI3IHI3IHI3IHI3IHI3IHwKPiA+ICsgKiAgKyAgLSAgLSAgLSAgLSAgLSAg LSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4gPiArICogIHwgZzggZzggZzggZzggZzgg ZzggZzggZzggfCByOCByOCByOCByOCByOCByOCBnOCBnOCB8IGc5IGc5IGc5IGc5IHI4IHI4IHI4 IHI4IHwgcjkgcjkgZzkgZzkgZzkgZzkgZzkgZzkgfAo+ID4gKyAqICArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgfCByOSByOSByOSByOSBy OSByOSByOSByOSB8IGdBIGdBIGdBIGdBIGdBIGdBIGdBIGdBIHwgckEgckEgckEgckEgckEgckEg Z0EgZ0EgfCBnQiBnQiBnQiBnQiByQSByQSByQSByQSB8Cj4gPiArICogICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICB8IHJCIHJCIGdCIGdC IGdCIGdCIGdCIGdCIHwgckIgckIgckIgckIgckIgckIgckIgckIgfCBnQyBnQyBnQyBnQyBnQyBn QyBnQyBnQyB8ICAwICAwICAwICAwICAwICAwIGdDIGdDIHwKPiA+ICsgKiAgKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArCj4gPiArICovCj4gPiArI2RlZmlu ZSBJUFUzX0ZPUk1BVF9NT0RfUEFDS0VEIGZvdXJjY19tb2RfY29kZShJTlRFTCwgOCkKPiA+ICsK PiA+ICAvKgo+ID4gICAqIFRpbGVkLCBOVjEyTVQsIGdyb3VwZWQgaW4gNjQgKHBpeGVscykgeCAz MiAobGluZXMpIC1zaXplZCBtYWNyb2Jsb2Nrcwo+ID4gICAqCj4gPiBAQCAtODA0LDYgKzkyMiw5 MyBAQCBleHRlcm4gIkMiIHsKPiA+ICAgKi8KPiA+ICAjZGVmaW5lIERSTV9GT1JNQVRfTU9EX0FM TFdJTk5FUl9USUxFRCBmb3VyY2NfbW9kX2NvZGUoQUxMV0lOTkVSLCAxKQo+ID4gIAo+ID4gKy8q IE1vYmlsZSBJbmR1c3RyeSBQcm9jZXNzb3IgSW50ZXJmYWNlIChNSVBJKSBtb2RpZmllcnMgKi8K PiA+ICsKPiA+ICsvKgo+ID4gKyAqIE1JUEkgQ1NJLTIgcGFja2luZyBsYXlvdXQKPiA+ICsgKgo+ ID4gKyAqIFRoZSBDU0ktMiBSQVcgZm9ybWF0cyAoZm9yIGV4YW1wbGUgQmF5ZXIpIHVzZSBhIGRp ZmZlcmVudCBwYWNraW5nIGxheW91dAo+ID4gKyAqIGRlcGVuZGluZyBvbiB0aGUgc2FtcGxlIHNp emUuCj4gPiArICoKPiA+ICsgKiAtIDEwLWJpdHMgcGVyIHNhbXBsZQo+ID4gKyAqICAgRXZlcnkg Zm91ciBjb25zZWN1dGl2ZSBzYW1wbGVzIGFyZSBwYWNrZWQgaW50byA1IGJ5dGVzLiBFYWNoIG9m IHRoZSBmaXJzdCA0Cj4gPiArICogICBieXRlcyBjb250YWluIHRoZSA4IGhpZ2ggb3JkZXIgYml0 cyBvZiB0aGUgcGl4ZWxzLCBhbmQgdGhlIDV0aCBieXRlCj4gPiArICogICBjb250YWlucyB0aGUg MiBsZWFzdC1zaWduaWZpY2FudCBiaXRzIG9mIGVhY2ggcGl4ZWwsIGluIHRoZSBzYW1lIG9yZGVy Lgo+ID4gKyAqCj4gPiArICogICBGb3IgZXhhbXBsZSwgRFJNX0ZPUk1BVF9CQVlFUl9CR0dSMTAg d2l0aCBNSVBJX0ZPUk1BVF9NT0RfQ1NJMl9QQUNLRUQ6Cj4gPiArICoKPiA+ICsgKiAgICAwICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3cgMCAoQkdCR0JHQkcp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEKPiA+ICsgKiAgICAr ICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAg LSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAg ICB8IGIwIGIwIGIwIGIwIGIwIGIwIGIwIGIwIHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCBi MSBiMSBiMSBiMSBiMSBiMSBiMSBiMSB8IGcxIGcxIGcxIGcxIGcxIGcxIGcxIGcxIHwKPiA+ICsg KiAgICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0g KyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ ICsgKiAgICB8IGcxIGcxIGIxIGIxIGcwIGcwIGIwIGIwIHwgYjIgYjIgYjIgYjIgYjIgYjIgYjIg YjIgfCBnMiBnMiBnMiBnMiBnMiBnMiBnMiBnMiB8IGIzIGIzIGIzIGIzIGIzIGIzIGIzIGIzIHwK PiA+ICsgKiAgICArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0g IC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAt ICsKPiA+ICsgKiAgICB8IGczIGczIGczIGczIGczIGczIGczIGczIHwgZzMgZzMgYjMgYjMgZzIg ZzIgYjIgYjIgfAo+ID4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAg LSAgLSAgLSAgLSAgLSAgLSArCj4gPiArICoKPiA+ICsgKiAgICAwICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByb3cgMSAoR1JHUkdSR1IpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzEKPiA+ICsgKiAgICArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgICB8IGcwIGcwIGcwIGcw IGcwIGcwIGcwIGcwIHwgcjAgcjAgcjAgcjAgcjAgcjAgcjAgcjAgfCBnMSBnMSBnMSBnMSBnMSBn MSBnMSBnMSB8IHIxIHIxIHIxIHIxIHIxIHIxIHIxIHIxIHwKPiA+ICsgKiAgICArICAtICAtICAt ICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAg LSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgICB8IHIxIHIx IGcxIGcxIHIwIHIwIGcwIGcwIHwgZzIgZzIgZzIgZzIgZzIgZzIgZzIgZzIgfCByMiByMiByMiBy MiByMiByMiByMiByMiB8IGczIGczIGczIGczIGczIGczIGczIGczIHwKPiA+ICsgKiAgICArICAt ICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAg LSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKiAgICB8 IHIzIHIzIHIzIHIzIHIzIHIzIHIzIHIzIHwgcjMgcjMgZzMgZzMgcjIgcjIgZzIgZzIgfAo+ID4g KyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAg LSArCj4gPiArICoKPiA+ICsgKiAtIDEyLWJpdHMgcGVyIHNhbXBsZQo+ID4gKyAqICAgRXZlcnkg dHdvIGNvbnNlY3V0aXZlIHNhbXBsZXMgYXJlIHBhY2tlZCBpbnRvIHRocmVlIGJ5dGVzLiBFYWNo IG9mIHRoZQo+ID4gKyAqICAgZmlyc3QgdHdvIGJ5dGVzIGNvbnRhaW4gdGhlIDggaGlnaCBvcmRl ciBiaXRzIG9mIHRoZSBwaXhlbHMsIGFuZCB0aGUgdGhpcmQKPiA+ICsgKiAgIGJ5dGUgY29udGFp bnMgdGhlIGZvdXIgbGVhc3Qtc2lnbmlmaWNhbnQgYml0cyBvZiBlYWNoIHBpeGVsLCBpbiB0aGUg c2FtZQo+ID4gKyAqICAgb3JkZXIuCj4gPiArICoKPiA+ICsgKiAgIEZvciBleGFtcGxlLCBEUk1f Rk9STUFUX0JBWUVSX0dSQkcxMiB3aXRoIE1JUElfRk9STUFUX01PRF9DU0kyX1BBQ0tFRDoKPiA+ ICsgKgo+ID4gKyAqICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcm93IDAgKEdSR1IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAzMQo+ID4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAg LSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgZzAgZzAgZzAgZzAgZzAgZzAgZzAgZzAgfCByMCByMCBy MCByMCByMCByMCByMCByMCB8IHIwIHIwIHIwIHIwIGcwIGcwIGcwIGcwIHwgZzEgZzEgZzEgZzEg ZzEgZzEgZzEgZzEgfAo+ID4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAg LSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0g IC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgcjEgcjEgcjEgcjEgcjEgcjEgcjEgcjEgfCBy MSByMSByMSByMSBnMSBnMSBnMSBnMSB8Cj4gPiArICogICAgKyAgLSAgLSAgLSAgLSAgLSAgLSAg LSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsKPiA+ICsgKgo+ID4gKyAqICAgIDAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93IDEgKEJHQkcpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMQo+ID4gKyAqICAgICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAg IHwgYjAgYjAgYjAgYjAgYjAgYjAgYjAgYjAgfCBnMCBnMCBnMCBnMCBnMCBnMCBnMCBnMCB8IGcw IGcwIGcwIGcwIGIwIGIwIGIwIGIwIHwgYjEgYjEgYjEgYjEgYjEgYjEgYjEgYjEgfAo+ID4gKyAq ICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr ICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4g KyAqICAgIHwgZzEgZzEgZzEgZzEgZzEgZzEgZzEgZzEgfCBnMSBnMSBnMSBnMSBiMSBiMSBiMSBi MSB8Cj4gPiArICogICAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsKPiA+ICsgKgo+ID4gKyAqIC0gMTQtYml0cyBwZXIgc2FtcGxlCj4gPiArICog ICBFdmVyeSBmb3VyIGNvbnNlY3V0aXZlIHNhbXBsZXMgYXJlIHBhY2tlZCBpbnRvIHNldmVuIGJ5 dGVzLiBFYWNoIG9mIHRoZQo+ID4gKyAqICAgZmlyc3QgZm91ciBieXRlcyBjb250YWluIHRoZSBl aWdodCBoaWdoIG9yZGVyIGJpdHMgb2YgdGhlIHBpeGVscywgYW5kIHRoZQo+ID4gKyAqICAgdGhy ZWUgZm9sbG93aW5nIGJ5dGVzIGNvbnRhaW5zIHRoZSBzaXggbGVhc3Qtc2lnbmlmaWNhbnQgYml0 cyBvZiBlYWNoCj4gPiArICogICBwaXhlbCwgaW4gdGhlIHNhbWUgb3JkZXIuCj4gPiArICoKPiA+ ICsgKiAgIEZvciBleGFtcGxlLCBEUk1fRk9STUFUX0JBWUVSX0dCUkcxNCB3aXRoIE1JUElfRk9S TUFUX01PRF9DU0kyX1BBQ0tFRDoKPiA+ICsgKgo+ID4gKyAqICAgIDAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdyAwIChHQkdCR0JHQikgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMQo+ID4gKyAqICAgICsgIC0gIC0gIC0gIC0g IC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAt ICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgZzAgZzAgZzAg ZzAgZzAgZzAgZzAgZzAgfCBiMCBiMCBiMCBiMCBiMCBiMCBiMCBiMCB8IGcxIGcxIGcxIGcxIGcx IGcxIGcxIGcxIHwgYjEgYjEgYjEgYjEgYjEgYjEgYjEgYjEgfAo+ID4gKyAqICAgICsgIC0gIC0g IC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAt ICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgYjAg YjAgZzAgZzAgZzAgZzAgZzAgZzAgfCBnMSBnMSBnMSBnMSBiMCBiMCBiMCBiMCB8IGIxIGIxIGIx IGIxIGIxIGIxIGcxIGcxIHwgZzIgZzIgZzIgZzIgZzIgZzIgZzIgZzIgfAo+ID4gKyAqICAgICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAt ICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAg IHwgYjIgYjIgYjIgYjIgYjIgYjIgYjIgYjIgfCBnMyBnMyBnMyBnMyBnMyBnMyBnMyBnMyB8IGIz IGIzIGIzIGIzIGIzIGIzIGIzIGIzIHwgYjIgYjIgZzIgZzIgZzIgZzIgZzIgZzIgfAo+ID4gKyAq ICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSAr ICAtICAtICAtICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4g KyAqICAgIHwgZzMgZzMgZzMgZzMgYjIgYjIgYjIgYjIgfCBiMyBiMyBiMyBiMyBiMyBiMyBnMyBn MyB8Cj4gPiArICogICAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsKPiA+ICsgKgo+ID4gKyAqICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJvdyAxIChSR1JHUkdSRykgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAzMQo+ID4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0g IC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAtICsg IC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgcjAgcjAgcjAgcjAgcjAgcjAg cjAgcjAgfCBnMCBnMCBnMCBnMCBnMCBnMCBnMCBnMCB8IHIxIHIxIHIxIHIxIHIxIHIxIHIxIHIx IHwgZzEgZzEgZzEgZzEgZzEgZzEgZzEgZzEgfAo+ID4gKyAqICAgICsgIC0gIC0gIC0gIC0gIC0g IC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAt ICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgZzAgZzAgcjAgcjAg cjAgcjAgcjAgcjAgfCByMSByMSByMSByMSBnMCBnMCBnMCBnMCB8IGcxIGcxIGcxIGcxIGcxIGcx IHIxIHIxIHwgcjIgcjIgcjIgcjIgcjIgcjIgcjIgcjIgfAo+ID4gKyAqICAgICsgIC0gIC0gIC0g IC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAt ICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwgZzIgZzIg ZzIgZzIgZzIgZzIgZzIgZzIgfCByMyByMyByMyByMyByMyByMyByMyByMyB8IGczIGczIGczIGcz IGczIGczIGczIGczIHwgZzIgZzIgcjIgcjIgcjIgcjIgcjIgcjIgfAo+ID4gKyAqICAgICsgIC0g IC0gIC0gIC0gIC0gIC0gIC0gIC0gKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAt ICAtICAtICAtICAtICAtICsgIC0gIC0gIC0gIC0gIC0gIC0gIC0gIC0gKwo+ID4gKyAqICAgIHwg cjMgcjMgcjMgcjMgZzIgZzIgZzIgZzIgfCBnMyBnMyBnMyBnMyBnMyBnMyByMyByMyB8Cj4gPiAr ICogICAgKyAgLSAgLSAgLSAgLSAgLSAgLSAgLSAgLSArICAtICAtICAtICAtICAtICAtICAtICAt ICsKPiA+ICsgKi8KPiA+ICsjZGVmaW5lIE1JUElfRk9STUFUX01PRF9DU0kyX1BBQ0tFRCBmb3Vy Y2NfbW9kX2NvZGUoTUlQSSwgMSkKPiA+ICsKPiA+ICAjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykK PiA+ICB9Cj4gPiAgI2VuZGlmCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==