From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v6 08/28] drm/dsc: Define Display Stream Compression PPS infoframe Date: Thu, 1 Nov 2018 14:48:16 -0700 Message-ID: <20181101214815.GI3481@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-9-manasi.d.navare@intel.com> <20181101164217.GF9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181101164217.GF9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Harry Wentland List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMDEsIDIwMTggYXQgMDY6NDI6MTdQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDAzOjI4OjIwUE0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBUaGlzIHBhdGNoIGRlZmluZXMgYSBuZXcgaGVhZGVyIGZpbGUg Zm9yIGFsbCB0aGUgRFNDIDEuMiBzdHJ1Y3R1cmVzCj4gPiBhbmQgY3JlYXRlcyBhIHN0cnVjdHVy ZSBmb3IgUFBTIGluZm9mcmFtZSB3aGljaCB3aWxsIGJlIHVzZWQgdG8gc2VuZAo+ID4gcGljdHVy ZSBwYXJhbWV0ZXIgc2V0IHNlY29uZGFyeSBkYXRhIHBhY2tldCBmb3IgZGlzcGxheSBzdHJlYW0g Y29tcHJlc3Npb24uCj4gPiBBbGwgdGhlIFBQUyBpbmZvZnJhbWUgc3ludGF4IGVsZW1lbnRzIGFy ZSB0YWtlbiBmcm9tIERTQyAxLjIgc3BlY2lmaWNhdGlvbgo+ID4gZnJvbSBWRVNBLgo+ID4gCj4g PiB2MzoKPiA+ICogQWRkIHRoZSBTUERYIHNob3J0aGFuZCAoQ2hyaXMgV2lsc29uKQo+ID4gdjI6 Cj4gPiAqIERvIG5vdCB1c2UgYml0ZmllbGRzIGluIHRoZSBzdHJ1Y3QgKEphbmkgTmlrdWxhKQo+ ID4gCj4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KPiA+ IENjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBDYzogSmFuaSBOaWt1bGEg PGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNo YS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPiBDYzogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRs YW5kQGFtZC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5u YXZhcmVAaW50ZWwuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53 ZW50bGFuZEBhbWQuY29tPgo+ID4gLS0tCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2RzYy5oIHwgMzQ3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIDEgZmlsZSBj aGFuZ2VkLCAzNDcgaW5zZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRl L2RybS9kcm1fZHNjLmgKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kc2Mu aCBiL2luY2x1ZGUvZHJtL2RybV9kc2MuaAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGlu ZGV4IDAwMDAwMDAwMDAwMC4uMWQ4YTAzOTgzYjkwCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fZHNjLmgKPiA+IEBAIC0wLDAgKzEsMzQ3IEBACj4gPiArLyogU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ID4gKyAqIENvcHlyaWdodCAoQykgMjAxOCBJbnRl bCBDb3JwLgo+ID4gKyAqCj4gPiArICogQXV0aG9yczoKPiA+ICsgKiBNYW5hc2kgTmF2YXJlIDxt YW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gKyAqLwo+ID4gKwo+ID4gKyNpZm5kZWYgRFJN X0RTQ19IXwo+ID4gKyNkZWZpbmUgRFJNX0RTQ19IXwo+ID4gKwo+ID4gKyNpbmNsdWRlIDxkcm0v ZHJtX2RwX2hlbHBlci5oPgo+ID4gKwo+ID4gKy8qIFZFU0EgRGlzcGxheSBTdHJlYW0gQ29tcHJl c3Npb24gRFNDIDEuMiBjb25zdGFudHMgKi8KPiA+ICsjZGVmaW5lIERTQ19OVU1fQlVGX1JBTkdF UwkxNQo+IAo+IERSTV9EU0NfLi4uICBwZXJoYXNwPwo+IAo+ID4gKwo+ID4gKy8qKgo+ID4gKyAq IHN0cnVjdCBwaWN0dXJlX3BhcmFtZXRlcl9zZXQgLSBSZXByZXNlbnRzIDEyOCBieXRlcyBvZiBQ aWN0dXJlIFBhcmFtZXRlciBTZXQKPiA+ICsgKgo+ID4gKyAqIFRoZSBWRVNBIERTQyBzdGFuZGFy ZCBkZWZpbmVzIHBpY3R1cmUgcGFyYW1ldGVyIHNldCAoUFBTKSB3aGljaCBkaXNwbGF5Cj4gPiAr ICogc3RyZWFtIGNvbXByZXNzaW9uIGVuY29kZXJzIG11c3QgY29tbXVuaWNhdGUgdG8gZGVjb2Rl cnMuCj4gPiArICogVGhlIFBQUyBpcyBlbmNhcHN1bGF0ZWQgaW4gMTI4IGJ5dGVzIChQUFMgMCB0 aHJvdWdoIFBQUyAxMjcpLiBUaGUgZmllbGRzIGluCj4gPiArICogdGhpcyBzdHJ1Y3R1cmUgYXJl IGFzIHBlciBUYWJsZSA0LjEgaW4gVmVzYSBEU0Mgc3BlY2lmaWNhdGlvbiB2MS4xL3YxLjIuCj4g PiArICogVGhlIFBQUyBmaWVsZHMgdGhhdCBzcGFuIG92ZXIgbW9yZSB0aGFuIGEgYnl0ZSBzaG91 bGQgYmUgc3RvcmVkIGluIEJpZyBFbmRpYW4KPiA+ICsgKiBmb3JtYXQuCj4gPiArICovCj4gPiAr c3RydWN0IHBpY3R1cmVfcGFyYW1ldGVyX3NldCB7Cj4gCj4gTmVlZHMgYSBuYW1lc3BhY2UgdG9v LiBQcm9iYWJseSBiZXN0IG1ha2UgdGhpcyBzdHJ1Y3QgcGFja2VkLiBBCj4gQlVJTERfQlVHX09O KCkgc29tZXdoZXJlIHRvIHZlcmlmeSB0aGUgc2l6ZSBtaWdodCBhbHNvIGJlIG5pY2UuCj4KCkJ5 IG5hbWVzcGFjZSB5b3UgbWVhbiByZW5hbWluZyB0aGlzIHN0cnVjdCBhcyBkc2NfcGljdHVyZV9w YXJhbWV0ZXJfc2V0PwpBbmQgeWVzIHdpbGwgbWFrZSB0aGlzIHN0cnVjdCBwYWNrZWQuCkJVSUxE X0JVR19PTigpIGJlZm9yZSB1c2luZyBpdCB0byBtYWtlIHN1cmUgdGhlIHNpemUgaXMgc3RpbGwg MTI4IGJ5dGVzPwoKIAo+ID4gKwkvKioKPiA+ICsJICogQGRzY192ZXJzaW9uOgo+ID4gKwkgKiBQ UFMwWzM6MF0gLSBkc2NfdmVyc2lvbl9taW5vcjogQ29udGFpbnMgTWlub3IgdmVyc2lvbiBvZiBE U0MKPiA+ICsJICogUFBTMFs3OjRdIC0gZHNjX3ZlcnNpb25fbWFqb3I6IENvbnRhaW5zIG1ham9y IHZlcnNpb24gb2YgRFNDCj4gPiArCSAqLwo+ID4gKwl1OCBkc2NfdmVyc2lvbjsKPiA+ICsJLyoq Cj4gPiArCSAqIEBwcHNfaWRlbnRpZmllcjoKPiA+ICsJICogUFBTMVs3OjBdIC0gQXBwbGljYXRp b24gc3BlY2lmaWMgaWRlbnRpZmllciB0aGF0IGNhbiBiZQo+ID4gKwkgKiB1c2VkIHRvIGRpZmZl cmVudGlhdGUgYmV0d2VlbiBkaWZmZXJlbnQgUFBTIHRhYmxlcy4KPiA+ICsJICovCj4gPiArCXU4 IHBwc19pZGVudGlmaWVyOwo+ID4gKwkvKioKPiA+ICsJICogQHBwc19yZXNlcnZlZDoKPiA+ICsJ ICogUFBTMls3OjBdLSBSRVNFUlZFRCBCeXRlCj4gPiArCSAqLwo+ID4gKwl1OCBwcHNfcmVzZXJ2 ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzXzM6Cj4gPiArCSAqIFBQUzNbMzowXSAtIGxpbmVi dWZfZGVwdGg6IENvbnRhaW5zIGxpbmVidWZmZXIgYml0IGRlcHRoIHVzZWQgdG8KPiA+ICsJICog Z2VuZXJhdGUgdGhlIGJpdHN0cmVhbS4gKDB4MCAtIDE2IGJpdHMgZm9yIERTQyAxLjIsIDB4OCAt IDggYml0cywKPiA+ICsJICogMHhBIC0gMTAgYml0cywgMHhCIC0gMTEgYml0cywgMHhDIC0gMTIg Yml0cywgMHhEIC0gMTMgYml0cywKPiA+ICsJICogMHhFIC0gMTQgYml0cyBmb3IgRFNDMS4yLCAw eEYgLSAxNCBiaXRzIGZvciBEU0MgMS4yLgo+ID4gKwkgKiBQUFMzWzc6NF0gLSBiaXRzX3Blcl9j b21wb25lbnQ6IEJpdHMgcGVyIGNvbXBvbmVudCBmb3IgdGhlIG9yaWdpbmFsCj4gPiArCSAqIHBp eGVscyBvZiB0aGUgZW5jb2RlZCBwaWN0dXJlLgo+ID4gKwkgKiAweDAgPSAxNmJwYyAoYWxsb3dl ZCBvbmx5IHdoZW4gZHNjX3ZlcnNpb25fbWlub3IgPSAweDIpCj4gPiArCSAqIDB4OCA9IDhicGMs IDB4QSA9IDEwYnBjLCAweEMgPSAxMmJwYywgMHhFID0gMTRicGMgKGFsc28KPiA+ICsJICogYWxs b3dlZCBvbmx5IHdoZW4gZHNjX21pbm9yX3ZlcnNpb24gPSAweDIpCj4gPiArCSAqLwo+ID4gKwl1 OCBwcHNfMzsKPiA+ICsJLyoqCj4gPiArCSAqIEBwcHNfNDoKPiA+ICsJICogUFBTNFsxOjBdIC1U aGVzZSBhcmUgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgMiBiaXRzIG9mCj4gPiArCSAqIGNvbXByZXNz ZWQgQlBQIGJpdHNfcGVyX3BpeGVsWzk6MF0gc3ludGF4IGVsZW1lbnQuCj4gPiArCSAqIFBQUzRb Ml0gLSB2YnJfZW5hYmxlOiAwID0gVkJSIGRpc2FibGVkLCAxID0gVkJSIGVuYWJsZWQKPiA+ICsJ ICogUFBTNFszXSAtIHNpbXBsZV80MjI6IEluZGljYXRlcyBpZiBkZWNvZGVyIGRyb3BzIHNhbXBs ZXMgdG8KPiA+ICsJICogcmVjb25zdHJ1Y3QgdGhlIDQ6MjoyIHBpY3R1cmUuCj4gPiArCSAqIFBQ UzRbNF0gLSBDb252ZXJ0X3JnYjogSW5kaWNhdGVzIGlmIERTQyBjb2xvciBzcGFjZSBjb252ZXJz aW9uIGlzCj4gPiArCSAqIGFjdGl2ZS4KPiA+ICsJICogUFBTNFs1XSAtIGJsb2JrX3ByZWRfZW5h YmxlOiBJbmRpY2F0ZXMgaWYgQlAgaXMgdXNlZCB0byBjb2RlIGFueQo+ID4gKwkgKiBncm91cHMg aW4gcGljdHVyZQo+ID4gKwkgKiBQUFM0Wzc6Nl0gLSBSZXNldmVkIGJpdHMKPiA+ICsJICovCj4g PiArCXU4IHBwc180Owo+ID4gKwkvKioKPiA+ICsJICogQGJpdHNfcGVyX3BpeGVsX2xvdzoKPiA+ ICsJICogUFBTNVs3OjBdIC0gVGhpcyBpbmRpY2F0ZXMgdGhlIGxvd2VyIHNpZ25pZmljYW50IDgg Yml0cyBvZgo+ID4gKwkgKiB0aGUgY29tcHJlc3NlZCBCUFAgYml0c19wZXJfcGl4ZWxbOTowXSBl bGVtZW50Lgo+ID4gKwkgKi8KPiA+ICsJdTggYml0c19wZXJfcGl4ZWxfbG93Owo+ID4gKwkvKioK PiA+ICsJICogQHBpY19oZWlnaHQ6Cj4gPiArCSAqIFBQUzZbNzowXSwgUFBTN1s3OjBdIC1waWNf aGVpZ2h0OiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwaXhlbCByb3dzCj4gPiArCSAqIHdpdGhp biB0aGUgcmFzdGVyLgo+ID4gKwkgKi8KPiA+ICsJX19iZTE2IHBpY19oZWlnaHQ7Cj4gPiArCS8q Kgo+ID4gKwkgKiBAcGljX3dpZHRoOgo+ID4gKwkgKiBQUFM4Wzc6MF0sIFBQUzlbNzowXSAtIHBp Y193aWR0aDogTnVtYmVyIG9mIHBpeGVsIGNvbHVtbnMgd2l0aGluCj4gPiArCSAqIHRoZSByYXN0 ZXIuCj4gPiArCSAqLwo+ID4gKwlfX2JlMTYgcGljX3dpZHRoOwo+ID4gKwkvKioKPiA+ICsJICog QHNsaWNlX2hlaWdodDoKPiA+ICsJICogUFBTMTBbNzowXSwgUFBTMTFbNzowXSAtIFNsaWNlIGhl aWdodCBpbiB1bml0cyBvZiBwaXhlbHMuCj4gPiArCSAqLwo+ID4gKwlfX2JlMTYgc2xpY2VfaGVp Z2h0Owo+ID4gKwkvKioKPiA+ICsJICogQHNsaWNlX3dpZHRoOgo+ID4gKwkgKiBQUFMxMls3OjBd LCBQUFMxM1s3OjBdIC0gU2xpY2Ugd2lkdGggaW4gdGVybXMgb2YgcGl4ZWxzLgo+ID4gKwkgKi8K PiA+ICsJX19iZTE2IHNsaWNlX3dpZHRoOwo+ID4gKwkvKioKPiA+ICsJICogQGNodW5rX3NpemU6 Cj4gPiArCSAqIFBQUzE0Wzc6MF0sIFBQUzE1Wzc6MF0gLSBTaXplIGluIHVuaXRzIG9mIGJ5dGVz IG9mIHRoZSBjaHVua3MKPiA+ICsJICogdGhhdCBhcmUgdXNlZCBmb3Igc2xpY2UgbXVsdGlwbGV4 aW5nLgo+ID4gKwkgKi8KPiA+ICsJX19iZTE2IGNodW5rX3NpemU7Cj4gPiArCS8qKgo+ID4gKwkg KiBAaW5pdGlhbF94bWl0X2RlbGF5X2hpZ2g6Cj4gPiArCSAqIFBQUzE2WzE6MF0gLSBNb3N0IFNp Z25pZmljYW50IHR3byBiaXRzIG9mIGluaXRpYWwgdHJhbnNtaXNzaW9uIGRlbGF5Lgo+ID4gKwkg KiBJdCBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBwaXhlbCB0aW1lcyB0aGF0IHRoZSBlbmNvZGVy IHdhaXRzIGJlZm9yZQo+ID4gKwkgKiB0cmFuc21pdHRpbmcgZGF0YSBmcm9tIGl0cyByYXRlIGJ1 ZmZlci4KPiA+ICsJICogUFBTMTZbNzoyXSAtIFJlc2VydmVkCj4gPiArCSAqLwo+ID4gKwl1OCBp bml0aWFsX3htaXRfZGVsYXlfaGlnaDsKPiA+ICsJLyoqCj4gPiArCSAqIEBpbml0aWFsX3htaXRf ZGVsYXlfbG93Ogo+ID4gKwkgKiBQUFMxN1s3OjBdIC0gTGVhc3Qgc2lnbmlmaWNhbnQgOCBiaXRz IG9mIGluaXRpYWwgdHJhbnNtaXNzaW9uIGRlbGF5Lgo+ID4gKwkgKi8KPiA+ICsJdTggaW5pdGlh bF94bWl0X2RlbGF5X2xvdzsKPiA+ICsJLyoqCj4gPiArCSAqIEBpbml0aWFsX2RlY19kZWxheToK PiA+ICsJICoKPiA+ICsJICogUFBTMThbNzowXSwgUFBTMTlbNzowXSAtIEluaXRpYWwgZGVjb2Rp bmcgZGVsYXkgd2hpY2ggaXMgdGhlIG51bWJlcgo+ID4gKwkgKiBvZiBwaXhlbCB0aW1lcyB0aGF0 IHRoZSBkZWNvZGVyIGFjY3VtdWxhdGVzIGRhdGEgaW4gaXRzIHJhdGUgYnVmZmVyCj4gPiArCSAq IGJlZm9yZSBzdGFydGluZyB0byBkZWNvZGUgYW5kIG91dHB1dCBwaXhlbHMuCj4gPiArCSAqLwo+ ID4gKwlfX2JlMTYgaW5pdGlhbF9kZWNfZGVsYXk7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzMjBf cmVzZXJ2ZWQ6Cj4gPiArCSAqCj4gPiArCSAqIFBQUzIwWzc6MF0gLSBSZXNlcnZlZAo+ID4gKwkg Ki8KPiA+ICsJdTggcHBzMjBfcmVzZXJ2ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAaW5pdGlhbF9z Y2FsZV92YWx1ZToKPiA+ICsJICogUFBTMjFbNTowXSAtIEluaXRpYWwgcmNYZm9ybVNjYWxlIGZh Y3RvciB1c2VkIGF0IGJlZ2lubmluZwo+ID4gKwkgKiBvZiBhIHNsaWNlLgo+ID4gKwkgKiBQUFMy MVs3OjZdIC0gUmVzZXJ2ZWQKPiA+ICsJICovCj4gPiArCXU4IGluaXRpYWxfc2NhbGVfdmFsdWU7 Cj4gPiArCS8qKgo+ID4gKwkgKiBAc2NhbGVfaW5jcmVtZW50X2ludGVydmFsOgo+ID4gKwkgKiBQ UFMyMls3OjBdLCBQUFMyM1s3OjBdIC0gTnVtYmVyIG9mIGdyb3VwIHRpbWVzIGJldHdlZW4gaW5j cmVtZW50aW5nCj4gPiArCSAqIHRoZSByY1hmb3JtU2NhbGUgZmFjdG9yIGF0IGVuZCBvZiBhIHNs aWNlLgo+ID4gKwkgKi8KPiA+ICsJX19iZTE2IHNjYWxlX2luY3JlbWVudF9pbnRlcnZhbDsKPiA+ ICsJLyoqCj4gPiArCSAqIEBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2YWxfaGlnaDoKPiA+ICsJICog UFBTMjRbMzowXSAtIEhpZ2hlciA0IGJpdHMgaW5kaWNhdGluZyBudW1iZXIgb2YgZ3JvdXAgdGlt ZXMgYmV0d2Vlbgo+ID4gKwkgKiBkZWNyZW1lbnRpbmcgdGhlIHJjWGZvcm1TY2FsZSBmYWN0b3Ig YXQgYmVnaW5uaW5nIG9mIGEgc2xpY2UuCj4gPiArCSAqIFBQUzI0Wzc6NF0gLSBSZXNlcnZlZAo+ ID4gKwkgKi8KPiA+ICsJdTggc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2g7Cj4gPiArCS8q Kgo+ID4gKwkgKiBAc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2xvdzoKPiA+ICsJICogUFBTMjVb NzowXSAtIExvd2VyIDggYml0cyBvZiBzY2FsZSBkZWNyZW1lbnQgaW50ZXJ2YWwKPiA+ICsJICov Cj4gPiArCXU4IHNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbF9sb3c7Cj4gPiArCS8qKgo+ID4gKwkg KiBAcHBzMjZfcmVzZXJ2ZWQ6Cj4gPiArCSAqIFBQUzI2Wzc6MF0KPiA+ICsJICovCj4gPiArCXU4 IHBwczI2X3Jlc2VydmVkOwo+ID4gKwkvKioKPiA+ICsJICogQGZpcnN0X2xpbmVfYnBnX29mZnNl dDoKPiA+ICsJICogUFBTMjdbNDowXSAtIE51bWJlciBvZiBhZGRpdGlvbmFsIGJpdHMgdGhhdCBh cmUgYWxsb2NhdGVkCj4gPiArCSAqIGZvciBlYWNoIGdyb3VwIG9uIGZpcnN0IGxpbmUgb2YgYSBz bGljZS4KPiA+ICsJICogUFBTMjdbNzo1XSAtIFJlc2VydmVkCj4gPiArCSAqLwo+ID4gKwl1OCBm aXJzdF9saW5lX2JwZ19vZmZzZXQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAbmZsX2JwZ19vZmZzZXQ6 Cj4gPiArCSAqIFBQUzI4Wzc6MF0sIFBQUzI5Wzc6MF0gLSBOdW1iZXIgb2YgYml0cyBpbmNsdWRp bmcgZnJhYyBiaXRzCj4gPiArCSAqIGRlYWxsb2NhdGVkIGZvciBlYWNoIGdyb3VwIGZvciBncm91 cHMgYWZ0ZXIgdGhlIGZpcnN0IGxpbmUgb2Ygc2xpY2UuCj4gPiArCSAqLwo+ID4gKwlfX2JlMTYg bmZsX2JwZ19vZmZzZXQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAc2xpY2VfYnBnX29mZnNldDoKPiA+ ICsJICogUFBTMzAsIFBQUzMxWzc6MF0gLSBOdW1iZXIgb2YgYml0cyB0aGF0IGFyZSBkZWFsbG9j YXRlZCBmb3IgZWFjaAo+ID4gKwkgKiBncm91cCB0byBlbmZvcmNlIHRoZSBzbGljZSBjb25zdHJh aW50Lgo+ID4gKwkgKi8KPiA+ICsJX19iZTE2IHNsaWNlX2JwZ19vZmZzZXQ7Cj4gPiArCS8qKgo+ ID4gKwkgKiBAaW5pdGlhbF9vZmZzZXQ6Cj4gPiArCSAqIFBQUzMyLDMzWzc6MF0gLSBJbml0aWFs IHZhbHVlIGZvciByY1hmb3JtT2Zmc2V0Cj4gPiArCSAqLwo+ID4gKwlfX2JlMTYgaW5pdGlhbF9v ZmZzZXQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAZmluYWxfb2Zmc2V0Ogo+ID4gKwkgKiBQUFMzNCwz NVs3OjBdIC0gTWF4aW11bSBlbmQtb2Ytc2xpY2UgdmFsdWUgZm9yIHJjWGZvcm1PZmZzZXQKPiA+ ICsJICovCj4gPiArCV9fYmUxNiBmaW5hbF9vZmZzZXQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAZmxh dG5lc3NfbWluX3FwOgo+ID4gKwkgKiBQUFMzNls0OjBdIC0gTWluaW11bSBRUCBhdCB3aGljaCBm bGF0bmVzcyBpcyBzaWduYWxlZCBhbmQKPiA+ICsJICogZmxhdG5lc3MgUVAgYWRqdXN0bWVudCBp cyBtYWRlLgo+ID4gKwkgKiBQUFMzNls3OjVdIC0gUmVzZXJ2ZWQKPiA+ICsJICovCj4gPiArCXU4 IGZsYXRuZXNzX21pbl9xcDsKPiA+ICsJLyoqCj4gPiArCSAqIEBmbGF0bmVzc19tYXhfcXA6Cj4g PiArCSAqIFBQUzM3WzQ6MF0gLSBNYXggUVAgYXQgd2hpY2ggZmxhdG5lc3MgaXMgc2lnbmFsbGVk IGFuZAo+ID4gKwkgKiB0aGUgZmxhdG5lc3MgYWRqdXN0bWVudCBpcyBtYWRlLgo+ID4gKwkgKiBQ UFMzN1s3OjVdIC0gUmVzZXJ2ZWQKPiA+ICsJICovCj4gPiArCXU4IGZsYXRuZXNzX21heF9xcDsK PiA+ICsJLyoqCj4gPiArCSAqIEByY19tb2RlbF9zaXplOgo+ID4gKwkgKiBQUFMzOCwzOVs3OjBd IC0gTnVtYmVyIG9mIGJpdHMgd2l0aGluIFJDIE1vZGVsLgo+ID4gKwkgKi8KPiA+ICsJX19iZTE2 IHJjX21vZGVsX3NpemU7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcmNfZWRnZV9mYWN0b3I6Cj4gPiAr CSAqIFBQUzQwWzM6MF0gLSBSYXRpbyBvZiBjdXJyZW50IGFjdGl2aXR5IHZzLCBwcmV2aW91cwo+ ID4gKwkgKiBhY3Rpdml0eSB0byBkZXRlcm1pbmUgcHJlc2VuY2Ugb2YgZWRnZS4KPiA+ICsJICog UFBTNDBbNzo0XSAtIFJlc2VydmVkCj4gPiArCSAqLwo+ID4gKwl1OCByY19lZGdlX2ZhY3RvcjsK PiA+ICsJLyoqCj4gPiArCSAqIEByY19xdWFudF9pbmNyX2xpbWl0MDoKPiA+ICsJICogUFBTNDFb NDowXSAtIFFQIHRocmVzaG9sZCB1c2VkIGluIHNob3J0IHRlcm0gUkMKPiA+ICsJICogUFBTNDFb Nzo1XSAtIFJlc2VydmVkCj4gPiArCSAqLwo+ID4gKwl1OCByY19xdWFudF9pbmNyX2xpbWl0MDsK PiA+ICsJLyoqCj4gPiArCSAqIEByY19xdWFudF9pbmNyX2xpbWl0MToKPiA+ICsJICogUFBTNDJb NDowXSAtIFFQIHRocmVzaG9sZCB1c2VkIGluIHNob3J0IHRlcm0gUkMKPiA+ICsJICogUFBTNDJb Nzo1XSAtIFJlc2VydmVkCj4gPiArCSAqLwo+ID4gKwl1OCByY19xdWFudF9pbmNyX2xpbWl0MTsK PiA+ICsJLyoqCj4gPiArCSAqIEByY190Z3Rfb2Zmc2V0Ogo+ID4gKwkgKiBQUFM0M1szOjBdIC0g TG93ZXIgZW5kIG9mIHRoZSB2YXJpYWJpbGl0eSByYW5nZSBhcm91bmQgdGhlIHRhcmdldAo+ID4g KwkgKiBiaXRzIHBlciBncm91cCB0aGF0IGlzIGFsbG93ZWQgYnkgc2hvcnQgdGVybSBSQy4KPiA+ ICsJICogUFBTNDNbNzo0XS0gVXBwZXIgZW5kIG9mIHRoZSB2YXJpYWJpbGl0eSByYW5nZSBhcm91 bmQgdGhlIHRhcmdldAo+ID4gKwkgKiBiaXRzIHBlciBncm91cCB0aGF0IGkgYWxsb3dlZCBieSBz aG9ydCB0ZXJtIHJjLgo+ID4gKwkgKi8KPiA+ICsJdTggcmNfdGd0X29mZnNldDsKPiA+ICsJLyoq Cj4gPiArCSAqIEByY19idWZfdGhyZXNoOgo+ID4gKwkgKiBQUFM0NFs3OjBdIC0gUFBTNTdbNzow XSAtIFNwZWNpZmllcyB0aGUgdGhyZXNob2xkcyBpbiBSQyBtb2RlbCBmb3IKPiA+ICsJICogdGhl IDE1IHJhbmdlcyBkZWZpbmVkIGJ5IDE0IHRocmVzaG9sZHMuCj4gPiArCSAqLwo+ID4gKwl1OCBy Y19idWZfdGhyZXNoW0RTQ19OVU1fQlVGX1JBTkdFUyAtIDFdOwo+ID4gKwkvKioKPiA+ICsJICog QHJjX3JhbmdlX3BhcmFtZXRlcnM6Cj4gPiArCSAqIFBQUzU4Wzc6MF0gLSBQUFM4N1s3OjBdCj4g PiArCSAqIFBhcmFtZXRlcnMgdGhhdCBjb3JyZXNwb25kIHRvIGVhY2ggb2YgdGhlIDE1IHJhbmdl cy4KPiA+ICsJICovCj4gPiArCV9fYmUxNiByY19yYW5nZV9wYXJhbWV0ZXJzW0RTQ19OVU1fQlVG X1JBTkdFU107Cj4gPiArCS8qKgo+ID4gKwkgKiBAbmF0aXZlXzQyMl80MjA6Cj4gPiArCSAqIFBQ Uzg4WzBdIC0gMCA9IE5hdGl2ZSA0OjI6MiBub3QgdXNlZAo+ID4gKwkgKiAxID0gTmF0aXZlIDQ6 MjoyIHVzZWQKPiA+ICsJICogUFBTODhbMV0gLSAwID0gTmF0aXZlIDQ6MjowIG5vdCB1c2UKPiA+ ICsJICogMSA9IE5hdGl2ZSA0OjI6MCB1c2VkCj4gPiArCSAqIFBQUzg4Wzc6Ml0gLSBSZXNlcnZl ZCA2IGJpdHMKPiA+ICsJICovCj4gPiArCXU4IG5hdGl2ZV80MjJfNDIwOwo+ID4gKwkvKioKPiA+ ICsJICogQHNlY29uZF9saW5lX2JwZ19vZmZzZXQ6Cj4gPiArCSAqIFBQUzg5WzQ6MF0gLSBBZGRp dGlvbmFsIGJpdHMvZ3JvdXAgYnVkZ2V0IGZvciB0aGUKPiA+ICsJICogc2Vjb25kIGxpbmUgb2Yg YSBzbGljZSBpbiBOYXRpdmUgNDoyOjAgbW9kZS4KPiA+ICsJICogU2V0IHRvIDAgaWYgRFNDIG1p bm9yIHZlcnNpb24gaXMgMSBvciBuYXRpdmU0MjAgaXMgMC4KPiA+ICsJICogUFBTODlbNzo1XSAt IFJlc2VydmVkCj4gPiArCSAqLwo+ID4gKwl1OCBzZWNvbmRfbGluZV9icGdfb2Zmc2V0Owo+ID4g KwkvKioKPiA+ICsJICogQG5zbF9icGdfb2Zmc2V0Ogo+ID4gKwkgKiBQUFM5MFs3OjBdLCBQUFM5 MVs3OjBdIC0gTnVtYmVyIG9mIGJpdHMgdGhhdCBhcmUgZGVhbGxvY2F0ZWQKPiA+ICsJICogZm9y IGVhY2ggZ3JvdXAgdGhhdCBpcyBub3QgaW4gdGhlIHNlY29uZCBsaW5lIG9mIGEgc2xpY2UuCj4g PiArCSAqLwo+ID4gKwlfX2JlMTYgbnNsX2JwZ19vZmZzZXQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBA c2Vjb25kX2xpbmVfb2Zmc2V0X2FkajoKPiA+ICsJICogUFBTOTJbNzowXSwgUFBTOTNbNzowXSAt IFVzZWQgYXMgb2Zmc2V0IGFkanVzdG1lbnQgZm9yIHRoZSBzZWNvbmQKPiA+ICsJICogbGluZSBp biBOYXRpdmUgNDoyOjAgbW9kZS4KPiA+ICsJICovCj4gPiArCV9fYmUxNiBzZWNvbmRfbGluZV9v ZmZzZXRfYWRqOwo+ID4gKwkvKioKPiA+ICsJICogQHBwc19sb25nXzk0X3Jlc2VydmVkOgo+ID4g KwkgKiBQUFMgOTQsIDk1LCA5NiwgOTcgLSBSZXNlcnZlZAo+ID4gKwkgKi8KPiA+ICsJdTMyIHBw c19sb25nXzk0X3Jlc2VydmVkOwo+ID4gKwkvKioKPiA+ICsJICogQHBwc19sb25nXzk4X3Jlc2Vy dmVkOgo+ID4gKwkgKiBQUFMgOTgsIDk5LCAxMDAsIDEwMSAtIFJlc2VydmVkCj4gPiArCSAqLwo+ ID4gKwl1MzIgcHBzX2xvbmdfOThfcmVzZXJ2ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzX2xv bmdfMTAyX3Jlc2VydmVkOgo+ID4gKwkgKiBQUFMgMTAyLCAxMDMsIDEwNCwgMTA1IC0gUmVzZXJ2 ZWQKPiA+ICsJICovCj4gPiArCXUzMiBwcHNfbG9uZ18xMDJfcmVzZXJ2ZWQ7Cj4gPiArCS8qKgo+ ID4gKwkgKiBAcHBzX2xvbmdfMTA2X3Jlc2VydmVkOgo+ID4gKwkgKiBQUFMgMTA2LCAxMDcsIDEw OCwgMTA5IC0gcmVzZXJ2ZWQKPiA+ICsJICovCj4gPiArCXUzMiBwcHNfbG9uZ18xMDZfcmVzZXJ2 ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzX2xvbmdfMTEwX3Jlc2VydmVkOgo+ID4gKwkgKiBQ UFMgMTEwLCAxMTEsIDExMiwgMTEzIC0gcmVzZXJ2ZWQKPiA+ICsJICovCj4gPiArCXUzMiBwcHNf bG9uZ18xMTBfcmVzZXJ2ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzX2xvbmdfMTE0X3Jlc2Vy dmVkOgo+ID4gKwkgKiBQUFMgMTE0IC0gMTE3IC0gcmVzZXJ2ZWQKPiA+ICsJICovCj4gPiArCXUz MiBwcHNfbG9uZ18xMTRfcmVzZXJ2ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzX2xvbmdfMTE4 X3Jlc2VydmVkOgo+ID4gKwkgKiBQUFMgMTE4IC0gMTIxIC0gcmVzZXJ2ZWQKPiA+ICsJICovCj4g PiArCXUzMiBwcHNfbG9uZ18xMThfcmVzZXJ2ZWQ7Cj4gPiArCS8qKgo+ID4gKwkgKiBAcHBzX2xv bmdfMTIyX3Jlc2VydmVkOgo+ID4gKwkgKiBQUFMgMTIyLSAxMjUgLSByZXNlcnZlZAo+ID4gKwkg Ki8KPiA+ICsJdTMyIHBwc19sb25nXzEyMl9yZXNlcnZlZDsKPiA+ICsJLyoqCj4gPiArCSAqIEBw cHNfc2hvcnRfMTI2X3Jlc2VydmVkOgo+ID4gKwkgKiBQUFMgMTI2LCAxMjcgLSByZXNlcnZlZAo+ ID4gKwkgKi8KPiA+ICsJX19iZTE2IHBwc19zaG9ydF8xMjZfcmVzZXJ2ZWQ7Cj4gPiArfTsKPiA+ ICsKPiA+ICsvKioKPiA+ICsgKiBzdHJ1Y3QgZHJtX2RzY19wcHNfaW5mb2ZyYW1lIC0gRFNDIGlu Zm9mcmFtZSBjYXJyeWluZyB0aGUgUGljdHVyZSBQYXJhbWV0ZXIKPiA+ICsgKiBTZXQgTWV0YWRh dGEKPiA+ICsgKgo+ID4gKyAqIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudHMgdGhlIERTQyBQUFMg aW5mb2ZyYW1lIHJlcXVpcmVkIHRvIHNlbmQgdGhlIFBpY3R1cmUKPiA+ICsgKiBQYXJhbWV0ZXIg U2V0IG1ldGFkYXRhIHJlcXVpcmVkIGJlZm9yZSBlbmFibGluZyBWRVNBIERpc3BsYXkgU3RyZWFt Cj4gPiArICogQ29tcHJlc3Npb24uIFRoaXMgaXMgYmFzZWQgb24gdGhlIERQIFNlY29uZGFyeSBE YXRhIFBhY2tldCBzdHJ1Y3R1cmUgYW5kCj4gPiArICogY29tcHJpc2VzIG9mIFNEUCBIZWFkZXIg YXMgZGVmaW5lZCBpbiBkcm1fZHBfaGVscGVyLmggYW5kIFBQUyBwYXlsb2FkLgo+ID4gKyAqCj4g PiArICogQHBwc19oZWFkZXI6Cj4gPiArICoKPiAKPiBXaGF0J3Mgd2l0aCB0aGUgbmV3bGluZSBh bmQgYmxhbmsgbGluZSBoZXJlPyBNYXliZSBwdXQgdGhlIG1lbWJlciBkb2NzCj4gbmV4dCB0byB0 aGUgbWVtYmVyIGl0c2VsZj8KPgoKWWVhIG1ha2VzIHNlbnNlIHdpbGwgcmVtb3ZlIHRoZSBuZXds aW5lIGFuZCBibGFuayBsaW5lLgoKTWFuYXNpCiAKPiA+ICsgKiBIZWFkZXIgZm9yIFBQUyBhcyBw ZXIgRFAgU0RQIGhlYWRlciBmb3JtYXQKPiA+ICsgKgo+ID4gKyAqIEBwcHNfcGF5bG9hZDoKPiA+ ICsgKgo+ID4gKyAqIFBQUyBwYXlsb2FkIGZpZWxkcyBhcyBwZXIgRFNDIHNwZWNpZmljYXRpb24g VGFibGUgNC0xCj4gPiArICovCj4gPiArc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFtZSB7Cj4g PiArCXN0cnVjdCBkcF9zZHBfaGVhZGVyIHBwc19oZWFkZXI7Cj4gPiArCXN0cnVjdCBwaWN0dXJl X3BhcmFtZXRlcl9zZXQgcHBzX3BheWxvYWQ7Cj4gPiArfSBfX3BhY2tlZDsKPiA+ICsKPiA+ICsj ZW5kaWYgLyogX0RSTV9EU0NfSF8gKi8KPiA+IC0tIAo+ID4gMi4xOC4wCj4gCj4gLS0gCj4gVmls bGUgU3lyasOkbMOkCj4gSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==