From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH v2 1/1] cameraif: add ABI for para-virtual camera Date: Wed, 12 Sep 2018 13:09:22 +0300 Message-ID: <1e6eca59-c002-42b7-d8b6-f8a525898291@gmail.com> References: <20180911082952.23322-1-andr2000@gmail.com> <20180911082952.23322-2-andr2000@gmail.com> <7291d10d-3fe2-2cba-e5f7-cd30b91a7cf1@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g025U-0006cQ-P1 for xen-devel@lists.xenproject.org; Wed, 12 Sep 2018 10:09:32 +0000 Received: by mail-lf1-x141.google.com with SMTP id q13-v6so1179184lfc.2 for ; Wed, 12 Sep 2018 03:09:27 -0700 (PDT) In-Reply-To: <7291d10d-3fe2-2cba-e5f7-cd30b91a7cf1@xs4all.nl> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Hans Verkuil , xen-devel@lists.xenproject.org, konrad.wilk@oracle.com, jgross@suse.com, boris.ostrovsky@oracle.com, mchehab@kernel.org, linux-media@vger.kernel.org, sakari.ailus@linux.intel.com, koji.matsuoka.xm@renesas.com Cc: Oleksandr Andrushchenko List-Id: xen-devel@lists.xenproject.org SGksIEhhbnMhCgpUaGFuayB5b3UgZm9yIHZhbHVhYmxlIGNvbW1lbnRzIGFuZCB2YWxpZCBjb25j ZXJucyEKCk9uIDA5LzEyLzIwMTggMTA6NTIgQU0sIEhhbnMgVmVya3VpbCB3cm90ZToKPiBPbiAw OS8xMS8yMDE4IDEwOjI5IEFNLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90ZToKPj4gRnJv bTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0u Y29tPgo+Pgo+PiBUaGlzIGlzIHRoZSBBQkkgZm9yIHRoZSB0d28gaGFsdmVzIG9mIGEgcGFyYS12 aXJ0dWFsaXplZAo+PiBjYW1lcmEgZHJpdmVyIHdoaWNoIGV4dGVuZHMgWGVuJ3MgcmVhY2ggbXVs dGltZWRpYSBjYXBhYmlsaXRpZXMgZXZlbgo+PiBmYXJ0aGVyIGVuYWJsaW5nIGl0IGZvciB2aWRl byBjb25mZXJlbmNpbmcsIEluLVZlaGljbGUgSW5mb3RhaW5tZW50LAo+PiBoaWdoIGRlZmluaXRp b24gbWFwcyBldGMuCj4+Cj4+IFRoZSBpbml0aWFsIGdvYWwgaXMgdG8gc3VwcG9ydCBtb3N0IG5l ZWRlZCBmdW5jdGlvbmFsaXR5IHdpdGggdGhlCj4+IGZpbmFsIGlkZWEgdG8gbWFrZSBpdCBwb3Nz aWJsZSB0byBleHRlbmQgdGhlIHByb3RvY29sIGlmIG5lZWQgYmU6Cj4+Cj4+IDEuIFByb3ZpZGUg bWVhbnMgZm9yIGJhc2UgdmlydHVhbCBkZXZpY2UgY29uZmlndXJhdGlvbjoKPj4gICAtIHBpeGVs IGZvcm1hdHMKPj4gICAtIHJlc29sdXRpb25zCj4+ICAgLSBmcmFtZSByYXRlcwo+PiAyLiBTdXBw b3J0IGJhc2ljIGNhbWVyYSBjb250cm9sczoKPj4gICAtIGNvbnRyYXN0Cj4+ICAgLSBicmlnaHRu ZXNzCj4+ICAgLSBodWUKPj4gICAtIHNhdHVyYXRpb24KPj4gMy4gU3VwcG9ydCBzdHJlYW1pbmcg Y29udHJvbAo+PiA0LiBTdXBwb3J0IHplcm8tY29weWluZyB1c2UtY2FzZXMKPj4KPj4gU2lnbmVk LW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtv QGVwYW0uY29tPgo+PiAtLS0KPj4gICB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8vY2FtZXJhaWYuaCB8 IDEyNjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgMSBmaWxlIGNoYW5nZWQs IDEyNjMgaW5zZXJ0aW9ucygrKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vaW5jbHVkZS9w dWJsaWMvaW8vY2FtZXJhaWYuaAo+Pgo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGlj L2lvL2NhbWVyYWlmLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW8vY2FtZXJhaWYuaAo+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjM4YjliMzc0MWU3NQo+PiAt LS0gL2Rldi9udWxsCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9jYW1lcmFpZi5oCj4+ IEBAIC0wLDAgKzEsMTI2MyBAQAo+PiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogY2Ft ZXJhaWYuaAo+PiArICoKPj4gKyAqIFVuaWZpZWQgY2FtZXJhIGRldmljZSBJL08gaW50ZXJmYWNl IGZvciBYZW4gZ3Vlc3QgT1Nlcy4KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Cj4+ ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwgdG8KPj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4+ICsgKiByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLCBhbmQvb3IKPj4gKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRv IHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCj4+ICsgKiBmdXJuaXNoZWQg dG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+PiArICoKPj4g KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IHNoYWxsIGJlIGluY2x1ZGVkIGluCj4+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKPj4gKyAqIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKPj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09O VFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4+ICsg KiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArICogQ29weXJpZ2h0IChDKSAy MDE4IEVQQU0gU3lzdGVtcyBJbmMuCj4+ICsgKgo+PiArICogQXV0aG9yOiBPbGVrc2FuZHIgQW5k cnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4+ICsgKi8KPj4g Kwo+PiArI2lmbmRlZiBfX1hFTl9QVUJMSUNfSU9fQ0FNRVJBSUZfSF9fCj4+ICsjZGVmaW5lIF9f WEVOX1BVQkxJQ19JT19DQU1FUkFJRl9IX18KPj4gKwo+PiArI2luY2x1ZGUgInJpbmcuaCIKPj4g KyNpbmNsdWRlICIuLi9ncmFudF90YWJsZS5oIgo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICBQcm90b2NvbCB2ZXJz aW9uCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKi8KPj4gKyNkZWZpbmUgWEVOQ0FN RVJBX1BST1RPQ09MX1ZFUlNJT04gICAgICIxIgo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICBGZWF0dXJlIGFuZCBQYXJhbWV0ZXIg TmVnb3RpYXRpb24KPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqCj4+ICsgKiBGcm9u dC0+YmFjayBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXF1ZXN0LCBzZW5k aW5nIGEKPj4gKyAqIG5vdGlmaWNhdGlvbiBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiB4ZW5j YW1lcmFfcmVxIChpLmUuLCB0aGUgZ2VuZXJpYwo+PiArICogaG9sZC1vZmYgbWVjaGFuaXNtIHBy b3ZpZGVkIGJ5IHRoZSByaW5nIG1hY3JvcykuIEJhY2tlbmRzIG11c3Qgc2V0Cj4+ICsgKiB4ZW5j YW1lcmFfcmVxIGFwcHJvcHJpYXRlbHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9S X1JFUVVFU1RTKCkpLgo+PiArICoKPj4gKyAqIEJhY2stPmZyb250IG5vdGlmaWNhdGlvbnM6IHdo ZW4gZW5xdWV1aW5nIGEgbmV3IHJlc3BvbnNlLCBzZW5kaW5nIGEKPj4gKyAqIG5vdGlmaWNhdGlv biBjYW4gYmUgbWFkZSBjb25kaXRpb25hbCBvbiB4ZW5jYW1lcmFfcmVzcCAoaS5lLiwgdGhlIGdl bmVyaWMKPj4gKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNy b3MpLiBGcm9udGVuZHMgbXVzdCBzZXQKPj4gKyAqIHhlbmNhbWVyYV9yZXNwIGFwcHJvcHJpYXRl bHkgKGUuZy4sIHVzaW5nIFJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFU1BPTlNFUygpKS4KPj4gKyAq Cj4+ICsgKiBUaGUgdHdvIGhhbHZlcyBvZiBhIHBhcmEtdmlydHVhbCBjYW1lcmEgZHJpdmVyIHV0 aWxpemUgbm9kZXMgd2l0aGluCj4+ICsgKiBYZW5TdG9yZSB0byBjb21tdW5pY2F0ZSBjYXBhYmls aXRpZXMgYW5kIHRvIG5lZ290aWF0ZSBvcGVyYXRpbmcgcGFyYW1ldGVycy4KPj4gKyAqIFRoaXMg c2VjdGlvbiBlbnVtZXJhdGVzIHRoZXNlIG5vZGVzIHdoaWNoIHJlc2lkZSBpbiB0aGUgcmVzcGVj dGl2ZSBmcm9udCBhbmQKPj4gKyAqIGJhY2tlbmQgcG9ydGlvbnMgb2YgWGVuU3RvcmUsIGZvbGxv d2luZyB0aGUgWGVuQnVzIGNvbnZlbnRpb24uCj4+ICsgKgo+PiArICogQWxsIGRhdGEgaW4gWGVu U3RvcmUgaXMgc3RvcmVkIGFzIHN0cmluZ3MuIE5vZGVzIHNwZWNpZnlpbmcgbnVtZXJpYwo+PiAr ICogdmFsdWVzIGFyZSBlbmNvZGVkIGluIGRlY2ltYWwuIEludGVnZXIgdmFsdWUgcmFuZ2VzIGxp c3RlZCBiZWxvdyBhcmUKPj4gKyAqIGV4cHJlc3NlZCBhcyBmaXhlZCBzaXplZCBpbnRlZ2VyIHR5 cGVzIGNhcGFibGUgb2Ygc3RvcmluZyB0aGUgY29udmVyc2lvbgo+PiArICogb2YgYSBwcm9wZXJs eSBmb3JtYXR0ZWQgbm9kZSBzdHJpbmcsIHdpdGhvdXQgbG9zcyBvZiBpbmZvcm1hdGlvbi4KPj4g KyAqCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAg ICAgIEV4YW1wbGUgY29uZmlndXJhdGlvbgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiAr ICoKPj4gKyAqIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBiYWNrZW5kIGFuZCBmcm9udGVuZCBjb25m aWd1cmF0aW9uOgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IEJhY2tlbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsg KiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92Y2FtZXJhLzEvMC9mcm9udGVuZC1pZCA9ICIxIgo+ PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNhbWVyYS8xLzAvZnJvbnRlbmQgPSAiL2xv Y2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzAvYmFj a2VuZC92Y2FtZXJhLzEvMC9zdGF0ZSA9ICI0Igo+PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tl bmQvdmNhbWVyYS8xLzAvdmVyc2lvbnMgPSAiMSwyIgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZyb250ZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPj4gKyAqCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9i YWNrZW5kLWlkID0gIjAiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9i YWNrZW5kID0gIi9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZjYW1lcmEvMSIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL3N0YXRlID0gIjQiCj4+ICsgKiAvbG9jYWwvZG9t YWluLzEvZGV2aWNlL3ZjYW1lcmEvMC92ZXJzaW9uID0gIjEiCj4+ICsgKiAvbG9jYWwvZG9tYWlu LzEvZGV2aWNlL3ZjYW1lcmEvMC9iZS1hbGxvYyA9ICIxIgo+PiArICoKPj4gKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSBEZXZpY2UgMCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEv MC9jb250cm9scyA9ICJjb250cmFzdCxodWUiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZjYW1lcmEvMC9mb3JtYXRzL1lVWVYvNjQweDQ4MC9mcmFtZS1yYXRlcyA9ICIzMC8xLDE1LzEi Cj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9mb3JtYXRzL1lVWVYvMTky MHgxMDgwL2ZyYW1lLXJhdGVzID0gIjE1LzIiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZjYW1lcmEvMC9mb3JtYXRzL0JHUkEvNjQweDQ4MC9mcmFtZS1yYXRlcyA9ICIxNS8xLDE1LzIi Cj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9mb3JtYXRzL0JHUkEvMTIw MHg3MjAvZnJhbWUtcmF0ZXMgPSAiMTUvMiIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dmNhbWVyYS8wL3VuaXF1ZS1pZCA9ICIwIgo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92 Y2FtZXJhLzAvcmVxLXJpbmctcmVmID0gIjI4MzIiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2 aWNlL3ZjYW1lcmEvMC9yZXEtZXZlbnQtY2hhbm5lbCA9ICIxNSIKPj4gKyAqIC9sb2NhbC9kb21h aW4vMS9kZXZpY2UvdmNhbWVyYS8wL2V2dC1yaW5nLXJlZiA9ICIzODciCj4+ICsgKiAvbG9jYWwv ZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9ldnQtZXZlbnQtY2hhbm5lbCA9ICIxNiIKPj4gKyAq Cj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGV2aWNlIDEgY29uZmlndXJhdGlv biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogL2xvY2FsL2RvbWFpbi8x L2RldmljZS92Y2FtZXJhLzEvY29udHJvbHMgPSAiYnJpZ2h0bmVzcyxzYXR1cmF0aW9uLGh1ZSIK Pj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2Zvcm1hdHMvWVVZVi82NDB4 NDgwL2ZyYW1lLXJhdGVzID0gIjMwLzEsMTUvMiIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZp Y2UvdmNhbWVyYS8xL2Zvcm1hdHMvWVVZVi8xOTIweDEwODAvZnJhbWUtcmF0ZXMgPSAiMTUvMiIK Pj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL3VuaXF1ZS1pZCA9ICIxIgo+ PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzEvcmVxLXJpbmctcmVmID0gIjI4 MzMiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS9yZXEtZXZlbnQtY2hh bm5lbCA9ICIxNyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2V2dC1y aW5nLXJlZiA9ICIzODgiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS9l dnQtZXZlbnQtY2hhbm5lbCA9ICIxOCIKPj4gKyAqCj4+ICsgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2Rlcwo+ PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPj4gKyAqCj4+ICsgKiB2ZXJzaW9ucwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHN0 cmluZz4KPj4gKyAqCj4+ICsgKiAgICAgIExpc3Qgb2YgWEVOQ0FNRVJBX0xJU1RfU0VQQVJBVE9S IHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQKPj4gKyAqICAgICAgYnkgdGhl IGJhY2tlbmQuIEZvciBleGFtcGxlICIxLDIsMyIuCj4+ICsgKgo+PiArICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVuQnVz IE5vZGVzCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKgo+PiArICotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIGRvbS1pZAo+PiArICogICAgICBWYWx1ZXM6ICAgICAg ICAgPHVpbnQxNl90Pgo+PiArICoKPj4gKyAqICAgICAgRG9tYWluIGlkZW50aWZpZXIuCj4+ICsg Kgo+PiArICogZGV2LWlkCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDE2X3Q+Cj4+ ICsgKgo+PiArICogICAgICBEZXZpY2UgaWRlbnRpZmllci4KPj4gKyAqCj4+ICsgKiAgICAgIC9s b2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZjYW1lcmEvPGRldi1pZD4vLi4uCj4+ICsgKgo+ PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIHZlcnNpb24KPj4gKyAqICAg ICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+Cj4+ICsgKgo+PiArICogICAgICBQcm90b2NvbCB2 ZXJzaW9uLCBjaG9zZW4gYW1vbmcgdGhlIG9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBiYWNrZW5kLgo+ PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIGJ1ZmZlciBhbGxv Y2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBiZS1hbGxvYwo+ PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgIjAiLCAiMSIKPj4gKyAqCj4+ICsgKiAgICAgIElm IHZhbHVlIGlzIHNldCB0byAiMSIsIHRoZW4gYmFja2VuZCB3aWxsIGJlIHRoZSBidWZmZXIKPj4g KyAqICAgICAgcHJvdmlkZXIvYWxsb2NhdG9yIGZvciB0aGlzIGRvbWFpbiBkdXJpbmcgWEVOQ0FN RVJBX09QX0JVRl9DUkVBVEUKPj4gKyAqICAgICAgb3BlcmF0aW9uLgo+PiArICogICAgICBJZiB2 YWx1ZSBpcyBub3QgIjEiIG9yIG9taXR0ZWQgZnJvbnRlbmQgbXVzdCBhbGxvY2F0ZSBidWZmZXJz IGl0c2VsZi4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2Ft ZXJhIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICog dW5pcXVlLWlkCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8c3RyaW5nPgo+PiArICoKPj4g KyAqICAgICAgQWZ0ZXIgZGV2aWNlIGluc3RhbmNlIGluaXRpYWxpemF0aW9uIGVhY2ggY2FtZXJh IGlzIGFzc2lnbmVkIGEKPj4gKyAqICAgICAgdW5pcXVlIElELCBzbyBpdCBjYW4gYmUgaWRlbnRp ZmllZCBieSB0aGUgYmFja2VuZCBieSB0aGlzIElELgo+PiArICogICAgICBUaGlzIGNhbiBiZSBV VUlEIG9yIHN1Y2guCj4+ICsgKgo+PiArICogY29udHJvbHMKPj4gKyAqICAgICAgVmFsdWVzOiAg ICAgICAgIDxsaXN0IG9mIHN0cmluZz4KPj4gKyAqCj4+ICsgKiAgICAgIExpc3Qgb2Ygc3VwcG9y dGVkIGNhbWVyYSBjb250cm9scyBzZXBhcmF0ZWQgYnkgWEVOQ0FNRVJBX0xJU1RfU0VQQVJBVE9S Lgo+PiArICogICAgICBDYW1lcmEgY29udHJvbHMgYXJlIGV4cHJlc3NlZCBhcyBhIGxpc3Qgb2Yg c3RyaW5nIHZhbHVlcyB3L28gYW55Cj4+ICsgKiAgICAgIG9yZGVyaW5nIHJlcXVpcmVtZW50Lgo+ PiArICoKPj4gKyAqIGZvcm1hdHMKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxmb3JtYXQs IGNoYXJbNF0+Cj4+ICsgKgo+PiArICogICAgICBGb3JtYXRzIGFyZSBvcmdhbml6ZWQgYXMgYSBz ZXQgb2YgZGlyZWN0b3JpZXMgb25lIHBlciBlYWNoCj4+ICsgKiAgICAgIHN1cHBvcnRlZCBwaXhl bCBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgaXMgdGhlCj4+ICsgKiAgICAgIGNv cnJlc3BvbmRpbmcgRk9VUkNDIHN0cmluZyBsYWJlbC4gVGhlIG5leHQgbGV2ZWwgb2YKPj4gKyAq ICAgICAgdGhlIGRpcmVjdG9yeSB1bmRlciA8Zm9ybWF0cz4gcmVwcmVzZW50cyBzdXBwb3J0ZWQg cmVzb2x1dGlvbnMuCj4gU28gaG93IHdpbGwgdGhpcyB3b3JrIGZvciBhIHBpeGVsZm9ybWF0IGxp a2UgVjRMMl9QSVhfRk1UX0FSR0I1NTVYPwo+Cj4gQXMgbWVudGlvbmVkIGJlZm9yZSwgd2UgZGlz cGxheSBzdWNoIGZvcm1hdHMgYXMgJ1hYWFgtQkUnLCBpLmUuIGNoYXJbN10uCm9rLCB0aGVuIEkn bGwgY2hhbmdlIHRoaXMgdG8gY2hhcls3XSBhbmQgcHV0IGEgbm90ZSBvbiBiaWctZW5kaWFuOgoK IMKgKsKgwqDCoMKgwqAgSWYgZm9ybWF0IHJlcHJlc2VudHMgYSBiaWctZW5kaWFuIEZPVVJDQyBj b2RlLCB0aGVuICItQkUiCiDCoCrCoMKgwqDCoMKgIHN1ZmZpeCBtdXN0IGJlIGFkZGVkLCBjYXNl IGluc2Vuc2l0aXZlLgoKPgo+IEkgYXNzdW1lIHRoZSBwaXhlbGZvcm1hdHMgeW91IHVzZSBoZXJl IGFyZSBiYXNlZCBvbiB0aGUgVjRMMl9QSVhfRk1UXyBmb3VyY2NzPwo+Cj4gTm90ZSB0aGF0IHRo ZXJlIGlzIG5vIHJlYWwgc3RhbmRhcmQgZm9yIGZvdXJjYyB2YWx1ZXMsIHNvIGlmIHlvdSB3YW50 IHRvCj4gc3VwcG9ydCBhIFdpbmRvd3MgYmFja2VuZCBhcyB3ZWxsLCB0aGVuIHlvdSdsbCBuZWVk IG1hcHBpbmdzIGZyb20gd2hhdGV2ZXIKPiBXaW5kb3dzIHVzZXMgdG8gdGhlIFY0TDIgZm91cmNj cy4KPgo+IFRoZSBWNEwyX1BJWF9GTVRfIGZvdXJjY3MgYXJlIGVudGlyZWx5IFY0TDIgc3BlY2lm aWMuCj4KPiBTbyB5b3UgaGF2ZSB0byBkZWZpbmUgaGVyZSB3aG9zZSBmb3VyY2NzIHlvdSBhcmUg dXNpbmcuCkkgdGhvdWdodCB0aGF0IFsxXSBkZWZpbmVzIGFsbCB0aGVzZSB2YWx1ZXMsIGJ1dCBp ZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwKdGhlbiBJIHRoaW5rIHdlIGNhbiB1c2Ugd2hhdCBWNEwy IHVzZXMuIEluIHRoaXMgY2FzZSwKd2hhdCB3b3VsZCBiZSB0aGUgYmVzdCByZWZlcmVuY2UgaW4g dGhlIHByb3RvY29sIHRvIHRob3NlIGZvdXJjYwpjb2Rlcz8gRm9yIGV4YW1wbGUsIEkgY2FuIHJl ZmVyZW5jZSBbMl0gaW4gdGhlIHByb3RvY29sJ3MgYXNzdW1wdGlvbnM6CgogwqAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIMKgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgQXNzdW1wdGlvbnMKIMKgKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi4u LgogwqAqIC0gYWxsIEZPVVJDQyBtYXBwaW5ncyB1c2VkIGZvciBjb25maWd1cmF0aW9uIGFuZCBt ZXNzYWdpbmcgYXJlCiDCoCrCoMKgIExpbnV4IFY0TDIgb25lczogCmh0dHBzOi8vZ2l0Lmtlcm5l bC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3RvcnZhbGRzL2xpbnV4LmdpdC90cmVlL2lu Y2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAoKCj4KPj4gKyAqCj4+ICsgKiByZXNvbHV0aW9u Cj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8d2lkdGgsIHVpbnQzMl90Png8aGVpZ2h0LCB1 aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIFJlc29sdXRpb25zIGFyZSBvcmdhbml6ZWQgYXMg YSBzZXQgb2YgZGlyZWN0b3JpZXMgb25lIHBlciBlYWNoCj4+ICsgKiAgICAgIHN1cHBvcnRlZCBy ZXNvbHV0aW9uIHVuZGVyIGNvcnJlc3BvbmRpbmcgPGZvcm1hdHM+IGRpcmVjdG9yeS4KPj4gKyAq ICAgICAgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBpcyB0aGUgc3VwcG9ydGVkIHdpZHRoIGFu ZCBoZWlnaHQKPj4gKyAqICAgICAgb2YgdGhlIGNhbWVyYSByZXNvbHV0aW9uIGluIHBpeGVscy4K PiBTbyBob3cgd2lsbCB0aGlzIHdvcmsgZm9yIHNvdXJjZXMgbGlrZSBIRE1JIHdoZXJlIHRoZSBy ZXNvbHV0aW9uIGRlcGVuZHMgb24KPiB0aGUgc2lnbmFsPyBXaWxsIHRoaXMgb25seSBzaG93IHRo ZSByZWNlaXZlZCByZXNvbHV0aW9uPyBBbmQgaWYgc28sIHdoYXQKPiBoYXBwZW5zIGlmIHRoZXJl IGlzIG5vIHNpZ25hbD8gT3IgdGhlIHJlc29sdXRpb24gY2hhbmdlcz8KPgo+IElmIHlvdSB3YW50 IHRvIHN1cHBvcnQgc3VjaCBkZXZpY2VzLCB5b3UnbGwgbmVlZCB0byBkZWZpbmUgdGhlIGJlaGF2 aW9yLgo+Cj4gSXQgbWlnaHQgYmUgT0sgdG8gcmVseSBvbiB0aGUgWGVuYnVzU3RhdGVSZWNvbmZp Z3VyaW5nIHN0YXRlLCBidXQgSSB0aGluawo+IHRoaXMgd291bGQgaGF2ZSB0byBiZSBkZXNjcmli ZWQgc29tZXdoZXJlLiBJLmUuIGlmIHRoZSBzb3VyY2UgaXMgZGlzY29ubmVjdGVkLAo+IHRoZW4g eW91IGVudGVyIHN0YXRlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZywgd2hlbiBhIG5ldyBzb3Vy Y2UgaXMgY29ubmVjdGVkLAo+IHRoZW4geW91IHNldHVwIGEgbmV3IGNvbmZpZ3VyYXRpb24gYmFz ZWQgb24gdGhlIG5ld2x5IGRldGVjdGVkIHRpbWluZ3MuIEJ1dAo+IHdoYXQgdG8gZG8gd2hlbiB0 aGUgdGltaW5ncyBjaGFuZ2U/IFJlY29uZmlndXJpbmcgYWdhaW4/IFdoZXRoZXIgdGhpcyBpcyBh bgo+IG9wdGlvbiBkZXBlbmRzIGluIHBhcnQgb24gaG93IGxvbmcgaXQgdGFrZXMgYmVmb3JlIHRo ZSBuZXcgY29uZmlndXJhdGlvbgo+IGJlY29tZXMgYWN0aXZlLgpXZWxsLCBJTU8gdGhpcyBpcyBz b21ldGhpbmcgd2hpY2ggaXMgYSBwYXJ0IG9mIHRoZSBiYWNrZW5kJ3MKbG9naWM6IGJhY2tlbmQg bWF5IGRlY2lkZSB0byB0ZWFyIGRvd24gdGhlIHdob2xlIHZpcnR1YWwgY2FtZXJhCmRldmljZSwg ZS5nLiBnb2luZyBpbnRvIGNsb3NlZCBzdGF0ZSwgb3IgaXQgY2FuIHRyeSByZWNvbmZpZ3VyaW5n IHRoZSBkZXZpY2UKb3Igd2hhdGV2ZXIuCgpPbmUgbm90ZSBvbiBzdWNoIGNvbXBsZXggdXNlLWNh c2VzOiB3ZSBhcmUgdHJ5aW5nIHRvIGtlZXAgdGhlIHByb3RvY29sCmFzIHNpbXBsZSBhcyBwb3Nz aWJsZSBub3QgdHJ5aW5nIHRvIG1pbWljIHJlYWxseSBjb21wbGV4IEhXLgpJZiBuZWVkIGJlIHRv IHN1cHBvcnQgdGhpcyBvbmUgY2FuIHByb2JhYmx5IGp1c3QgcGFzcyB0aHJvdWdoIHRoYXQKSFcg ZGV2aWNlIHRvIGEgZ3Vlc3QsIHNvIGl0IGNhbiBiZW5lZml0IGZyb20gYWxsIHRob3NlIGZlYXR1 cmVzLgoKTW9zdCB1c2UtY2FzZXMgd2Ugc2VlIG9ubHkgbmVlZCBjYXB0dXJlZCBmcmFtZXMgYW5k IG1vc3Qgb2YgdGhlIHdvcmsKb2YgZ2V0dGluZyB0aG9zZSBpcyBoYW5kbGVkIGJ5IHRoZSBiYWNr ZW5kLiBBbmQgdGhlIGNvbmZpZ3VyYXRpb24KbW9zdCBvZiB0aGUgdGltZSBzaG91bGQgcmVtYWlu IHN0YXRpYywgZS5nLiBhbGwgdGhlIHBhcmFtZXRlcnMgYXJlIGRlZmluZWQKZm9yIGtub3duIEhX IGFuZCBWTXMgYXJlIGNvbmZpZ3VyZWQgd2l0aCBzcGVjaWZpYyB1c2UtY2FzZXMgaW4gbWluZC4K VGh1cywgdGhlIGJhY2tlbmQgc2hvdWxkIGhpZGUgYWxsIHRoZSByZWFsIGNvbXBsZXhpdHkgZnJv bSBhIHZpcnR1YWwKY2FtZXJhIGRldmljZSBkcml2ZXIgYXMgbXVjaCBhcyBpdCBjYW4gKEJUVywg ZnJvbnRlbmQgbWlnaHQgbm90IGJlIGEKVjRMMiBkZXZpY2UgZHJpdmVyLCBidXQgYSB1bmlrZXJu ZWwgYXBwbGljYXRpb24gZm9yIGluc3RhbmNlKQo+Cj4+ICsgKgo+PiArICogZnJhbWUtcmF0ZXMK Pj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxudW1lcmF0b3IsIHVpbnQzMl90Pi88ZGVub21p bmF0b3IsIHVpbnQzMl90Pgo+PiArICoKPj4gKyAqICAgICAgTGlzdCBvZiBYRU5DQU1FUkFfRlJB TUVfUkFURV9TRVBBUkFUT1Igc2VwYXJhdGVkIHN1cHBvcnRlZCBmcmFtZSByYXRlcwo+PiArICog ICAgICBvZiB0aGUgY2FtZXJhIGV4cHJlc3NlZCBhcyBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9y IG9mIHRoZQo+PiArICogICAgICBjb3JyZXNwb25kaW5nIGZyYW1lIHJhdGUuCj4gTm90ZSB0aGF0 IHRoZXJlIGFyZSBkZXZpY2VzIHRoYXQgYWxsb3cgYSByYW5nZSBvZiByZXNvbHV0aW9ucyBhbmQg ZnJhbWVyYXRlcwo+IGluc3RlYWQgb2YgYSBkaXNjcmV0ZSBzZXQgb2YgcmVzb2x1dGlvbnMvZnJh bWVyYXRlcy4KPgo+IFdoZXRoZXIgb3Igbm90IHRoYXQgaXMgc29tZXRoaW5nIHlvdSB3YW50IHRv IGNhcmUgYWJvdXQgaGVyZSBpcyBhbm90aGVyIG1hdHRlci4KPgo+IEEgZGV2aWNlIHRoYXQgaGFz IGEgcmFuZ2Ugb2YgcmVzb2x1dGlvbnMgdHlwaWNhbGx5IGhhcyBhIHNjYWxlciBvbiBib2FyZC4K PiBBIHJhbmdlIG9mIGZyYW1lcmF0ZXMgdHlwaWNhbGx5IG1lYW5zIHRoYXQgaXQgaGFzIGZpbmUt Z3JhaW5lZCBjb250cm9sIG92ZXIKPiB0aGUgc2Vuc29yIHBpeGVsY2xvY2sgYW5kIHdoYXRldmVy IGVsc2UgaXMgcmVsYXRlZCB0byB0aGUgZnJhbWVyYXRlLgpZZXMsIHRoYXQgd2FzIGludGVudGlv bmFsbHkgdGhhdCB3ZSBvbmx5IHN1cHBvcnQgZGlzY3JldGUgdmFsdWVzLApwbGVhc2Ugc2VlIGFi b3ZlIC0gbW9zdCBvZiB0aGUgdGltZSB5b3UgZG9uJ3QgbmVlZCBhIGZ1bGx5IGJsb3duCnZpcnR1 YWwgY2FtZXJhCj4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FtZXJhIFJlcXVl c3QgVHJhbnNwb3J0IFBhcmFtZXRlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiAr ICogVGhpcyBjb21tdW5pY2F0aW9uIHBhdGggaXMgdXNlZCB0byBkZWxpdmVyIHJlcXVlc3RzIGZy b20gZnJvbnRlbmQgdG8gYmFja2VuZAo+PiArICogYW5kIGdldCB0aGUgY29ycmVzcG9uZGluZyBy ZXNwb25zZXMgZnJvbSBiYWNrZW5kIHRvIGZyb250ZW5kLAo+PiArICogc2V0IHVwIHBlciB2aXJ0 dWFsIGNhbWVyYSBkZXZpY2UuCj4+ICsgKgo+PiArICogcmVxLWV2ZW50LWNoYW5uZWwKPj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIFRoZSBp ZGVudGlmaWVyIG9mIHRoZSBYZW4gY2FtZXJhJ3MgY29udHJvbCBldmVudCBjaGFubmVsCj4+ICsg KiAgICAgIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5nIGJ1ZmZlci4KPj4gKyAq Cj4+ICsgKiByZXEtcmluZy1yZWYKPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJf dD4KPj4gKyAqCj4+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNlIGdyYW50aW5nIHBl cm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+PiArICogICAgICBhIHNvbGUgcGFnZSBv ZiBjYW1lcmEncyBjb250cm9sIHJpbmcgYnVmZmVyLgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0t LS0tLS0tLS0gQ2FtZXJhIEV2ZW50IFRyYW5zcG9ydCBQYXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBUaGlzIGNvbW11bmljYXRpb24gcGF0aCBpcyB1c2VkIHRv IGRlbGl2ZXIgYXN5bmNocm9ub3VzIGV2ZW50cyBmcm9tIGJhY2tlbmQKPj4gKyAqIHRvIGZyb250 ZW5kLCBzZXQgdXAgcGVyIHZpcnR1YWwgY2FtZXJhIGRldmljZS4KPj4gKyAqCj4+ICsgKiBldnQt ZXZlbnQtY2hhbm5lbAo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgPHVpbnQzMl90Pgo+PiAr ICoKPj4gKyAqICAgICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIFhlbiBjYW1lcmEncyBldmVudCBj aGFubmVsCj4+ICsgKiAgICAgIHVzZWQgdG8gc2lnbmFsIGFjdGl2aXR5IGluIHRoZSByaW5nIGJ1 ZmZlci4KPj4gKyAqCj4+ICsgKiBldnQtcmluZy1yZWYKPj4gKyAqICAgICAgVmFsdWVzOiAgICAg ICAgIDx1aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAgIFRoZSBYZW4gZ3JhbnQgcmVmZXJlbmNl IGdyYW50aW5nIHBlcm1pc3Npb24gZm9yIHRoZSBiYWNrZW5kIHRvIG1hcAo+PiArICogICAgICBh IHNvbGUgcGFnZSBvZiBjYW1lcmEncyBldmVudCByaW5nIGJ1ZmZlci4KPj4gKyAqLwo+PiArCj4+ ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1RBVEUgRElBR1JBTVMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4g KyAqCj4+ICsgKiBUb29sIHN0YWNrIGNyZWF0ZXMgZnJvbnQgYW5kIGJhY2sgc3RhdGUgbm9kZXMg d2l0aCBpbml0aWFsIHN0YXRlCj4+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxpc2luZy4KPj4gKyAq IFRvb2wgc3RhY2sgY3JlYXRlcyBhbmQgc2V0cyB1cCBmcm9udGVuZCBjYW1lcmEgY29uZmlndXJh dGlvbgo+PiArICogbm9kZXMgcGVyIGRvbWFpbi4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIE5vcm1hbCBmbG93IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4+ICsgKgo+PiArICogRnJvbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJhY2sKPj4gKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4+ICsgKiBYZW5idXNTdGF0ZUluaXRpYWxp c2luZyAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcKPj4gKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBiYWNrZW5kIGRldmljZSBpZGVu dGlmaWNhdGlvbgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGEuCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gT3Bl biBhbmQgdmFsaWRhdGUgYmFja2VuZCBkZXZpY2UuCj4+ICsgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVJbml0V2FpdAo+PiArICoKPj4gKyAqIG8gUXVlcnkg ZnJvbnRlbmQgY29uZmlndXJhdGlvbgo+PiArICogbyBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZQo+ PiArICogICBldmVudCBjaGFubmVscyBwZXIgY29uZmlndXJlZAo+PiArICogICBjYW1lcmEuCj4+ ICsgKiBvIFB1Ymxpc2ggdHJhbnNwb3J0IHBhcmFtZXRlcnMKPj4gKyAqICAgdGhhdCB3aWxsIGJl IGluIGVmZmVjdCBkdXJpbmcKPj4gKyAqICAgdGhpcyBjb25uZWN0aW9uLgo+PiArICogICAgICAg ICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgVgo+PiAr ICogWGVuYnVzU3RhdGVJbml0aWFsaXNlZAo+PiArICoKPj4gKyAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbyBRdWVyeSBmcm9udGVuZCB0cmFuc3BvcnQgcGFyYW1ldGVy cy4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbyBDb25uZWN0 IHRvIHRoZSBldmVudCBjaGFubmVscy4KPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFYKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBYZW5idXNTdGF0ZUNvbm5lY3RlZAo+PiArICoKPj4gKyAqICBvIENyZWF0ZSBhbmQg aW5pdGlhbGl6ZSBPUwo+PiArICogICAgdmlydHVhbCBjYW1lcmEgYXMgcGVyCj4+ICsgKiAgICBj b25maWd1cmF0aW9uLgo+PiArICogICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICB8 Cj4+ICsgKiAgICAgICAgICAgICAgVgo+PiArICogWGVuYnVzU3RhdGVDb25uZWN0ZWQKPj4gKyAq Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVV bmtub3duCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVz U3RhdGVDbG9zZWQKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBY ZW5idXNTdGF0ZUNsb3NpbmcKPj4gKyAqIG8gUmVtb3ZlIHZpcnR1YWwgY2FtZXJhIGRldmljZQo+ PiArICogbyBSZW1vdmUgZXZlbnQgY2hhbm5lbHMKPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsg KiAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgIFYKPj4gKyAqIFhlbmJ1c1N0YXRl Q2xvc2VkCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlY292 ZXJ5IGZsb3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIElu IGNhc2Ugb2YgZnJvbnRlbmQgdW5yZWNvdmVyYWJsZSBlcnJvcnMgYmFja2VuZCBoYW5kbGVzIHRo YXQgYXMKPj4gKyAqIGlmIGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVDbG9zZWQg c3RhdGUuCj4+ICsgKgo+PiArICogSW4gY2FzZSBvZiBiYWNrZW5kIHVucmVjb3ZlcmFibGUgZXJy b3JzIGZyb250ZW5kIHRyaWVzIHJlbW92aW5nCj4+ICsgKiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNl LiBJZiB0aGlzIGlzIHBvc3NpYmxlIGF0IHRoZSBtb21lbnQgb2YgZXJyb3IsCj4+ICsgKiB0aGVu IGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUgYW5k IGlzIHJlYWR5IGZvcgo+PiArICogbmV3IGNvbm5lY3Rpb24gd2l0aCBiYWNrZW5kLiBJZiB0aGUg dmlydHVhbGl6ZWQgZGV2aWNlIGlzIHN0aWxsIGluIHVzZSBhbmQKPj4gKyAqIGNhbm5vdCBiZSBy ZW1vdmVkLCB0aGVuIGZyb250ZW5kIGdvZXMgaW50byB0aGUgWGVuYnVzU3RhdGVSZWNvbmZpZ3Vy aW5nIHN0YXRlCj4+ICsgKiB1bnRpbCBlaXRoZXIgdGhlIHZpcnR1YWxpemVkIGRldmljZSBpcyBy ZW1vdmVkIG9yIGJhY2tlbmQgaW5pdGlhdGVzIGEgbmV3Cj4+ICsgKiBjb25uZWN0aW9uLiBPbiB0 aGUgdmlydHVhbGl6ZWQgZGV2aWNlIHJlbW92YWwgZnJvbnRlbmQgZ29lcyBpbnRvIHRoZQo+PiAr ICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUuCj4+ICsgKgo+PiArICogTm90ZSBvbiBY ZW5idXNTdGF0ZVJlY29uZmlndXJpbmcgc3RhdGUgb2YgdGhlIGZyb250ZW5kOiBpZiBiYWNrZW5k IGhhcwo+PiArICogdW5yZWNvdmVyYWJsZSBlcnJvcnMgdGhlbiBmcm9udGVuZCBjYW5ub3Qgc2Vu ZCByZXF1ZXN0cyB0byB0aGUgYmFja2VuZAo+PiArICogYW5kIHRodXMgY2Fubm90IHByb3ZpZGUg ZnVuY3Rpb25hbGl0eSBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGFueW1vcmUuCj4+ICsgKiBB ZnRlciBiYWNrZW5kIGlzIGJhY2sgdG8gbm9ybWFsIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgbWF5 IHN0aWxsIGhvbGQgc29tZQo+PiArICogc3RhdGU6IGNvbmZpZ3VyYXRpb24gaW4gdXNlLCBhbGxv Y2F0ZWQgYnVmZmVycywgY2xpZW50IGFwcGxpY2F0aW9uIHN0YXRlIGV0Yy4KPj4gKyAqIEluIG1v c3QgY2FzZXMsIHRoaXMgd2lsbCByZXF1aXJlIGZyb250ZW5kIHRvIGltcGxlbWVudCBjb21wbGV4 IHJlY292ZXJ5Cj4+ICsgKiByZWNvbm5lY3QgbG9naWMuIEluc3RlYWQsIGJ5IGdvaW5nIGludG8g WGVuYnVzU3RhdGVSZWNvbmZpZ3VyaW5nIHN0YXRlLAo+PiArICogZnJvbnRlbmQgd2lsbCBtYWtl IHN1cmUgbm8gbmV3IGNsaWVudHMgb2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhcmUKPj4gKyAq IGFjY2VwdGVkLCBhbGxvdyBleGlzdGluZyBjbGllbnQocykgdG8gZXhpdCBncmFjZWZ1bGx5IGJ5 IHNpZ25hbGluZyBlcnJvcgo+PiArICogc3RhdGUgZXRjLgo+PiArICogT25jZSBhbGwgdGhlIGNs aWVudHMgYXJlIGdvbmUgZnJvbnRlbmQgY2FuIHJlaW5pdGlhbGl6ZSB0aGUgdmlydHVhbGl6ZWQK Pj4gKyAqIGRldmljZSBhbmQgZ2V0IGludG8gWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgc3RhdGUg YWdhaW4gc2lnbmFsaW5nIHRoZQo+PiArICogYmFja2VuZCB0aGF0IGEgbmV3IGNvbm5lY3Rpb24g Y2FuIGJlIG1hZGUuCj4+ICsgKgo+PiArICogVGhlcmUgYXJlIG11bHRpcGxlIGNvbmRpdGlvbnMg cG9zc2libGUgdW5kZXIgd2hpY2ggZnJvbnRlbmQgd2lsbCBnbyBmcm9tCj4+ICsgKiBYZW5idXNT dGF0ZVJlY29uZmlndXJpbmcgaW50byBYZW5idXNTdGF0ZUluaXRpYWxpc2luZywgc29tZSBvZiB0 aGVtIGFyZSBPUwo+PiArICogc3BlY2lmaWMuIEZvciBleGFtcGxlOgo+PiArICogMS4gVGhlIHVu ZGVybHlpbmcgT1MgZnJhbWV3b3JrIG1heSBwcm92aWRlIGNhbGxiYWNrcyB0byBzaWduYWwgdGhh dCB0aGUgbGFzdAo+PiArICogICAgY2xpZW50IG9mIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaGFz IGdvbmUgYW5kIHRoZSBkZXZpY2UgY2FuIGJlIHJlbW92ZWQKPj4gKyAqIDIuIEZyb250ZW5kIGNh biBzY2hlZHVsZSBhIGRlZmVycmVkIHdvcmsgKHRpbWVyL3Rhc2tsZXQvd29ya3F1ZXVlKQo+PiAr ICogICAgdG8gcGVyaW9kaWNhbGx5IGNoZWNrIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHRpbWUgdG8g cmUtdHJ5IHJlbW92YWwgb2YKPj4gKyAqICAgIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UuCj4+ICsg KiAzLiBCeSBhbnkgb3RoZXIgbWVhbnMuCj4+ICsgKgo+PiArICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUVVFU1QgQ09ERVMKPj4gKyAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKPj4gKyAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ09O RklHX1NFVCAgICAgICAgMHgwMAo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ09ORklHX0dFVCAg ICAgICAgMHgwMQo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX1JFUVVFU1QgICAgICAgMHgw Mgo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX0NSRUFURSAgICAgICAgMHgwMwo+PiArI2Rl ZmluZSBYRU5DQU1FUkFfT1BfQlVGX0RFU1RST1kgICAgICAgMHgwNAo+PiArI2RlZmluZSBYRU5D QU1FUkFfT1BfQlVGX1FVRVVFICAgICAgICAgMHgwNQo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1Bf QlVGX0RFUVVFVUUgICAgICAgMHgwNgo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ1RSTF9FTlVN ICAgICAgICAgMHgwNwo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ1RSTF9TRVQgICAgICAgICAg MHgwOAo+PiArI2RlZmluZSBYRU5DQU1FUkFfT1BfQ1RSTF9HRVQgICAgICAgICAgMHgwOQo+PiAr I2RlZmluZSBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUQVJUICAgICAgMHgwYQo+PiArI2RlZmluZSBY RU5DQU1FUkFfT1BfU1RSRUFNX1NUT1AgICAgICAgMHgwYgo+PiArCj4+ICsjZGVmaW5lIFhFTkNB TUVSQV9DVFJMX0JSSUdIVE5FU1MgICAgICAwCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0NP TlRSQVNUICAgICAgICAxCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX1NBVFVSQVRJT04gICAg ICAyCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0hVRSAgICAgICAgICAgICAzCj4+ICsKPj4g Ky8qIE51bWJlciBvZiBzdXBwb3J0ZWQgY29udHJvbHMuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVS QV9NQVhfQ1RSTCAgICAgICAgICAgICA0Cj4+ICsKPj4gKy8qIENvbnRyb2wgaXMgcmVhZC1vbmx5 LiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ1RSTF9GTEdfUk8gICAgICAgICAgKDEgPDwgMCkK Pj4gKy8qIENvbnRyb2wgaXMgd3JpdGUtb25seS4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NU UkxfRkxHX1dPICAgICAgICAgICgxIDw8IDEpCj4+ICsvKiBDb250cm9sJ3MgdmFsdWUgaXMgdm9s YXRpbGUuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0ZMR19WT0xBVElMRSAgICAoMSA8 PCAyKQo+PiArCj4+ICsvKiBTdXBwb3J0ZWQgY29sb3Igc3BhY2VzLiAqLwo+PiArI2RlZmluZSBY RU5DQU1FUkFfQ09MT1JTUEFDRV9TTVBURTE3ME0gMAo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09M T1JTUEFDRV9SRUM3MDkgICAgMQo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9TUkdC ICAgICAgMgo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9BRE9CRVJHQiAgMwo+IFJp Z2h0LCB0aGlzIGlzIHNvbWV0aGluZyBJIGhhdmVuJ3QgZG9uZSB5ZXQ6IHJlcGxhY2UgQURPQkVS R0Igd2l0aCBPUFJHQi4KV2lsbCBkbyBoZXJlIGFuZCBiZWxvdywgdGhhbmsgeW91IGZvciBjbGFy aWZ5aW5nCj4KPiBBZG9iZSBkb2Vzbid0IGxpa2Ugb3RoZXJzIHVzaW5nIGl0cyBuYW1lIGZvciB0 aGUgY29sb3JzcGFjZSwgYW5kIGluIGZhY3QKPiBhbGwgcmVmZXJlbmNlcyBpbiB0aGUgQ1RBLTg2 MS1HIHN0YW5kYXJkIHRvIEFkb2JlIGhhdmUgYmVlbiByZXBsYWNlZCB3aXRoCj4gb3BSR0IsIHdo aWNoIGlzIHRoZSBuYW1lIG9mIHRoZSBvZmZpY2lhbCBzdGFuZGFyZC4KPgo+IG9wUkdCIGlzIHJl YWxseSBpZGVudGljYWwgdG8gQWRvYmVSR0IsIGJ1dCBpZiB5b3UgYXJlIGdvaW5nIHRvIG1ha2Ug bmV3Cj4gZGVmaW5lcyB5b3UgbWlnaHQganVzdCBhcyB3ZWxsIHVzZSB0aGUgb2ZmaWNpYWwgbmFt ZS4KPgo+IEkgc3RpbGwgbmVlZCB0byBtYWtlIHBhdGNoZXMgZm9yIHRoZSBrZXJuZWwgdG8gZG8g YSBzaW1pbGFyIHN1YnN0aXR1dGlvbi4KPgo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFD RV9CVDIwMjAgICAgNAo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9EQ0lfUDMgICAg NQo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ09MT1JTUEFDRV9SQVcgICAgICAgNgo+PiArCj4+ICsv KiBDb2xvciBzcGFjZSB0cmFuc2ZlciBmdW5jdGlvbi4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJB X1hGRVJfRlVOQ183MDkgICAgICAgIDAKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVOQ19T UkdCICAgICAgIDEKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1hGRVJfRlVOQ19BRE9CRVJHQiAgIDIK PiBEaXR0by4KPgo+PiArI2RlZmluZSBYRU5DQU1FUkFfWEZFUl9GVU5DX05PTkUgICAgICAgMwo+ PiArI2RlZmluZSBYRU5DQU1FUkFfWEZFUl9GVU5DX0RDSV9QMyAgICAgNAo+PiArI2RlZmluZSBY RU5DQU1FUkFfWEZFUl9GVU5DX1NNUFRFMjA4NCAgNQo+PiArCj4+ICsvKiBDb2xvciBzcGFjZSBZ 4oCZQ2JDciBlbmNvZGluZy4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ182MDEg ICAgICAgICAgICAgIDAKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ183MDkgICAgICAg ICAgICAgIDEKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19YVjYwMSAgICAgICAgICAg IDIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19YVjcwOSAgICAgICAgICAgIDMKPj4g KyNkZWZpbmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19CVDIwMjAgICAgICAgICAgIDQKPj4gKyNkZWZp bmUgWEVOQ0FNRVJBX1lDQkNSX0VOQ19CVDIwMjBfQ09OU1RfTFVNIDUKPj4gKwo+PiArLyogUXVh bnRpemF0aW9uIHJhbmdlLiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfUVVBTlRJWkFUSU9OX0ZV TExfUkFOR0UgICAgMAo+PiArI2RlZmluZSBYRU5DQU1FUkFfUVVBTlRJWkFUSU9OX0xJTV9SQU5H RSAgICAgMQo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVkVOVCBDT0RFUwo+PiArICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgo+PiArICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9FVlRfRlJBTUVfQVZBSUwg ICAgICAweDAwCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9FVlRfQ09ORklHX0NIQU5HRSAgICAweDAx Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9FVlRfQ1RSTF9DSEFOR0UgICAgICAweDAyCj4+ICsKPj4g Ky8qIFJlc29sdXRpb24gaGFzIGNoYW5nZWQuICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9FVlRf Q0ZHX0ZMR19SRVNPTCAgICAoMSA8PCAwKQo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgo+PiArICogICAgICAgICAgICAgICBYRU5TVE9SRSBGSUVMRCBBTkQgUEFUSCBOQU1F IFNUUklOR1MsIEhFTFBFUlMKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqLwo+PiAr I2RlZmluZSBYRU5DQU1FUkFfRFJJVkVSX05BTUUgICAgICAgICAgInZjYW1lcmEiCj4+ICsKPj4g KyNkZWZpbmUgWEVOQ0FNRVJBX0xJU1RfU0VQQVJBVE9SICAgICAgICIsIgo+PiArI2RlZmluZSBY RU5DQU1FUkFfUkVTT0xVVElPTl9TRVBBUkFUT1IgIngiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9G UkFDVElPTl9TRVBBUkFUT1IgICAiLyIKPj4gKwo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERf QkVfVkVSU0lPTlMgICAgInZlcnNpb25zIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfRkVf VkVSU0lPTiAgICAgInZlcnNpb24iCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9SRVFfUklO R19SRUYgICAicmVxLXJpbmctcmVmIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfUkVRX0NI QU5ORUwgICAgInJlcS1ldmVudC1jaGFubmVsIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERf RVZUX1JJTkdfUkVGICAgImV2dC1yaW5nLXJlZiIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJRUxE X0VWVF9DSEFOTkVMICAgICJldnQtZXZlbnQtY2hhbm5lbCIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJB X0ZJRUxEX0NPTlRST0xTICAgICAgICJjb250cm9scyIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0ZJ RUxEX0ZPUk1BVFMgICAgICAgICJmb3JtYXRzIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERf RlJBTUVfUkFURVMgICAgImZyYW1lLXJhdGVzIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERf QkVfQUxMT0MgICAgICAgImJlLWFsbG9jIgo+PiArI2RlZmluZSBYRU5DQU1FUkFfRklFTERfVU5J UVVFX0lEICAgICAgInVuaXF1ZS1pZCIKPj4gKwo+PiArI2RlZmluZSBYRU5DQU1FUkFfQ1RSTF9C UklHSFRORVNTX1NUUiAgImJyaWdodG5lc3MiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0NP TlRSQVNUX1NUUiAgICAiY29udHJhc3QiCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX1NBVFVS QVRJT05fU1RSICAic2F0dXJhdGlvbiIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0NUUkxfSFVFX1NU UiAgICAgICAgICJodWUiCj4+ICsKPj4gKy8qIE1heGltdW0gbnVtYmVyIG9mIGJ1ZmZlciBwbGFu ZXMgc3VwcG9ydGVkLiAqLwo+PiArI2RlZmluZSBYRU5DQU1FUkFfTUFYX1BMQU5FICAgICAgICAg ICAgNAo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogICAgICAg ICAgICAgICAgICAgICAgICAgIFNUQVRVUyBSRVRVUk4gQ09ERVMKPj4gKyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKPj4gKyAqCj4+ICsgKiBTdGF0dXMgcmV0dXJuIGNvZGUgaXMgemVybyBvbiBzdWNj ZXNzIGFuZCAtWEVOX0VYWCBvbiBmYWlsdXJlLgo+PiArICoKPj4gKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNzdW1wdGlvbnMKPj4g KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqCj4+ICsgKiAtIHVzYWdlIG9mIGdyYW50IHJl ZmVyZW5jZSAwIGFzIGludmFsaWQgZ3JhbnQgcmVmZXJlbmNlOgo+PiArICogICBncmFudCByZWZl cmVuY2UgMCBpcyB2YWxpZCwgYnV0IG5ldmVyIGV4cG9zZWQgdG8gYSBQViBkcml2ZXIsCj4+ICsg KiAgIGJlY2F1c2Ugb2YgdGhlIGZhY3QgaXQgaXMgYWxyZWFkeSBpbiB1c2UvcmVzZXJ2ZWQgYnkg dGhlIFBWIGNvbnNvbGUuCj4+ICsgKiAtIGFsbCByZWZlcmVuY2VzIGluIHRoaXMgZG9jdW1lbnQg dG8gcGFnZSBzaXplcyBtdXN0IGJlIHRyZWF0ZWQKPj4gKyAqICAgYXMgcGFnZXMgb2Ygc2l6ZSBY RU5fUEFHRV9TSVpFIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQuCj4+ICsgKgo+PiArICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo+PiArICogICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIHByb3RvY29sIGJl dHdlZW4gZnJvbnRlbmQgYW5kIGJhY2tlbmQgZHJpdmVyCj4+ICsgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCj4+ICsgKgo+PiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBQYXJhLXZpcnR1YWwgY2FtZXJh IGRyaXZlciBjb21tdW5pY2F0ZSB3aXRoCj4+ICsgKiBlYWNoIG90aGVyIHVzaW5nIHNoYXJlZCBw YWdlcyBhbmQgZXZlbnQgY2hhbm5lbHMuCj4+ICsgKiBTaGFyZWQgcGFnZSBjb250YWlucyBhIHJp bmcgd2l0aCByZXF1ZXN0L3Jlc3BvbnNlIHBhY2tldHMuCj4+ICsgKgo+PiArICogQWxsIHJlc2Vy dmVkIGZpZWxkcyBpbiB0aGUgc3RydWN0dXJlcyBiZWxvdyBtdXN0IGJlIDAuCj4+ICsgKgo+PiAr ICogRm9yIGFsbCByZXF1ZXN0L3Jlc3BvbnNlL2V2ZW50IHBhY2tldHM6Cj4+ICsgKiAgIC0gZnJh bWUgcmF0ZSBwYXJhbWV0ZXIgaXMgcmVwcmVzZW50ZWQgYXMgYSBwYWlyIG9mIDQgb2N0ZXQgbG9u Zwo+PiArICogICAgIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3I6Cj4+ICsgKiAgICAgICAtIGZy YW1lX3JhdGVfbnVtZXIgLSB1aW50MzJfdCwgbnVtZXJhdG9yIG9mIHRoZSBmcmFtZSByYXRlCj4+ ICsgKiAgICAgICAtIGZyYW1lX3JhdGVfZGVub20gLSB1aW50MzJfdCwgZGVub21pbmF0b3Igb2Yg dGhlIGZyYW1lIHJhdGUKPj4gKyAqICAgICBUaGUgY29ycmVzcG9uZGluZyBmcmFtZSByYXRlIChI eikgaXMgY2FsY3VsYXRlZCBhczoKPj4gKyAqICAgICAgIGZyYW1lX3JhdGUgPSBmcmFtZV9yYXRl X251bWVyIC8gZnJhbWVfcmF0ZV9kZW5vbQo+PiArICogICAtIGJ1ZmZlciBpbmRleCBpcyBhIHpl cm8gYmFzZWQgaW5kZXggb2YgdGhlIGJ1ZmZlci4gTXVzdCBiZSBsZXNzIHRoYW4KPj4gKyAqICAg ICB0aGUgdmFsdWUgb2YgWEVOQ0FNRVJBX09QX0NPTkZJR19TRVQubnVtX2J1ZnMgcmVzcG9uc2U6 Cj4+ICsgKiAgICAgICAtIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGJ1ZmZlci4KPj4g KyAqCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlcXVl c3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIEFsbCBy ZXF1ZXN0IHBhY2tldHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykuCj4+ICsgKiBB bGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgY29tbW9uIGhlYWRlcjoKPj4gKyAqICAgICAgICAgMCAg ICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAg b2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAg ICAgICAgICAgIHwgICAgb3BlcmF0aW9uICAgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogICBpZCAtIHVpbnQxNl90LCBwcml2YXRlIGd1ZXN0IHZhbHVlLCBlY2hvZWQgaW4gcmVzcG9u c2UuCj4+ICsgKiAgIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIG9wZXJhdGlvbiBjb2RlLCBYRU5DQU1F UkFfT1BfWFhYLgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IHRvIHNldCBjb25maWd1cmF0 aW9uIC0gcmVxdWVzdCB0byBzZXQgdGhlIGNvbmZpZ3VyYXRpb24vbW9kZQo+PiArICogb2YgdGhl IGNhbWVyYToKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0NPTkZJR19TRVQgfCAg IHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwaXhlbCBmb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29sb3JzcGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDI0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHhmZXJfZnVuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5Y2Jjcl9lbmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl6YXRpb24gICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDM2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgIGRpc3BsX2FzcF9yYXRpb19udW1lciAgICAgICAgICAgICAgICAgICAgICAg fCA0MAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICBk aXNwbF9hc3BfcmF0aW9fZGVub20gICAgICAgICAgICAgICAgICAgICAgIHwgNDQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfcmF0ZV9u dW1lciAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVfZGVub20gICAgICAgICAg ICAgICAgICAgICAgICAgfCA1Mgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgNTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg Kgo+PiArICogcGl4ZWxfZm9ybWF0IC0gdWludDMyX3QsIHBpeGVsIGZvcm1hdCB0byBiZSB1c2Vk LCBGT1VSQ0MgY29kZS4KPj4gKyAqIHdpZHRoIC0gdWludDMyX3QsIHdpZHRoIGluIHBpeGVscy4K Pj4gKyAqIGhlaWdodCAtIHVpbnQzMl90LCBoZWlnaHQgaW4gcGl4ZWxzLgo+PiArICogY29sb3Jz cGFjZSAtIHVpbnQzMl90LCB0aGlzIHN1cHBsZW1lbnRzIHBpeGVsX2Zvcm1hdCBwYXJhbWV0ZXIs Cj4+ICsgKiAgIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NPTE9SU1BBQ0VfWFhYLgo+PiArICogeGZl cl9mdW5jIC0gdWludDMyX3QsIHRoaXMgc3VwcGxlbWVudHMgY29sb3JzcGFjZSBwYXJhbWV0ZXIs Cj4+ICsgKiAgIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX1hGRVJfRlVOQ19YWFguCj4+ICsgKiB5Y2Jj cl9lbmMgLSB1aW50MzJfdCwgdGhpcyBzdXBwbGVtZW50cyBjb2xvcnNwYWNlIHBhcmFtZXRlciwK Pj4gKyAqICAgb25lIG9mIHRoZSBYRU5DQU1FUkFfWUNCQ1JfRU5DX1hYWC4KPiBZb3UgZG8gbmVl ZCB0byBtZW50aW9uIHRoYXQgeWNiY3JfZW5jIGlzIG9ubHkgdmFsaWQgZm9yIFlDYkNyIHBpeGVs Zm9ybWF0cyBhbmQKPiB0aGF0IGl0IHNob3VsZCBiZSBpZ25vcmUgb3RoZXJ3aXNlLiBPciBwZXJo YXBzIGFkZCBhIGRlZmluZSBqdXN0IGZvciB0aGF0Ogo+Cj4gI2RlZmluZSBYRU5DQU1FUkFfWUNC Q1JfRU5DX0lHTk9SRSAwCkkgd2lsbCBib3RoIGRlZmluZSBhbmQgcHV0IGEgbm90ZToKIMKgKiB5 Y2Jjcl9lbmMgLSB1aW50MzJfdCwgdGhpcyBzdXBwbGVtZW50cyBjb2xvcnNwYWNlIHBhcmFtZXRl ciwKIMKgKsKgwqAgb25lIG9mIHRoZSBYRU5DQU1FUkFfWUNCQ1JfRU5DX1hYWC4gUGxlYXNlIG5v dGUsIHRoYXQgeWNiY3JfZW5jIGlzIApvbmx5CiDCoCrCoMKgIHZhbGlkIGZvciBZQ2JDciBwaXhl bGZvcm1hdHMgYW5kIHNob3VsZCBiZSBpZ25vcmVkIG90aGVyd2lzZS4KCj4+ICsgKiBxdWFudGl6 YXRpb24gLSB1aW50MzJfdCwgdGhpcyBzdXBwbGVtZW50cyBjb2xvcnNwYWNlIHBhcmFtZXRlciwK Pj4gKyAqICAgb25lIG9mIHRoZSBYRU5DQU1FUkFfUVVBTlRJWkFUSU9OX1hYWC4KPj4gKyAqIGRp c3BsX2FzcF9yYXRpb19udW1lciAtIHVpbnQzMl90LCBudW1lcmF0b3Igb2YgdGhlIGRpc3BsYXkg YXNwZWN0IHJhdGlvLgo+PiArICogZGlzcGxfYXNwX3JhdGlvX2Rlbm9tIC0gdWludDMyX3QsIGRl bm9taW5hdG9yIG9mIHRoZSBkaXNwbGF5IGFzcGVjdCByYXRpby4KPj4gKyAqIGZyYW1lX3JhdGVf bnVtZXIgLSB1aW50MzJfdCwgbnVtZXJhdG9yIG9mIHRoZSBmcmFtZSByYXRlLgo+PiArICogZnJh bWVfcmF0ZV9kZW5vbSAtIHVpbnQzMl90LCBkZW5vbWluYXRvciBvZiB0aGUgZnJhbWUgcmF0ZS4K Pj4gKyAqCj4+ICsgKiBTZWUgcmVzcG9uc2UgZm9ybWF0IGZvciB0aGlzIHJlcXVlc3QuCj4+ICsg Kgo+PiArICogTm90ZXM6Cj4+ICsgKiAgLSBmcm9udGVuZCBtdXN0IGNoZWNrIHRoZSBjb3JyZXNw b25kaW5nIHJlc3BvbnNlIGluIG9yZGVyIHRvIHNlZQo+PiArICogICAgaWYgdGhlIHZhbHVlcyBy ZXBvcnRlZCBiYWNrIGJ5IHRoZSBiYWNrZW5kIGRvIG1hdGNoIHRoZSBkZXNpcmVkIG9uZXMKPj4g KyAqICAgIGFuZCBjYW4gYmUgYWNjZXB0ZWQuCj4+ICsgKiAgLSBmcm9udGVuZCBtYXkgc2VuZCBt dWx0aXBsZSBYRU5DQU1FUkFfT1BfQ09ORklHX1NFVCByZXF1ZXN0cyBiZWZvcmUKPj4gKyAqICAg IHNlbmRpbmcgWEVOQ0FNRVJBX09QX1NUUkVBTV9TVEFSVCByZXF1ZXN0IHRvIHVwZGF0ZSBvciB0 dW5lIHRoZQo+PiArICogICAgY29uZmlndXJhdGlvbi4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNh bWVyYV9jb25maWcgewo+PiArICAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPj4gKyAgICB1aW50 MzJfdCB3aWR0aDsKPj4gKyAgICB1aW50MzJfdCBoZWlnaHQ7Cj4+ICsgICAgdWludDMyX3QgY29s b3JzcGFjZTsKPj4gKyAgICB1aW50MzJfdCB4ZmVyX2Z1bmM7Cj4+ICsgICAgdWludDMyX3QgeWNi Y3JfZW5jOwo+PiArICAgIHVpbnQzMl90IHF1YW50aXphdGlvbjsKPj4gKyAgICB1aW50MzJfdCBk aXNwbF9hc3BfcmF0aW9fbnVtZXI7Cj4+ICsgICAgdWludDMyX3QgZGlzcGxfYXNwX3JhdGlvX2Rl bm9tOwo+PiArICAgIHVpbnQzMl90IGZyYW1lX3JhdGVfbnVtZXI7Cj4+ICsgICAgdWludDMyX3Qg ZnJhbWVfcmF0ZV9kZW5vbTsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGN1cnJl bnQgY29uZmlndXJhdGlvbiBvZiB0aGUgY2FtZXJhOgo+PiArICogICAgICAgICAwICAgICAgICAg ICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAg ICAgfCBfT1BfQ09ORklHX0dFVCB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBTZWUgcmVzcG9uc2UgZm9ybWF0IGZvciB0aGlz IHJlcXVlc3QuCj4+ICsgKgo+PiArICoKPj4gKyAqIFJlcXVlc3QgbnVtYmVyIG9mIGJ1ZmZlcnMg dG8gYmUgdXNlZDoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAg ICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0JVRl9SRVFVRVNU fCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICBudW1fYnVmcyAgICB8ICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBudW1fYnVmcyAtIHVpbnQ4X3Qs IGRlc2lyZWQgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYmUgdXNlZC4KPj4gKyAqCj4+ICsgKiBTZWUg cmVzcG9uc2UgZm9ybWF0IGZvciB0aGlzIHJlcXVlc3QuCj4+ICsgKgo+PiArICogTm90ZXM6Cj4+ ICsgKiAgLSBmcm9udGVuZCBtdXN0IGNoZWNrIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlIGlu IG9yZGVyIHRvIHNlZQo+PiArICogICAgaWYgdGhlIHZhbHVlcyByZXBvcnRlZCBiYWNrIGJ5IHRo ZSBiYWNrZW5kIGRvIG1hdGNoIHRoZSBkZXNpcmVkIG9uZXMKPj4gKyAqICAgIGFuZCBjYW4gYmUg YWNjZXB0ZWQuCj4+ICsgKiAgLSBmcm9udGVuZCBtYXkgc2VuZCBtdWx0aXBsZSBYRU5DQU1FUkFf T1BfQlVGX1JFUVVFU1QgcmVxdWVzdHMgYmVmb3JlCj4+ICsgKiAgICBzZW5kaW5nIFhFTkNBTUVS QV9PUF9TVFJFQU1fU1RBUlQgcmVxdWVzdCB0byB1cGRhdGUgb3IgdHVuZSB0aGUKPj4gKyAqICAg IGNvbmZpZ3VyYXRpb24uCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfYnVmX3JlcXVlc3Qg ewo+PiArICAgIHVpbnQ4X3QgbnVtX2J1ZnM7Cj4+ICt9Owo+IFdoYXQgaGFwcGVucyBpZiBudW1f YnVmcyBpcyAwPwpBcyB0aGlzIHJlcXVlc3QncyByZXNwb25zZSBoYXMgYnVmZmVyIGxheW91dCwg SSB3YXMgcGxhbm5pbmcKdG8gdXNlIG51bV9idWZzID09IDAgYXMgYSB3YXkgdG8gcmVxdWVzdCB0 aGF0IGxheW91dCB3L28KYWxsb2NhdGluZyB0aGUgYnVmZmVyczoKIMKgKsKgIC0gcGFzc2luZyB6 ZXJvIG51bV9idWZzIGluIHRoaXMgcmVxdWVzdCBpcyBub3QgYW4gZXJyb3IgYW5kIGlzIHVzZWQK IMKgKsKgwqDCoCB0byBxdWVyeSBidWZmZXIncyBmb3JtYXQKCj4KPiBTbyBCVUZfUkVRVUVTVCBt YXBzIHRvIFZJRElPQ19SRVFCVUZTIGFuZCBvbmNlIGNhbGxlZCBpdCBmaXhlcyB0aGUgZm9ybWF0 Cj4gaW4gcGxhY2UsIGkuZS4gYWZ0ZXIgdGhpcyB5b3UgY2FuIG5vIGxvbmdlciBjaGFuZ2UgdGhl IGZvcm1hdC4KSSdsbCBwdXQgYSBub3RlIG9uIHRoaXMsIHRoYW5rIHlvdToKIMKgKsKgIC0gYWZ0 ZXIgdGhpcyByZXF1ZXN0IGNhbWVyYSBjb25maWd1cmF0aW9uIGNhbm5vdCBiZSBjaGFuZ2VkLCB1 bmxlc3MKIMKgKsKgwqDCoCBzdHJlYW1pbmcgaXMgc3RvcHBlZCBhbmQgYnVmZmVycyBkZXN0cm95 ZWQKCj4gICBDaGFuZ2luZyB0aGUKPiBmb3JtYXQgdXN1YWxseSBtZWFucyBjaGFuZ2luZyB0aGUg YnVmZmVyIHNpemUsIGJ1dCBvbmNlIHRoZXkgYXJlIGFsbG9jYXRlZAo+IHdpdGggUkVRQlVGUyB0 aGF0IGlzIG5vIGxvbmdlciBwb3NzaWJsZS4KPgo+IElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUg Zm9ybWF0LCB0aGVuIHRoZSBmaXJzdCB0aGluZyB5b3UgaGF2ZSB0byBkbyBpcwo+IHN0b3Agc3Ry ZWFtaW5nIGFuZCByZWxlYXNpbmcgYWxsIGJ1ZmZlcnMuIFRoaXMgbGFzdCBzdGVwIGlzIGRvbmUg d2l0aAo+IFZJRElPQ19SRVFCVUZTIHdpdGggYSBjb3VudCBvZiAwLgpUaGlzIHdpbGwgYmUgdGhl IGZyb250ZW5kJ3MgcmVzcG9uc2liaWxpdHkgdG8gZG8gc286CjEuIHN0b3Agc3RyZWFtaW5nCjIu IGRlc3Ryb3kgYnVmZmVycwoKSW4gY2FzZSBvZiBhIFY0TDIgZnJvbnRlbmQgdGhpcyB3aWxsIGJl IHdoaWxlIHNlcnZpbmcKIlZJRElPQ19SRVFCVUZTIHdpdGggYSBjb3VudCBvZiAwIi4KPgo+IFdo ZXRoZXIgb3Igbm90IHlvdSB3YW50IHRvIGRvIHRoZSBzYW1lIHRoaW5nIChpLmUuIGlmIG51bV9i dWZzID09IDAsIHRoZW4KPiBmcmVlIGFsbCBidWZmZXJzKSBpcyB1cCB0byB5b3UsIGJ1dCB5b3Ug ZG8gbmVlZCBhIHNpbWlsYXIgbWVjaGFuaXNtIGluIHlvdXIKPiBBUEkuIEFuZCB5b3UgbmVlZCB0 byBkb2N1bWVudCB0aGF0IG9uY2UgYnVmZmVycyBhcmUgYWxsb2NhdGVkLCB5b3UgY2FuJ3QKPiBj aGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gYW55bW9yZS4KUGxlYXNlIHNlZSB0aGUgbm90ZSBhYm92 ZQo+Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBidWZmZXIgY3JlYXRpb246Cj4+ ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9CVUZfQ1JFQVRFIHwgICByZXNlcnZlZCAg ICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAgICAgICAgICAgICAgICAg IHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJlY3RvcnkgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICoKPj4gKyAqIEFuIGF0dGVtcHQgdG8gY3JlYXRlIG11bHRpcGxlIGJ1ZmZlcnMgd2l0aCB0aGUg c2FtZSBpbmRleCBpcyBhbiBlcnJvci4KPj4gKyAqIGluZGV4IGNhbiBiZSByZS11c2VkIGFmdGVy IGRlc3Ryb3lpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY2FtZXJhIGJ1ZmZlci4KPj4gKyAqCj4+ICsg KiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBidWZmZXIgdG8gYmUgY3JlYXRlZC4KPj4g KyAqIGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJz dCBzaGFyZWQgcGFnZQo+PiArICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJlbmNl cy4gVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBpcyBlcXVhbCB0bwo+PiArICogICBYRU5DQU1FUkFf T1BfR0VUX0JVRl9ERVRBSUxTLnNpemUgcmVzcG9uc2UuIEF0IGxlYXN0IG9uZSBwYWdlIGV4aXN0 cy4gSWYKPj4gKyAqICAgc2hhcmVkIGJ1ZmZlciBzaXplIGV4Y2VlZHMgd2hhdCBjYW4gYmUgYWRk cmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCj4+ICsgKiAgIHRoZW4gcmVmZXJlbmNlIHRvIHRo ZSBuZXh0IHNoYXJlZCBwYWdlIG11c3QgYmUgc3VwcGxpZWQgKHNlZQo+PiArICogICBncmVmX2Rp cl9uZXh0X3BhZ2UgYmVsb3cpLgo+PiArICoKPj4gKyAqIElmIFhFTkNBTUVSQV9GSUVMRF9CRV9B TExPQyBjb25maWd1cmF0aW9uIGVudHJ5IGlzIHNldCwgdGhlbiBiYWNrZW5kIHdpbGwKPj4gKyAq IGFsbG9jYXRlIHRoZSBidWZmZXIgd2l0aCB0aGUgcGFyYW1ldGVycyBwcm92aWRlZCBpbiB0aGlz IHJlcXVlc3QgYW5kIHBhZ2UKPj4gKyAqIGRpcmVjdG9yeSBpcyBoYW5kbGVkIGFzIGZvbGxvd3M6 Cj4+ICsgKiAgIEZyb250ZW5kIG9uIHJlcXVlc3Q6Cj4+ICsgKiAgICAgLSBhbGxvY2F0ZXMgcGFn ZXMgZm9yIHRoZSBkaXJlY3RvcnkgKGdyZWZfZGlyZWN0b3J5LAo+PiArICogICAgICAgZ3JlZl9k aXJfbmV4dF9wYWdlKHMpCj4+ICsgKiAgICAgLSBncmFudHMgcGVybWlzc2lvbnMgZm9yIHRoZSBw YWdlcyBvZiB0aGUgZGlyZWN0b3J5IHRvIHRoZSBiYWNrZW5kCj4+ICsgKiAgICAgLSBzZXRzIGdy ZWZfZGlyX25leHRfcGFnZSBmaWVsZHMKPj4gKyAqICAgQmFja2VuZCBvbiByZXNwb25zZToKPj4g KyAqICAgICAtIGdyYW50cyBwZXJtaXNzaW9ucyBmb3IgdGhlIHBhZ2VzIG9mIHRoZSBidWZmZXIg YWxsb2NhdGVkIHRvCj4+ICsgKiAgICAgICB0aGUgZnJvbnRlbmQKPj4gKyAqICAgICAtIGZpbGxz IGluIHBhZ2UgZGlyZWN0b3J5IHdpdGggZ3JhbnQgcmVmZXJlbmNlcwo+PiArICogICAgICAgKGdy ZWZbXSBpbiBzdHJ1Y3QgeGVuY2FtZXJhX3BhZ2VfZGlyZWN0b3J5KQo+PiArICovCj4+ICtzdHJ1 Y3QgeGVuY2FtZXJhX2J1Zl9jcmVhdGVfcmVxIHsKPj4gKyAgICB1aW50OF90IGluZGV4Owo+PiAr ICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbM107Cj4+ICsgICAgZ3JhbnRfcmVmX3QgZ3JlZl9kaXJlY3Rv cnk7Cj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogU2hhcmVkIHBhZ2UgZm9yIFhFTkNBTUVSQV9P UF9CVUZfQ1JFQVRFIGJ1ZmZlciBkZXNjcmlwdG9yIChncmVmX2RpcmVjdG9yeSBpbgo+PiArICog dGhlIHJlcXVlc3QpIGVtcGxveXMgYSBsaXN0IG9mIHBhZ2VzLCBkZXNjcmliaW5nIGFsbCBwYWdl cyBvZiB0aGUgc2hhcmVkCj4+ICsgKiBkYXRhIGJ1ZmZlcjoKPj4gKyAqICAgICAgICAgMCAgICAg ICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0 ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgIGdy ZWZfZGlyX25leHRfcGFnZSAgICAgICAgICAgICAgICAgICAgICAgICB8IDQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbMF0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBncmVmW2ldICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpKjQr OAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZltOIC0gMV0gICAg ICAgICAgICAgICAgICAgICAgICAgICB8IE4qNCs4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq Cj4+ICsgKiBncmVmX2Rpcl9uZXh0X3BhZ2UgLSBncmFudF9yZWZfdCwgcmVmZXJlbmNlIHRvIHRo ZSBuZXh0IHBhZ2UgZGVzY3JpYmluZwo+PiArICogICBwYWdlIGRpcmVjdG9yeS4gTXVzdCBiZSAw IGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzIGluIHRoZSBsaXN0Lgo+PiArICogZ3JlZltpXSAt IGdyYW50X3JlZl90LCByZWZlcmVuY2UgdG8gYSBzaGFyZWQgcGFnZSBvZiB0aGUgYnVmZmVyCj4+ ICsgKiAgIGFsbG9jYXRlZCBhdCBYRU5DQU1FUkFfT1BfQlVGX0NSRUFURS4KPj4gKyAqCj4+ICsg KiBOdW1iZXIgb2YgZ3JhbnRfcmVmX3QgZW50cmllcyBpbiB0aGUgd2hvbGUgcGFnZSBkaXJlY3Rv cnkgaXMgbm90Cj4+ICsgKiBwYXNzZWQsIGJ1dCBpbnN0ZWFkIGNhbiBiZSBjYWxjdWxhdGVkIGFz Ogo+PiArICogICBudW1fZ3JlZnNfdG90YWwgPSAoWEVOQ0FNRVJBX09QX0JVRl9SRVFVRVNULnNp emUgKyBYRU5fUEFHRV9TSVpFIC0gMSkgLwo+PiArICogICAgICAgWEVOX1BBR0VfU0laRQo+PiAr ICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX3BhZ2VfZGlyZWN0b3J5IHsKPj4gKyAgICBncmFudF9y ZWZfdCBncmVmX2Rpcl9uZXh0X3BhZ2U7Cj4+ICsgICAgZ3JhbnRfcmVmX3QgZ3JlZlsxXTsgLyog VmFyaWFibGUgbGVuZ3RoICovCj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogUmVxdWVzdCBidWZm ZXIgZGVzdHJ1Y3Rpb24gLSBkZXN0cm95IGEgcHJldmlvdXNseSBhbGxvY2F0ZWQgY2FtZXJhIGJ1 ZmZlcjoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAy ICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0JVRl9ERVNUUk9ZfCAgIHJl c2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgIGluZGV4ICAgICB8ICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8 L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9m IHRoZSBidWZmZXIgdG8gYmUgZGVzdHJveWVkLgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0 IHF1ZXVlaW5nIG9mIHRoZSBidWZmZXIgZm9yIGJhY2tlbmQgdXNlOgo+PiArICogICAgICAgICAw ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAg ICAgICAgICAgICAgfCBfT1BfQlVGX1FVRVVFICB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgaW5kZXggICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICoKPj4gKyAqIE5vdGVzOgo+PiArICogIC0gZnJvbnRlbmRzIG11c3Qgbm90IGFjY2VzcyB0aGUg YnVmZmVyIGNvbnRlbnQgYWZ0ZXIgdGhpcyByZXF1ZXN0IHVudGlsCj4+ICsgKiAgICByZXNwb25z ZSB0byBYRU5DQU1FUkFfT1BfQlVGX0RFUVVFVUUgaGFzIGJlZW4gcmVjZWl2ZWQuCj4+ICsgKiAg LSBidWZmZXJzIG11c3QgYmUgcXVldWVkIHRvIHRoZSBiYWNrZW5kIGJlZm9yZSBkZXN0cm95aW5n IHRoZW0gd2l0aAo+PiArICogICAgWEVOQ0FNRVJBX09QX0JVRl9ERVNUUk9ZLgo+PiArICoKPj4g KyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGJ1ZmZlciB0byBiZSBxdWV1ZWQuCj4+ ICsgKgo+PiArICoKPj4gKyAqIFJlcXVlc3QgZGVxdWV1ZWluZyBvZiB0aGUgYnVmZmVyIGZvciBm cm9udGVuZCB1c2U6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAg ICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X09QX0JVRl9ERVFVRVVF IHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogTm90ZXM6Cj4+ICsgKiAgLSBm cm9udGVuZCBpcyBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgYnVmZmVyIGNvbnRlbnQgYWZ0ZXIgdGhl IGNvcnJlc3BvbmRpbmcKPj4gKyAqICAgIHJlc3BvbnNlIHRvIHRoaXMgcmVxdWVzdC4KPj4gKyAq Cj4+ICsgKiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBidWZmZXIgdG8gYmUgcXVldWVk Lgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBjb250cm9sIGRldGFpbHM6Cj4+ ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9DVFJMX0VOVU0gIHwgICByZXNlcnZlZCAg ICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1h dCBmb3IgdGhpcyByZXF1ZXN0Lgo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXgg b2YgdGhlIGNvbnRyb2wgdG8gYmUgcXVlcmllZC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVy YV9pbmRleCB7Cj4+ICsgICAgdWludDhfdCBpbmRleDsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsg KiBSZXF1ZXN0IGNhbWVyYSBjb250cm9sIGNoYW5nZToKPj4gKyAqICAgICAgICAgMCAgICAgICAg ICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQK Pj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAg ICAgIHwgIF9PUF9TRVRfQ1RSTCAgfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICB0eXBlICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2 ZWQgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1 ZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgaGlnaCAzMi1iaXQg ICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqCj4+ICsgKiB0eXBlIC0gdWludDhfdCwgdHlwZSBvZiB0aGUgY29udHJvbCwgb25l IG9mIHRoZSBYRU5DQU1FUkFfQ1RSTF9YWFguCj4+ICsgKiB2YWx1ZSAtIGludDY0X3QsIG5ldyB2 YWx1ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9jdHJsX3Zh bHVlIHsKPj4gKyAgICB1aW50OF90IHR5cGU7Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs3XTsK Pj4gKyAgICBpbnQ2NF90IHZhbHVlOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3Qg Y2FtZXJhIGNvbnRyb2wgc3RhdGU6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAg ICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICBfT1Bf R0VUX0NUUkwgIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgdHlwZSAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx Mgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ ICsgKiBTZWUgcmVzcG9uc2UgZm9ybWF0IGZvciB0aGlzIHJlcXVlc3QuCj4+ICsgKgo+PiArICog dHlwZSAtIHVpbnQ4X3QsIHR5cGUgb2YgdGhlIGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJB X0NUUkxfWFhYLgo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2dldF9jdHJsX3JlcSB7Cj4+ ICsgICAgdWludDhfdCB0eXBlOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIFJlcXVlc3QgY2Ft ZXJhIGNhcHR1cmUgc3RyZWFtIHN0YXJ0Ogo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAg IDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfF9P UF9TVFJFQU1fU1RBUlR8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8L1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqCj4+ICsgKgo+PiArICogUmVxdWVzdCBjYW1lcmEgY2FwdHVyZSBzdHJl YW0gc3RvcDoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAg ICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxfT1BfU1RSRUFNX1NUT1AgfCAg IHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+ PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNwb25zZXMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBBbGwgcmVzcG9u c2UgcGFja2V0cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRzKS4KPj4gKyAqCj4+ICsg KiBBbGwgcmVzcG9uc2UgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cj4+ICsgKiAgICAgICAg IDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAg ICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0 dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4gKyAqCj4+ICsgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdC4KPj4g KyAqIG9wZXJhdGlvbiAtIHVpbnQ4X3QsIFhFTkNBTUVSQV9PUF8qIC0gY29waWVkIGZyb20gcmVx dWVzdC4KPj4gKyAqIHN0YXR1cyAtIGludDMyX3QsIHJlc3BvbnNlIHN0YXR1cywgemVybyBvbiBz dWNjZXNzIGFuZCAtWEVOX0VYWCBvbiBmYWlsdXJlLgo+PiArICoKPj4gKyAqCj4+ICsgKiBTZXQv Z2V0IGNvbmZpZ3VyYXRpb24gcmVzcG9uc2UgLSByZXNwb25zZSBmb3IgWEVOQ0FNRVJBX09QX0NP TkZJR19TRVQKPj4gKyAqIGFuZCBYRU5DQU1FUkFfT1BfQ09ORklHX0dFVAo+PiArICogICAgICAg ICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAg ICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQg ICAgICAgICAgICAgICAgfCBfT1BfQ09ORklHXz9FVCB8ICAgIHJlc2VydmVkICAgIHwgNAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsIGZvcm1hdCAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xv cnNwYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGZlcl9mdW5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHljYmNyX2VuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAzMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHF1YW50aXphdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzYKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxfYXNw X3JhdGlvX251bWVyICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsX2FzcF9yYXRpb19kZW5vbSAg ICAgICAgICAgICAgICAgICAgICAgfCA0NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9yYXRlX251bWVyICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgZnJhbWVfcmF0ZV9kZW5vbSAgICAgICAgICAgICAgICAgICAgICAgICB8IDUyCj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1Ngo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBNZWFuaW5nIG9mIHRo ZSBjb3JyZXNwb25kaW5nIHZhbHVlcyBpbiB0aGlzIHJlc3BvbnNlIGlzIHRoZSBzYW1lIGFzIGZv cgo+PiArICogWEVOQ0FNRVJBX09QX0NPTkZJR19TRVQgcmVxdWVzdC4KPj4gKyAqCj4+ICsgKgo+ PiArICogUmVxdWVzdCBidWZmZXIgcmVzcG9uc2UgLSByZXNwb25zZSBmb3IgWEVOQ0FNRVJBX09Q X0JVRl9SRVFVRVNUCj4+ICsgKiByZXF1ZXN0Ogo+PiArICogICAgICAgICAwICAgICAgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAg fF9PUF9CVUZfUkVRVUVTVCB8ICAgIHJlc2VydmVkICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgbnVt X2J1ZmZlcnMgIHwgICBudW1fcGxhbmVzICAgfCAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX29m ZnNldFswXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9vZmZzZXRbMV0gICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgcGxhbmVfb2Zmc2V0WzJdICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHBsYW5lX29mZnNldFszXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzMgo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVf c2l6ZVswXSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzYKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYW5lX3NpemVbMV0gICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9zaXplWzJdICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA0NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGxhbmVfc2l6ZVszXSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDgKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgIHBsYW5lX3N0cmlkZVswXSAgICAgICAg IHwgICAgICAgICBwbGFuZV9zdHJpZGVbMV0gICAgICAgICB8IDUyCj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICBwbGFuZV9zdHJpZGVbMl0gICAgICAgICB8ICAgICAgICAgcGxh bmVfc3RyaWRlWzNdICAgICAgICAgfCA1Ngo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY0Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBudW1fYnVmZmVycyAtIHVpbnQ4X3QsIG51 bWJlciBvZiBidWZmZXJzIHRvIGJlIHVzZWQuCj4+ICsgKiBudW1fcGxhbmVzIC0gdWludDhfdCwg bnVtYmVyIG9mIHBsYW5lcyBvZiB0aGUgYnVmZmVyLgo+PiArICogc2l6ZSAtIHVpbnQzMl90LCBv dmVyYWxsIHNpemUgb2YgdGhlIGJ1ZmZlciBpbmNsdWRpbmcgc2l6ZXMgb2YgdGhlCj4+ICsgKiAg IGluZGl2aWR1YWwgcGxhbmVzIGFuZCBwYWRkaW5nIGlmIGFwcGxpY2FibGUuCj4+ICsgKiBwbGFu ZV9vZmZzZXQgLSBhcnJheSBvZiB1aW50MzJfdCwgb2Zmc2V0IG9mIHRoZSBjb3JyZXNwb25kaW5n IHBsYW5lCj4+ICsgKiAgIGluIG9jdGV0cyBmcm9tIHRoZSBidWZmZXIgc3RhcnQuCj4+ICsgKiBw bGFuZV9zaXplIC0gYXJyYXkgb2YgdWludDMyX3QsIHNpemUgaW4gb2N0ZXRzIG9mIHRoZSBjb3Jy ZXNwb25kaW5nIHBsYW5lCj4+ICsgKiAgIGluY2x1ZGluZyBwYWRkaW5nLgo+PiArICogcGxhbmVf c3RyaWRlIC0gYXJyYXkgb2YgdWludDMyX3QsIHNpemUgaW4gb2N0ZXRzIG9jY3VwaWVkIGJ5IHRo ZQo+IHVpbnQzMl90IC0+IHVpbnQxNl90LCBidXQgc2VlIGJlbG93Cj4KPj4gKyAqICAgY29ycmVz cG9uZGluZyBzaW5nbGUgaW1hZ2UgbGluZSBpbmNsdWRpbmcgcGFkZGluZyBpZiBhcHBsaWNhYmxl Lgo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9yZXF1ZXN0X3Jlc3Agewo+PiArICAg IHVpbnQ4X3QgbnVtX2J1ZmZlcnM7Cj4+ICsgICAgdWludDhfdCBudW1fcGxhbmVzOwo+PiArICAg IHVpbnQ4X3QgcmVzZXJ2ZWRbMl07Cj4+ICsgICAgdWludDMyX3Qgc2l6ZTsKPj4gKyAgICB1aW50 MzJfdCBwbGFuZV9vZmZzZXRbWEVOQ0FNRVJBX01BWF9QTEFORV07Cj4+ICsgICAgdWludDMyX3Qg cGxhbmVfc2l6ZVtYRU5DQU1FUkFfTUFYX1BMQU5FXTsKPj4gKyAgICB1aW50MTZfdCBwbGFuZV9z dHJpZGVbWEVOQ0FNRVJBX01BWF9QTEFORV07Cj4gSSByZWNvbW1lbmQgdXNpbmcgdWludDMyX3Qg Zm9yIHRoZSBzdHJpZGUuIEl0J3MgbW9yZSBmdXR1cmUgcHJvb2YgZ2l2ZW4gdGhlCj4gZXZlciBo aWdoZXIgcmVzb2x1dGlvbnMgYW5kIGNvbG9yZGVwdGhzIHdlJ3JlIHNlZWluZy4KV2lsbCBjaGFu Z2UgdG8gdWludDMyX3QKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBDb250cm9sIGVudW1lcmF0 ZSByZXNwb25zZSAtIHJlc3BvbnNlIGZvciBYRU5DQU1FUkFfT1BfQ1RSTF9FTlVNOgo+PiArICog ICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAg ICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfQ1RSTF9FTlVNICB8ICAgIHJlc2VydmVkICAgIHwg NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXR1cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgICBpbmRleCAgICAgIHwgICAgICB0eXBlICAgICAgfCAgICAgICAg ICAgICAgZmxhZ3MgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIG1pbiBsb3cgMzItYml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy MAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBt aW4gaGlnaCAzMi1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4IGxvdyAzMi1iaXRz ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCBoaWdoIDMyLWJpdHMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAzMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgIHN0ZXAgbG93IDMyLWJpdHMgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MzYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICBz dGVwIGhpZ2ggMzItYml0cyAgICAgICAgICAgICAgICAgICAgICAgICB8IDQwCj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBkZWZfdmFsIGxvdyAzMi1i aXRzICAgICAgICAgICAgICAgICAgICAgICAgfCA0NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgZGVmX3ZhbCBoaWdoIDMyLWJpdHMgICAgICAgICAg ICAgICAgICAgICAgIHwgNDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDUyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoK Pj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGNhbWVyYSBjb250cm9sIGluIHJl c3BvbnNlLgo+PiArICogdHlwZSAtIHVpbnQ4X3QsIHR5cGUgb2YgdGhlIGNvbnRyb2wsIG9uZSBv ZiB0aGUgWEVOQ0FNRVJBX0NUUkxfWFhYLgo+PiArICogZmxhZ3MgLSB1aW50MTZfdCwgZmxhZ3Mg b2YgdGhlIGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxfRkxHX1hYWC4KPiBHbyB3 aXRoIGEgdWludDMyX3QgZm9yIHRoZSBmbGFncy4gVjRMMiBpcyBhbHJlYWR5IHVzaW5nIDExIGZs YWdzLi4uCm9rLCB3aWxsIGNoYW5nZSB0byB1aW50MzJfdAo+PiArICogbWluIC0gaW50NjRfdCwg bWluaW11bSB2YWx1ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqIG1heCAtIGludDY0X3QsIG1heGlt dW0gdmFsdWUgb2YgdGhlIGNvbnRyb2wuCj4+ICsgKiBzdGVwIC0gaW50NjRfdCwgbWluaW11bSBz aXplIGluIHdoaWNoIGNvbnRyb2wgdmFsdWUgY2FuIGJlIGNoYW5nZWQuCj4+ICsgKiBkZWZfdmFs IC0gaW50NjRfdCwgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqLwo+PiArc3Ry dWN0IHhlbmNhbWVyYV9jdHJsX2VudW1fcmVzcCB7Cj4+ICsgICAgdWludDhfdCBpbmRleDsKPj4g KyAgICB1aW50OF90IHR5cGU7Cj4+ICsgICAgdWludDE2X3QgZmxhZ3M7Cj4+ICsgICAgdWludDhf dCByZXNlcnZlZFs0XTsKPj4gKyAgICBpbnQ2NF90IG1pbjsKPj4gKyAgICBpbnQ2NF90IG1heDsK Pj4gKyAgICBpbnQ2NF90IHN0ZXA7Cj4+ICsgICAgaW50NjRfdCBkZWZfdmFsOwo+PiArfTsKPj4g Kwo+PiArLyoKPj4gKyAqIEdldCBjb250cm9sIHJlc3BvbnNlIC0gcmVzcG9uc2UgZm9yIFhFTkNB TUVSQV9PUF9DVFJMX0dFVDoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAg ICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX0NUUkxf R0VUICAgfCAgICByZXNlcnZlZCAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICB0eXBlICAgICB8 ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8IDgKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBsb3cgMzItYml0ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAg ICAgICAgICAgdmFsdWUgaGlnaCAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL3wKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDY0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiB0eXBlIC0gdWludDhf dCwgdHlwZSBvZiB0aGUgY29udHJvbCwgb25lIG9mIHRoZSBYRU5DQU1FUkFfQ1RSTF9YWFguCj4+ ICsgKiB2YWx1ZSAtIGludDY0X3QsIG5ldyB2YWx1ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqLwo+ PiArCj4+ICsvKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFdmVu dHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIEV2ZW50 cyBhcmUgc2VudCB2aWEgYSBzaGFyZWQgcGFnZSBhbGxvY2F0ZWQgYnkgdGhlIGZyb250IGFuZCBw cm9wYWdhdGVkIGJ5Cj4+ICsgKiAgIGV2dC1ldmVudC1jaGFubmVsL2V2dC1yaW5nLXJlZiBYZW5T dG9yZSBlbnRyaWVzLgo+PiArICoKPj4gKyAqIEFsbCBldmVudCBwYWNrZXRzIGhhdmUgdGhlIHNh bWUgbGVuZ3RoICg2NCBvY3RldHMpLgo+PiArICogQWxsIGV2ZW50IHBhY2tldHMgaGF2ZSBjb21t b24gaGVhZGVyOgo+PiArICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg ICAgIDIgICAgICAgICAgICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICAgfCAgICAgIHR5cGUgICAgICB8 ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogaWQgLSB1aW50MTZfdCwgZXZl bnQgaWQsIG1heSBiZSB1c2VkIGJ5IGZyb250Lgo+PiArICogdHlwZSAtIHVpbnQ4X3QsIHR5cGUg b2YgdGhlIGV2ZW50Lgo+PiArICoKPj4gKyAqCj4+ICsgKiBGcmFtZSBjYXB0dXJlZCBldmVudCAt IGV2ZW50IGZyb20gYmFjayB0byBmcm9udCB3aGVuIGEgbmV3IGNhcHR1cmVkCj4+ICsgKiBmcmFt ZSBpcyBhdmFpbGFibGU6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAg ICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X0VWVF9GUkFNRV9B VkFJTHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl ZF9zeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICAgICAgICAgICBzZXFfbnVtIGxvdyAzMi1iaXRzICAgICAgICAgICAgICAgICAg ICAgICAgfCAyNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAg ICAgICAgc2VxX251bSBoaWdoIDMyLWJpdHMgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhf dCwgaW5kZXggb2YgdGhlIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIG5ldyBjYXB0dXJlZCBmcmFtZS4K Pj4gKyAqIHVzZWRfc3ogLSB1aW50MzJfdCwgbnVtYmVyIG9mIG9jdGV0cyB0aGlzIGZyYW1lIGhh cy4gVGhpcyBjYW4gYmUgbGVzcwo+PiArICogdGhhbiB0aGUgWEVOQ0FNRVJBX09QX0JVRl9SRVFV RVNULnNpemUgKHJlc3BvbnNlKSBmb3IgY29tcHJlc3NlZCBmb3JtYXRzLgo+PiArICogc2VxX251 bSAtIHVpbnQ2NF90LCBzZXF1ZW50aWFsIG51bWJlciBvZiB0aGUgZnJhbWUuCj4gTXVzdCBiZSBt b25vdG9uaWNhbGx5IGluY3JlYXNpbmcsIGFuZCBpZiB0aGVyZSBhcmUgc2tpcHMgaW4gdGhlIG51 bWJlciwgdGhlbgo+IGl0IG1lYW5zIHRoYXQgZnJhbWVzIHdlcmUgc2tpcHBlZC4gTm90IGFsbCBk cml2ZXJzIGNhbiBkZXRlY3QgdGhpcywgc28KPiBubyBza2lwcyBkb2VzIG5vdCBuZWNlc3Nhcmls eSBtZWFuIHRoZXJlIHdlcmUgbm8gc2tpcHMuCkknbGwgcHV0IGEgbm90ZSBvbiB0aGlzOgogwqAq IHNlcV9udW0gLSB1aW50NjRfdCwgc2VxdWVudGlhbCBudW1iZXIgb2YgdGhlIGZyYW1lLiBNdXN0 IGJlCiDCoCrCoMKgIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZy4gSWYgc2tpcHMgYXJlIGRldGVj dGVkIGluIHNlcV9udW0gdGhlbiB0aGF0CiDCoCrCoMKgIG1lYW5zIHRoYXQgdGhlIGZyYW1lcyBp bi1iZXR3ZWVuIHdlcmUgZHJvcHBlZC4KCj4+ICsgKi8KPj4gK3N0cnVjdCB4ZW5jYW1lcmFfZnJh bWVfYXZhaWxfZXZ0IHsKPj4gKyAgICB1aW50OF90IGluZGV4Owo+PiArICAgIHVpbnQ4X3QgcmVz ZXJ2ZWQwWzNdOwo+PiArICAgIHVpbnQzMl90IHVzZWRfc3o7Cj4+ICsgICAgdWludDhfdCByZXNl cnZlZDFbNF07Cj4+ICsgICAgdWludDY0X3Qgc2VxX251bTsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ ICsgKiBDb25maWd1cmF0aW9uIGNoYW5nZSAtIGV2ZW50IGZyb20gYmFjayB0byBmcm9udCB3aGVu IGN1cnJlbnQKPj4gKyAqIGNvbmZpZ3VyYXRpb24gaGFzIGNoYW5nZWQ6Cj4+ICsgKiAgICAgICAg IDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAg ICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAg ICAgICAgICAgICAgICB8IF9DT05GSUdfQ0hBTkdFIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsK Pj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKgo+PiArICogZmxhZ3MgLSB1aW50MzJfdCwgc2V0IG9mIHRoZSBYRU5DQU1FUkFfRVZUX0NG R19GTEdfWFhYIGZsYWdzLgo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2NmZ19jaGFuZ2Vf ZXZ0IHsKPj4gKyAgICB1aW50MzJfdCBmbGFnczsKPj4gK307Cj4gVGhpcyBuZWVkcyBzb21lIG1v cmUgd29yazogd2hhdCBzaG91bGQgdGhlIGZyb250ZW5kIGRvIHdoZW4gdGhpcyBpcyByZWNlaXZl ZD8KPgo+IEkgd291bGQgZXhwZWN0IGl0IHNob3VsZCBzdG9wIHN0cmVhbWluZywgZnJlZSBhbGwg YnVmZmVycywgcmVyZWFkIHRoZSBjb25maWcKPiBhbmQgc3RhcnQgYWdhaW4uClRoYXQgZWZmZWN0 aXZlbHkgbWVhbnMgYWxtb3N0IHRoZSBzYW1lIGFzIGdvaW5nIGludG8KQ2xvc2VkIHN0YXRlIGFu ZCB0aGVuIGdvaW5nIGJhY2sgaW50byBDb25uZWN0ZWQgc3RhdGUKd2hpY2ggY2FuIGJlIGNvbnRy b2xsZWQgYnkgdGhlIGJhY2tlbmQgd2l0aCBYZW5CdXMgc3RhdGUgbWFjaGluZS4KU28sIHRoaXMg cGFydGljdWxhciBjb25maWd1cmF0aW9uIGNoYW5nZSBldmVudCBjYW4gYmUgb21pdHRlZAphdCBh bGwuIERvZXMgdGhpcyBzb3VuZCByZWFzb25hYmxlPwo+Cj4gQnV0IHdoYXQgaWYgdGhlcmUgaXMg bm8gbmV3IGNvbmZpZyBiZWNhdXNlIHRoZSBzb3VyY2Ugd2FzIGRpc2Nvbm5lY3RlZD8KVGhpcyBp cyB0aGUgYmFja2VuZCdzIHJlc3BvbnNpYmlsaXR5IHRvIGNvbnRyb2wgdGhhdCwKZS5nLiBpZiB0 aGUgc291cmNlIGhhcyBkaXNjb25uZWN0ZWQgdGhlbiB0aGUgYmFja2VuZCBtdXN0CmhvbGQgdmly dHVhbCBjYW1lcmEgZGV2aWNlIHZpYSB0aGUgWGVuQnVzIHN0YXRlIG1hY2hpbmUgaW4KY2xvc2Vk IG9yIGFueSBub24tb3BlcmF0YWJsZSBzdGF0ZSB1bnRpbCB0aGF0IHNvdXJjZSBjb21lcyBiYWNr Lgo+Cj4+ICsKPj4gKy8qCj4+ICsgKiBDb250cm9sIGNoYW5nZSBldmVudC0gZXZlbnQgZnJvbSBi YWNrIHRvIGZyb250IHdoZW4gY2FtZXJhIGNvbnRyb2wKPj4gKyAqIGhhcyBjaGFuZ2VkOgo+PiAr ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg ICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgaWQgICAgICAgICAgICAgICAgfF9FVlRfQ1RSTF9DSEFOR0V8ICAgcmVzZXJ2ZWQgICAg IHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgIHR5cGUgICAgIHwgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhbHVlIGxvdyAzMi1iaXQgICAgICAgICAgICAgICAgICAgICAgICAg fCAyMAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB2YWx1ZSBoaWdoIDMyLWJpdCAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg NjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIHR5cGUgLSB1aW50OF90LCB0eXBl IG9mIHRoZSBjb250cm9sLCBvbmUgb2YgdGhlIFhFTkNBTUVSQV9DVFJMX1hYWC4KPj4gKyAqIHZh bHVlIC0gaW50NjRfdCwgbmV3IHZhbHVlIG9mIHRoZSBjb250cm9sLgo+PiArICovCj4gU28gd2ls bCB0aGlzIGhhcHBlbiBmb3IgYWxsIGNvbnRyb2xzIChleGNlcHQgd3JpdGUtb25seSk/IFdoYXQg YWJvdXQgdm9sYXRpbGUKPiBjb250cm9scz8gV2hhdCBpZiB0aGUgZnJvbnRlbmQgc2V0cyBhIGNv bnRyb2wsIGRvZXMgaXQgYWxzbyBnZXQgdGhpcyBldmVudD8KPiBEb2VzIGl0IGdldCB0aGlzIGV2 ZW50IHdpdGggdGhlIGN1cnJlbnQgdmFsdWUgb2YgYSBjb250cm9sIHdoZW4gaXQgZmlyc3QgY29u bmVjdHM/Cj4KPiBXaGF0IGhhcHBlbnMgaWYgdGhlcmUgYXJlIG11bHRpcGxlIHF1aWNrIGNoYW5n ZXMgdG8gdGhlIHNhbWUgY29udHJvbD8gQ2FuIHRoZSBldmVudAo+IHF1ZXVlIG92ZXJmbG93Pwo+ Cj4gU29ycnksIHRoZXNlIGFyZSBhbGwgcXVlc3Rpb25zIHdlIGhhZCB0byBhbnN3ZXIgd2hlbiB3 ZSBhZGRlZCBjb250cm9sIGV2ZW50Cj4gc3VwcG9ydC4gV2Ugc3BlbmQgYSBsb3Qgb2YgdGltZSBt YWtpbmcgdGhlIGV2ZW50IGhhbmRsaW5nIHJlbGlhYmxlIHdpdGhvdXQgbG9zaW5nCj4gaW5mb3Jt YXRpb24gKGludGVybWVkaWF0ZSB2YWx1ZXMgY2FuIGJlIGxvc3QsIGJ1dCBuZXZlciB0aGUgY3Vy cmVudCB2YWx1ZSkuCj4KPiBTaW5jZSB0aGlzIGlzIHJlbHlpbmcgb24gYSBYZW4gZXZlbnQgbWVj aGFuaXNtIHlvdSB3aWxsIGhhdmUgdG8gdGhpbmsgYWJvdXQgdGhpcwo+IGFzIHdlbGwuCkknbGwg cHV0IHRoZXNlIG5vdGVzOgogwqAqIE5vdGVzOgogwqAqwqAgLSB0aGlzIGV2ZW50IGlzIG5vdCBz ZW50IGZvciB3cml0ZS1vbmx5IGNvbnRyb2xzCiDCoCrCoCAtIHRoaXMgZXZlbnQgaXMgYWxzbyBz ZW50IHRvIHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBjb250cm9sIGNoYW5nZQogwqAqwqAgLSB0aGlz IGV2ZW50IGlzIG5vdCBzZW50IHdoZW4gZnJvbnRlbmQgZmlyc3QgY29ubmVjdHMsIGUuZy4gaW5p dGlhbAogwqAqwqDCoMKgIGNvbnRyb2wgc3RhdGUgbXVzdCBiZSBleHBsaWNpdGx5IHF1ZXJpZWQK Cj4+ICsKPj4gKwo+PiArc3RydWN0IHhlbmNhbWVyYV9yZXEgewo+PiArICAgIHVpbnQxNl90IGlk Owo+PiArICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOwo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07 Cj4+ICsgICAgdW5pb24gewo+PiArICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2NvbmZpZyBjb25m aWc7Cj4+ICsgICAgICAgIHN0cnVjdCB4ZW5jYW1lcmFfYnVmX3JlcXVlc3QgYnVmX3JlcXVlc3Q7 Cj4+ICsgICAgICAgIHN0cnVjdCB4ZW5jYW1lcmFfYnVmX2NyZWF0ZV9yZXEgYnVmX2NyZWF0ZTsK Pj4gKyAgICAgICAgc3RydWN0IHhlbmNhbWVyYV9pbmRleCBpbmRleDsKPj4gKyAgICAgICAgc3Ry dWN0IHhlbmNhbWVyYV9jdHJsX3ZhbHVlIGN0cmxfdmFsdWU7Cj4+ICsgICAgICAgIHN0cnVjdCB4 ZW5jYW1lcmFfZ2V0X2N0cmxfcmVxIGdldF9jdHJsOwo+PiArICAgICAgICB1aW50OF90IHJlc2Vy dmVkWzU2XTsKPj4gKyAgICB9IHJlcTsKPj4gK307Cj4+ICsKPj4gK3N0cnVjdCB4ZW5jYW1lcmFf cmVzcCB7Cj4+ICsgICAgdWludDE2X3QgaWQ7Cj4+ICsgICAgdWludDhfdCBvcGVyYXRpb247Cj4+ ICsgICAgdWludDhfdCByZXNlcnZlZDsKPj4gKyAgICBpbnQzMl90IHN0YXR1czsKPj4gKyAgICB1 bmlvbiB7Cj4+ICsgICAgICAgIHN0cnVjdCB4ZW5jYW1lcmFfY29uZmlnIGNvbmZpZzsKPj4gKyAg ICAgICAgc3RydWN0IHhlbmNhbWVyYV9idWZfcmVxdWVzdF9yZXNwIGJ1Zl9yZXF1ZXN0Owo+PiAr ICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2N0cmxfZW51bV9yZXNwIGN0cmxfZW51bTsKPj4gKyAg ICAgICAgc3RydWN0IHhlbmNhbWVyYV9jdHJsX3ZhbHVlIGN0cmxfdmFsdWU7Cj4+ICsgICAgICAg IHVpbnQ4X3QgcmVzZXJ2ZWQxWzU2XTsKPj4gKyAgICB9IHJlc3A7Cj4+ICt9Owo+PiArCj4+ICtz dHJ1Y3QgeGVuY2FtZXJhX2V2dCB7Cj4+ICsgICAgdWludDE2X3QgaWQ7Cj4+ICsgICAgdWludDhf dCB0eXBlOwo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07Cj4+ICsgICAgdW5pb24gewo+PiAr ICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2ZyYW1lX2F2YWlsX2V2dCBmcmFtZV9hdmFpbDsKPj4g KyAgICAgICAgc3RydWN0IHhlbmNhbWVyYV9jZmdfY2hhbmdlX2V2dCBjZmdfY2hhbmdlOwo+PiAr ICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2N0cmxfdmFsdWUgY3RybF92YWx1ZTsKPj4gKyAgICAg ICAgdWludDhfdCByZXNlcnZlZFs1Nl07Cj4+ICsgICAgfSBldnQ7Cj4+ICt9Owo+PiArCj4+ICtE RUZJTkVfUklOR19UWVBFUyh4ZW5fY2FtZXJhaWYsIHN0cnVjdCB4ZW5jYW1lcmFfcmVxLCBzdHJ1 Y3QgeGVuY2FtZXJhX3Jlc3ApOwo+PiArCj4+ICsvKgo+PiArICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICBCYWNrIHRvIGZyb250IGV2ZW50cyBkZWxp dmVyeQo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogSW4gb3JkZXIgdG8gZGVsaXZl ciBhc3luY2hyb25vdXMgZXZlbnRzIGZyb20gYmFjayB0byBmcm9udCBhIHNoYXJlZCBwYWdlIGlz Cj4+ICsgKiBhbGxvY2F0ZWQgYnkgZnJvbnQgYW5kIGl0cyBncmFudGVkIHJlZmVyZW5jZSBwcm9w YWdhdGVkIHRvIGJhY2sgdmlhCj4+ICsgKiBYZW5TdG9yZSBlbnRyaWVzIChldnQtcmluZy1yZWYv ZXZ0LWV2ZW50LWNoYW5uZWwpLgo+PiArICogVGhpcyBwYWdlIGhhcyBhIGNvbW1vbiBoZWFkZXIg dXNlZCBieSBib3RoIGZyb250IGFuZCBiYWNrIHRvIHN5bmNocm9uaXplCj4+ICsgKiBhY2Nlc3Mg YW5kIGNvbnRyb2wgZXZlbnQncyByaW5nIGJ1ZmZlciwgd2hpbGUgYmFjayBiZWluZyBhIHByb2R1 Y2VyIG9mIHRoZQo+PiArICogZXZlbnRzIGFuZCBmcm9udCBiZWluZyBhIGNvbnN1bWVyLiBUaGUg cmVzdCBvZiB0aGUgcGFnZSBhZnRlciB0aGUgaGVhZGVyCj4+ICsgKiBpcyB1c2VkIGZvciBldmVu dCBwYWNrZXRzLgo+PiArICoKPj4gKyAqIFVwb24gcmVjZXB0aW9uIG9mIGFuIGV2ZW50KHMpIGZy b250IG1heSBjb25maXJtIGl0cyByZWNlcHRpb24KPj4gKyAqIGZvciBlaXRoZXIgZWFjaCBldmVu dCwgZ3JvdXAgb2YgZXZlbnRzIG9yIG5vbmUuCj4+ICsgKi8KPj4gKwo+PiArc3RydWN0IHhlbmNh bWVyYV9ldmVudF9wYWdlIHsKPj4gKyAgICB1aW50MzJfdCBpbl9jb25zOwo+PiArICAgIHVpbnQz Ml90IGluX3Byb2Q7Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs1Nl07Cj4+ICt9Owo+PiArCj4+ ICsjZGVmaW5lIFhFTkNBTUVSQV9FVkVOVF9QQUdFX1NJWkUgNDA5Ngo+PiArI2RlZmluZSBYRU5D QU1FUkFfSU5fUklOR19PRkZTIChzaXplb2Yoc3RydWN0IHhlbmNhbWVyYV9ldmVudF9wYWdlKSkK Pj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0lOX1JJTkdfU0laRSAoWEVOQ0FNRVJBX0VWRU5UX1BBR0Vf U0laRSAtIFhFTkNBTUVSQV9JTl9SSU5HX09GRlMpCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9S SU5HX0xFTiAoWEVOQ0FNRVJBX0lOX1JJTkdfU0laRSAvIHNpemVvZihzdHJ1Y3QgeGVuY2FtZXJh X2V2dCkpCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HKHBhZ2UpIFwKPj4gKyAgICAoKHN0 cnVjdCB4ZW5jYW1lcmFfZXZ0ICopKChjaGFyICopKHBhZ2UpICsgWEVOQ0FNRVJBX0lOX1JJTkdf T0ZGUykpCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HX1JFRihwYWdlLCBpZHgpIFwKPj4g KyAgICAoWEVOQ0FNRVJBX0lOX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhFTkNBTUVSQV9JTl9SSU5H X0xFTl0pCj4+ICsKPj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fQ0FNRVJBSUZfSF9fICov Cj4+ICsKPj4gKy8qCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4+ICsgKiBtb2RlOiBDCj4+ICsg KiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+PiArICogdGFi LXdpZHRoOiA0Cj4+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPj4gKyAqIEVuZDoKPj4gKyAq Lwo+Pgo+IFJlZ2FyZHMsCj4KPiAJSGFucwpUaGFuayB5b3UsCk9sZWtzYW5kcgoKWzFdIGh0dHBz Oi8vd3d3LmZvdXJjYy5vcmcvClsyXSAKaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xp bnV4L2tlcm5lbC9naXQvdG9ydmFsZHMvbGludXguZ2l0L3RyZWUvaW5jbHVkZS91YXBpL2xpbnV4 L3ZpZGVvZGV2Mi5oCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs