From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-3134603-1522401233-3-4475087914938171244 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.249, RCVD_IN_DNSWL_MED -2.3, SPF_PASS -0.001, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='140.211.166.136', Host='smtp3.osuosl.org', Country='US', FromHeader='org', MailFrom='org' X-Spam-charsets: plain='utf-8' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: driverdev-devel-bounces@linuxdriverproject.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=fm2; t= 1522401232; b=h5Ci75vw3IyeskOiDgDaw4iZuZlQQAiANMJivQ+adEhHXlJhAj 7xPyF3uFyXTmZvcDSPaP37MhT2Hpg6AaFKi/mQN8kGLqwCREb4zZ9ciW/TOdnLy4 RojLJm7bAlm71iwarbDRa3DWKd3GF3Bje00od3nhFtioHeiCILVV6qSBBxMZho+/ 4gkWoDtedzh9iIkfanMJ0sS1pVhLAGIXp3ty5sJvw37e+ausdufobc8Qfdck/4KN F8MKuE9WheCgUHr+zD+14860Lp/ojG3W3c9A7lG4fYxI41Dw/xkO1CLMQzwDqAg3 IH3mKYwkuSKhmTPJpLBgUh0dM5Z+8YOcs18Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=date:from:to:subject:message-id :in-reply-to:references:mime-version:list-id:list-unsubscribe :list-archive:list-post:list-help:list-subscribe:cc:content-type :content-transfer-encoding:sender; s=fm2; t=1522401232; bh=+Vph3 BdPppo7yEbWhmhbKHm1CC9kJHBIjIBhoq1CDRo=; b=LtjUD7ByxEdUjR2jxLayV OVazUxagoJw4WgupHO35PBaV9n3XvSgnLNLqoxXwpoqfXDuy215ogF9GRZ6CUZSk q4Hy7+jd2oabPwzMW56KzynriP/EGbbc8HmPZ8YcCiy+4/FkTKBTBFIXEiXOCBhc MLAHo09EkwL6Rnv5c2MC9k6hcrhWzpBFBPdiOqq7eJRXRbeyCWCAuRHsH9DqgA3B rjZ+vyRhZR00omrNy1+dPnV2AipuscUdWhcfLbyiLVz4AuBSmbs7EPBvavAUulOT 3Tx+n2aDA23L8ftR5ZqP1Z5yWDc+RmaAdn9SWMkCy+I0NqCh8FrxZ9J3K1yQZMNb Q== ARC-Authentication-Results: i=1; mx6.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=kernel.org; iprev=pass policy.iprev=140.211.166.136 (smtp3.osuosl.org); spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org smtp.helo=silver.osuosl.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=fail x-ptr-helo=silver.osuosl.org x-ptr-lookup=smtp3.osuosl.org; x-return-mx=pass smtp.domain=linuxdriverproject.org smtp.result=pass smtp_is_org_domain=yes header.domain=kernel.org header.result=pass header_is_org_domain=yes; x-tls=pass version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128; x-vs=clean score=-100 state=0 Authentication-Results: mx6.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=kernel.org; iprev=pass policy.iprev=140.211.166.136 (smtp3.osuosl.org); spf=pass smtp.mailfrom=driverdev-devel-bounces@linuxdriverproject.org smtp.helo=silver.osuosl.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=fail x-ptr-helo=silver.osuosl.org x-ptr-lookup=smtp3.osuosl.org; x-return-mx=pass smtp.domain=linuxdriverproject.org smtp.result=pass smtp_is_org_domain=yes header.domain=kernel.org header.result=pass header_is_org_domain=yes; x-tls=pass version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128; x-vs=clean score=-100 state=0 X-ME-VSCategory: clean X-CM-Envelope: MS4wfIRl2fToEXChJORK19RO6O6vt+zLq9MrcafP6kC0ld+uXv8NGCd5czcTsAgf2NXaIC2S73eyfSjhFYek8IonfuMk/Xu1IqU1NR+SC6mbWlKdPFegGYjr uvLhSnV4GsClxbaUTFf26XaGBJLAbLsqQ1O/uSGCZHQ/hBJWT3OLlFai0Ke+C59jS4SK/2UacN1rOl49k8Ugx0kpHIel3huzaRWX82AtAADaUlICKcPLTyXH cKCiD6XekQxGED6boyVpMg== X-CM-Analysis: v=2.3 cv=FKU1Odgs c=1 sm=1 tr=0 a=FmzrR3azffoSx43hyxYGHg==:117 a=FmzrR3azffoSx43hyxYGHg==:17 a=IkcTkHD0fZMA:10 a=v2DPQv5-lfwA:10 a=-uNXE31MpBQA:10 a=jJxKW8Ag-pUA:10 a=pGLkceISAAAA:8 a=VwQbUJbxAAAA:8 a=8b9GpE9nAAAA:8 a=JOA0iUbgAAAA:8 a=jtbBNqsHAAAA:8 a=XYAwZIGsAAAA:8 a=8AirrxEcAAAA:8 a=yC-0_ovQAAAA:8 a=DDOyTI_5AAAA:8 a=hLaCA-7ODhTW-bIc2LoA:9 a=gPT-JFiBhUCMOxS2:21 a=-z6eNua5abzaG1io:21 a=QEXdDO2ut3YA:10 a=aTf_0Hi-Eh8A:10 a=pwgGltORyH8A:10 a=AjGcO6oz07-iQ99wixmX:22 a=T3LWEMljR5ZiDmsYVIUa:22 a=nG9pSErA777cby-CJFl-:22 a=RWaeYqt-Cn-VcsFsiLGo:22 a=E8ToXWR_bxluHZ7gmE-Z:22 a=ST-jHhOKWsTCqRlWije3:22 a=QsnFDINu91a9xkgZirup:22 a=_BcfOz0m4U4ohdxiHPKc:22 cc=dsc X-ME-CMScore: 0 X-ME-CMCategory: none X-Remote-Delivered-To: driverdev-devel@osuosl.org DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5C13820838 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=jic23@kernel.org Date: Fri, 30 Mar 2018 10:13:37 +0100 From: Jonathan Cameron To: John Syne Subject: Re: meter ABI: (was Re: [PATCH v2 1/3] staging:iio:meter: Replaces IIO_DEV_ATTR_CH_OFF by IIO_DEVICE_ATTR) Message-ID: <20180330101337.73d3413c@archlinux> In-Reply-To: References: <3af0e5a795059a8418cf08ff29f05f8d5e00da9b.1520382753.git.rodrigosiqueiramelo@gmail.com> <20180307200730.08ed3c2f@archlinux> <20180309003733.aichruo53vqryafg@smtp.gmail.com> <20180310151045.4570e85d@archlinux> <79D3051B-FF2F-4DD3-AF75-F6A4BAD81838@gmail.com> <20180317203037.1093cc11@archlinux> <20180318122312.0d395367@archlinux> <20180324150205.709aa211@archlinux> <20180325172911.39c0e42f@archlinux> X-Mailer: Claws Mail 3.16.0 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-BeenThere: driverdev-devel@linuxdriverproject.org X-Mailman-Version: 2.1.24 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devel@driverdev.osuosl.org, Lars-Peter Clausen , Michael Hennerich , Rodrigo Siqueira , linux-iio@vger.kernel.org, Greg Kroah-Hartman , linux-kernel@vger.kernel.org, Peter Meerwald-Stadler , Hartmut Knaack , daniel.baluta@nxp.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: T24gU3VuLCAyNSBNYXIgMjAxOCAxMzozNjo0MCAtMDcwMApKb2huIFN5bmUgPGpvaG4zOTA5QGdt YWlsLmNvbT4gd3JvdGU6Cgo+ID4gT24gTWFyIDI1LCAyMDE4LCBhdCA5OjI5IEFNLCBKb25hdGhh biBDYW1lcm9uIDxqaWMyM0BrZXJuZWwub3JnPiB3cm90ZToKPiA+IAo+ID4gT24gU2F0LCAyNCBN YXIgMjAxOCAxNTo0NToyMSAtMDcwMAo+ID4gSm9obiBTeW5lIDxqb2huMzkwOUBnbWFpbC5jb20+ IHdyb3RlOgo+ID4gICAKPiA+Pj4gT24gTWFyIDI0LCAyMDE4LCBhdCA4OjAyIEFNLCBKb25hdGhh biBDYW1lcm9uIDxqaWMyM0BrZXJuZWwub3JnPiB3cm90ZToKPiA+Pj4gCj4gPj4+IE9uIE1vbiwg MTkgTWFyIDIwMTggMjI6NTc6MTYgLTA3MDAKPiA+Pj4gSm9obiBTeW5lIDxqb2huMzkwOUBnbWFp bC5jb20+IHdyb3RlOgo+ID4+PiAgIAo+ID4+Pj4gSGkgSm9uYXRoYW4sCj4gPj4+PiAKPiA+Pj4+ IFRoYW5rIHlvdSBmb3IgYWxsIHlvdXIgaGFyZCB3b3JrLiBZb3VyIGZlZWRiYWNrIGlzIHJlYWxs eSBoZWxwZnVsLiBJ4oCZbSBzdXJwcmlzZWQgdGhhdCBubyBvbmUgZnJvbSBBbmFsb2cgRGV2aWNl IGhhcyBvZmZlcmVkIGFueSBzdWdnZXN0aW9ucy4KPiA+Pj4+ICAgCj4gPj4+IAo+ID4+PiBTYWRs eSB0aG9zZSBhY3RpdmUgaW4gdGhlIG1haW5saW5lIGxpbnV4IGtlcm5lbCBmcm9tIEFESSBhcmUg Zm9jdXNlZCBpbgo+ID4+PiBvdGhlciBhcmVhcyBjdXJyZW50bHkgOiggICAgCj4gPj4gR29vZCBw b2ludC4gSSB3aWxsIHJlYWNoIG91dCB0byBBbmFsb2cgRGV2aWNlcyBhbmQgZ2V0IGEgbmFtZSBv ZiBzb21lb25lIAo+ID4+IHdobyBpcyBrbm93bGVkZ2VhYmxlIGluIHRoaXMgYXJlYS4gUGVyaGFw cyBMYXJzLVBldGVycyBoYXMgYSBzdWdnZXN0aW9uLiAgIAo+ID4gWWVzLCBMYXJzIG9yIE1pY2hh ZWwgSGVubmVyaWNoICgrQ0MpIGFyZSBteSBub3JtYWwgY29udGFjdCBwb2ludHMuCj4gPiBJIGJl bGlldmUgdGhpcyBpcyBvdXRzaWRlIGJvdGggb2YgdGhlaXIgYXJlYXMsIGJ1dCB0aGV5IG1heSBi ZSBhYmxlIHRvCj4gPiBwdXQgeW91IGluIGNvbnRhY3Qgd2l0aCB0aGUgcmlnaHQgcGVyc29uLiAg SWYgbm90aGluZyBlbHNlIGl0IHdvdWxkIGJlCj4gPiBnb29kIHRvIG1ha2Ugc29tZW9uZSBpbiBB REkgYXdhcmUgdGhhdCBwZW9wbGUgY2FyZSBhYm91dCBsaW51eCBzdXBwb3J0IGZvcgo+ID4gdGhl c2UgcGFydHMhICAKPiBJIHNlbnQgaW4gYSByZXF1ZXN0IHRvIEFESSBmb3IgYSBjb250YWN0IHBl cnNvbiB0byBoZWxwIHdpdGggdGhlIHJldmlldy4KCkNvb2wuCgo+ID4gICAKPiA+Pj4+IEFueXdh eSwgcGxlYXNlIHNlZSBteSBjb21tZW50cyBpbmxpbmUgYmVsb3cKPiA+Pj4+IAo+ID4+Pj4gUmVn YXJkcywKPiA+Pj4+IEpvaG4KPiA+Pj4+IAo+ID4+Pj4gCj4gPj4+PiAKPiA+Pj4+IAo+ID4+Pj4g ICAKPiA+Pj4+PiBPbiBNYXIgMTgsIDIwMTgsIGF0IDU6MjMgQU0sIEpvbmF0aGFuIENhbWVyb24g PGppYzIzQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4+Pj4+IAo+ID4+Pj4+IE9uIFNhdCwgMTcgTWFy IDIwMTggMjM6MTE6NDUgLTA3MDAKPiA+Pj4+PiBKb2huIFN5bmUgPGpvaG4zOTA5QGdtYWlsLmNv bT4gd3JvdGU6Cj4gPj4+Pj4gICAKPiA+Pj4+Pj4gSGkgSm9uYXRoYW4sICAgICAgCj4gPj4+Pj4g SGkgSm9obiBhbmQgQWxsLAo+ID4+Pj4+IAo+ID4+Pj4+IEknZCBsb3ZlIHRvIGdldCBzb21lIGFk ZGl0aW9uYWwgaW5wdXQgb24gdGhpcyBmcm9tIGFueW9uZSBpbnRlcmVzdGVkLgo+ID4+Pj4+IFRo ZXJlIGFyZSBhIGxvdCBvZiB3ZWlyZCBhbmQgd29uZGVyZnVsIGRlcml2ZWQgcXVhbnRpdGllcyBp biBhbiBlbmVyZ3kKPiA+Pj4+PiBtZXRlciBhbmQgaXQgc2VlbXMgd2UgbmVlZCB0byBtYWtlIHNv bWUgZnVuZGFtZW50YWwgY2hhbmdlcyB0byBzdXBwb3J0Cj4gPj4+Pj4gdGhlbSAtIGluY2x1ZGlu ZyBwb3RlbnRpYWxseSBhIHVzZXJzcGFjZSBicmVha2luZyBjaGFuZ2UgdG8gdGhlIGV2ZW50Cj4g Pj4+Pj4gY29kZSBkZXNjcmlwdGlvbi4KPiA+Pj4+PiAgIAo+ID4+Pj4+PiAKPiA+Pj4+Pj4gSGVy ZSBpcyB0aGUgY29tcGxldGUgbGlzdCBvZiByZWdpc3RlcnMgZm9yIHRoZSBBREU3ODc4IHdoaWNo IEkgY29waWVkIGZyb20gdGhlIGRhdGEgc2hlZXQuIEkgYWRkZWQgYSBjb2x1bW4g4oCcSUlPIEF0 dHJpYnV0ZeKAnSB3aGljaCBJIGhvcGUgZm9sbG93cyB5b3VyIElJTyBBQkkuIFBsZWFzZSBtYWtl IGFueSBjaGFuZ2VzIHlvdSBmZWVsIGFyZSBpbmNvcnJlY3QuIEJUVywgdGhlcmUgYXJlIHNldmVy YWwgcmVnaXN0ZXJzIHRoYXQgY2Fubm90IGJlIGdlbmVyYWxpemVkIGFuZCBhcmUgdXNlZCBwdXJl bHkgZm9yIGNoaXAgY29uZmlndXJhdGlvbi4gSSB0aGluayB3ZSBzaG91bGQgYWRkIGEgbmV3IG5h bWluZyBjb252ZW50aW9uLCBuYW1lbHkge3JlZ2lzdGVyfV97PGNoaXAtcmVnaXN0ZXItbmFtZT59 LiBBbHNvLCBJIHNlZSBpbiB0aGUgc3lzX2J1c19paW8gZG9jICAgIAo+ID4gCj4gPiBObywgcmVn aXN0ZXJzIGNhbiBhbHdheXMgYmUgYnJva2VuIHVwIGluIHRvIHJlYWwgbWVhbmluZ2Z1bCB2YWx1 ZXMgaWYKPiA+IHRoZXkgYXJlIGV4cG9zZWQgdG8gdXNlcnNwYWNlIGFuZCB1c2Vyc3BhY2UgaGFz IGEgcmVhc29uIHRvIHR3ZWFrCj4gPiB0aGVtLgo+ID4gCj4gPiBXZSBuZXZlciBleHBvc2UgcmF3 IHJlZ2lzdGVycyB0byB1c2Vyc3BhY2UgZXhjZXB0IHRocm91Z2gKPiA+IGRlYnVnZnMgYW5kIHRo ZSBjbHVlIGlzIGluIHRoZSBuYW1lIC0gcHVyZWx5IGZvciBkZWJ1Zy4gIAo+IE9LCj4gPiAKPiA+ ICAgCj4gPj4+IAo+ID4+PiAKPiA+Pj4gCj4gPj4+ICAgCj4gPj4+Pj4+IGluX2FjY2VsX3hfcGVh a19yYXcKPiA+Pj4+Pj4gCj4gPj4+Pj4+IHNvIHNob3VsZG7igJl0IHRoZSBwaGFzZSBiZSByZXBy ZXNlbnRlZCBhcyBmb2xsb3dzOgo+ID4+Pj4+PiAKPiA+Pj4+Pj4gaW5fY3VycmVudF9BX3NjYWxl ICAgICAgCj4gPj4+Pj4gSSdtIHN0aWxsIGNvbmZ1c2VkLiAgV2hhdCBkb2VzIEEgcmVwcmVzZW50 IGhlcmU/ICBJIGFzc3VtZWQgdGhhdCB3YXMgYSB3aWxkCj4gPj4+Pj4gY2FyZCBmb3IgdGhlIGNo YW5uZWwgbnVtYmVyIGJlZm9yZSBidXQgY2xlYXJseSBub3QuCj4gPj4+Pj4gCj4gPj4+Pj4gQWgs IHlvdSBhcmUgbGFiZWxsaW5nIHRoZSAzIHNlcGFyYXRlIHBoYXNlcyBhcyBBLCBCIGFuZCBDLiBI bW0uCj4gPj4+Pj4gSSBndWVzcyB0aGV5IHNvcnQgb2YgbG9vayBsaWtlIGF4aXMsIGFuZCBzb3J0 IG9mIGxpa2UgaW5kZXBlbmRlbnQgY2hhbm5lbHMuCj4gPj4+Pj4gU28gY291bGQgYmUgaW5kZXhl ZCBvciBkb25lIHZpYSBtb2RpZmllcnMgZGVwZW5kaW5nIG9uIGhvdyB5b3UgbG9vayBhdCBpdC4g ICAgICAKPiA+Pj4+IEluIG1ldGVyaW5nIHRlcm1pbm9sb2d5LCB0aGUgdGhyZWUgcGhhc2VzIGFy ZSBjb21tb25seSByZWZlcnJlZCB0byBhcyBSRUQsIEdSRUVOLCBCTFVFIG9yIFBoYXNlQSwgUGhh c2VCLCBQaGFzZUMgYW5kIE5ldXRyYWwuIEFuYWxvZyBEZXZpY2VzIHVzZXMgdGhlIEFCQ04gbm9t ZW5jbGF0dXJlIHNvIGFueW9uZSB1c2luZyB0aGlzIGRyaXZlciB3aWxsIHByb2JhYmx5IGhhdmUg cmVmZXJlbmNlZCB0aGUgQW5hbG9nIERldmljZXMgZGF0YXNoZWV0IHNvIHRoaXMgdGVybWlub2xv Z3kgc2hvdWxkIGJlIGZhbWlsaWFyLiAgICAgCj4gPj4+IFdoaWNoIGlzIG1vcmUgY29tbW9ubHkg dXNlZCBpbiBnZW5lcmFsPyAgV2UgYXJlIGRlc2lnbmluZyB3aGF0IHdlIGhvcGUKPiA+Pj4gd2ls bCBiZSBhIGdlbmVyYWwgaW50ZXJmYWNlIGFuZCBsYXN0IHRoaW5nIHdlIHdhbnQgaXMgdG8gaGF2 ZSBldmVyeW9uZQo+ID4+PiBub3QgdXNpbmcgQURJIHBhcnRzIGNvbmZ1c2VkISAgUGVyc29uYWxs eSBub3QgYXNzaWduaW5nICdjb2xvdXJzJyBtYWtlcwo+ID4+PiBtb3JlIHNlbnNlIHRvIG1lLiAg ICAKPiA+PiBJIGRpZCBhIGxpdHRsZSByZXNlYXJjaCBhbmQgaGVyZSBpcyB0aGUgbmFtaW5nIHVz ZWQgYnkgdmVuZG9yOgo+ID4+IAo+ID4+IFNUIE1pY3JvZWxlY3Ryb25pY3M6IFAxLCBQMiwgUDMs IE4KPiA+PiBodHRwOi8vd3d3LnN0LmNvbS9jb250ZW50L2NjYy9yZXNvdXJjZS90ZWNobmljYWwv ZG9jdW1lbnQvYXBwbGljYXRpb25fbm90ZS81ZS9mNC8yMi80ZC85MC85Ni80Yy9jNC9DRDAwMTUz MjY0LnBkZi9maWxlcy9DRDAwMTUzMjY0LnBkZi9qY3I6Y29udGVudC90cmFuc2xhdGlvbnMvZW4u Q0QwMDE1MzI2NC5wZGYKPiA+PiAKPiA+PiBUZXJpZGlhbjogQUJDTgo+ID4+IGh0dHBzOi8vd3d3 Lm1vdXNlci5jb20vZHMvMi8yNTYvNzFNNjUxMy03MU02NTEzSC0yMjYwMy5wZGYKPiA+PiAKPiA+ PiBNYXhpbSBJbnRlZ3JhdGVkOiBBQkNOCj4gPj4gaHR0cHM6Ly9kYXRhc2hlZXRzLm1heGltaW50 ZWdyYXRlZC5jb20vZW4vZHMvNzhNNjYzMS5wZGYKPiA+PiAKPiA+PiBNaWNyb2NoaXA6IEFCQ04K PiA+PiBodHRwOi8vd3cxLm1pY3JvY2hpcC5jb20vZG93bmxvYWRzL2VuL0RldmljZURvYy81MTY0 M2IucGRmCj4gPj4gCj4gPj4gTlhQOiBMMSwgTDIsIEwzLCBOCj4gPj4gaHR0cHM6Ly93d3cubnhw LmNvbS9zdXBwb3J0L2RldmVsb3Blci1yZXNvdXJjZXMvcmVmZXJlbmNlLWRlc2lnbnMva2luZXRp cy1rbTN4LTI1Ni1tY3UtdGhyZWUtcGhhc2UtbWV0ZXJpbmctcmVmZXJlbmNlLWRlc2lnbjpSRC1L TTN4LTI1Ni0zUEgtTUVURVJJTkcKPiA+PiAKPiA+PiBSZW5lc2FzOiBBQkNOCj4gPj4gaHR0cHM6 Ly93d3cucmVuZXNhcy5jb20vZW4tdXMvc29sdXRpb25zL2hvbWUvbWV0ZXJpbmcvcG93ZXItbWV0 ZXItdGhyZWUuaHRtbAo+ID4+IAo+ID4+IFNvIHRoZSBtb3N0IGNvbnNpc3RlbnQgd291bGQgYmUg QUJDTiAgCj4gPiBDb29sLiAgIE1ha2VzIHNlbnNlIHRvIGdvIHdpdGggdGhhdC4gIFRoYW5rcyBm b3IgY2hlY2tpbmcgdGhpcyBvdXQuCj4gPiAgIAo+ID4+IAo+ID4+IAo+ID4+IEFsbCB2ZW5kb3Ig cHJvdmlkaW5nIHRocmVlIHBoYXNlIGVuZXJneSBtZXRlcmluZyBJQ3MgdXNlIHRoZSBBQkNOIHRl cm1pbm9sb2d5LiAgIAo+ID4+PiAKPiA+Pj4gKGJ0dyBwbGVhc2Ugd3JhcCBhbnkgbGluZXMgdGhh dCBkb24ndCBuZWVkIHRvIGJlIGxvbmcgdG8gYXJvdW5kIDgwIGNoYXJhY3RlcnMpLgo+ID4+PiAg IAo+ID4+Pj4+IAo+ID4+Pj4+IEhtbS4gV2l0aCBuZXV0cmFsIGluIHRoZXJlIGFzIHdlbGwgSSBn dWVzcyB3ZSBuZWVkIHRvIG1ha2UgdGhlbQo+ID4+Pj4+IG1vZGlmaWVycyAoYnV0IG1pZ2h0IGNo YW5nZSBteSBtaW5kIGxhdGVyIDspCj4gPj4+Pj4gCj4gPj4+Pj4gUGFydGljdWxhcmx5IGFzIHdl IGFyZSB1c2luZyB0aGUgdGhlIG1vZGlmaWVyIGZvciBSTVMgdW5kZXIgdGhlIHByZXZpb3VzCj4g Pj4+Pj4gcGxhbi4uLiBJdCBhcHBlYXJzIHdlIHNob3VsZCB0cmVhdCB0aGF0IGluc3RlYWQgbGlr ZSB3ZSBkaWQgZm9yIHBlYWsKPiA+Pj4+PiBhbmQgZG8gaXQgYXMgYW4gYWRkaXRpb25hbCBpbmZv IG1hc2sgZWxlbWVudC4gIFRoZSBwcm9ibGVtIHdpdGggZG9pbmcgdGhhdAo+ID4+Pj4+IG9uIGEg Y29udGludW91cyBtZWFzdXJlbWVudCBpcyB0aGF0IHdlIGNhbid0IHRyZWF0IGl0IGFzIGEgY2hh bm5lbCB0bwo+ID4+Pj4+IGJlIG91dHB1dCB0aHJvdWdoIHRoZSBidWZmZXJlZCBpbnRlcmZhY2Uu ICAgICAgCj4gPj4+PiBJ4oCZdmUgY2hhbmdlZCB0aGUgbGF5b3V0IG9mIHRoZSBzcHJlYWRzaGVl dCB0byBicmVha291dCB0aGUgRGlyZWN0aW9uLCBUeXBlLCBJbmRleCwgTW9kaWZpZXIgYW5kIElu Zm8gTWFzayB0byBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gbWlzcy11bmRlcnN0YW5kaW5nIGFuZCB3 aWxsIGhlbHAgaWRlbnRpZnkgYWxsIHRoZSBpdGVtcyB3ZSBuZWVkIHRvIGFkZC4KPiA+Pj4+IAo+ ID4+Pj4gVGhlIEFERTc4NzggY2hhbm5lbHMgdGhhdCB3aWxsIHVzZSB0aGUgYnVmZmVyIGFyZSBJ QVdWLCBWQVdWLCBJQldWLCBWQldWLCBJQ1dWLCBWQ1dWLCBJTldWLCBBVkEsIEJWQSwgQ1ZBLCBB V0FUVCwgQldBVFQsIENXQVRULCBBVkFSLCBCVkFSLCBhbmQgQ1ZBUi4gU28gSSBndWVzcyB3ZSBo YXZlIHRvIGFkZCBhbiBpbmRleCAgICAKPiA+Pj4gUHJvYmFibHkgYSBnb29kIGlkZWEgYW55d2F5 LCB3ZSBhcmUgc29ydCBvZiBzbG93bHkgbW92aW5nIGF3YXkKPiA+Pj4gZnJvbSBpbmRleCBsZXNz IGNoYW5uZWxzLiAgVGhlIEFCSSBhbHdheXMgYWxsb3dlZCBpbmRleCBhc3NpZ25tZW50Cj4gPj4+ IGFuZCBpdCBtYWtlcyBmb3IgZWFzaWVyIHVzZXJzcGFjZSBjb2RlLgo+ID4+PiAgIAo+ID4+Pj4g Cj4gPj4+PiBBZGRyZXNzIFJlZ2lzdGVyIAlJSU8gQXR0cmlidXRlCQkJCQkJCURpcglUeXBlCQlJ bmRleCAJTW9kaWZpZXIJSW5mbyBNYXNrCVIvVwlCaXQJCUJpdCBMZW5ndGgJVHlwZQlEZWZhdWx0 CURlc2NyaXB0aW9uIAo+ID4+Pj4gCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCUxlbmd0aCAJRHVy aW5nIENvbW0JCQlWYWx1ZQkKPiA+Pj4+IDB4RTUwQwlJQVdWCWluX2N1cnJlbnQwX3BoYXNlQV9p bnN0YW50YW5lb3VzCQlpbgljdXJyZW50CQkJMAlwaGFzZUEJaW5zdGFudGFuZW91cwlSCTI0CQkz MiBTRQkJUwkJTi9BCQlJbnN0YW50YW5lb3VzIHZhbHVlIG9mIFBoYXNlIEEgY3VycmVudC4gICAg Cj4gPj4+IAo+ID4+PiBJJ20gdW5jb252aW5jZWQgYnkgImluc3RhbnRhbmVvdXMiLiAgVGhhdCBp cyB0aGUgZGVmYXVsdCBhc3N1bXB0aW9uIHRoYXQgeW91IGFyZQo+ID4+PiBtZWFzdXJpbmcgY3Vy cmVudCBhdCB0aGlzIHBvaW50IGluIHRpbWUuICBJJ20gc3RpbGwgY29uZnVzZWQgb24gd2hhdCB0 aGlzIGFjdHVhbGx5Cj4gPj4+IGlzLiBJcyBpdCBlZmZlY3RpdmVseSB0aGUgREMgY3VycmVudD8g SS5lLiB0aGUgd2F2ZSBmb3JtIHZhbHVlIGZvciBjdXJyZW50PyAKPiA+Pj4gWW91IGFuc3dlciB0 aGlzIGJlbG93LiAgVGhleSBhcmUgREMgbWVhc3VyZW1lbnRzLi4gICAgCj4gPj4gTm8sIHRoZXkg YXJlIHRoZSBvdXRwdXQgb2YgdGhlIEFEQyBhdCBhIHBvaW50IGluIHRpbWUuIFRoZSBBREMgc2Ft cGxlcyAKPiA+PiBjb250aW51b3VzIGF0IDgsMDAwIHNhbXBsZXMgcGVyIHNlY29uZCwgc28gd2hl biB5b3UgcmVhZCB0aGlzIHJlZ2lzdGVyCj4gPj4geW91IGFyZSBnZXR0aW5nIHRoZSBzYW1wbGUg bWVhc3VyZWQganVzdCBiZWZvcmUgeW91ciByZWFkLiBJIGRvbuKAmXQga25vdwo+ID4+IHdoeSBh bnlvbmUgd291bGQgcmVhZCB0aGlzIHJlZ2lzdGVyLiBUaGUgc2FtcGxlcyBhcmUgc3RyZWFtZWQg dmlhCj4gPj4gdGhlIFNQSSBpbnRlcmZhY2UsIHdpdGggSUFXViwgVkFXViwgSUJXViwgVkJXViwg SUNXViwgVkNXViwgSU5XViwgCj4gPj4gQVZBLCBCVkEsIENWQSwgQVdBVFQsIEJXQVRULCBDV0FU VCwgQVZBUiwgQlZBUiwgYW5kIENWQVIgdHJhbnNtaXR0ZWQgCj4gPj4gZXZlcnkgMTI1dVMuIFBy b2JhYmx5IGJldHRlciBub3QgdG8gZXhwb3NlIHRoZXNlIHJlZ2lzdGVycyB0byB1c2VyIHNwYWNl LiAgCj4gPiBJJ20gaGFwcHkgbm90IHRvIGV4cG9zZSB0aGVtLCBidXQgaWYgdGhleSBhcmUgdGhl IGluc3RhbnRhbmVvdXMgdmFsdWVzCj4gPiB0aGV5IGFyZSB3aGF0IEkgbWVhbiBieSBEQyB2YWx1 ZXMsIGxpdGVyYWxseSB0aGUgbnVtYmVyIHlvdSB3b3VsZAo+ID4gc2VlIG9uIGFuIG9zY2lsbG9z Y29wZSBpZiB5b3Ugd2VyZSB0byBwcm9iZSB0aGVtLiAgCj4gSWYgeW91IGNvdWxkIHJlYWQgdGhl IGluc3RhbnRhbmVvdXMgcmVnaXN0ZXIgYWZ0ZXIgZWFjaCBzYW1wbGUsIHRoZW4geW91IAo+IHdv dWxkIGdldCBhbiBvc2NpbGxvc2NvcGUgZGlzcGxheSBvZiBhIHNpbmUgd2F2ZS4gSG93ZXZlciwg c2luY2UgYSB1c2VyIAo+IHNwYWNlIGFwcCBjYW5ub3QgcmVhZCB0aGlzIG9uIGVhY2ggc2FtcGxl LCB0aGUgb3V0cHV0IHdvdWxkIGxvb2sgcHJldHR5Cj4gcmFuZG9tLiBDZXJ0YWlubHkgbm90IGEg REMgdmFsdWUsIHdoaWNoIGlzIG11Y2ggbW9yZSBjb25zaXN0ZW50LgpXZSBhcmUgdmlvbGVudGx5 IGFncmVlaW5nIGJ5IHRoZSBzb3VuZCBvZiBpdCAtIGp1c3QgaGF2ZSBhIHNsaWdodGx5IGRpZmZl cmVudAp2aWV3IG9mIHRlcm1pbm9sb2d5LCBJJ20gaGFwcHkgdG8gaGF2ZSBhIHJhcGlkbHkgdmFy eWluZyBEQyB2b2x0YWdlIGFzCm15IHZpZXcsIHlvdSB3YW50IHRvIHRoaW5rIG9mIGl0IGRpZmZl cmVudGx5LgoKQW55aG93IHRoZSBvc2NpbGxvc2NvcGUgYml0IG1ha2VzIGl0IGNsZWFyIHdlIGFy ZSB0YWxraW5nIGFib3V0IHRoZSBzYW1lCnRoaW5nIDspICAKIAo+ID4gICAKPiA+PiAKPiA+PiAg IAo+ID4+PiAKPiA+Pj4gV2hpY2ggYWN0dWFsbHkgcmFpc2VzIGEgcG9pbnQgSSdkIGZvcmdvdHRl bi4gIFdlIGhhdmUgYW4gZXhwbGljaXQgdHlwZSAKPiA+Pj4gZm9yIGFsdHZvbHRhZ2UgKGRlZmlu ZWQgZm9yIEREUyBkZXZpY2VzIGFzIHRoZSB3YXZlZm9ybSBhbXBsaXR1ZGUgSUlSQykuCj4gPj4+ IFdlIHNob3VsZCBiZSBjb25zaXN0ZW50IHdpdGggdGhhdCBpZiBwb3NzaWJsZS4KPiA+Pj4gCj4g Pj4+IFNvIEkgdGhpbmsgdGhpcyBzaG91bGQgYmUuCj4gPj4+IGluX2N1cnJlbnQwX3BoYXNlQV9y YXcgICAgCj4gPj4gWWVhaCwgdGhhdCBzb3VuZHMgY29ycmVjdCwgd2hpY2ggcmVtaW5kcyBtZSBv ZiBhbm90aGVyIGlzc3VlIHRoYXQgZG9lcyBub3QgbWFrZQo+ID4+IHNlbnNlLiBUbyBtZSwgZ2Fp biBpcyBzb21ldGhpbmcgdGhhdCBpcyBoYXJkd2FyZSByZWxhdGVkIGFuZCBpcyB1c2VkIHRvIG1h Z25pZnkgCj4gPj4gYW4gaW5wdXQgc2lnbmFsIG9yIGlzIHVzZWQgdG8gY2FsaWJyYXRlIGEgbWVh c3VyZW1lbnQuIFNjYWxlIG9uIHRoZSBvdGhlciBoYWQgaXMgCj4gPj4gc29tZXRoaW5nIHRoYXQg aXMgdXNlZCB0byBjb252ZXJ0IGEgcmF3IG1lYXN1cmVtZW50IGludG8gc29tZXRoaW5nIHRoYXQg aXMgbW9yZSAKPiA+PiBtZWFuaW5nZnVsLCBzdWNoIGFzIDB4ODIwMDAwID0gMjIwVi4gU28gZXZl cnl3aGVyZSB3ZSBoYXZlIHVzZWQgc2NhbGUgYW5kIGdhaW4gCj4gPj4gaW50ZXJjaGFuZ2VhYmxl IGlzIGNvbmZ1c2luZy4gIAo+ID4gCj4gPiBBZ3JlZWQgLSB1cCB0byBhIHBvaW50LiAgSWYgeW91 IGhhdmUgYSBoYXJkd2FyZSBnYWluIGNvbnRyb2wgd2hpY2ggZm9yIHdoYXRldmVyCj4gPiByZWFz b24gcmVzdWx0cyBpbiBhIGRpZmZlcmVudCBzY2FsaW5nIG5lZWRpbmcgdG8gYmUgYXBwbGllZCB0 byBnbyBmcm9tIHVzZXJzcGFjZQo+ID4gdmFsdWUgdG8gcmVhbCB3b3JsZCB2YWx1ZSAoc29tZXRp bWVzIGhhcHBlbnMgd2l0aCBtdWx0aSByYW5nZSBkZXZpY2VzKSB0aGVuIHdlCj4gPiBleHBvc2Ug aXQgb25seSBvbmNlIC0gYXMgc2NhbGUuCj4gPiAKPiA+IFdlIGhhdmUgaGFyZHdhcmVnYWluIGFu ZCBjYWxpYmdhaW4gZm9yIHR3ZWFraW5nIHRoZSBnYWluIHRvIGFjY291bnQgZm9yIGNhc2VzCj4g PiB3aGVyZSBpdCBpc24ndCBhcHBhcmVudCBpbiB0aGUgb3V0cHV0IHZhbHVlIChoYXJkd2FyZSBn YWluIC0gbm9ybWFsbHkgdXNlZAo+ID4gd2hlbiB3ZSBhcmUgbWVhc3VyaW5nIHNvbWV0aGluZyBh Ym91dCB0aGUgc2lnbmFsIHRoYXQgaXNuJ3QgaXQncyBtYWduaXR1ZGUpLAo+ID4gb3IgaXMgY29t cGVuc2F0aW5nIGZvciBpbmFjY3VyYWNpZXMgaW4gdGhlIGNpcmN1aXRyeSBvciBzZW5zb3IgKGNh bGliZ2FpbikgIAo+IFRoYXQgaXMgd2hhdCB3ZSBoYXZlLCB0aGUgQURFNzg1NCBoYXMgYSBoYXJk d2FyZWdhaW4gYmVmb3JlIHRoZSBBREMgdG8gYWxsb3cKPiB2YXJpb3VzIGlucHV0IHZvbHRhZ2Ug YW5kIGN1cnJlbnQgcmFuZ2VzOiAwLTI1MG1WLCAwLTAuNVYsIGV0Yy4gQWxzbywgd2UgaGF2ZQo+ IGNhbGliZ2Fpbiwgd2hpY2ggaXMgdXNlZCB0byBjb21wZW5zYXRlIGZvciB0aGUgc2VsZWN0ZWQg Y3VycmVudCB0cmFuc2Zvcm1lciBvciAKPiByb2dvd3NraSBjb2lsIGFuZCB0aGUgdGVybWluYXRp b24gcmVzaXN0b3JzLiAKPiAKPiBNYXliZSB3ZSBzaG91bGQgYWRkIGFkZGl0aW9uYWwgYXR0cmli dXRlcyBmb3Igc2NhbGUgYW5kIHRoZSByZWFsIHdvcmxkIHZhbHVlcz8KPiBUaGUgc2NhbGUgYXR0 cmlidXRlIHdvdWxkIGNvbnZlcnQgdGhlIHJhdyB2YWx1ZSB0byByZWFsIHdvcmxkIHZhbHVlICgy MjBWLCAxMDBBCj4gMjVLV2gsIGV0YykKClNvIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBkZWZp bmUgZXZlcnl0aGluZyB1c2luZyBleGlzdGluZyBhdHRyaWJ1dGVzIGFuZCBJCndvdWxkIHJlYWxs eSBsaWtlIHRvIGF2b2lkIGFkZGluZyBtb3JlIGlmIHdlIHBvc3NpYmx5IGNhbi4gSXQncyB3YXkg dG8gZWFzeQp0byBlbmQgdXAgd2l0aCBtb3JlIHRoYW4gb25lIHdheSBvZiBkZXNjcmliaW5nIHRo aW5ncy4KCmNhbGliZ2FpbiBpcyBnb29kIGZvciBtYXBwaW5nIGZyb20gc29tZSBtZWFzdXJlbWVu dCB0byBhbiBleHBlY3RlZCBnYWluLgpUaGF0IGhhcmR3YXJlZ2FpbiBoYXMgdHdvIG9wdGlvbnMu CjEpIFRoZSBkZXZpY2UgaXMgaW50ZXJuYWxseSBjb21wZW5zYXRpbmcgZm9yIGl0IHNvIGlmIHlv dSB3ZXJlIHRvIGhhdmUgYSAyNTBtVgp2YWx1ZSBpdCB3b3VsZCBoYXZlIHRoZSBzYW1lIHJhdyBj b3VudHMgdmFsdWUgKHNlZW1zIHVubGlrZWx5IGJ1dCB0aGVyZSBhcmUKZGV2aWNlcyB0aGF0IGRv IHRoaXMpCjIpIFRoZSBkZXZpY2UgaXMgbm90IGNvbXBlbnNhdGluZyBmb3IgaXQsIGluIHdoaWNo IGNhc2UgaXQgaXMgc2ltcGx5ICdzY2FsZScuCgpTbyB3ZSB0d2VhayB0aGUgY2FsaWJnYWluIHRv IGFkanVzdCBmb3IgdGhlIGFuYWxvZyBjaXJjdWl0IHRoZW4gc2V0IHRoZQp0aGUgc2NhbGUgdG8g dGhlIHJpZ2h0IHJhbmdlLiAgQXQgdGhhdCBwb2ludCBpbiB1c2Vyc3BhY2Ugd2UgdGFrZQpfcmF3 ICogX3NjYWxlIGFuZCBnZXQgdGhlIHJlYWwgd29ybGQgdmFsdWUgb2YgdGhlIHJlbGV2YW50IHRo aW5nLgoKSWYgZm9yIHdoYXRldmVyIHJlYXNvbiB0aGlzIGlzbid0IHBvc3NpYmxlICh1c3VhbGx5 IGEgbm9uIGxpbmVhciB0cmFuc2Zvcm0KZnJvbSB0aGUgYWRjIHJlYWRpbmcgdG8gcmVhbCB3b3Js ZCkgdGhlbiB3ZSBkbyBoYXZlIHRoZSBvcHRpb24gb2YgcHJvdmlkaW5nCl9QUk9DRVNTRUQgb3V0 cHV0cyB3aGljaCBhcmUgaW4gdGhlIGJhc2UgdW5pdHMgb2YgdGhlIHJlbGV2YW50IElJTyB1bml0 LgpIb3dldmVyLCB3ZSBvbmx5IGRvIHRoaXMgaWYgd2UgJ2Nhbid0JyBkbyB0aGUgY29udmVyc2lv biBpbiB1c2Vyc3BhY2UuCgoKPiA+PiBTVEFUVVMwOjYJUkVWQVBBCUFDQ01PREUgaGFzIGNoYW5n ZWQgc2lnbi4gUG93ZXIgaXMgZXhwb3J0ZWQgcmF0aGVyCj4gPj4gdGhhbiBpbXBvcnRlZC4gVXNl ciBzcGFjZSBhcHBsaWNhdGlvbiB3b3VsZCB1c2UgdGhpcyB0byBpbmRpY2F0ZSB0aGUgZGlyZWN0 aW9uCj4gPj4gb2YgcG93ZXIgZmxvdy4gIAo+ID4gVGhpcyBpcyB3aGVyZSB3ZSBzdGFydCB0byBy dW4gaW50byBhIHByb2JsZW0gLSBtb3N0bHkgSUlPIG9ubHkgYWxsb3dzIGZvcgo+ID4gYSBzaW5n bGUgdGhyZXNob2xkIGZvciByaXNpbmcgYW5kIGZhbGxpbmcgb24gYSBnaXZlbiBjaGFubmVsLiAg Tm8gd2F5IHRvCj4gPiB0ZWxsIHdoaWNoIG9uZSB0cmlnZ2VyZWQgaW4gdGhlIEFCSSAtIGV2ZW4g Y29kZSBzYXlzIHdoYXQgYW5kIG9uIHdoYXQgY2hhbm5lbAo+ID4gaXQgZG9lc24ndCBkaXN0aW5n dWlzaCBtdWx0aXBsZSBsZXZlbHMuICAKPiBZZWFoLCB0aGVyZSBpcyBubyB0aHJlc2hvbGQgaGVy ZS4gSXQgb2NjdXJzIHdpdGggdGhlIHBoYXNlIGV4Y2VlZHMgOTAgZGVnLAo+IHdoaWNoIGluZGlj YXRlcyB0aGF0IHRoZSBwb3dlciBpcyBub3cgYmVpbmcgZXhwb3J0ZWQgdG8gdGhlIGdyaWQuCldl IGNvdWxkIHBlcmhhcHMgdXNlIGEgZml4ZWQgdGhyZXNob2xkIHRvIHJlcHJlc2VudCB0aGlzIHRo ZW4uCldvdWxkIG5lZWQgYSBwaGFzZSBjaGFubmVsIHRvIGFzc29jaWF0ZSBpdCB3aXRoIGJ1dCB0 aGF0IHNob3VsZCBiZSBmaW5lLgpOb3RoaW5nIHNheXMgYSB0aHJlc2hvbGQgbmVlZHMgdG8gYmUg Y2hhbmdlYWJsZSA6KQoKaW5fcGhhc2UwX3RocmVzaF9laXRoZXJfdmFsdWUgPSA5MCBkZWdyZWVz Cgo+ID4gCj4gPiBXZSBjYW4gcGxheSBnYW1lcyB3aXRoIGRlZmluaW5nIGFkZGl0aW9uYWwgY2hh bm5lbHMgYnV0IGl0IGlzbid0IHRoYXQgZWxlZ2FudC4KPiA+IE5vdyBhc3N1bWluZyB3ZSB3YW50 IHRvIGRvIGJvdGggZGlyZWN0aW9ucyBvZiBjaGFuZ2UuLiAgCj4gQ29ycmVjdCwgd2UgbmVlZCB0 byBrbm93IHdoZW4gdGhlIHBvd2VyIGlzIGZsb3dpbmcgZnJvbSB0aGUgcG93ZXIgZ3JpZCBvcgo+ IGZsb3dpbmcgdG8gdGhlIHBvd2VyIGdyaWQuIFRoaXMgaXMgY29tbW9uIHdpdGggRGlzdHJpYnV0 ZWQgRW5lcmd5IFJlc291cmNlcwo+IChERVIpIHN1Y2ggYXMgc29sYXIgcGFuZWxzIG9yIHdpbmQg ZmFybXMuIAo+ID4gCj4gPiBpbl9wb3dlcjBfdGhyZXNoX2VpdGhlcl92YWx1ZSA9IDAKPiA+ICh0 byBpbmRpY2F0ZSBhIHRyYW5zaXRpb24gYWNyb3NzIDAgcG93ZXIgLSBJIGFzc3VtZSB0aGUgb3Ro ZXIgZGlyZWN0aW9uIGlzCj4gPiBuZWdhdGl2ZT8pCj4gPiBhbmQgYXNzb2NpYXRlZCBldmVudCBj b2RlLgo+ID4gICAKPiA+PiAKPiA+PiBTVEFUVVMxOjAJTkxPQUQJQXQgbGVhc3Qgb25lIHBoYXNl IGhhcyBlbnRlcmVkIG5vIGxvYWQgY29uZGl0aW9uLiBVc2VyIAo+ID4+IHNwYWNlIGFwcCB3b3Vs ZCBwcm9iYWJseSBhbGVydCB0aGUgdXNlciBvZiBhIGZhdWx0eSBjb25kaXRpb24uICAKPiA+IE5v dCBzdXJlIHdoYXQgdGhpcyBtYXBzIHRvIC0gYnV0IHdvdWxkIGJlIGJhc2VkIG9uIGhvdyBpdCB3 YXMgZGV0ZWN0ZWQuCj4gPiBJcyB0aGlzIGVmZmVjdGl2ZWx5IDAgY3VycmVudD8gIAo+IFRoZSBB REMgaXMgbm9pc3kgYW5kIGRvZXNu4oCZdCBvdXRwdXQgMHgwMDAgd2hlbiB0aGUgY3VycmVudCBp cyAwQSwgc28gYW55dGhpbmcgCj4gYmVsb3cgYSBkZWZpbmVkIHRocmVzaG9sZCBpcyBjb25zaWRl cmVkIHRvIGJlIE5vTG9hZC4KU28gdGhhdCdzIGEgc2ltcGxlIGxvdyBjdXJyZW50IHRocmVzaG9s ZCAtIGFnYWluIHdpdGggYSBmaXhlZCB2YWx1ZSB3aGljaCBpcwpmaW5lIHRvIHJlcHJlc2VudCBh cyB3aXRoIHRoZSBwaGFzZSBvbmUgYWJvdmUuCgo+ID4gICAKPiA+PiAKPiA+PiBTVEFUVVMxOjMJ WlhUT1ZBCUluZGljYXRlcyBQaGFzZSBBIHZvbHRhZ2UgemVybyBjcm9zc2luZyBpcyBtaXNzaW5n LiBUaGlzIAo+ID4+IGlzIGFub3RoZXIgZmF1bHQgY29uZGl0aW9uLiAgCj4gPiAKPiA+IFNpbWls YXIgdG8gdGhlIHJhdGUgb2YgY2hhbmdlIGRldGVjdGlvbiBpbiBzb21lIHdheXMsIGJ1dCBvbmx5 IGV4cGxpY2l0bHkgbG9va3MKPiA+IGF0IHRoZSAwIHBvaW50LiAgV2Ugd291bGQgbmVlZCBzb21l dGhpbmcgbmV3IHRvIHJlcHJlc2VudCB0aGlzIEkgdGhpbmvigKYgIAo+IFRoaXMgb2NjdXJzIHdo ZW4gd2UgaGF2ZSBhIHBoYXNlIGZhaWx1cmUgKHRyYW5zZm9ybWVyIGZhaWx1cmUsIGV0Yykgb3Ig YSBzZW5zb3IgCj4gZmFpbHVyZSAod2lyaW5nIGZhaWx1cmUsIGV0YykuIElmIHBoYXNlIGZhaWx1 cmUgb2NjdXJzLCBpdCBjb3VsZCBjYXVzZSBkYW1hZ2UgdG8gCj4gZXF1aXBtZW50IGxpa2UgYSBt b3Rvci4KClRoaXMgbmVlZHMgc29tZSB0aG91Z2h0LiAgQ291bGQgYmUgdGhlIGtlcm5lbCdzIFJB UyBpbmZyYXN0cnVjdHVyZSBpcyB0aGUgd2F5CnRvIGdvIGJ1dCB0aGlzIGlzIGFuIG9kZCB0aGlu ZyB0byBtYXAgdG8gaXQgKGFuZCB0aGF0IGlzIGEgcmF0aGVyIGNvbnNlcnZhdGl2ZQpwYXJ0IG9m IHRoZSBrZXJuZWwgLSBpdCdzIGhhcmQgZW5vdWdoIGdldHRpbmcgcGVvcGxlIHRvIGFncmVlIG9u IGNvbXB1dGVyIGhhcmR3YXJlCmZhdWx0IGRlc2NyaXB0aW9ucykuCj4gPiAgIAo+ID4+IAouLgo+ ID4+Pj4+IE9LLCB0aGlzIGlzIGdldHRpbmcgc2lsbHkuICBJIHByZXN1bWUgdGhpcyBtZWFucyB0 aGUgdmFsdWVzIGFib3ZlIGFyZSBmaWx0ZXJlZCBhbmQgdGhlc2UKPiA+Pj4+PiBhcmVuJ3Q/ICBJ ZiBzbyB5b3UgbmVlZCB0byBoYXZlIGNoYW5uZWxzIGZvciBib3RoIGFuZCBkaWZmZXJlbnQgZmls dGVyIHZhbHVlcy4gICAgICAKPiA+Pj4+IFRoZXNlIGFyZSB0aGUgYWN0dWFsIHNhbXBsZXMgZnJv bSB0aGUgQURDIGFuZCBub3QgYSBjYWxjdWxhdGVkIG1lYXN1cmVtZW50IG92ZXIgMTAvMTIgY3lj bGVzLiBUaGVzZSBhcmUgdGhlIHNhbXBsZXMgdGhhdCBhcmUgcGxhY2VkIGluIHRoZSBidWZmZXIu ICAgIAo+ID4+PiBPSywgc28gREMgdmFsdWVzIHdoaWNoIGFuc3dlcnMgbXkgcXVlc3Rpb24gYWJv dmUuCj4gPj4+IFNvIHRoaXMgaXMgdGhlICdub3JtYWwnIG1lYXN1cmVtZW50LiAgRm9yIHRoZSBt dWx0aSBjeWNsZSBvbmVzIHdlIG5lZWQgdG8KPiA+Pj4gcmVwcmVzZW50IHRoZW0gYXMgYWRkaXRp b25hbCBtZWFzdXJlbWVudHMgdXNpbmcgdGhlIGluZGV4IGFuZCBkZXNjcmliZSB0aGUKPiA+Pj4g ZmlsdGVyaW5nIGFwcGxpZWQgdG8gdGhlbSAob3IgdXNlIGFsdHZvbHRhZ2UgZXRjIHRvIHNheSB3 ZSBhcmUgbG9va2luZwo+ID4+PiBhdCBtZWFzdXJlbWVudHMgcmVsYXRlZCB0byB0aGUgZmFjdCB0 aGV5IGFyZSBhbHRlcm5hdGluZyByYXRoZXIgdGhhbiBEQy4gICAgCj4gPj4gSSBhbnN3ZXJlZCB0 aGlzIGFib3ZlLiBJIHRoaW5rIHdlIHNob3VsZCByZW1vdmUgdGhlc2UgcmVnaXN0ZXJzIGFzIEkg Y2Fubm90IHNlZSBob3cgYW55b25lIHdvdWxkIHVzZSAKPiA+PiB0aGVtICAKPiA+IENvb2wuIEV2 ZW4gZWFzaWVyLiAgIFRob3VnaCBpZiB3ZSBoYXZlIGEgZGV2aWNlIHRoYXQgd2lsbCBhbGxvdyB1 cyB0byBwdXNoIHRoZXNlCj4gPiB0aHJvdWdoIHRoZSBidWZmZXJlZCBpbnRlcmZhY2UgKHJhdGhl ciB0aGFuIHRoZSBTUEkgbWFzdGVyIHN0dWZmIG9uIGhlcmUpCj4gPiB0aGVuIHdlIHdvdWxkIGhh dmUgdGhlIGNoYW5uZWxzLCBidXQgbm90IGV4cG9ydCB0aGUgX1JBVyBhdHRyaWJ1dGUgLSB0aHVz Cj4gPiBtYWtpbmcgdGhlbSByZWFkYWJsZSBvbmx5IGFzIGEgc3RyZWFtIG9mIGRhdGEuICAKPiBU aGVyZSBpcyBubyB3YXkgdG8gcmVhZCBhbGwgdGhlc2UgaW5zdGFudGFuZW91cyByZWdpc3RlcnMg ZXZlcnkgMTI1dVMuIFRoZSAKPiBTUEkgbWFzdGVyIGludGVyZmFjZSBpcyB0aGUgb25seSB3YXkg dG8gcmV0cmlldmUgdGhlc2UgbWVhc3VyZW1lbnRzLCAKPiBydW5uaW5nIGF0IGFib3V0IDRNYnBz LiAKU291bmRzIGxpa2UgYmVzdCBwbGFuIGlzIGRvbid0IGhhdmUgdXNlcnNwYWNlIGFjY2VzcyB0 byB0aGVtIC0ganVzdCBoYXZlIHRoZSBjaGFubmVscwpmb3IgYXNzb2NpYXRlZCBldmVudHMgaWYg dGhlcmUgYXJlIGFueS4KCi4uLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkZXZlbCBtYWlsaW5nIGxpc3QKZGV2ZWxAbGludXhkcml2ZXJwcm9qZWN0Lm9y ZwpodHRwOi8vZHJpdmVyZGV2LmxpbnV4ZHJpdmVycHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by9kcml2ZXJkZXYtZGV2ZWwK