From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KmuGi-0005mN-GZ for qemu-devel@nongnu.org; Mon, 06 Oct 2008 13:53:16 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KmuGg-0005lQ-Q7 for qemu-devel@nongnu.org; Mon, 06 Oct 2008 13:53:15 -0400 Received: from [199.232.76.173] (port=53342 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KmuGg-0005lH-G2 for qemu-devel@nongnu.org; Mon, 06 Oct 2008 13:53:14 -0400 Received: from ug-out-1314.google.com ([66.249.92.173]:47829) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KmuGf-00020O-SM for qemu-devel@nongnu.org; Mon, 06 Oct 2008 13:53:14 -0400 Received: by ug-out-1314.google.com with SMTP id j3so1695259ugf.36 for ; Mon, 06 Oct 2008 10:53:12 -0700 (PDT) Message-ID: Date: Mon, 6 Oct 2008 20:53:12 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] [PATCH, RFC] Update qemu-tech.texi, needs verification In-Reply-To: <200810061426.54453.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_38596_22403054.1223315592166" References: <200810061426.54453.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook , qemu-devel@nongnu.org ------=_Part_38596_22403054.1223315592166 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 10/6/08, Paul Brook wrote: > > -@item QEMU can either use a full software MMU for maximum portability or > > use the host system call mmap() to simulate the target MMU. +@item > > +QEMU can either use a full software MMU for maximum portability or use > > +an in-kernel accelerator (kqemu) to simulate the target MMU. > > Referring to kqemu as a MMU simulator is at best very misleading. The item you > removed was referring to qemu-fast, which (in principle at least) still > worked for cross emulation. > > kqemu and kvm execute [some of] the guest code natively, while continuing to > emulate the rest of the machine. > > > Various > > +hardware devices can be emulated and in some cases, host devices > > +(e.g. serial and parallel ports, USB, drives) can be used > > +transparently by the guest Operating System for maximum performance. > > This should be a seaprate item. As written it's unclear whether this is a > kqemu feature or available all the time. > > Host device passthrough is generally used for talking to external physical > peripherals (e.g. a webcam, modem or tape drive), and not for performance > reasons. > > > > the condition codes are not needed by the next instructions, no > > condition codes are computed at all. > > > > +This optimization is not yet implemented on other targets. > > > I don't think this back propagation pass exists at all now. It was made > redundant by the TCG liveness pass. > > The lazy condition code evaluation is used on x86, m68k and cris. ARM uses a > simplified variant for the N and Z flags. > > You might consider rewording the initial paragraph to say that lazy flag > evaluation is important for CPUs where every instruction sets the condition > codes. It tends to be less important on conventional RISC systems where > condition codes are only updated when explicitly requested. Okay, I updated the patch based on these comments. I also added some words about SMP and condition codes and a new chapter for device emulation. ------=_Part_38596_22403054.1223315592166 Content-Type: plain/text; name=update_qemu_tech.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_flzegaqj Content-Disposition: attachment; filename=update_qemu_tech.diff SW5kZXg6IHFlbXUvcWVtdS10ZWNoLnRleGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3FlbXUt dGVjaC50ZXhpCTIwMDgtMTAtMDUgMDk6MTc6MzIuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3Fl bXUtdGVjaC50ZXhpCTIwMDgtMTAtMDYgMTc6Mzg6NTguMDAwMDAwMDAwICswMDAwCkBAIC0zMywx MSArMzMsMTIgQEAKIAogQG1lbnUKICogaW50cm9fZmVhdHVyZXM6OiAgICAgICAgRmVhdHVyZXMK LSogaW50cm9feDg2X2VtdWxhdGlvbjo6ICAgeDg2IGVtdWxhdGlvbgorKiBpbnRyb194ODZfZW11 bGF0aW9uOjogICB4ODYgYW5kIHg4Ni02NCBlbXVsYXRpb24KICogaW50cm9fYXJtX2VtdWxhdGlv bjo6ICAgQVJNIGVtdWxhdGlvbgogKiBpbnRyb19taXBzX2VtdWxhdGlvbjo6ICBNSVBTIGVtdWxh dGlvbgogKiBpbnRyb19wcGNfZW11bGF0aW9uOjogICBQb3dlclBDIGVtdWxhdGlvbgotKiBpbnRy b19zcGFyY19lbXVsYXRpb246OiBTUEFSQyBlbXVsYXRpb24KKyogaW50cm9fc3BhcmNfZW11bGF0 aW9uOjogU3BhcmMzMiBhbmQgU3BhcmM2NCBlbXVsYXRpb24KKyogaW50cm9fb3RoZXJfZW11bGF0 aW9uOjogT3RoZXIgQ1BVIGVtdWxhdGlvbgogQGVuZCBtZW51CiAKIEBub2RlIGludHJvX2ZlYXR1 cmVzCkBAIC01MSwxNyArNTIsMTcgQEAKIEBpdGVtaXplIEBtaW51cwogCiBAaXRlbQotRnVsbCBz eXN0ZW0gZW11bGF0aW9uLiBJbiB0aGlzIG1vZGUsIFFFTVUgZW11bGF0ZXMgYSBmdWxsIHN5c3Rl bQotKHVzdWFsbHkgYSBQQyksIGluY2x1ZGluZyBhIHByb2Nlc3NvciBhbmQgdmFyaW91cyBwZXJp cGhlcmFscy4gSXQgY2FuCi1iZSB1c2VkIHRvIGxhdW5jaCBhbiBkaWZmZXJlbnQgT3BlcmF0aW5n IFN5c3RlbSB3aXRob3V0IHJlYm9vdGluZyB0aGUKLVBDIG9yIHRvIGRlYnVnIHN5c3RlbSBjb2Rl LgorRnVsbCBzeXN0ZW0gZW11bGF0aW9uLiBJbiB0aGlzIG1vZGUgKGZ1bGwgcGxhdGZvcm0gdmly dHVhbGl6YXRpb24pLAorUUVNVSBlbXVsYXRlcyBhIGZ1bGwgc3lzdGVtICh1c3VhbGx5IGEgUEMp LCBpbmNsdWRpbmcgYSBwcm9jZXNzb3IgYW5kCit2YXJpb3VzIHBlcmlwaGVyYWxzLiBJdCBjYW4g YmUgdXNlZCB0byBsYXVuY2ggc2V2ZXJhbCBkaWZmZXJlbnQKK09wZXJhdGluZyBTeXN0ZW1zIGF0 IG9uY2Ugd2l0aG91dCByZWJvb3RpbmcgdGhlIGhvc3QgbWFjaGluZSBvciB0bworZGVidWcgc3lz dGVtIGNvZGUuCiAKIEBpdGVtCi1Vc2VyIG1vZGUgZW11bGF0aW9uIChMaW51eCBob3N0IG9ubHkp LiBJbiB0aGlzIG1vZGUsIFFFTVUgY2FuIGxhdW5jaAotTGludXggcHJvY2Vzc2VzIGNvbXBpbGVk IGZvciBvbmUgQ1BVIG9uIGFub3RoZXIgQ1BVLiBJdCBjYW4gYmUgdXNlZCB0bwotbGF1bmNoIHRo ZSBXaW5lIFdpbmRvd3MgQVBJIGVtdWxhdG9yIChAdXJse2h0dHA6Ly93d3cud2luZWhxLm9yZ30p IG9yCi10byBlYXNlIGNyb3NzLWNvbXBpbGF0aW9uIGFuZCBjcm9zcy1kZWJ1Z2dpbmcuCi0KK1Vz ZXIgbW9kZSBlbXVsYXRpb24uIEluIHRoaXMgbW9kZSAoYXBwbGljYXRpb24gbGV2ZWwgdmlydHVh bGl6YXRpb24pLAorUUVNVSBjYW4gbGF1bmNoIHByb2Nlc3NlcyBjb21waWxlZCBmb3Igb25lIENQ VSBvbiBhbm90aGVyIENQVSwgaG93ZXZlcgordGhlIE9wZXJhdGluZyBTeXN0ZW1zIG11c3QgbWF0 Y2guIFRoaXMgY2FuIGJlIHVzZWQgZm9yIGV4YW1wbGUgdG8gZWFzZQorY3Jvc3MtY29tcGlsYXRp b24gYW5kIGNyb3NzLWRlYnVnZ2luZy4KIEBlbmQgaXRlbWl6ZQogCiBBcyBRRU1VIHJlcXVpcmVz IG5vIGhvc3Qga2VybmVsIGRyaXZlciB0byBydW4sIGl0IGlzIHZlcnkgc2FmZSBhbmQKQEAgLTc1 LDcgKzc2LDEwIEBACiAKIEBpdGVtIFVzaW5nIGR5bmFtaWMgdHJhbnNsYXRpb24gdG8gbmF0aXZl IGNvZGUgZm9yIHJlYXNvbmFibGUgc3BlZWQuCiAKLUBpdGVtIFdvcmtpbmcgb24geDg2IGFuZCBQ b3dlclBDIGhvc3RzLiBCZWluZyB0ZXN0ZWQgb24gQVJNLCBTcGFyYzMyLCBBbHBoYSBhbmQgUzM5 MC4KK0BpdGVtCitXb3JraW5nIG9uIHg4NiwgeDg2XzY0IGFuZCBQb3dlclBDMzIvNjQgaG9zdHMu IEJlaW5nIHRlc3RlZCBvbiBBUk0sCitIUFBBLCBTcGFyYzMyIGFuZCBTcGFyYzY0LiBQcmV2aW91 cyB2ZXJzaW9ucyBoYWQgc29tZSBzdXBwb3J0IGZvcgorQWxwaGEgYW5kIFMzOTAgaG9zdHMsIGJ1 dCBUQ0cgKHNlZSBiZWxvdykgZG9lc24ndCBzdXBwb3J0IHRob3NlIHlldC4KIAogQGl0ZW0gU2Vs Zi1tb2RpZnlpbmcgY29kZSBzdXBwb3J0LgogCkBAIC04NSw2ICs4OSwxMCBAQAogaW4gb3RoZXIg cHJvamVjdHMgKGxvb2sgYXQgQGZpbGV7cWVtdS90ZXN0cy9xcnVuY29tLmN9IHRvIGhhdmUgYW4K IGV4YW1wbGUgb2YgdXNlciBtb2RlIEBjb2Rle2xpYnFlbXV9IHVzYWdlKS4KIAorQGl0ZW0KK0Zs b2F0aW5nIHBvaW50IGxpYnJhcnkgc3VwcG9ydGluZyBib3RoIGZ1bGwgc29mdHdhcmUgZW11bGF0 aW9uIGFuZAorbmF0aXZlIGhvc3QgRlBVIGluc3RydWN0aW9ucy4KKwogQGVuZCBpdGVtaXplCiAK IFFFTVUgdXNlciBtb2RlIGVtdWxhdGlvbiBmZWF0dXJlczoKQEAgLTk2LDIwICsxMDQsNDcgQEAK IEBpdGVtIEFjY3VyYXRlIHNpZ25hbCBoYW5kbGluZyBieSByZW1hcHBpbmcgaG9zdCBzaWduYWxz IHRvIHRhcmdldCBzaWduYWxzLgogQGVuZCBpdGVtaXplCiAKK0xpbnV4IHVzZXIgZW11bGF0b3Ig KExpbnV4IGhvc3Qgb25seSkgY2FuIGJlIHVzZWQgdG8gbGF1bmNoIHRoZSBXaW5lCitXaW5kb3dz IEFQSSBlbXVsYXRvciAoQHVybHtodHRwOi8vd3d3LndpbmVocS5vcmd9KS4gQSBEYXJ3aW4gdXNl cgorZW11bGF0b3IgKERhcndpbiBob3N0cyBvbmx5KSBleGlzdHMgYW5kIGEgQlNEIHVzZXIgZW11 bGF0b3IgZm9yIEJTRAoraG9zdHMgaXMgdW5kZXIgZGV2ZWxvcG1lbnQuIEl0IHdvdWxkIGFsc28g YmUgcG9zc2libGUgdG8gZGV2ZWxvcCBhCitzaW1pbGFyIHVzZXIgZW11bGF0b3IgZm9yIFNvbGFy aXMuCisKIFFFTVUgZnVsbCBzeXN0ZW0gZW11bGF0aW9uIGZlYXR1cmVzOgogQGl0ZW1pemUKLUBp dGVtIFFFTVUgY2FuIGVpdGhlciB1c2UgYSBmdWxsIHNvZnR3YXJlIE1NVSBmb3IgbWF4aW11bSBw b3J0YWJpbGl0eSBvciB1c2UgdGhlIGhvc3Qgc3lzdGVtIGNhbGwgbW1hcCgpIHRvIHNpbXVsYXRl IHRoZSB0YXJnZXQgTU1VLgorQGl0ZW0KK1FFTVUgdXNlcyBhIGZ1bGwgc29mdHdhcmUgTU1VIGZv ciBtYXhpbXVtIHBvcnRhYmlsaXR5LgorCitAaXRlbQorUUVNVSBjYW4gb3B0aW9uYWxseSB1c2Ug YW4gaW4ta2VybmVsIGFjY2VsZXJhdG9yLCBsaWtlIGtxZW11IGFuZAora3ZtLiBUaGUgYWNjZWxl cmF0b3JzIGV4ZWN1dGUgc29tZSBvZiB0aGUgZ3Vlc3QgY29kZSBuYXRpdmVseSwgd2hpbGUKK2Nv bnRpbnVpbmcgdG8gZW11bGF0ZSB0aGUgcmVzdCBvZiB0aGUgbWFjaGluZS4KKworQGl0ZW0KK1Zh cmlvdXMgaGFyZHdhcmUgZGV2aWNlcyBjYW4gYmUgZW11bGF0ZWQgYW5kIGluIHNvbWUgY2FzZXMs IGhvc3QKK2RldmljZXMgKGUuZy4gc2VyaWFsIGFuZCBwYXJhbGxlbCBwb3J0cywgVVNCLCBkcml2 ZXMpIGNhbiBiZSB1c2VkCit0cmFuc3BhcmVudGx5IGJ5IHRoZSBndWVzdCBPcGVyYXRpbmcgU3lz dGVtLiBIb3N0IGRldmljZSBwYXNzdGhyb3VnaAorY2FuIGJlIHVzZWQgZm9yIHRhbGtpbmcgdG8g ZXh0ZXJuYWwgcGh5c2ljYWwgcGVyaXBoZXJhbHMgKGUuZy4gYQord2ViY2FtLCBtb2RlbSBvciB0 YXBlIGRyaXZlKS4KKworQGl0ZW0KK1N5bW1ldHJpYyBtdWx0aXByb2Nlc3NpbmcgKFNNUCkgZXZl biBvbiBhIGhvc3Qgd2l0aCBhIHNpbmdsZSBDUFUuIE9uIGEKK1NNUCBob3N0IHN5c3RlbSwgUUVN VSBjYW4gdXNlIG9ubHkgb25lIENQVSBmdWxseSBkdWUgdG8gZGlmZmljdWx0eSBpbgoraW1wbGVt ZW50aW5nIGF0b21pYyBtZW1vcnkgYWNjZXNzZXMgZWZmaWNpZW50bHkuCisKIEBlbmQgaXRlbWl6 ZQogCiBAbm9kZSBpbnRyb194ODZfZW11bGF0aW9uCi1Ac2VjdGlvbiB4ODYgZW11bGF0aW9uCitA c2VjdGlvbiB4ODYgYW5kIHg4Ni02NCBlbXVsYXRpb24KIAogUUVNVSB4ODYgdGFyZ2V0IGZlYXR1 cmVzOgogCiBAaXRlbWl6ZQogCiBAaXRlbSBUaGUgdmlydHVhbCB4ODYgQ1BVIHN1cHBvcnRzIDE2 IGJpdCBhbmQgMzIgYml0IGFkZHJlc3Npbmcgd2l0aCBzZWdtZW50YXRpb24uCi1MRFQvR0RUIGFu ZCBJRFQgYXJlIGVtdWxhdGVkLiBWTTg2IG1vZGUgaXMgYWxzbyBzdXBwb3J0ZWQgdG8gcnVuIERP U0VNVS4KK0xEVC9HRFQgYW5kIElEVCBhcmUgZW11bGF0ZWQuIFZNODYgbW9kZSBpcyBhbHNvIHN1 cHBvcnRlZCB0byBydW4KK0RPU0VNVS4gVGhlcmUgaXMgc29tZSBzdXBwb3J0IGZvciBNTVgvM0RO b3chLCBTU0UsIFNTRTIsIFNTRTMsIFNTU0UzLAorYW5kIFNTRTQgYXMgd2VsbCBhcyB4ODYtNjQg U1ZNLgogCiBAaXRlbSBTdXBwb3J0IG9mIGhvc3QgcGFnZSBzaXplcyBiaWdnZXIgdGhhbiA0S0Ig aW4gdXNlciBtb2RlIGVtdWxhdGlvbi4KIApAQCAtMTI0LDkgKzE1OSw3IEBACiAKIEBpdGVtaXpl CiAKLUBpdGVtIE5vIFNTRS9NTVggc3VwcG9ydCAoeWV0KS4KLQotQGl0ZW0gTm8geDg2LTY0IHN1 cHBvcnQuCitAaXRlbSBMaW1pdGVkIHg4Ni02NCBzdXBwb3J0LgogCiBAaXRlbSBJUEMgc3lzY2Fs bHMgYXJlIG1pc3NpbmcuCiAKQEAgLTEzNCwxMCArMTY3LDYgQEAKIG1lbW9yeSBhY2Nlc3MgKHll dCkuIEhvcGVmdWxseSwgdmVyeSBmZXcgT1NlcyBzZWVtIHRvIHJlbHkgb24gdGhhdCBmb3IKIG5v cm1hbCB1c2UuCiAKLUBpdGVtIE9uIG5vbiB4ODYgaG9zdCBDUFVzLCBAY29kZXtkb3VibGV9cyBh cmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBub24gc3RhbmRhcmQKLTEwIGJ5dGUgQGNvZGV7bG9uZyBk b3VibGV9cyBvZiB4ODYgZm9yIGZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbiB0byBnZXQKLW1heGlt dW0gcGVyZm9ybWFuY2VzLgotCiBAZW5kIGl0ZW1pemUKIAogQG5vZGUgaW50cm9fYXJtX2VtdWxh dGlvbgpAQCAtMTkzLDcgKzIyMiw3IEBACiBAZW5kIGl0ZW1pemUKIAogQG5vZGUgaW50cm9fc3Bh cmNfZW11bGF0aW9uCi1Ac2VjdGlvbiBTUEFSQyBlbXVsYXRpb24KK0BzZWN0aW9uIFNwYXJjMzIg YW5kIFNwYXJjNjQgZW11bGF0aW9uCiAKIEBpdGVtaXplCiAKQEAgLTIxNiwxNyArMjQ1LDM0IEBA CiAKIEBpdGVtIEF0b21pYyBpbnN0cnVjdGlvbnMgYXJlIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50 ZWQuCiAKLUBpdGVtIFNwYXJjNjQgZW11bGF0b3JzIGFyZSBub3QgdXNhYmxlIGZvciBhbnl0aGlu ZyB5ZXQuCitAaXRlbSBUaGVyZSBhcmUgc3RpbGwgc29tZSBwcm9ibGVtcyB3aXRoIFNwYXJjNjQg ZW11bGF0b3JzLgogCiBAZW5kIGl0ZW1pemUKIAorQG5vZGUgaW50cm9fb3RoZXJfZW11bGF0aW9u CitAc2VjdGlvbiBPdGhlciBDUFUgZW11bGF0aW9uCisKK0luIGFkZGl0aW9uIHRvIHRoZSBhYm92 ZSwgUUVNVSBzdXBwb3J0cyBlbXVsYXRpb24gb2Ygb3RoZXIgQ1BVcyB3aXRoCit2YXJ5aW5nIGxl dmVscyBvZiBzdWNjZXNzLiBUaGVzZSBhcmU6CisKK0BpdGVtaXplCisKK0BpdGVtCitBbHBoYQor QGl0ZW0KK0NSSVMKK0BpdGVtCitNNjhrCitAaXRlbQorU0g0CitAZW5kIGl0ZW1pemUKKwogQG5v ZGUgUUVNVSBJbnRlcm5hbHMKIEBjaGFwdGVyIFFFTVUgSW50ZXJuYWxzCiAKIEBtZW51CiAqIFFF TVUgY29tcGFyZWQgdG8gb3RoZXIgZW11bGF0b3JzOjoKICogUG9ydGFibGUgZHluYW1pYyB0cmFu c2xhdGlvbjo6Ci0qIFJlZ2lzdGVyIGFsbG9jYXRpb246OgogKiBDb25kaXRpb24gY29kZSBvcHRp bWlzYXRpb25zOjoKICogQ1BVIHN0YXRlIG9wdGltaXNhdGlvbnM6OgogKiBUcmFuc2xhdGlvbiBj YWNoZTo6CkBAIC0yMzQsNiArMjgwLDcgQEAKICogU2VsZi1tb2RpZnlpbmcgY29kZSBhbmQgdHJh bnNsYXRlZCBjb2RlIGludmFsaWRhdGlvbjo6CiAqIEV4Y2VwdGlvbiBzdXBwb3J0OjoKICogTU1V IGVtdWxhdGlvbjo6CisqIERldmljZSBlbXVsYXRpb246OgogKiBIYXJkd2FyZSBpbnRlcnJ1cHRz OjoKICogVXNlciBlbXVsYXRpb24gc3BlY2lmaWMgZGV0YWlsczo6CiAqIEJpYmxpb2dyYXBoeTo6 CkBAIC0yNzMsMTkgKzMyMCwyMyBAQAogUUVNVSBhY2NlcHRzIHVucGF0Y2hlZCBMaW51eCBrZXJu ZWxzLiBUaGUgcHJpY2UgdG8gcGF5IGlzIHRoYXQgUUVNVSBpcwogc2xvd2VyLgogCi1UaGUgbmV3 IFBsZXg4NiBbOF0gUEMgdmlydHVhbGl6ZXIgaXMgZG9uZSBpbiB0aGUgc2FtZSBzcGlyaXQgYXMg dGhlCi1xZW11LWZhc3Qgc3lzdGVtIGVtdWxhdG9yLiBJdCByZXF1aXJlcyBhIHBhdGNoZWQgTGlu dXgga2VybmVsIHRvIHdvcmsKLSh5b3UgY2Fubm90IGxhdW5jaCB0aGUgc2FtZSBrZXJuZWwgb24g eW91ciBQQyksIGJ1dCB0aGUgcGF0Y2hlcyBhcmUKLXJlYWxseSBzbWFsbC4gQXMgaXQgaXMgYSBQ QyB2aXJ0dWFsaXplciAobm8gZW11bGF0aW9uIGlzIGRvbmUgZXhjZXB0Ci1mb3Igc29tZSBwcml2 aWxlZ2VkIGluc3RydWN0aW9ucyksIGl0IGhhcyB0aGUgcG90ZW50aWFsIG9mIGJlaW5nCi1mYXN0 ZXIgdGhhbiBRRU1VLiBUaGUgZG93bnNpZGUgaXMgdGhhdCBhIGNvbXBsaWNhdGVkIChhbmQgcG90 ZW50aWFsbHkKLXVuc2FmZSkgaG9zdCBrZXJuZWwgcGF0Y2ggaXMgbmVlZGVkLgorVGhlIFBsZXg4 NiBbOF0gUEMgdmlydHVhbGl6ZXIgaXMgZG9uZSBpbiB0aGUgc2FtZSBzcGlyaXQgYXMgdGhlIG5v dworb2Jzb2xldGUgcWVtdS1mYXN0IHN5c3RlbSBlbXVsYXRvci4gSXQgcmVxdWlyZXMgYSBwYXRj aGVkIExpbnV4IGtlcm5lbAordG8gd29yayAoeW91IGNhbm5vdCBsYXVuY2ggdGhlIHNhbWUga2Vy bmVsIG9uIHlvdXIgUEMpLCBidXQgdGhlCitwYXRjaGVzIGFyZSByZWFsbHkgc21hbGwuIEFzIGl0 IGlzIGEgUEMgdmlydHVhbGl6ZXIgKG5vIGVtdWxhdGlvbiBpcworZG9uZSBleGNlcHQgZm9yIHNv bWUgcHJpdmlsZWdlZCBpbnN0cnVjdGlvbnMpLCBpdCBoYXMgdGhlIHBvdGVudGlhbCBvZgorYmVp bmcgZmFzdGVyIHRoYW4gUUVNVS4gVGhlIGRvd25zaWRlIGlzIHRoYXQgYSBjb21wbGljYXRlZCAo YW5kCitwb3RlbnRpYWxseSB1bnNhZmUpIGhvc3Qga2VybmVsIHBhdGNoIGlzIG5lZWRlZC4KIAog VGhlIGNvbW1lcmNpYWwgUEMgVmlydHVhbGl6ZXJzIChWTVdhcmUgWzldLCBWaXJ0dWFsUEMgWzEw XSwgVHdvT1N0d28KIFsxMV0pIGFyZSBmYXN0ZXIgdGhhbiBRRU1VLCBidXQgdGhleSBhbGwgbmVl ZCBzcGVjaWZpYywgcHJvcHJpZXRhcnkKIGFuZCBwb3RlbnRpYWxseSB1bnNhZmUgaG9zdCBkcml2 ZXJzLiBNb3Jlb3ZlciwgdGhleSBhcmUgdW5hYmxlIHRvCiBwcm92aWRlIGN5Y2xlIGV4YWN0IHNp bXVsYXRpb24gYXMgYW4gZW11bGF0b3IgY2FuLgogCitWaXJ0dWFsQm94IFsxMl0sIFhlbiBbMTNd IGFuZCBLVk0gWzE0XSBhcmUgYmFzZWQgb24gUUVNVS4gUUVNVS1TeXN0ZW1DCitbMTVdIHVzZXMg UUVNVSB0byBzaW11bGF0ZSBhIHN5c3RlbSB3aGVyZSBzb21lIGhhcmR3YXJlIGRldmljZXMgYXJl CitkZXZlbG9wZWQgaW4gU3lzdGVtQy4KKwogQG5vZGUgUG9ydGFibGUgZHluYW1pYyB0cmFuc2xh dGlvbgogQHNlY3Rpb24gUG9ydGFibGUgZHluYW1pYyB0cmFuc2xhdGlvbgogCkBAIC0yOTUsNjMg KzM0Niw1MSBAQAogd2hpY2ggbWFrZSBpdCByZWxhdGl2ZWx5IGVhc2lseSBwb3J0YWJsZSBhbmQg c2ltcGxlIHdoaWxlIGFjaGlldmluZyBnb29kCiBwZXJmb3JtYW5jZXMuCiAKLVRoZSBiYXNpYyBp ZGVhIGlzIHRvIHNwbGl0IGV2ZXJ5IHg4NiBpbnN0cnVjdGlvbiBpbnRvIGZld2VyIHNpbXBsZXIK LWluc3RydWN0aW9ucy4gRWFjaCBzaW1wbGUgaW5zdHJ1Y3Rpb24gaXMgaW1wbGVtZW50ZWQgYnkg YSBwaWVjZSBvZiBDCi1jb2RlIChzZWUgQGZpbGV7dGFyZ2V0LWkzODYvb3AuY30pLiBUaGVuIGEg Y29tcGlsZSB0aW1lIHRvb2wKLShAZmlsZXtkeW5nZW59KSB0YWtlcyB0aGUgY29ycmVzcG9uZGlu ZyBvYmplY3QgZmlsZSAoQGZpbGV7b3Aub30pCi10byBnZW5lcmF0ZSBhIGR5bmFtaWMgY29kZSBn ZW5lcmF0b3Igd2hpY2ggY29uY2F0ZW5hdGVzIHRoZSBzaW1wbGUKLWluc3RydWN0aW9ucyB0byBi dWlsZCBhIGZ1bmN0aW9uIChzZWUgQGZpbGV7b3AuaDpkeW5nZW5fY29kZSgpfSkuCi0KLUluIGVz c2VuY2UsIHRoZSBwcm9jZXNzIGlzIHNpbWlsYXIgdG8gWzFdLCBidXQgbW9yZSB3b3JrIGlzIGRv bmUgYXQKLWNvbXBpbGUgdGltZS4KLQotQSBrZXkgaWRlYSB0byBnZXQgb3B0aW1hbCBwZXJmb3Jt YW5jZXMgaXMgdGhhdCBjb25zdGFudCBwYXJhbWV0ZXJzIGNhbgotYmUgcGFzc2VkIHRvIHRoZSBz aW1wbGUgb3BlcmF0aW9ucy4gRm9yIHRoYXQgcHVycG9zZSwgZHVtbXkgRUxGCi1yZWxvY2F0aW9u cyBhcmUgZ2VuZXJhdGVkIHdpdGggZ2NjIGZvciBlYWNoIGNvbnN0YW50IHBhcmFtZXRlci4gVGhl biwKLXRoZSB0b29sIChAZmlsZXtkeW5nZW59KSBjYW4gbG9jYXRlIHRoZSByZWxvY2F0aW9ucyBh bmQgZ2VuZXJhdGUgdGhlCi1hcHByaW9wcmlhdGUgQyBjb2RlIHRvIHJlc29sdmUgdGhlbSB3aGVu IGJ1aWxkaW5nIHRoZSBkeW5hbWljIGNvZGUuCi0KLVRoYXQgd2F5LCBRRU1VIGlzIG5vIG1vcmUg ZGlmZmljdWx0IHRvIHBvcnQgdGhhbiBhIGR5bmFtaWMgbGlua2VyLgotCi1UbyBnbyBldmVuIGZh c3RlciwgR0NDIHN0YXRpYyByZWdpc3RlciB2YXJpYWJsZXMgYXJlIHVzZWQgdG8ga2VlcCB0aGUK LXN0YXRlIG9mIHRoZSB2aXJ0dWFsIENQVS4KLQotQG5vZGUgUmVnaXN0ZXIgYWxsb2NhdGlvbgot QHNlY3Rpb24gUmVnaXN0ZXIgYWxsb2NhdGlvbgotCi1TaW5jZSBRRU1VIHVzZXMgZml4ZWQgc2lt cGxlIGluc3RydWN0aW9ucywgbm8gZWZmaWNpZW50IHJlZ2lzdGVyCi1hbGxvY2F0aW9uIGNhbiBi ZSBkb25lLiBIb3dldmVyLCBiZWNhdXNlIFJJU0MgQ1BVcyBoYXZlIGEgbG90IG9mCi1yZWdpc3Rl ciwgbW9zdCBvZiB0aGUgdmlydHVhbCBDUFUgc3RhdGUgY2FuIGJlIHB1dCBpbiByZWdpc3RlcnMg d2l0aG91dAotZG9pbmcgY29tcGxpY2F0ZWQgcmVnaXN0ZXIgYWxsb2NhdGlvbi4KK0FmdGVyIHRo ZSByZWxlYXNlIG9mIHZlcnNpb24gMC45LjAsIFFFTVUgc3dpdGNoZWQgdG8gYSBuZXcgbWV0aG9k IG9mCitnZW5lcmF0aW5nIGNvZGUsIFRpbnkgQ29kZSBHZW5lcmF0b3Igb3IgVENHLiBUQ0cgcmVs YXhlcyB0aGUKK2RlcGVuZGVuY3kgb24gdGhlIGV4YWN0IHZlcnNpb24gb2YgdGhlIGNvbXBpbGVy IHVzZWQuIFRoZSBiYXNpYyBpZGVhCitpcyB0byBzcGxpdCBldmVyeSB0YXJnZXQgaW5zdHJ1Y3Rp b24gaW50byBhIGNvdXBsZSBvZiBSSVNDLWxpa2UgVENHCitvcGVyYXRpb25zIChzZWUgQGNvZGV7 dGFyZ2V0LWkzODYvdHJhbnNsYXRlLmN9KS4gU29tZSBvcHRpbWl6YXRpb25zCitjYW4gYmUgcGVy Zm9ybWVkIGF0IHRoaXMgc3RhZ2UsIGluY2x1ZGluZyBsaXZlbmVzcyBhbmFseXNpcyBhbmQKK3Ry aXZpYWwgY29uc3RhbnQgZXhwcmVzc2lvbiBldmFsdWF0aW9uLiBUQ0cgb3BlcmF0aW9ucyBhcmUg dGhlbgoraW1wbGVtZW50ZWQgaW4gdGhlIGhvc3QgQ1BVIGJhY2sgZW5kLCBhbHNvIGtub3duIGFz IFRDRyB0YXJnZXQgKHNlZQorQGNvZGV7dGNnL2kzODYvdGNnLXRhcmdldC5jfSkuIEZvciBtb3Jl IGluZm9ybWF0aW9uLCBwbGVhc2UgdGFrZSBhCitsb29rIGF0IEBjb2Rle3RjZy9SRUFETUV9Lgog CiBAbm9kZSBDb25kaXRpb24gY29kZSBvcHRpbWlzYXRpb25zCiBAc2VjdGlvbiBDb25kaXRpb24g Y29kZSBvcHRpbWlzYXRpb25zCiAKLUdvb2QgQ1BVIGNvbmRpdGlvbiBjb2RlcyBlbXVsYXRpb24g KEBjb2Rle0VGTEFHU30gcmVnaXN0ZXIgb24geDg2KSBpcyBhCi1jcml0aWNhbCBwb2ludCB0byBn ZXQgZ29vZCBwZXJmb3JtYW5jZXMuIFFFTVUgdXNlcyBsYXp5IGNvbmRpdGlvbiBjb2RlCi1ldmFs dWF0aW9uOiBpbnN0ZWFkIG9mIGNvbXB1dGluZyB0aGUgY29uZGl0aW9uIGNvZGVzIGFmdGVyIGVh Y2ggeDg2Ci1pbnN0cnVjdGlvbiwgaXQganVzdCBzdG9yZXMgb25lIG9wZXJhbmQgKGNhbGxlZCBA Y29kZXtDQ19TUkN9KSwgdGhlCi1yZXN1bHQgKGNhbGxlZCBAY29kZXtDQ19EU1R9KSBhbmQgdGhl IHR5cGUgb2Ygb3BlcmF0aW9uIChjYWxsZWQKLUBjb2Rle0NDX09QfSkuCitMYXp5IGV2YWx1YXRp b24gb2YgQ1BVIGNvbmRpdGlvbiBjb2RlcyAoQGNvZGV7RUZMQUdTfSByZWdpc3RlciBvbiB4ODYp CitpcyBpbXBvcnRhbnQgZm9yIENQVXMgd2hlcmUgZXZlcnkgaW5zdHJ1Y3Rpb24gc2V0cyB0aGUg Y29uZGl0aW9uCitjb2Rlcy4gSXQgdGVuZHMgdG8gYmUgbGVzcyBpbXBvcnRhbnQgb24gY29udmVu dGlvbmFsIFJJU0Mgc3lzdGVtcword2hlcmUgY29uZGl0aW9uIGNvZGVzIGFyZSBvbmx5IHVwZGF0 ZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZC4KKworSW5zdGVhZCBvZiBjb21wdXRpbmcgdGhl IGNvbmRpdGlvbiBjb2RlcyBhZnRlciBlYWNoIHg4NiBpbnN0cnVjdGlvbiwKK1FFTVUganVzdCBz dG9yZXMgb25lIG9wZXJhbmQgKGNhbGxlZCBAY29kZXtDQ19TUkN9KSwgdGhlIHJlc3VsdAorKGNh bGxlZCBAY29kZXtDQ19EU1R9KSBhbmQgdGhlIHR5cGUgb2Ygb3BlcmF0aW9uIChjYWxsZWQKK0Bj b2Rle0NDX09QfSkuIFdoZW4gdGhlIGNvbmRpdGlvbiBjb2RlcyBhcmUgbmVlZGVkLCB0aGUgY29u ZGl0aW9uCitjb2RlcyBjYW4gYmUgY2FsY3VsYXRlZCB1c2luZyB0aGlzIGluZm9ybWF0aW9uLiBJ biBhZGRpdGlvbiwgYW4KK29wdGltaXplZCBjYWxjdWxhdGlvbiBjYW4gYmUgcGVyZm9ybWVkIGZv ciBzb21lIGluc3RydWN0aW9uIHR5cGVzIGxpa2UKK2NvbmRpdGlvbmFsIGJyYW5jaGVzLgogCiBA Y29kZXtDQ19PUH0gaXMgYWxtb3N0IG5ldmVyIGV4cGxpY2l0bHkgc2V0IGluIHRoZSBnZW5lcmF0 ZWQgY29kZQogYmVjYXVzZSBpdCBpcyBrbm93biBhdCB0cmFuc2xhdGlvbiB0aW1lLgogCi1JbiBv cmRlciB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZXMsIGEgYmFja3dhcmQgcGFzcyBpcyBwZXJmb3Jt ZWQgb24gdGhlCi1nZW5lcmF0ZWQgc2ltcGxlIGluc3RydWN0aW9ucyAoc2VlCi1AY29kZXt0YXJn ZXQtaTM4Ni90cmFuc2xhdGUuYzpvcHRpbWl6ZV9mbGFncygpfSkuIFdoZW4gaXQgY2FuIGJlIHBy b3ZlZCB0aGF0Ci10aGUgY29uZGl0aW9uIGNvZGVzIGFyZSBub3QgbmVlZGVkIGJ5IHRoZSBuZXh0 IGluc3RydWN0aW9ucywgbm8KLWNvbmRpdGlvbiBjb2RlcyBhcmUgY29tcHV0ZWQgYXQgYWxsLgor VGhlIGxhenkgY29uZGl0aW9uIGNvZGUgZXZhbHVhdGlvbiBpcyB1c2VkIG9uIHg4NiwgbTY4ayBh bmQgY3Jpcy4gQVJNCit1c2VzIGEgc2ltcGxpZmllZCB2YXJpYW50IGZvciB0aGUgTiBhbmQgWiBm bGFncy4KIAogQG5vZGUgQ1BVIHN0YXRlIG9wdGltaXNhdGlvbnMKIEBzZWN0aW9uIENQVSBzdGF0 ZSBvcHRpbWlzYXRpb25zCiAKLVRoZSB4ODYgQ1BVIGhhcyBtYW55IGludGVybmFsIHN0YXRlcyB3 aGljaCBjaGFuZ2UgdGhlIHdheSBpdCBldmFsdWF0ZXMKLWluc3RydWN0aW9ucy4gSW4gb3JkZXIg dG8gYWNoaWV2ZSBhIGdvb2Qgc3BlZWQsIHRoZSB0cmFuc2xhdGlvbiBwaGFzZQotY29uc2lkZXJz IHRoYXQgc29tZSBzdGF0ZSBpbmZvcm1hdGlvbiBvZiB0aGUgdmlydHVhbCB4ODYgQ1BVIGNhbm5v dAotY2hhbmdlIGluIGl0LiBGb3IgZXhhbXBsZSwgaWYgdGhlIFNTLCBEUyBhbmQgRVMgc2VnbWVu dHMgaGF2ZSBhIHplcm8KLWJhc2UsIHRoZW4gdGhlIHRyYW5zbGF0b3IgZG9lcyBub3QgZXZlbiBn ZW5lcmF0ZSBhbiBhZGRpdGlvbiBmb3IgdGhlCi1zZWdtZW50IGJhc2UuCitUaGUgdGFyZ2V0IENQ VXMgaGF2ZSBtYW55IGludGVybmFsIHN0YXRlcyB3aGljaCBjaGFuZ2UgdGhlIHdheSBpdAorZXZh bHVhdGVzIGluc3RydWN0aW9ucy4gSW4gb3JkZXIgdG8gYWNoaWV2ZSBhIGdvb2Qgc3BlZWQsIHRo ZQordHJhbnNsYXRpb24gcGhhc2UgY29uc2lkZXJzIHRoYXQgc29tZSBzdGF0ZSBpbmZvcm1hdGlv biBvZiB0aGUgdmlydHVhbAorQ1BVIGNhbm5vdCBjaGFuZ2UgaW4gaXQuIFRoZSBzdGF0ZSBpcyBy ZWNvcmRlZCBpbiB0aGUgVHJhbnNsYXRpb24KK0Jsb2NrIChUQikuIElmIHRoZSBzdGF0ZSBjaGFu Z2VzIChlLmcuIHByaXZpbGVnZSBsZXZlbCksIGEgbmV3IFRCIHdpbGwKK2JlIGdlbmVyYXRlZCBh bmQgdGhlIHByZXZpb3VzIFRCIHdvbid0IGJlIHVzZWQgYW55bW9yZSB1bnRpbCB0aGUgc3RhdGUK K21hdGNoZXMgdGhlIHN0YXRlIHJlY29yZGVkIGluIHRoZSBwcmV2aW91cyBUQi4gRm9yIGV4YW1w bGUsIGlmIHRoZSBTUywKK0RTIGFuZCBFUyBzZWdtZW50cyBoYXZlIGEgemVybyBiYXNlLCB0aGVu IHRoZSB0cmFuc2xhdG9yIGRvZXMgbm90IGV2ZW4KK2dlbmVyYXRlIGFuIGFkZGl0aW9uIGZvciB0 aGUgc2VnbWVudCBiYXNlLgogCiBbVGhlIEZQVSBzdGFjayBwb2ludGVyIHJlZ2lzdGVyIGlzIG5v dCBoYW5kbGVkIHRoYXQgd2F5IHlldF0uCiAKQEAgLTM3NSwxMSArNDE0LDYgQEAKIGlzIGtub3du LCBRRU1VIGNhbiBwYXRjaCBhIGJhc2ljIGJsb2NrIHNvIHRoYXQgaXQganVtcHMgZGlyZWN0bHkg dG8gdGhlCiBuZXh0IG9uZS4KIAotVGhlIG1vc3QgcG9ydGFibGUgY29kZSB1c2VzIGFuIGluZGly ZWN0IGp1bXAuIEFuIGluZGlyZWN0IGp1bXAgbWFrZXMKLWl0IGVhc2llciB0byBtYWtlIHRoZSBq dW1wIHRhcmdldCBtb2RpZmljYXRpb24gYXRvbWljLiBPbiBzb21lIGhvc3QKLWFyY2hpdGVjdHVy ZXMgKHN1Y2ggYXMgeDg2IG9yIFBvd2VyUEMpLCB0aGUgQGNvZGV7SlVNUH0gb3Bjb2RlIGlzCi1k aXJlY3RseSBwYXRjaGVkIHNvIHRoYXQgdGhlIGJsb2NrIGNoYWluaW5nIGhhcyBubyBvdmVyaGVh ZC4KLQogQG5vZGUgU2VsZi1tb2RpZnlpbmcgY29kZSBhbmQgdHJhbnNsYXRlZCBjb2RlIGludmFs aWRhdGlvbgogQHNlY3Rpb24gU2VsZi1tb2RpZnlpbmcgY29kZSBhbmQgdHJhbnNsYXRlZCBjb2Rl IGludmFsaWRhdGlvbgogCkBAIC0zODgsMjggKzQyMiwyMCBAQAogaXMgbW9kaWZpZWQuCiAKIFdo ZW4gdHJhbnNsYXRlZCBjb2RlIGlzIGdlbmVyYXRlZCBmb3IgYSBiYXNpYyBibG9jaywgdGhlIGNv cnJlc3BvbmRpbmcKLWhvc3QgcGFnZSBpcyB3cml0ZSBwcm90ZWN0ZWQgaWYgaXQgaXMgbm90IGFs cmVhZHkgcmVhZC1vbmx5ICh3aXRoIHRoZQotc3lzdGVtIGNhbGwgQGNvZGV7bXByb3RlY3QoKX0p LiBUaGVuLCBpZiBhIHdyaXRlIGFjY2VzcyBpcyBkb25lIHRvIHRoZQotcGFnZSwgTGludXggcmFp c2VzIGEgU0VHViBzaWduYWwuIFFFTVUgdGhlbiBpbnZhbGlkYXRlcyBhbGwgdGhlCi10cmFuc2xh dGVkIGNvZGUgaW4gdGhlIHBhZ2UgYW5kIGVuYWJsZXMgd3JpdGUgYWNjZXNzZXMgdG8gdGhlIHBh Z2UuCitob3N0IHBhZ2UgaXMgd3JpdGUgcHJvdGVjdGVkIGlmIGl0IGlzIG5vdCBhbHJlYWR5IHJl YWQtb25seS4gVGhlbiwgaWYKK2Egd3JpdGUgYWNjZXNzIGlzIGRvbmUgdG8gdGhlIHBhZ2UsIExp bnV4IHJhaXNlcyBhIFNFR1Ygc2lnbmFsLiBRRU1VCit0aGVuIGludmFsaWRhdGVzIGFsbCB0aGUg dHJhbnNsYXRlZCBjb2RlIGluIHRoZSBwYWdlIGFuZCBlbmFibGVzIHdyaXRlCithY2Nlc3NlcyB0 byB0aGUgcGFnZS4KIAogQ29ycmVjdCB0cmFuc2xhdGVkIGNvZGUgaW52YWxpZGF0aW9uIGlzIGRv bmUgZWZmaWNpZW50bHkgYnkgbWFpbnRhaW5pbmcKIGEgbGlua2VkIGxpc3Qgb2YgZXZlcnkgdHJh bnNsYXRlZCBibG9jayBjb250YWluZWQgaW4gYSBnaXZlbiBwYWdlLiBPdGhlcgogbGlua2VkIGxp c3RzIGFyZSBhbHNvIG1haW50YWluZWQgdG8gdW5kbyBkaXJlY3QgYmxvY2sgY2hhaW5pbmcuCiAK LUFsdGhvdWdoIHRoZSBvdmVyaGVhZCBvZiBkb2luZyBAY29kZXttcHJvdGVjdCgpfSBjYWxscyBp cyBpbXBvcnRhbnQsCi1tb3N0IE1TRE9TIHByb2dyYW1zIGNhbiBiZSBlbXVsYXRlZCBhdCByZWFz b25uYWJsZSBzcGVlZCB3aXRoIFFFTVUgYW5kCi1ET1NFTVUuCi0KLU5vdGUgdGhhdCBRRU1VIGFs c28gaW52YWxpZGF0ZXMgcGFnZXMgb2YgdHJhbnNsYXRlZCBjb2RlIHdoZW4gaXQgZGV0ZWN0cwot dGhhdCBtZW1vcnkgbWFwcGluZ3MgYXJlIG1vZGlmaWVkIHdpdGggQGNvZGV7bW1hcCgpfSBvciBA Y29kZXttdW5tYXAoKX0uCi0KLVdoZW4gdXNpbmcgYSBzb2Z0d2FyZSBNTVUsIHRoZSBjb2RlIGlu dmFsaWRhdGlvbiBpcyBtb3JlIGVmZmljaWVudDogaWYKLWEgZ2l2ZW4gY29kZSBwYWdlIGlzIGlu dmFsaWRhdGVkIHRvbyBvZnRlbiBiZWNhdXNlIG9mIHdyaXRlIGFjY2Vzc2VzLAotdGhlbiBhIGJp dG1hcCByZXByZXNlbnRpbmcgYWxsIHRoZSBjb2RlIGluc2lkZSB0aGUgcGFnZSBpcwotYnVpbHQu IEV2ZXJ5IHN0b3JlIGludG8gdGhhdCBwYWdlIGNoZWNrcyB0aGUgYml0bWFwIHRvIHNlZSBpZiB0 aGUgY29kZQotcmVhbGx5IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkLiBJdCBhdm9pZHMgaW52YWxp ZGF0aW5nIHRoZSBjb2RlIHdoZW4KLW9ubHkgZGF0YSBpcyBtb2RpZmllZCBpbiB0aGUgcGFnZS4K K09uIFJJU0MgdGFyZ2V0cywgY29ycmVjdGx5IHdyaXR0ZW4gc29mdHdhcmUgdXNlcyBtZW1vcnkg YmFycmllcnMgYW5kCitjYWNoZSBmbHVzaGVzLCBzbyBzb21lIG9mIHRoZSBwcm90ZWN0aW9uIGFi b3ZlIHdvdWxkIG5vdCBiZQorbmVjZXNzYXJ5LiBIb3dldmVyLCBRRU1VIHN0aWxsIHJlcXVpcmVz IHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGFsd2F5cworbWF0Y2hlcyB0aGUgdGFyZ2V0IGluc3Ry dWN0aW9ucyBpbiBtZW1vcnkgaW4gb3JkZXIgdG8gaGFuZGxlCitleGNlcHRpb25zIGNvcnJlY3Rs eS4KIAogQG5vZGUgRXhjZXB0aW9uIHN1cHBvcnQKIEBzZWN0aW9uIEV4Y2VwdGlvbiBzdXBwb3J0 CkBAIC00MTgsMTAgKzQ0NCw5IEBACiBlbmNvdW50ZXJlZC4KIAogVGhlIGhvc3QgU0lHU0VHViBh bmQgU0lHQlVTIHNpZ25hbCBoYW5kbGVycyBhcmUgdXNlZCB0byBnZXQgaW52YWxpZAotbWVtb3J5 IGFjY2Vzc2VzLiBUaGUgZXhhY3QgQ1BVIHN0YXRlIGNhbiBiZSByZXRyaWV2ZWQgYmVjYXVzZSBh bGwgdGhlCi14ODYgcmVnaXN0ZXJzIGFyZSBzdG9yZWQgaW4gZml4ZWQgaG9zdCByZWdpc3RlcnMu IFRoZSBzaW11bGF0ZWQgcHJvZ3JhbQotY291bnRlciBpcyBmb3VuZCBieSByZXRyYW5zbGF0aW5n IHRoZSBjb3JyZXNwb25kaW5nIGJhc2ljIGJsb2NrIGFuZCBieQotbG9va2luZyB3aGVyZSB0aGUg aG9zdCBwcm9ncmFtIGNvdW50ZXIgd2FzIGF0IHRoZSBleGNlcHRpb24gcG9pbnQuCittZW1vcnkg YWNjZXNzZXMuIFRoZSBzaW11bGF0ZWQgcHJvZ3JhbSBjb3VudGVyIGlzIGZvdW5kIGJ5CityZXRy YW5zbGF0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGJhc2ljIGJsb2NrIGFuZCBieSBsb29raW5nIHdo ZXJlIHRoZQoraG9zdCBwcm9ncmFtIGNvdW50ZXIgd2FzIGF0IHRoZSBleGNlcHRpb24gcG9pbnQu CiAKIFRoZSB2aXJ0dWFsIENQVSBjYW5ub3QgcmV0cmlldmUgdGhlIGV4YWN0IEBjb2Rle0VGTEFH U30gcmVnaXN0ZXIgYmVjYXVzZQogaW4gc29tZSBjYXNlcyBpdCBpcyBub3QgY29tcHV0ZWQgYmVj YXVzZSBvZiBjb25kaXRpb24gY29kZQpAQCAtNDMxLDE1ICs0NTYsMTAgQEAKIEBub2RlIE1NVSBl bXVsYXRpb24KIEBzZWN0aW9uIE1NVSBlbXVsYXRpb24KIAotRm9yIHN5c3RlbSBlbXVsYXRpb24s IFFFTVUgdXNlcyB0aGUgbW1hcCgpIHN5c3RlbSBjYWxsIHRvIGVtdWxhdGUgdGhlCi10YXJnZXQg Q1BVIE1NVS4gSXQgd29ya3MgYXMgbG9uZyB0aGUgZW11bGF0ZWQgT1MgZG9lcyBub3QgdXNlIGFu IGFyZWEKLXJlc2VydmVkIGJ5IHRoZSBob3N0IE9TIChzdWNoIGFzIHRoZSBhcmVhIGFib3ZlIDB4 YzAwMDAwMDAgb24geDg2Ci1MaW51eCkuCi0KLUluIG9yZGVyIHRvIGJlIGFibGUgdG8gbGF1bmNo IGFueSBPUywgUUVNVSBhbHNvIHN1cHBvcnRzIGEgc29mdAotTU1VLiBJbiB0aGF0IG1vZGUsIHRo ZSBNTVUgdmlydHVhbCB0byBwaHlzaWNhbCBhZGRyZXNzIHRyYW5zbGF0aW9uIGlzCi1kb25lIGF0 IGV2ZXJ5IG1lbW9yeSBhY2Nlc3MuIFFFTVUgdXNlcyBhbiBhZGRyZXNzIHRyYW5zbGF0aW9uIGNh Y2hlIHRvCi1zcGVlZCB1cCB0aGUgdHJhbnNsYXRpb24uCitGb3Igc3lzdGVtIGVtdWxhdGlvbiBR RU1VIHN1cHBvcnRzIGEgc29mdCBNTVUuIEluIHRoYXQgbW9kZSwgdGhlIE1NVQordmlydHVhbCB0 byBwaHlzaWNhbCBhZGRyZXNzIHRyYW5zbGF0aW9uIGlzIGRvbmUgYXQgZXZlcnkgbWVtb3J5Cith Y2Nlc3MuIFFFTVUgdXNlcyBhbiBhZGRyZXNzIHRyYW5zbGF0aW9uIGNhY2hlIHRvIHNwZWVkIHVw IHRoZQordHJhbnNsYXRpb24uCiAKIEluIG9yZGVyIHRvIGF2b2lkIGZsdXNoaW5nIHRoZSB0cmFu c2xhdGVkIGNvZGUgZWFjaCB0aW1lIHRoZSBNTVUKIG1hcHBpbmdzIGNoYW5nZSwgUUVNVSB1c2Vz IGEgcGh5c2ljYWxseSBpbmRleGVkIHRyYW5zbGF0aW9uIGNhY2hlLiBJdApAQCAtNDQ4LDYgKzQ2 OCwzMyBAQAogV2hlbiBNTVUgbWFwcGluZ3MgY2hhbmdlLCBvbmx5IHRoZSBjaGFpbmluZyBvZiB0 aGUgYmFzaWMgYmxvY2tzIGlzCiByZXNldCAoaS5lLiBhIGJhc2ljIGJsb2NrIGNhbiBubyBsb25n ZXIganVtcCBkaXJlY3RseSB0byBhbm90aGVyIG9uZSkuCiAKK0Bub2RlIERldmljZSBlbXVsYXRp b24KK0BzZWN0aW9uIERldmljZSBlbXVsYXRpb24KKworU3lzdGVtcyBlbXVsYXRlZCBieSBRRU1V IGFyZSBvcmdhbml6ZWQgYnkgYm9hcmRzLiBBdCBpbml0aWFsaXphdGlvbgorcGhhc2UsIGVhY2gg Ym9hcmQgaW5zdGFudGlhdGVzIGEgbnVtYmVyIG9mIENQVXMsIGRldmljZXMsIFJBTSBhbmQKK1JP TS4gRWFjaCBkZXZpY2UgaW4gdHVybiBjYW4gYXNzaWduIEkvTyBwb3J0cyBvciBtZW1vcnkgYXJl YXMgKGZvcgorTU1JTykgdG8gaXRzIGhhbmRsZXJzLiBXaGVuIHRoZSBlbXVsYXRpb24gc3RhcnRz LCBhbiBhY2Nlc3MgdG8gdGhlCitwb3J0cyBvciBNTUlPIG1lbW9yeSBhcmVhcyBhc3NpZ25lZCB0 byB0aGUgZGV2aWNlIGNhdXNlcyB0aGUKK2NvcnJlc3BvbmRpbmcgaGFuZGxlciB0byBiZSBjYWxs ZWQuCisKK1JBTSBhbmQgUk9NIGFyZSBoYW5kbGVkIG1vcmUgb3B0aW1hbGx5LCBvbmx5IHRoZSBv ZmZzZXQgdG8gdGhlIGhvc3QKK21lbW9yeSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUgZ3Vlc3Qg YWRkcmVzcy4KKworVGhlIHZpZGVvIFJBTSBvZiBWR0EgYW5kIG90aGVyIGRpc3BsYXkgY2FyZHMg aXMgc3BlY2lhbDogaXQgY2FuIGJlCityZWFkIG9yIHdyaXR0ZW4gZGlyZWN0bHkgbGlrZSBSQU0s IGJ1dCB3cml0ZSBhY2Nlc3NlcyBjYXVzZSB0aGUgbWVtb3J5Cit0byBiZSBtYXJrZWQgd2l0aCBW R0FfRElSVFkgZmxhZyBhcyB3ZWxsLgorCitRRU1VIHN1cHBvcnRzIHNvbWUgZGV2aWNlIGNsYXNz ZXMgbGlrZSBzZXJpYWwgYW5kIHBhcmFsbGVsIHBvcnRzLCBVU0IsCitkcml2ZXMgYW5kIG5ldHdv cmsgZGV2aWNlcywgYnkgcHJvdmlkaW5nIEFQSXMgZm9yIGVhc2llciBjb25uZWN0aW9uIHRvCit0 aGUgZ2VuZXJpYywgaGlnaGVyIGxldmVsIGltcGxlbWVudGF0aW9ucy4gVGhlIEFQSSBoaWRlcyB0 aGUKK2ltcGxlbWVudGF0aW9uIGRldGFpbHMgZnJvbSB0aGUgZGV2aWNlcywgbGlrZSBuYXRpdmUg ZGV2aWNlIHVzZSBvcgorYWR2YW5jZWQgYmxvY2sgZGV2aWNlIGZvcm1hdHMgbGlrZSBRQ09XLgor CitVc3VhbGx5IHRoZSBkZXZpY2VzIGltcGxlbWVudCBhIHJlc2V0IG1ldGhvZCBhbmQgcmVnaXN0 ZXIgc3VwcG9ydCBmb3IKK3NhdmluZyBhbmQgbG9hZGluZyBvZiB0aGUgZGV2aWNlIHN0YXRlLiBU aGUgZGV2aWNlcyBjYW4gYWxzbyB1c2UKK3RpbWVycywgZXNwZWNpYWxseSB0b2dldGhlciB3aXRo IHRoZSB1c2Ugb2YgYm90dG9tIGhhbHZlcyAoQkhzKS4KKwogQG5vZGUgSGFyZHdhcmUgaW50ZXJy dXB0cwogQHNlY3Rpb24gSGFyZHdhcmUgaW50ZXJydXB0cwogCkBAIC01MTMsOSArNTYwLDkgQEAK IGVtdWxhdG9yLgogCiBBY2hpZXZpbmcgc2VsZi12aXJ0dWFsaXphdGlvbiBpcyBub3QgZWFzeSBi ZWNhdXNlIHRoZXJlIG1heSBiZSBhZGRyZXNzCi1zcGFjZSBjb25mbGljdHMuIFFFTVUgc29sdmVz IHRoaXMgcHJvYmxlbSBieSBiZWluZyBhbiBleGVjdXRhYmxlIEVMRgotc2hhcmVkIG9iamVjdCBh cyB0aGUgbGQtbGludXguc28gRUxGIGludGVycHJldGVyLiBUaGF0IHdheSwgaXQgY2FuIGJlCi1y ZWxvY2F0ZWQgYXQgbG9hZCB0aW1lLgorc3BhY2UgY29uZmxpY3RzLiBRRU1VIHVzZXIgZW11bGF0 b3JzIHNvbHZlIHRoaXMgcHJvYmxlbSBieSBiZWluZyBhbgorZXhlY3V0YWJsZSBFTEYgc2hhcmVk IG9iamVjdCBhcyB0aGUgbGQtbGludXguc28gRUxGIGludGVycHJldGVyLiBUaGF0Cit3YXksIGl0 IGNhbiBiZSByZWxvY2F0ZWQgYXQgbG9hZCB0aW1lLgogCiBAbm9kZSBCaWJsaW9ncmFwaHkKIEBz ZWN0aW9uIEJpYmxpb2dyYXBoeQpAQCAtNTY4LDYgKzYxNSwyMiBAQAogQHVybHtodHRwOi8vd3d3 LnR3b29zdHdvLm9yZy99LAogVGhlIFR3b09TdHdvIFBDIHZpcnR1YWxpemVyLgogCitAaXRlbSBb MTJdCitAdXJse2h0dHA6Ly92aXJ0dWFsYm94Lm9yZy99LAorVGhlIFZpcnR1YWxCb3ggUEMgdmly dHVhbGl6ZXIuCisKK0BpdGVtIFsxM10KK0B1cmx7aHR0cDovL3d3dy54ZW4ub3JnL30sCitUaGUg WGVuIGh5cGVydmlzb3IuCisKK0BpdGVtIFsxNF0KK0B1cmx7aHR0cDovL2t2bS5xdW1yYW5ldC5j b20va3Ztd2lraS9Gcm9udF9QYWdlfSwKK0tlcm5lbCBCYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtW TSkuCisKK0BpdGVtIFsxNV0KK0B1cmx7aHR0cDovL3d3dy5ncmVlbnNvY3MuY29tL3Byb2plY3Rz L1FFTVVTeXN0ZW1DfSwKK1FFTVUtU3lzdGVtQywgYSBoYXJkd2FyZSBjby1zaW11bGF0b3IuCisK IEBlbmQgdGFibGUKIAogQG5vZGUgUmVncmVzc2lvbiBUZXN0cwo= ------=_Part_38596_22403054.1223315592166--