Date: Mon, 13 Jan 2014 22:08:55 -0800 (PST) From: Nomad Esst <noname.esst@yahoo.com> To: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: Access pci devices' serial numbers programmatically Message-ID: <1389679735.19797.YahooMailNeo@web162702.mail.bf1.yahoo.com> In-Reply-To: <1389678825.62302.YahooMailNeo@web162702.mail.bf1.yahoo.com> References: <1389515545.51283.YahooMailNeo@web162704.mail.bf1.yahoo.com> <201401131349.06456.jhb@freebsd.org> <1389678825.62302.YahooMailNeo@web162702.mail.bf1.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Thank you. The thing is one of the input arguments of this function is devi= ce_t. How can I get this struct by device name so I can pass it to pci_get_= vpd_readonly function?=0A>Consider that I'm trying to read em's vpd, how ca= n get em's related device_t struct by it's name?=A0=0A>Something like:=0A>d= evice_t get_device_by_name(char dev_name)=0A>=0A>=0A>=0A>=0A>On Monday, Jan= uary 13, 2014 11:49 PM, John Baldwin <jhb@freebsd.org> wrote:=0A>=0A>On Sun= day, January 12, 2014 3:32:25 am Nomad Esst wrote:=0A>>> Hi list=0A>>> Any = experiences on how to do so? Please tell me if you know how can I do =0A>>t= hat?=0A>>=0A>>There are methods available to query VPD data in dev/pci/pciv= ar.h if the=0A>>serial number is stored in VPD (specifically you can call = =0A>>pci_get_vpd_readonly()).=0A>>=0A>>-- =0A>>John Baldwin=0A>>___________= ____________________________________=0A>>freebsd-hackers@freebsd.org mailin= g list=0A>>http://lists.freebsd.org/mailman/listinfo/freebsd-hackers=0A>>= =0A>>To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.= org=0A>>"=0A>>=0A>>=0A>>=0A>_______________________________________________= =0A>freebsd-drivers@freebsd.org mailing list=0A>http://lists.freebsd.org/ma= ilman/listinfo/freebsd-drivers=0A>To unsubscribe, send any mail to "freebsd= -drivers-unsubscribe@freebsd.org=0A>"=0A>=0A> From owner-freebsd-hackers@FreeBSD.ORG Tue Jan 14 11:53:44 2014 Return-Path: <owner-freebsd-hackers@FreeBSD.ORG> Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 02E15F6F; Tue, 14 Jan 2014 11:53:44 +0000 (UTC) Received: from mail-lb0-x235.google.com (mail-lb0-x235.google.com [IPv6:2a00:1450:4010:c04::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DDCD21D7A; Tue, 14 Jan 2014 11:53:42 +0000 (UTC) Received: by mail-lb0-f181.google.com with SMTP id z5so3896311lbh.26 for <multiple recipients>; Tue, 14 Jan 2014 03:53:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=d6UGhFGwE9hczC/NOeLPxylzHppyN6k8ZO1SMaxmvDw=; b=JmHZNgDCV5WlJvWr8L8t1bAahh9sawwGZp2yRkarSFStDvZe3VQFYPw3r2tUPlNGhN wgBWwB4F4zOiVW2WdCxtZMBKllYpr8Tm4QNXwvUPziTxQX0738SvMOAqnAMj71u+9SiJ Z9+Ci7zOgoVqRz9M1/DFewldHt2ZLS8nzDXgs6hjsXiIfBHvAEv/xE8edkI3Es8BBnVV QdSvlbQPagEks4JSzaeDgAvhM5NdjhUirLq6n/ofwb2EbOHoCJx4eqsmWCkYNbj3Onh5 MhwKJIAeQQq7q1jCrGMh4yMFrWYoveRYdStpnc7M7m/CW829hbCSlf3YiyaCd0tSAL+S HP7A== MIME-Version: 1.0 X-Received: by 10.112.137.229 with SMTP id ql5mr244715lbb.76.1389700420936; Tue, 14 Jan 2014 03:53:40 -0800 (PST) Received: by 10.112.129.2 with HTTP; Tue, 14 Jan 2014 03:53:40 -0800 (PST) Date: Tue, 14 Jan 2014 06:53:40 -0500 Message-ID: <CAMzKsXuKJusfMekckBbKR83y5Uu+TwWH2P5QGV0bKHqYKF7-eQ@mail.gmail.com> Subject: Proposed change to Bootstrapping and Kernel Initialization in FreeBSD Architecture Handbook From: =?ISO-8859-1?Q?Sergio_Andr=E9s_G=F3mez_del_Real?= <sergio.g.delreal@gmail.com> To: freebsd-hackers@freebsd.org, freebsd-doc@freebsd.org Content-Type: multipart/mixed; boundary=089e01176f01ef40cf04efecd7a9 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Technical Discussions relating to FreeBSD <freebsd-hackers.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/options/freebsd-hackers>, <mailto:freebsd-hackers-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-hackers/> List-Post: <mailto:freebsd-hackers@freebsd.org> List-Help: <mailto:freebsd-hackers-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-hackers>, <mailto:freebsd-hackers-request@freebsd.org?subject=subscribe> X-List-Received-Date: Tue, 14 Jan 2014 11:53:44 -0000 --089e01176f01ef40cf04efecd7a9 Content-Type: text/plain; charset=ISO-8859-1 I started studying the FreeBSD boot system and found that the documentation is limited and, in some cases, not true; for example it doesn't address appropriately the boot1 stage, stating erroneously that it is limited for booting with a floppy. Anyway, I've been working on an up-to-date version, and would like to hear some feedback. I attach the diff file for doc/en_US.ISO8859-1/books/arch-handbook/boot/chapter.xml. Thanks. --089e01176f01ef40cf04efecd7a9 Content-Type: text/plain; charset=US-ASCII; name="boot.diff" Content-Disposition: attachment; filename="boot.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hqe2zlqx0 SW5kZXg6IGJvb3QvY2hhcHRlci54bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYm9vdC9jaGFwdGVyLnhtbAko cmV2aXNpb24gNDM0NjkpCisrKyBib290L2NoYXB0ZXIueG1sCSh3b3JraW5nIGNvcHkpCkBAIC0z LDYgKzMsNyBAQAogVGhlIEZyZWVCU0QgRG9jdW1lbnRhdGlvbiBQcm9qZWN0CiAKIENvcHlyaWdo dCAoYykgMjAwMiBTZXJnZXkgTHl1YmthIDxkZXZudWxsQHVwdHNvZnQuY29tPgorQ29weXJpZ2h0 IChjKSAyMDE0IFNlcmdpbyBBbmRy6XMgR/NtZXogZGVsIFJlYWwgPFNlcmdpby5HLkRlbFJlYWxA Z21haWwuY29tPgogQWxsIHJpZ2h0cyByZXNlcnZlZAogJEZyZWVCU0QkCiAtLT4KQEAgLTEwLDYg KzExLDcgQEAKICAgPGluZm8+PHRpdGxlPkJvb3RzdHJhcHBpbmcgYW5kIEtlcm5lbCBJbml0aWFs aXphdGlvbjwvdGl0bGU+CiAgICAgPGF1dGhvcmdyb3VwPgogICAgICAgPGF1dGhvcj48cGVyc29u bmFtZT48Zmlyc3RuYW1lPlNlcmdleTwvZmlyc3RuYW1lPjxzdXJuYW1lPkx5dWJrYTwvc3VybmFt ZT48L3BlcnNvbm5hbWU+PGNvbnRyaWI+Q29udHJpYnV0ZWQgYnkgPC9jb250cmliPjwvYXV0aG9y PiA8IS0tIGRldm51bGxAdXB0c29mdC5jb20gIDEyIEp1biAyMDAyIC0tPgorICAgICAgPGF1dGhv cj48cGVyc29ubmFtZT48Zmlyc3RuYW1lPlNlcmdpbyBBbmRy6XM8L2ZpcnN0bmFtZT48c3VybmFt ZT5H821leiBkZWwgUmVhbDwvc3VybmFtZT48L3BlcnNvbm5hbWU+PC9hdXRob3I+IDwhLS0gSmFu IDIwMTQgLS0+CiAgICAgPC9hdXRob3Jncm91cD4KICAgPC9pbmZvPgogICAKQEAgLTIzLDcgKzI1 LDEwIEBACiAgICAgPGluZGV4dGVybT48cHJpbWFyeT5JQS0zMjwvcHJpbWFyeT48L2luZGV4dGVy bT4KICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PmJvb3Rpbmc8L3ByaW1hcnk+PC9pbmRleHRlcm0+ CiAgICAgPGluZGV4dGVybT48cHJpbWFyeT5zeXN0ZW0gaW5pdGlhbGl6YXRpb248L3ByaW1hcnk+ PC9pbmRleHRlcm0+Ci0gICAgPHBhcmE+VGhpcyBjaGFwdGVyIGlzIGFuIG92ZXJ2aWV3IG9mIHRo ZSBib290IGFuZCBzeXN0ZW0KKyAgICA8cGFyYT5UaGUgRnJlZUJTRCBCb290IFN5c3RlbSBpcyBu b3QgYSB0cml2aWFsIHNvZnR3YXJlLiBBcyBzb29uIGFzIHdlIGdldCBleGVjdXRpb24gY29udHJv bCBmcm9tIHRoZSBCSU9TLCB3ZSBtdXN0IGhhbmRsZSBhIGNvbnNpZGVyYWJsZSBhbW91bnQgb2Yg bG93LWxldmVsIGNvbmZpZ3VyYXRpb24gYmVmb3JlIHRoZSBrZXJuZWwgY2FuIGJlIGxvYWRlZCBh bmQgZXhlY3V0ZWQuIFdlIG11c3QsIG1vcmVvdmVyLCBkbyB0aGlzIGluIGEgc2ltcGxlIGFuZCBm bGV4aWJsZSBtYW5uZXIsIGFzIHRvIGFsbG93IHRoZSB1c2VyIGEgZ3JlYXQgZGVhbCBvZiBjdXN0 b21pemF0aW9uIHBvc3NpYmlsaXRpZXMuCisKKworVGhpcyBjaGFwdGVyIGlzIGFuIG92ZXJ2aWV3 IG9mIHRoZSBib290IGFuZCBzeXN0ZW0KICAgICAgIGluaXRpYWxpemF0aW9uIHByb2Nlc3MsIHN0 YXJ0aW5nIGZyb20gdGhlIEJJT1MgKGZpcm13YXJlKSBQT1NULAogICAgICAgdG8gdGhlIGZpcnN0 IHVzZXIgcHJvY2VzcyBjcmVhdGlvbi4gIFNpbmNlIHRoZSBpbml0aWFsIHN0ZXBzIG9mCiAgICAg ICBzeXN0ZW0gc3RhcnR1cCBhcmUgdmVyeSBhcmNoaXRlY3R1cmUgZGVwZW5kZW50LCB0aGUgSUEt MzIKQEAgLTMzLDMxICszOCwxNCBAQAogICA8c2VjdDEgeG1sOmlkPSJib290LW92ZXJ2aWV3Ij4K ICAgICA8dGl0bGU+T3ZlcnZpZXc8L3RpdGxlPgogCi0gICAgPHBhcmE+QSBjb21wdXRlciBydW5u aW5nIEZyZWVCU0QgY2FuIGJvb3QgYnkgc2V2ZXJhbCBtZXRob2RzLAotICAgICAgYWx0aG91Z2gg dGhlIG1vc3QgY29tbW9uIG1ldGhvZCwgYm9vdGluZyBmcm9tIGEgaGFyZGRpc2sgd2hlcmUKLSAg ICAgIHRoZSBPUyBpcyBpbnN0YWxsZWQsIHdpbGwgYmUgZGlzY3Vzc2VkIGhlcmUuICBUaGUgYm9v dCBwcm9jZXNzCi0gICAgICBpcyBkaXZpZGVkIGludG8gc2V2ZXJhbCBzdGVwczo8L3BhcmE+Cisg ICAgPHBhcmE+VGhlIEJvb3QgUHJvY2VzcyBpcyBhbiBleHRyZW1lbHkgbWFjaGluZS1kZXBlbmRl bnQgYWN0aXZpdHk7IG5vdCBvbmx5IGNvZGUgbXVzdCBiZSB3cml0dGVuIGZvciBldmVyeSBjb21w dXRlciBhcmNoaXRlY3R1cmUgY2FzZSwgYnV0IHRoZXJlIG1heSBhbHNvIGJlIGRpZmZlcmVudCBm b3JtcyB0byBib290IHVuZGVyIHRoZSBzYW1lIGFyY2hpdGVjdHVyZS4gRm9yIGV4YW1wbGUsIHRh a2luZyBhIGxvb2sgYXQgdGhlIDxmaWxlbmFtZT4vdXNyL3N5cy9zcmMvYm9vdDwvZmlsZW5hbWU+ IGRpcmVjdG9yeSB3aWxsIHJldmVhbCBhIGdyZWF0IGFtb3VudCBvZiBhcmNoaXRlY3R1cmUtZGVw ZW5kZW50IGNvZGU7IHRoZXJlIGlzIGEgZGlyZWN0b3J5IGZvciBlYWNoIG9mIHRoZSB2YXJpb3Vz IHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLiBGb3IgaW5zdGFuY2UsIHdlIGZpbmQgdGhlIGRpcmVj dG9yaWVzIDxmaWxlbmFtZT5hcm0sIGkzODYsIGlhNjQsIHBvd2VycGMsIDwvZmlsZW5hbWU+ZXRj LiBNb3Jlb3ZlciwgaWYgd2UgZW50ZXIgdGhlIGRpcmVjdG9yeSBzcGVjaWZpYyB0byB0aGUgeDg2 IGFyY2hpdGVjdHVyZSAodGhhdCBpcywgPGZpbGVuYW1lPmkzODY8L2ZpbGVuYW1lPiksIHdlIGNh biBzZWUgZGlyZWN0b3JpZXMgYmVsb25naW5nIHRvIGRpZmZlcmVudCBib290IHN0YW5kYXJkcy4g Rm9yIGV4YW1wbGUsIDxmaWxlbmFtZT5tYnI8L2ZpbGVuYW1lPiwgd2hpY2ggc3RhbmRzIGZvciBN YXN0ZXIgQm9vdCBSZWNvcmQsIDxmaWxlbmFtZT5ncHQ8L2ZpbGVuYW1lPiwgd2hpY2ggc3RhbmRz IGZvciBHVUlEIFBhcnRpdGlvbiBUYWJsZSwgb3IgPGZpbGVuYW1lPmVmaTwvZmlsZW5hbWU+LCB3 aGljaCBzdGFuZHMgZm9yIEV4dGVuc2libGUgRmlybXdhcmUgSW50ZXJmYWNlLiBFYWNoIGJvb3Qg c3RhbmRhcmQgaGFzIGdvdCBpdHMgb3duIGNvbnZlbnRpb25zIGFuZCBkYXRhIHN0cnVjdHVyZXMg dGhhdCBjb25mb3JtIHRvIHRoYXQgc3RhbmRhcmQuCiAKLSAgICA8aXRlbWl6ZWRsaXN0PgotICAg ICAgPGxpc3RpdGVtPjxwYXJhPkJJT1MgUE9TVDwvcGFyYT48L2xpc3RpdGVtPgotICAgICAgPGxp c3RpdGVtPjxwYXJhPjxsaXRlcmFsPmJvb3QwPC9saXRlcmFsPiBzdGFnZTwvcGFyYT48L2xpc3Rp dGVtPgotICAgICAgPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmJvb3QyPC9saXRlcmFsPiBzdGFn ZTwvcGFyYT48L2xpc3RpdGVtPgotICAgICAgPGxpc3RpdGVtPjxwYXJhPmxvYWRlciBzdGFnZTwv cGFyYT48L2xpc3RpdGVtPgotICAgICAgPGxpc3RpdGVtPjxwYXJhPmtlcm5lbCBpbml0aWFsaXph dGlvbjwvcGFyYT48L2xpc3RpdGVtPgotICAgIDwvaXRlbWl6ZWRsaXN0PgorSGVyZSB3ZSBzdHVk eSBpbiBkZXRhaWwgdGhlIGJvb3QgcHJvY2VzcyBmb3IgdGhlIHg4NiBhcmNoaXRlY3R1cmUgdXNp bmcgdGhlIE1CUiBib290IHN0YW5kYXJkLjwvcGFyYT4KKzxwYXJhPlRoZSBrZXkgdG8gdW5kZXJz dGFuZCB0aGlzIHByb2Nlc3MgaXMgdGhhdCBpdCBpcyBkaXZpZGVkIGludG8gYSBzZXF1ZW5jZSBv ZiA8ZW1waGFzaXM+c3RhZ2VzPC9lbXBoYXNpcz4sIGVhY2ggb25lIG1vcmUgY29tcGxleCB0aGFu IHRoZSBwcmVjZWRpbmcgb25lLiBUaGVzZSBzdGFnZXMgYXJlIG5hbWVkIDxlbXBoYXNpcz5ib290 MSwgYm9vdDI8L2VtcGhhc2lzPiBhbmQgPGVtcGhhc2lzPmxvYWRlcjwvZW1waGFzaXM+IGluICZt YW4uYm9vdC44OyBmb3IgdGhlIGZpcnN0LCBzZWNvbmQgYW5kIHRoaXJkIHN0YWdlIHJlc3BlY3Rp dmVseS4gVGhlIEJvb3QgU3lzdGVtIGV4ZWN1dGVzIGVhY2ggc3RhZ2UgaW4gc2VxdWVuY2UsIGFu ZCB0aGUgdGhpcmQgYW5kIGxhc3Qgc3RhZ2UsIDxlbXBoYXNpcz5sb2FkZXI8L2VtcGhhc2lzPiwg aXMgcmVzcG9uc2libGUgZm9yIGxvYWRpbmcgdGhlIEZyZWVCU0Qga2VybmVsLiBXZSB3aWxsIGxv b2sgYXQgZWFjaCBzdGFnZSBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLiBBZGRpdGlvbmFsbHks IHByaW9yIHRvIHRoZSBmaXJzdCBzdGFnZSAoPGVtcGhhc2lzPmJvb3QxPC9lbXBoYXNpcz4pLCBh biBhZGRpdGlvbmFsIHN0ZXAgaXMgbmVjZXNzYXJ5IGluIHRoZSBwcm9jZXNzLiBUaGlzIHN0ZXAg aXMgdGhlIE1hc3RlciBCb290IFJlY29yZCwgY29udmVuaWVudGx5IGNhbGxlZCA8ZW1waGFzaXM+ Ym9vdDAuPC9lbXBoYXNpcz48L3BhcmE+CiAKLSAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJJT1Mg UE9TVDwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PmJvb3Qw PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgotICAgIDxpbmRleHRlcm0+PHByaW1hcnk+Ym9vdDI8L3By aW1hcnk+PC9pbmRleHRlcm0+Ci0gICAgPGluZGV4dGVybT48cHJpbWFyeT5sb2FkZXI8L3ByaW1h cnk+PC9pbmRleHRlcm0+Ci0gICAgPHBhcmE+VGhlIDxsaXRlcmFsPmJvb3QwPC9saXRlcmFsPiBh bmQgPGxpdGVyYWw+Ym9vdDI8L2xpdGVyYWw+Ci0gICAgICBzdGFnZXMgYXJlIGFsc28gcmVmZXJy ZWQgdG8gYXMgPGVtcGhhc2lzPmJvb3RzdHJhcCBzdGFnZXMgMSBhbmQKLSAgICAgIDI8L2VtcGhh c2lzPiBpbiAmbWFuLmJvb3QuODsgYXMgdGhlIGZpcnN0IHN0ZXBzIGluIEZyZWVCU0QncwotICAg ICAgMy1zdGFnZSBib290c3RyYXBwaW5nIHByb2NlZHVyZS4gIFZhcmlvdXMgaW5mb3JtYXRpb24g aXMgcHJpbnRlZAotICAgICAgb24gdGhlIHNjcmVlbiBhdCBlYWNoIHN0YWdlLCBzbyB5b3UgbWF5 IHZpc3VhbGx5IHJlY29nbml6ZSB0aGVtCi0gICAgICB1c2luZyB0aGUgdGFibGUgdGhhdCBmb2xs b3dzLiAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYWN0dWFsIGRhdGEKLSAgICAgIG1heSBkaWZmZXIg ZnJvbSBtYWNoaW5lIHRvIG1hY2hpbmU6PC9wYXJhPgotCis8cGFyYT4KK0hlcmUgaXMgYW4gZXhh bXBsZSBvZiB0aGUgb3V0cHV0IGdlbmVyYXRlZCBieSB0aGUgZGlmZmVyZW50IGJvb3Qgc3RhZ2Vz LiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhY3R1YWwgZGF0YSBtYXkgZGlmZmVyIGZyb20gbWFjaGlu ZSB0byBtYWNoaW5lOgorPC9wYXJhPgogICAgIDxpbmZvcm1hbHRhYmxlIGZyYW1lPSJub25lIiBw Z3dpZGU9IjAiPgogICAgICAgPHRncm91cCBjb2xzPSIyIj4KIAk8dGJvZHk+CkBAIC0xMTAsMjYg Kzk4LDQ4IEBACiAJPC90Ym9keT4KICAgICAgIDwvdGdyb3VwPgogICAgIDwvaW5mb3JtYWx0YWJs ZT4KKzxwYXJhPgorVGhlIHJlc3Qgb2YgdGhpcyBjaGFwdGVyIGNvbXByaXNlcyB0aGUgZm9sbG93 aW5nIHNlY3Rpb25zOgorPC9wYXJhPgorCisgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgIDxsaXN0 aXRlbT48cGFyYT5UaGUgQklPUzwvcGFyYT48L2xpc3RpdGVtPgorICAgICAgPGxpc3RpdGVtPjxw YXJhPlRoZSBNYXN0ZXIgQm9vdCBSZWNvcmQ8L3BhcmE+PC9saXN0aXRlbT4KKyAgICAgIDxsaXN0 aXRlbT48cGFyYT48bGl0ZXJhbD5ib290MTwvbGl0ZXJhbD4gc3RhZ2U8L3BhcmE+PC9saXN0aXRl bT4KKyAgICAgIDxsaXN0aXRlbT48cGFyYT5UaGUgQlRYIFNlcnZlcjwvcGFyYT48L2xpc3RpdGVt PgorPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmJvb3QyPC9saXRlcmFsPiBzdGFnZTwvcGFyYT48 L2xpc3RpdGVtPgorICAgICAgPGxpc3RpdGVtPjxwYXJhPjxsaXRlcmFsPmxvYWRlcjwvbGl0ZXJh bD4gc3RhZ2U8L3BhcmE+PC9saXN0aXRlbT4KKyAgICAgIDxsaXN0aXRlbT48cGFyYT5LZXJuZWwg SW5pdGlhbGl6YXRpb248L3BhcmE+PC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKwor ICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QklPUyBQT1NUPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgor ICAgIDxpbmRleHRlcm0+PHByaW1hcnk+TUJSIGFuZCBib290MDwvcHJpbWFyeT48L2luZGV4dGVy bT4KKyAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PmJvb3QxPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgor ICAgIDxpbmRleHRlcm0+PHByaW1hcnk+VGhlIEJUWCBTZXJ2ZXI8L3ByaW1hcnk+PC9pbmRleHRl cm0+CisgICAgPGluZGV4dGVybT48cHJpbWFyeT5CVFggY2xpZW50OiBib290MjwvcHJpbWFyeT48 L2luZGV4dGVybT4KKyAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJUWCBjbGllbnQ6IGxvYWRlcjwv cHJpbWFyeT48L2luZGV4dGVybT4KKwogICA8L3NlY3QxPgogCiAgIDxzZWN0MSB4bWw6aWQ9ImJv b3QtYmlvcyI+Ci0gICAgPHRpdGxlPkJJT1MgUE9TVDwvdGl0bGU+CiAKKyAgICA8dGl0bGU+VGhl IEJJT1M8L3RpdGxlPgorCiAgICAgPHBhcmE+V2hlbiB0aGUgUEMgcG93ZXJzIG9uLCB0aGUgcHJv Y2Vzc29yJ3MgcmVnaXN0ZXJzIGFyZSBzZXQKICAgICAgIHRvIHNvbWUgcHJlZGVmaW5lZCB2YWx1 ZXMuICBPbmUgb2YgdGhlIHJlZ2lzdGVycyBpcyB0aGUKICAgICAgIDxlbXBoYXNpcz5pbnN0cnVj dGlvbiBwb2ludGVyPC9lbXBoYXNpcz4gcmVnaXN0ZXIsIGFuZCBpdHMgdmFsdWUKICAgICAgIGFm dGVyIGEgcG93ZXIgb24gaXMgd2VsbCBkZWZpbmVkOiBpdCBpcyBhIDMyLWJpdCB2YWx1ZSBvZgot ICAgICAgMHhmZmZmZmZmMC4gIFRoZSBpbnN0cnVjdGlvbiBwb2ludGVyIHJlZ2lzdGVyIHBvaW50 cyB0byBjb2RlIHRvCi0gICAgICBiZSBleGVjdXRlZCBieSB0aGUgcHJvY2Vzc29yLiAgT25lIG9m IHRoZSByZWdpc3RlcnMgaXMgdGhlCisgICAgICA8bGl0ZXJhbD4weGZmZmZmZmYwPC9saXRlcmFs Pi4gIFRoZSBpbnN0cnVjdGlvbiBwb2ludGVyIHJlZ2lzdGVyIChhbHNvIGtub3duIGFzIHRoZSBQ cm9ncmFtIENvdW50ZXIpIHBvaW50cyB0byBjb2RlIHRvCisgICAgICBiZSBleGVjdXRlZCBieSB0 aGUgcHJvY2Vzc29yLiAgQW5vdGhlciBpbXBvcnRhbnQgcmVnaXN0ZXIgaXMgdGhlCiAgICAgICA8 bGl0ZXJhbD5jcjA8L2xpdGVyYWw+IDMyLWJpdCBjb250cm9sIHJlZ2lzdGVyLCBhbmQgaXRzIHZh bHVlCi0gICAgICBqdXN0IGFmdGVyIHRoZSByZWJvb3QgaXMgMC4gIE9uZSBvZiB0aGUgY3IwJ3Mg Yml0cywgdGhlIGJpdCBQRQorICAgICAganVzdCBhZnRlciB0aGUgcmVib290IGlzIDxsaXRlcmFs PjA8L2xpdGVyYWw+LiAgT25lIG9mIHRoZSA8bGl0ZXJhbD5jcjA8L2xpdGVyYWw+J3MgYml0cywg dGhlIGJpdCBQRQogICAgICAgKFByb3RlY3Rpb24gRW5hYmxlZCkgaW5kaWNhdGVzIHdoZXRoZXIg dGhlIHByb2Nlc3NvciBpcyBydW5uaW5nCi0gICAgICBpbiBwcm90ZWN0ZWQgb3IgcmVhbCBtb2Rl LiAgU2luY2UgYXQgYm9vdCB0aW1lIHRoaXMgYml0IGlzCi0gICAgICBjbGVhcmVkLCB0aGUgcHJv Y2Vzc29yIGJvb3RzIGluIHJlYWwgbW9kZS4gIFJlYWwgbW9kZSBtZWFucywKKyAgICAgIGluIDMy LWJpdCBwcm90ZWN0ZWQgb3IgMTYtYml0IHJlYWwgbW9kZS4gIFNpbmNlIGF0IGJvb3QgdGltZSB0 aGlzIGJpdCBpcworICAgICAgY2xlYXJlZCwgdGhlIHByb2Nlc3NvciBib290cyBpbiAxNi1iaXQg cmVhbCBtb2RlLiAgUmVhbCBtb2RlIG1lYW5zLAogICAgICAgYW1vbmcgb3RoZXIgdGhpbmdzLCB0 aGF0IGxpbmVhciBhbmQgcGh5c2ljYWwgYWRkcmVzc2VzIGFyZQotICAgICAgaWRlbnRpY2FsLjwv cGFyYT4KKyAgICAgIGlkZW50aWNhbC4gVGhlIHJlYXNvbiBmb3IgdGhlIHByb2Nlc3NvciBub3Qg dG8gc3RhcnQgaW1tZWRpYXRlbHkgaW4gMzItYml0IHByb3RlY3RlZCBtb2RlIGlzIGJhY2t3YXJk cyBjb21wYXRpYmlsaXR5LiBJbiBwYXJ0aWN1bGFyLCB0aGUgYm9vdCBwcm9jZXNzIHJlbGllcyBv biB0aGUgc2VydmljZXMgcHJvdmlkZWQgYnkgdGhlIEJJT1MsIGFuZCB0aGUgQklPUyBpdHNlbGYg d29yayBpbiBsZWdhY3ksIDE2LWJpdCBjb2RlLjwvcGFyYT4KIAotICAgIDxwYXJhPlRoZSB2YWx1 ZSBvZiAweGZmZmZmZmYwIGlzIHNsaWdodGx5IGxlc3MgdGhlbiA0R2IsIHNvIHVubGVzcworICAg IDxwYXJhPlRoZSB2YWx1ZSBvZiA8bGl0ZXJhbD4weGZmZmZmZmYwPC9saXRlcmFsPiBpcyBzbGln aHRseSBsZXNzIHRoZW4gNEdiLCBzbyB1bmxlc3MKICAgICAgIHRoZSBtYWNoaW5lIGhhcyA0R2Ig cGh5c2ljYWwgbWVtb3J5LCBpdCBjYW5ub3QgcG9pbnQgdG8gYSB2YWxpZAogICAgICAgbWVtb3J5 IGFkZHJlc3MuICBUaGUgY29tcHV0ZXIncyBoYXJkd2FyZSB0cmFuc2xhdGVzIHRoaXMgYWRkcmVz cwogICAgICAgc28gdGhhdCBpdCBwb2ludHMgdG8gYSBCSU9TIG1lbW9yeSBibG9jay48L3BhcmE+ CkBAIC0xMzksNyArMTQ5LDcgQEAKICAgICAgIGhhcyBhIHJlbGF0aXZlbHkgc21hbGwgYW1vdW50 IG9mIHJlYWQtb25seSBtZW1vcnkgKFJPTSkuICBUaGlzCiAgICAgICBtZW1vcnkgY29udGFpbnMg dmFyaW91cyBsb3ctbGV2ZWwgcm91dGluZXMgdGhhdCBhcmUgc3BlY2lmaWMgdG8KICAgICAgIHRo ZSBoYXJkd2FyZSBzdXBwbGllZCB3aXRoIHRoZSBtb3RoZXJib2FyZC4gIFNvLCB0aGUgcHJvY2Vz c29yCi0gICAgICB3aWxsIGZpcnN0IGp1bXAgdG8gdGhlIGFkZHJlc3MgMHhmZmZmZmZmMCwgd2hp Y2ggcmVhbGx5IHJlc2lkZXMKKyAgICAgIHdpbGwgZmlyc3QganVtcCB0byB0aGUgYWRkcmVzcyA8 bGl0ZXJhbD4weGZmZmZmZmYwPC9saXRlcmFsPiwgd2hpY2ggcmVhbGx5IHJlc2lkZXMKICAgICAg IGluIHRoZSBCSU9TJ3MgbWVtb3J5LiAgVXN1YWxseSB0aGlzIGFkZHJlc3MgY29udGFpbnMgYSBq dW1wCiAgICAgICBpbnN0cnVjdGlvbiB0byB0aGUgQklPUydzIFBPU1Qgcm91dGluZXMuPC9wYXJh PgogCkBAIC0xNTQsNyArMTY0LDcgQEAKICAgICA8cGFyYT5UaGUgdmVyeSBsYXN0IHRoaW5nIGlu IHRoZSBQT1NUIGlzIHRoZSA8bGl0ZXJhbD5JTlQKIAkweDE5PC9saXRlcmFsPiBpbnN0cnVjdGlv bi4gIFRoYXQgaW5zdHJ1Y3Rpb24gcmVhZHMgNTEyIGJ5dGVzCiAgICAgICBmcm9tIHRoZSBmaXJz dCBzZWN0b3Igb2YgYm9vdCBkZXZpY2UgaW50byB0aGUgbWVtb3J5IGF0IGFkZHJlc3MKLSAgICAg IDB4N2MwMC4gIFRoZSB0ZXJtIDxlbXBoYXNpcz5maXJzdCBzZWN0b3I8L2VtcGhhc2lzPiBvcmln aW5hdGVzCisgICAgICA8bGl0ZXJhbD4weDdjMDA8L2xpdGVyYWw+LiAgVGhlIHRlcm0gPGVtcGhh c2lzPmZpcnN0IHNlY3RvcjwvZW1waGFzaXM+IG9yaWdpbmF0ZXMKICAgICAgIGZyb20gaGFyZGRy aXZlIGFyY2hpdGVjdHVyZSwgd2hlcmUgdGhlIG1hZ25ldGljIHBsYXRlIGlzIGRpdmlkZWQKICAg ICAgIHRvIGEgbnVtYmVyIG9mIGN5bGluZHJpY2FsIHRyYWNrcy4gIFRyYWNrcyBhcmUgbnVtYmVy ZWQsIGFuZAogICAgICAgZXZlcnkgdHJhY2sgaXMgZGl2aWRlZCBieSBhIG51bWJlciAodXN1YWxs eSA2NCkgc2VjdG9ycy4gIFRyYWNrCkBAIC0xNjYsMjggKzE3NiwyOSBAQAogCSAgdXRpbGl0aWVz IHN1Y2ggYXMgJm1hbi5kaXNrbGFiZWwuODsgbWF5IHN0b3JlIHRoZQogCSAgaW5mb3JtYXRpb24g aW4gdGhpcyBhcmVhLCBtb3N0bHkgaW4gdGhlIHNlY29uZAogCSAgc2VjdG9yLjwvcGFyYT48L2Zv b3Rub3RlPi48L3BhcmE+Cis8cGFyYT5UaGlzIHNlY3RvciBpcyBvdXIgYm9vdC1zZXF1ZW5jZSBz dGFydGluZyBwb2ludDsgYXMgd2Ugd2lsbCBzZWUsIHRoaXMgc2VjdG9yIGlzIGluIGZhY3Qgb3Vy IDxmaWxlbmFtZT5ib290MDwvZmlsZW5hbWU+IHByb2dyYW0uIEEganVtcCBpcyBtYWRlIGJ5IHRo ZSBCSU9TIHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPiBzbyBpdCBzdGFydHMg ZXhlY3V0aW5nLjwvcGFyYT4KICAgPC9zZWN0MT4KIAogICA8c2VjdDEgeG1sOmlkPSJib290LWJv b3QwIj4KLSAgICA8dGl0bGU+PGxpdGVyYWw+Ym9vdDA8L2xpdGVyYWw+IFN0YWdlPC90aXRsZT4K KyAgICA8dGl0bGU+VGhlIE1hc3RlciBCb290IFJlY29yZDwvdGl0bGU+CiAKICAgICA8aW5kZXh0 ZXJtPjxwcmltYXJ5Pk1CUjwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICA8cGFyYT5UYWtlIGEg bG9vayBhdCB0aGUgZmlsZSA8ZmlsZW5hbWU+L2Jvb3QvYm9vdDA8L2ZpbGVuYW1lPi4KLSAgICAg IFRoaXMgaXMgYSBzbWFsbCA1MTItYnl0ZSBmaWxlLCBhbmQgaXQgaXMgZXhhY3RseSB3aGF0IEZy ZWVCU0QncworPHBhcmE+CitBZnRlciBjb250cm9sIGlzIHJlY2VpdmVkIGZyb20gdGhlIEJJT1Mg YXQgbWVtb3J5IGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPiwgPGZpbGVuYW1lPmJv b3QwPC9maWxlbmFtZT4gc3RhcnRzIGV4ZWN1dGluZzsgaXQgaXMgdGhlIGZpcnN0IHBpZWNlIG9m IGNvZGUgdW5kZXIgb3VyIGNvbnRyb2wuIEluIGVzc2VuY2UsIHRoZSB0YXNrIG9mIDxmaWxlbmFt ZT5ib290MDwvZmlsZW5hbWU+IGlzIHF1aXRlIHNpbXBsZTogc2NhbiB0aGUgUGFydGl0aW9uIFRh YmxlIGFuZCBsZXQgdGhlIHVzZXIgY2hvb3NlIHdoaWNoIHBhcnRpdGlvbiB0byBib290IGZyb20u IFRoZSBQYXJ0aXRpb24gVGFibGUgaXMgYSBzcGVjaWFsLCBzdGFuZGFyZCBkYXRhIHN0cnVjdHVy ZSBlbWJlZGRlZCBpbiB0aGUgTUJSIChoZW5jZSBlbWJlZGRlZCBpbiA8ZmlsZW5hbWU+Ym9vdDA8 L2ZpbGVuYW1lPikgZGVzY3JpYmluZyB0aGUgNCBzdGFuZGFyZCBQQyBwYXJ0aXRpb25zIDxmb290 bm90ZT48cGFyYT5lbi53aWtpcGVkaWEub3JnL3dpa2kvTWFzdGVyX2Jvb3RfcmVjb3JkPC9wYXJh PjwvZm9vdG5vdGU+LgorPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gcmVzaWRlcyBpbiB0aGUg ZmlsZXN5c3RlbSBhdCBsb2NhdGlvbiA8ZmlsZW5hbWU+L2Jvb3QvYm9vdDA8L2ZpbGVuYW1lPi4K KyAgICAgIEl0IGlzIGEgc21hbGwgNTEyLWJ5dGUgZmlsZSwgYW5kIGl0IGlzIGV4YWN0bHkgd2hh dCBGcmVlQlNEJ3MKICAgICAgIGluc3RhbGxhdGlvbiBwcm9jZWR1cmUgd3JvdGUgdG8geW91ciBo YXJkZGlzaydzIE1CUiBpZiB5b3UgY2hvc2UKICAgICAgIHRoZSA8cXVvdGU+Ym9vdG1hbmFnZXI8 L3F1b3RlPiBvcHRpb24gYXQgaW5zdGFsbGF0aW9uCi0gICAgICB0aW1lLjwvcGFyYT4KKyAgICAg IHRpbWU7IGluZGVlZCwgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gPGVtcGhhc2lzPmlzPC9l bXBoYXNpcz4gdGhlIE1CUi48L3BhcmE+CiAKICAgICA8cGFyYT5BcyBtZW50aW9uZWQgcHJldmlv dXNseSwgdGhlIDxsaXRlcmFsPklOVCAweDE5PC9saXRlcmFsPgogICAgICAgaW5zdHJ1Y3Rpb24g bG9hZHMgYW4gTUJSLCBpLmUuLCB0aGUgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4KLSAgICAg IGNvbnRlbnQsIGludG8gdGhlIG1lbW9yeSBhdCBhZGRyZXNzIDB4N2MwMC4gIFRha2luZyBhIGxv b2sgYXQKLSAgICAgIHRoZSBmaWxlIDxmaWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QwL2Jvb3Qw LlM8L2ZpbGVuYW1lPiBjYW4KLSAgICAgIGdpdmUgYSBndWVzcyBhdCB3aGF0IGlzIGhhcHBlbmlu ZyB0aGVyZSAtIHRoaXMgaXMgdGhlIGJvb3QKLSAgICAgIG1hbmFnZXIsIHdoaWNoIGlzIGFuIGF3 ZXNvbWUgcGllY2Ugb2YgY29kZSB3cml0dGVuIGJ5IFJvYmVydAorICAgICAgY29udGVudCwgaW50 byB0aGUgbWVtb3J5IGF0IGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPi4gIFRoZSBz b3VyY2UgZmlsZSBmb3IgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gY2FuIGJlIGZvdW5kIGlu IDxmaWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QwL2Jvb3QwLlM8L2ZpbGVuYW1lPiAtIHdoaWNo IGlzIGFuIGF3ZXNvbWUgcGllY2Ugb2YgY29kZSB3cml0dGVuIGJ5IFJvYmVydAogICAgICAgTm9y ZGllci48L3BhcmE+CiAKLSAgICA8cGFyYT5UaGUgTUJSLCBvciwgPGZpbGVuYW1lPmJvb3QwPC9m aWxlbmFtZT4sIGhhcyBhIHNwZWNpYWwKLSAgICAgIHN0cnVjdHVyZSBzdGFydGluZyBmcm9tIG9m ZnNldCAweDFiZSwgY2FsbGVkIHRoZQorCisgICAgPHBhcmE+QXMgcG9pbnRlZCBvdXQgZWFybGll ciwgdGhlIE1CUiwgb3IgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4sIGhhcyBhIHNwZWNpYWwK KyAgICAgIHN0cnVjdHVyZSBzdGFydGluZyBmcm9tIG9mZnNldCA8bGl0ZXJhbD4weDFiZTwvbGl0 ZXJhbD4sIGNhbGxlZCB0aGUKICAgICAgIDxlbXBoYXNpcz5wYXJ0aXRpb24gdGFibGU8L2VtcGhh c2lzPi4gIEl0IGhhcyA0IHJlY29yZHMgb2YgMTYKICAgICAgIGJ5dGVzIGVhY2gsIGNhbGxlZCA8 ZW1waGFzaXM+cGFydGl0aW9uIHJlY29yZHM8L2VtcGhhc2lzPiwgd2hpY2gKICAgICAgIHJlcHJl c2VudCBob3cgdGhlIGhhcmRkaXNrKHMpIGFyZSBwYXJ0aXRpb25lZCwgb3IsIGluIEZyZWVCU0Qn cwpAQCAtMjIyLDU2ICsyMzMsNDExIEBACiAgICAgICBkaWZmZXJlbnQgd2F5czogTEJBIChMb2dp Y2FsIEJsb2NrIEFkZHJlc3NpbmcpIGhhcyB0aGUgc3RhcnRpbmcKICAgICAgIHNlY3RvciBmb3Ig dGhlIHBhcnRpdGlvbiBhbmQgdGhlIHBhcnRpdGlvbidzIGxlbmd0aCwgd2hpbGUgQ0hTCiAgICAg ICAoQ3lsaW5kZXIgSGVhZCBTZWN0b3IpIGhhcyBjb29yZGluYXRlcyBmb3IgdGhlIGZpcnN0IGFu ZCBsYXN0Ci0gICAgICBzZWN0b3JzIG9mIHRoZSBwYXJ0aXRpb24uPC9wYXJhPgorICAgICAgc2Vj dG9ycyBvZiB0aGUgcGFydGl0aW9uLiBUaGUgcGFydGl0aW9uIHRhYmxlIGVuZHMgd2l0aCB0aGUg c3BlY2lhbCBzaWduYXR1cmUgPGxpdGVyYWw+MHhhYTU1PC9saXRlcmFsPi48L3BhcmE+Cis8cGFy YT5JdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0LCBiZWNhdXNlIG9mIHRoZSBzaXplIGNvbnRy YWludCBvZiB0aGUgTUJSIChpdCBtdXN0IGZpdCBpbiA1MTIgYnl0ZXMsIHRoYXQgaXMsIGluIDEg ZGlzayBzZWN0b3IpLCBhbmQgYmVjYXVzZSBjYXJlIG11c3QgYmUgdGFrZW4gd2hlbiBoYW5kbGlu ZyB0aGUgUGFydGl0aW9uIFRhYmxlICh3aGljaCBpcyBlbWJlZGRlZCBpbiB0aGUgTUJSIGl0c2Vs ZiksIHRoaXMgcHJvZ3JhbSBtYWtlIHVzZSBvZiBsaXR0bGUgbG93LWxldmVsICd0cmlja3MnLCBs aWtlIDxxdW90ZT48ZW1waGFzaXM+Li4udXNpbmcgc2lkZSBlZmZlY3RzIG9mIGNlcnRhaW4gaW5z dHJ1Y3Rpb25zLCByZXVzaW5nIHJlZ2lzdGVyIHZhbHVlcyBmcm9tIHByZXZpb3VzIG9wZXJhdGlv bnMsIGV0Yy48L2VtcGhhc2lzPjwvcXVvdGU+LCBzbyBhcyB0byBtYWtlIHRoZSBtb3N0IG91dCBv ZiB0aGUgbGVhc3QgcG9zc2libGUgaW5zdHJ1Y3Rpb25zLiBGb3IgdGhpcyByZWFzb24sIGV4dHJl bWUgY2FyZSBtdXN0IGJlIHRha2VuIHdoZW4gbW9kaWZ5aW5nIDxmaWxlbmFtZT5ib290MC5TPC9m aWxlbmFtZT4uPC9wYXJhPgorPHBhcmE+CitBbHNvLCBub3RlIHRoYXQgdGhlIDxmaWxlbmFtZT5i b290MC5TPC9maWxlbmFtZT4gc291cmNlIGZpbGUgaXMgYXNzZW1ibGVkICJhcyBpcyI7IGluc3Ry dWN0aW9ucyBhcmUgdHJhbnNsYXRlZCBvbmUgYnkgb25lIHRvIGJpbmFyeSwgd2l0aCBubyBhZGRp dGlvbmFsIGluZm9ybWF0aW9uIChubyBFTEYgZmlsZSBmb3JtYXQsIGZvciBleGFtcGxlKS4gVGhp cyBraW5kIG9mIGxvdy1sZXZlbCBjb250cm9sIGlzIGFjaGlldmVkIGF0IGxpbmsgdGltZSB0aHJv dWdoIHNwZWNpYWwgY29udHJvbCBmbGFncyBwYXNzZWQgdG8gdGhlIGxpbmtlci4gRm9yIGV4YW1w bGUsIHRoZSB0ZXh0IHNlY3Rpb24gb2YgdGhlIHByb2dyYW0gaXMgc2V0IHRvIGJlIGxvY2F0ZWQg YXQgYWRkcmVzcyA8bGl0ZXJhbD4weDYwMDwvbGl0ZXJhbD4uIEluIHByYWN0aWNlIHRoaXMgbWVh bnMgdGhhdCA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBtdXN0IGJlIGxvYWRlZCB0byBtZW1v cnkgYWRkcmVzcyA8bGl0ZXJhbD4weDYwMDwvbGl0ZXJhbD4gaW4gb3JkZXIgdG8gZnVuY3Rpb24g cHJvcGVybHkuPC9wYXJhPgogCi0gICAgPHBhcmE+VGhlIGJvb3QgbWFuYWdlciBzY2FucyB0aGUg cGFydGl0aW9uIHRhYmxlIGFuZCBwcmludHMgdGhlCi0gICAgICBtZW51IG9uIHRoZSBzY3JlZW4g c28gdGhlIHVzZXIgY2FuIHNlbGVjdCB3aGF0IGRpc2sgYW5kIHdoYXQKLSAgICAgIHNsaWNlIHRv IGJvb3QuICBCeSBwcmVzc2luZyBhbiBhcHByb3ByaWF0ZSBrZXksCi0gICAgICA8ZmlsZW5hbWU+ Ym9vdDA8L2ZpbGVuYW1lPiBwZXJmb3JtcyB0aGUgZm9sbG93aW5nCi0gICAgICBhY3Rpb25zOjwv cGFyYT4KKzxwYXJhPkl0IGlzIGFsc28gd29ydGggbG9va2luZyBhdCB0aGUgTWFrZWZpbGUgZm9y IGJvb3QwICg8ZmlsZW5hbWU+c3lzL2Jvb3QvaTM4Ni9ib290MC9NYWtlZmlsZTwvZmlsZW5hbWU+ KSwgYXMgaXQgZGVmaW5lcyBzb21lIG9mIGl0cyBiZWhhdmlvdXIuIEZvciBpbnN0YW5jZSwgaWYg YSB0ZXJtaW5hbCBjb25uZWN0ZWQgdG8gdGhlIHNlcmlhbCBwb3J0IChDT00gMSkgaXMgdXNlZCBm b3IgSS9PLCB0aGUgbWFjcm8gPGxpdGVyYWw+U0lPPC9saXRlcmFsPiBtdXN0IGJlIGRlZmluZWQg KDxsaXRlcmFsPi1EU0lPPC9saXRlcmFsPikuIE90aGVyIG9wdGlvbnMgaW5jbHVkZSBlbmFibGlu ZyBib290IHRocm91Z2ggUFhFIHByZXNzaW5nIEY2ICg8bGl0ZXJhbD4tRFBYRTwvbGl0ZXJhbD4p LiBBZGRpdGlvbmFsbHksIHRoZSBwcm9ncmFtIGRlZmluZXMgYSBzZXQgb2YgPGVtcGhhc2lzPmZs YWdzPC9lbXBoYXNpcz4gdGhhdCBhbGxvdyB0byBmdXJ0aGVyIG1vZGlmeSBpdHMgYmVoYXZpb3Iu IEFsbCB0aGlzIGlzIGlsbHVzdHJhdGVkIGluIHRoZSA8ZmlsZW5hbWU+TWFrZWZpbGU8L2ZpbGVu YW1lPi4gTGV0IHVzLCBmb3IgZXhhbXBsZSwgbG9vayBhdCB0aGUgbGlua2VyIGRpcmVjdGl2ZXMg d2hpY2ggY29tbWFuZCB0aGUgbGlua2VyIHRvIHN0YXJ0IHRoZSB0ZXh0IHNlY3Rpb24gYXQgYWRk cmVzcyA8bGl0ZXJhbD4weDYwMDwvbGl0ZXJhbD4sIGFuZCB0byBidWlsZCB0aGUgb3V0cHV0IGZp bGUgImFzIGlzIiAoc3RyaXAgb3V0IGFueSBmaWxlIGZvcm1hdHRpbmcpOgorPHByb2dyYW1saXN0 aW5nPjxmaWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QwL01ha2VmaWxlOjwvZmlsZW5hbWU+CitC T09UX0JPT1QwX09SRz89MHg2MDAKK0xERkxBR1M9LWUgc3RhcnQgLVR0ZXh0ICR7Qk9PVF9CT09U MF9PUkd9IC1XbCwtTiwtUywtLW9mb3JtYXQsYmluYXJ5Cis8L3Byb2dyYW1saXN0aW5nPgorPC9w YXJhPgogCisKKzxwYXJhPkxldCB1cyBub3cgc3RhcnQgb3VyIHN0dWR5IG9mIHRoZSBNQlIsIG9y IDxmaWxlbmFtZT5ib290MDwvZmlsZW5hbWU+LCBwcm9ncmFtLCBzdGFydGluZyB3aGVyZSBleGVj dXRpb24gYmVnaW5zOiA8Zm9vdG5vdGU+PHBhcmE+UGxlYXNlIG5vdGUgdGhhdCBzdWJ0bGUgbW9k aWZpY2F0aW9ucyB3ZXJlIG1hZGUgdG8gc29tZSBpbnN0cnVjdGlvbnMgaW4gZmF2b3Igb2YgYmV0 dGVyIGV4cG9zaXRpb24uIFRoaXMgYXBwbGllcyB0byA8ZW1waGFzaXM+YWxsPC9lbXBoYXNpcz4g b3VyIGNvZGUgZXhhbXBsZXMuPC9wYXJhPjwvZm9vdG5vdGU+OgorPHByb2dyYW1saXN0aW5nPjxm aWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QwL2Jvb3QwLlM6PC9maWxlbmFtZT4KK3N0YXJ0OgkJ Y2xkCQkJIyBTdHJpbmcgb3BzIGluYworCQl4b3J3ICVheCwlYXgJCSMgWmVybworCQltb3Z3ICVh eCwlZXMJCSMgQWRkcmVzcworCQltb3Z3ICVheCwlZHMJCSMgIGRhdGEKKwkJbW92dyAlYXgsJXNz CQkjIFNldCB1cAorCQltb3Z3IDB4N2MwMCwlc3AJCSMgIHN0YWNrCis8L3Byb2dyYW1saXN0aW5n PgorVGhpcyBmaXJzdCBibG9jayBvZiBjb2RlIGlzIHRoZSBlbnRyeSBwb2ludCBvZiB0aGUgcHJv Z3JhbTsgaXQgaXMgd2hlcmUgdGhlIEJJT1MgdHJhbnNmZXJzIGNvbnRyb2wuIEZpcnN0LCBpdCBt YWtlcyBzdXJlIHRoYXQgdGhlIHN0cmluZyBvcGVyYXRpb25zIGF1dG9pbmNyZW1lbnQgaXRzIHBv aW50ZXIgb3BlcmFuZHMgKHRoZSBjbGQgaW5zdHJ1Y3Rpb24pPGZvb3Rub3RlPjxwYXJhPldoZW4g aW4gZG91YnQsIHdlIHJlbWl0IHRoZSByZWFkZXIgdG8gdGhlIG9mZmljaWFsIEludGVsIE1hbnVh bHMsIHdoaWNoIGRlc2NyaWJlIHRoZSA8ZW1waGFzaXM+ZXhhY3Q8L2VtcGhhc2lzPiBzZW1hbnRp Y3MgZm9yIGVhY2ggaW5zdHJ1Y3Rpb246IGh0dHA6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3 L3VzL2VuL3Byb2Nlc3NvcnMvYXJjaGl0ZWN0dXJlcy1zb2Z0d2FyZS1kZXZlbG9wZXItbWFudWFs cy5odG1sLjwvcGFyYT48L2Zvb3Rub3RlPi4gVGhlbiwgaXQgbWFrZXMgbm8gYXNzdW1wdGlvbiBh Ym91dCB0aGUgc3RhdGUgb2YgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzLCBzbyBpdCBpbml0aWFsaXpl cyB0aGVtLiBGaW5hbGx5LCBpdCBzZXRzIHRoZSBzdGFjayBwb2ludGVyIHJlZ2lzdGVyICglc3Ap IHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPiwgc28gd2UgaGF2ZSBhIHdvcmtp bmcgc3RhY2suCis8L3BhcmE+Cis8cGFyYT4KKworVGhlIG5leHQgYmxvY2sgaXMgcmVzcG9uc2li bGUgZm9yIHRoZSByZWxvY2F0aW9uIGFuZCBzdWJzZXF1ZW50IGp1bXAgdG8gdGhlIHJlbG9jYXRl ZCBjb2RlOgorPHByb2dyYW1saXN0aW5nPjxmaWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QwL2Jv b3QwLlM6PC9maWxlbmFtZT4KKwkJbW92dyAkMHg3YzAwLCVzaQkjIFNvdXJjZQorCQltb3Z3ICQw eDYwMCwlZGkJCSMgRGVzdGluYXRpb24KKwkJbW92dyAkNTEyLCVjeAkJIyBXb3JkIGNvdW50CisJ CXJlcAkJCSMgUmVsb2NhdGUKKwkJbW92c2IJCQkjICBjb2RlCisJCW1vdncgJWRpLCVicAkJIyBB ZGRyZXNzIHZhcmlhYmxlcworCQltb3ZiICQxNiwlY2wJCSMgV29yZHMgdG8gY2xlYXIKKwkJcmVw CQkJIyBaZXJvCisJCXN0b3NiCQkJIyAgdGhlbQorCQlpbmNiIC0weGUoJWRpKQkJIyBTZXQgdGhl IFMgZmllbGQgdG8gMQorCisJCWptcCBtYWluLUxPQUQrT1JJR0lOCSMgSnVtcCB0byByZWxvY2F0 ZWQgY29kZQorPC9wcm9ncmFtbGlzdGluZz4KK0JlY2F1c2UgPGZpbGVuYW1lPmJvb3QwPC9maWxl bmFtZT4gaXMgbG9hZGVkIGJ5IHRoZSBCSU9TIHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg3QzAwPC9s aXRlcmFsPiwgaXQgY29waWVzIGl0c2VsZiB0byBhZGRyZXNzIDxsaXRlcmFsPjB4NjAwPC9saXRl cmFsPiBhbmQgdGhlbiB0cmFuc2ZlcnMgY29udHJvbCB0aGVyZSAocmVjYWxsIHRoYXQgaXQgd2Fz IGxpbmtlZCB0byBleGVjdXRlIGF0IGFkZHJlc3MgMHg2MDApLiBUaGUgc291cmNlIGFkZHJlc3Ms IDxsaXRlcmFsPjB4N2MwMDwvbGl0ZXJhbD4sIGlzIGNvcGllZCB0byByZWdpc3RlciAlc2k7IHRo ZSBkZXN0aW5hdGlvbiBhZGRyZXNzLCA8bGl0ZXJhbD4weDYwMDwvbGl0ZXJhbD4sIHRvIHJlZ2lz dGVyICVkaS4gVGhlIG51bWJlciBvZiBieXRlcyB0byBjb3B5LCA8bGl0ZXJhbD41MTI8L2xpdGVy YWw+ICh0aGUgcHJvZ3JhbSdzIHNpemUpLCBpcyBjb3BpZWQgdG8gcmVnaXN0ZXIgJWN4LiBOZXh0 LCB0aGUgcmVwIGluc3RydWN0aW9uIHJlcGVhdHMgdGhlIGluc3RydWN0aW9uIHRoYXQgZm9sbG93 cywgdGhhdCBpcywgbW92c2IsIHRoZSBudW1iZXIgb2YgdGltZXMgZGljdGFkZWQgYnkgdGhlICVj eCByZWdpc3Rlci4gVGhlIG1vdnNiIGluc3RydWN0aW9uIGNvcGllcyB0aGUgYnl0ZSBwb2ludGVk IHRvIGJ5ICVzaSB0byB0aGUgYWRkcmVzcyBwb2ludGVkIHRvIGJ5ICVkaS4gVGhpcyBpcyByZXBl YXRlZCBhbm90aGVyIDUxMSB0aW1lczsgb24gZWFjaCByZXBldGl0aW9uLCBib3RoIHRoZSBzb3Vy Y2UgYW5kIGRlc3RpbmF0aW9uIHJlZ2lzdGVycywgJXNpIGFuZCAlZGksIGFyZSBpbmNyZW1lbnRl ZCBieSBvbmUuIFRodXMsIHVwb24gY29tcGxldGlvbiBvZiB0aGUgNTEyLWJ5dGUgY29weSwgJWRp IGhhcyB0aGUgdmFsdWUgPGxpdGVyYWw+MHg2MDA8L2xpdGVyYWw+KzxsaXRlcmFsPjUxMjwvbGl0 ZXJhbD49PGxpdGVyYWw+MHg4MDA8L2xpdGVyYWw+LCBhbmQgJXNpIGhhcyB0aGUgdmFsdWUgPGxp dGVyYWw+MHg3YzAwPC9saXRlcmFsPis8bGl0ZXJhbD41MTI8L2xpdGVyYWw+PTxsaXRlcmFsPjB4 N2UwMDwvbGl0ZXJhbD47IHdlIGhhdmUgdGh1cyBjb21wbGV0ZWQgdGhlIGNvZGUgPGVtcGhhc2lz PnJlbG9jYXRpb248L2VtcGhhc2lzPi4gTmV4dCwgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyICVk aSBpcyBub3cgY29waWVkIHRvICVicDsgJWJwIGdldHMgdGhlIHZhbHVlIDxsaXRlcmFsPjB4ODAw PC9saXRlcmFsPi4gVGhlIHZhbHVlIDxsaXRlcmFsPjE2PC9saXRlcmFsPiBpcyBub3cgY29waWVk IHRvICVjbCBpbiBwcmVwYXJhdGlvbiBmb3IgYSBuZXcgc3RyaW5nIG9wZXJhdGlvbiAobGlrZSBv dXIgcHJldmlvdXMgbW92c2IpLiBOb3csIHN0b3NiIGlzIGV4ZWN1dGVkIDE2IHRpbWVzLiBUaGlz IGluc3RydWN0aW9uIGNvcGllcyBhIDxsaXRlcmFsPjA8L2xpdGVyYWw+IHZhbHVlIHRvIHRoZSBh ZGRyZXNzIHBvaW50ZWQgdG8gYnkgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyICglZGksIHdoaWNo IGlzIDxsaXRlcmFsPjB4ODAwPC9saXRlcmFsPiksIGFuZCBpbmNyZW1lbnRzIGl0LiBUaGlzIGlz IHJlcGVhdGVkIGFub3RoZXIgMTUgdGltZXMsIHNvICVkaSBlbmRzIHVwIHdpdGggdmFsdWUgPGxp dGVyYWw+MHg4MTA8L2xpdGVyYWw+LiBFZmZlY3RpdmVseSwgdGhpcyBjbGVhcnMgdGhlIGFkZHJl c3MgcmFuZ2UgPGxpdGVyYWw+MHg4MDA8L2xpdGVyYWw+LTxsaXRlcmFsPjB4ODBmPC9saXRlcmFs PjsgdGhpcyByYW5nZSBpcyB1c2VkIGFzIGEgKGZha2UpIHBhcnRpdGlvbiB0YWJsZSBmb3Igd3Jp dGluZyBiYWNrIHRoZSBNQlIgdG8gZGlzay4gRmluYWxseSwgdGhlIHNlY3RvciBmaWVsZCBmb3Ig dGhlIENIUyBhZGRyZXNzaW5nIG9mIHRoaXMgZmFrZSBwYXJ0aXRpb24gaXMgc2V0LCBhbmQgYSBq dW1wIGlzIG1hZGUgdG8gdGhlIG1haW4gZnVuY3Rpb24gZnJvbSB0aGUgcmVsb2NhdGVkIGNvZGUu IE5vdGUgdGhhdCB1bnRpbCB0aGlzIGp1bXAgdG8gdGhlIHJlbG9jYXRlZCBjb2RlLCBhbnkgcmVm ZXJlbmNlIHRvIGFuIGFic29sdXRlIGFkZHJlc3Mgd2FzIGF2b2lkZWQuCis8L3BhcmE+Cis8cGFy YT4KK1RoZSBmb2xsb3dpbmcgY29kZSBibG9jayBzaW1wbHkgdGVzdHMgaWYgdGhlIGRyaXZlIG51 bWJlciBwcm92aWRlZCBieSB0aGUgQklPUyBzaG91bGQgYmUgdXNlZCwgb3IgZWxzZSB0aGUgb25l IHNhdmVkIGJ5IDxmaWxlbmFtZT5ib290MDwvZmlsZW5hbWU+OgorPHByb2dyYW1saXN0aW5nPjxm aWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QwL2Jvb3QwLlM6PC9maWxlbmFtZT4KK21haW46CisJ CXRlc3RiICRTRVREUlYsLTY5KCVicCkJIyBTZXQgZHJpdmUgbnVtYmVyPworCQlqbnogZGlzYWJs ZV91cGRhdGUJIyBZZXMKKwkJdGVzdGIgJWRsLCVkbAkJIyBEcml2ZSBudW1iZXIgdmFsaWQ/CisJ CWpzIHNhdmVfY3VyZHJpdmUJIyBQb3NzaWJseSAoMHg4MCBzZXQpCis8L3Byb2dyYW1saXN0aW5n PgorVGhpcyBjb2RlIHRlc3RzIHRoZSBTRVREUlYgYml0IGluIHRoZSA8ZW1waGFzaXM+ZmxhZ3M8 L2VtcGhhc2lzPiB2YXJpYWJsZS4gUmVjYWxsIHRoYXQgcmVnaXN0ZXIgJWJwIHBvaW50cyB0byBh ZGRyZXNzIGxvY2F0aW9uIDxsaXRlcmFsPjB4ODAwPC9saXRlcmFsPiwgc28gdGhlIHRlc3QgaXMg ZG9uZSB0byB0aGUgPGVtcGhhc2lzPmZsYWdzPC9lbXBoYXNpcz4gdmFyaWFibGUgYXQgYWRkcmVz cyA8bGl0ZXJhbD4weDgwMDwvbGl0ZXJhbD4tPGxpdGVyYWw+Njk8L2xpdGVyYWw+PTxsaXRlcmFs PjB4N2JiPC9saXRlcmFsPi4gVGhpcyBpcyBhbiBleGFtcGxlIG9mIHRoZSB0eXBlIG9mIG1vZGlm aWNhdGlvbnMgdGhhdCBjYW4gYmUgZG9uZSB0byA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPi4g VGhlIFNFVERSViBmbGFnIGlzIDxlbXBoYXNpcz5ub3Q8L2VtcGhhc2lzPiBzZXQgYnkgZGVmYXVs dCwgYnV0IGl0IGNhbiBiZSBzZXQgaW4gdGhlIDxmaWxlbmFtZT5NYWtlZmlsZTwvZmlsZW5hbWU+ OyB3aGVuIHNldCwgdGhlIDxlbXBoYXNpcz5kcml2ZSBudW1iZXI8L2VtcGhhc2lzPiBzdG9yZWQg aW4gdGhlIE1CUiBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIG9uZSBwcm92aWRlZCBieSB0aGUgQklP Uy4gV2UgYXNzdW1lIHRoZSBkZWZhdWx0cywgYW5kIHRoYXQgdGhlIEJJT1MgcHJvdmlkZWQgYSB2 YWxpZCBkcml2ZSBudW1iZXIsIHNvIHdlIGp1bXAgdG8gPGxpdGVyYWw+c2F2ZV9jdXJkcml2ZTwv bGl0ZXJhbD4uCis8L3BhcmE+Cis8cGFyYT4KK1RoZSBuZXh0IGJsb2NrIHNhdmVzIHRoZSA8ZW1w aGFzaXM+ZHJpdmUgbnVtYmVyPC9lbXBoYXNpcz4gcHJvdmlkZWQgYnkgdGhlIEJJT1MsIGFuZCBj YWxscyA8bGl0ZXJhbD5wdXRuPC9saXRlcmFsPiB0byBwcmludCBhIG5ldyBsaW5lIG9uIHRoZSBz Y3JlZW46Cis8cHJvZ3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5cy9ib290L2kzODYvYm9vdDAvYm9v dDAuUzo8L2ZpbGVuYW1lPgorc2F2ZV9jdXJkcml2ZToJbW92YiAlZGwsICglYnApCQkjIFNhdmUg ZHJpdmUgbnVtYmVyCisJCXB1c2h3ICVkeAkJIyBBbHNvIGluIHRoZSBzdGFjaworI2lmZGVmCVRF U1QJLyogdGVzdCBjb2RlLCBwcmludCBpbnRlcm5hbCBiaW9zIGRyaXZlICovCisJCXJvbGIgJDEs ICVkbAorCQltb3Z3ICRkcml2ZSwgJXNpCisJCWNhbGwgcHV0a2V5CisjZW5kaWYKKwkJY2FsbHcg cHV0bgkJIyBQcmludCBhIG5ld2xpbmUKKzwvcHJvZ3JhbWxpc3Rpbmc+CitOb3RlIHRoYXQgd2Ug YXNzdW1lIFRFU1QgaXMgbm90IGRlZmluZWQsIHNvIHRoZSBjb25kaXRpb25hbCBjb2RlIGluIGl0 IGlzIG5vdCBhc3NlbWJsZWQgYW5kIHdvbid0IGFwcGVhciBpbiBvdXIgZXhlY3V0YWJsZSA8Zmls ZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPi4KKzwvcGFyYT4KKzxwYXJhPgorT3VyIG5leHQgYmxvY2sg aW1wbGVtZW50cyB0aGUgYWN0dWFsIHNjYW5uaW5nIG9mIHRoZSBwYXJ0aXRpb24gdGFibGUuIEl0 IHByaW50cyB0byB0aGUgc2NyZWVuIHRoZSBwYXJ0aXRpb24gdHlwZSBmb3IgZWFjaCBvZiB0aGUg NCBlbnRyaWVzIGluIHRoZSBwYXJ0aXRpb24gdGFibGU7IGl0IGNvbXBhcmVzIGVhY2ggdHlwZSB3 aXRoIGEgbGlzdCBvZiB3ZWxsLWtub3duIG9wZXJhdGluZyBzeXN0ZW0gZmlsZSBzeXN0ZW1zLiBF eGFtcGxlcyBvZiByZWNvZ25pemVkIHBhcnRpdGlvbiB0eXBlcyBhcmUgTlRGUyAoV2luZG93cy4g SUQgMHg3KSwgZXh0MmZzIChMaW51eC4gSUQgMHg4MykgYW5kLCBvZiBjb3Vyc2UsIGZmcy91ZnMy IChGcmVlQlNELiBJRCAweGE1KS4gVGhlIGltcGxlbWVudGF0aW9uIGlzIGZhaXJseSBzaW1wbGU6 Cis8cHJvZ3JhbWxpc3Rpbmc+CisJCW1vdncgJChwYXJ0YmwrMHg0KSwlYngJIyBQYXJ0aXRpb24g dGFibGUgKCs0KQorCQl4b3J3ICVkeCwlZHgJCSMgSXRlbSBudW1iZXIKKworcmVhZF9lbnRyeToJ bW92YiAlY2gsLTB4NCglYngpCSMgWmVybyBhY3RpdmUgZmxhZyAoY2ggPT0gMCkKKwkJYnR3ICVk eCxfRkxBR1MoJWJwKQkjIEVudHJ5IGVuYWJsZWQ/CisJCWpuYyBuZXh0X2VudHJ5CQkjIE5vCisJ CW1vdmIgKCVieCksJWFsCQkjIExvYWQgdHlwZQorCQl0ZXN0ICVhbCwgJWFsCQkjIHNraXAgZW1w dHkgcGFydGl0aW9uCisJCWp6IG5leHRfZW50cnkKKwkJbW92dyAkYm9vdGFibGVfaWRzLCVkaQkj IExvb2t1cCB0YWJsZXMKKwkJbW92YiAkKFRMRU4rMSksJWNsCSMgTnVtYmVyIG9mIGVudHJpZXMK KwkJcmVwbmUJCQkjIExvY2F0ZQorCQlzY2FzYgkJCSMgIHR5cGUKKwkJYWRkdyAkKFRMRU4tMSks ICVkaQkjIEFkanVzdAorCQltb3ZiICglZGkpLCVjbAkJIyBQYXJ0aXRpb24KKwkJYWRkdyAlY3gs JWRpCQkjICBkZXNjcmlwdGlvbgorCQljYWxsdyBwdXR4CQkjIERpc3BsYXkgaXQKKworbmV4dF9l bnRyeToJaW5jdyAlZHgJCSMgTmV4dCBpdGVtCisJCWFkZGIgJDB4MTAsJWJsCQkjIE5leHQgZW50 cnkKKwkJam5jIHJlYWRfZW50cnkJCSMgVGlsbCBkb25lCis8L3Byb2dyYW1saXN0aW5nPgorSXQg aXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGUgYWN0aXZlIGZsYWcgZm9yIGVhY2ggZW50cnkg aXMgY2xlYXJlZCwgc28gYWZ0ZXIgdGhlIHNjYW5uaW5nLCA8ZW1waGFzaXM+bm88L2VtcGhhc2lz PiBwYXJ0aXRpb24gZW50cnkgaXMgYWN0aXZlIGluIG91ciBtZW1vcnkgY29weSBvZiA8ZmlsZW5h bWU+Ym9vdDA8L2ZpbGVuYW1lPi4gTGF0ZXIsIHRoZSBhY3RpdmUgZmxhZyB3aWxsIGJlIHNldCBm b3IgdGhlIHNlbGVjdGVkIHBhcnRpdGlvbi4gVGhpcyBlbnN1cmVzIHRoYXQgb25seSAxIGFjdGl2 ZSBwYXJ0aXRpb24gZXhpc3RzIGlmIHRoZSB1c2VyIGNob29zZXMgdG8gd3JpdGUtYmFjayB0aGUg Y2hhbmdlcyB0byBkaXNrLgorCisKK091ciBuZXh0IGJsb2NrIHRlc3RzIGZvciBvdGhlciBkcml2 ZXMgcHJlc2VudC4gQXQgc3RhcnR1cCwgdGhlIEJJT1Mgd3JpdGVzIHRoZSBudW1iZXIgb2YgZHJp dmVzIHByZXNlbnQgaW4gdGhlIGNvbXB1dGVyIHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg0NzU8L2xp dGVyYWw+LiBJZiB0aGVyZSBpcyBhbnkgb3RoZXIgZHJpdmUgcHJlc2VudCwgPGZpbGVuYW1lPmJv b3QwPC9maWxlbmFtZT4gcHJpbnRzIHRoZSBjdXJyZW50IGRyaXZlIHRvIHNjcmVlbjsgdGhlIHVz ZXIgbWF5IGNvbW1hbmQgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gdG8gc2NhbiBwYXJ0aXRp b25zIG9uIGFub3RoZXIgZHJpdmUgbGF0ZXI6Cis8cHJvZ3JhbWxpc3Rpbmc+CisJCXBvcHcgJWF4 CQkjIERyaXZlIG51bWJlcgorCQlzdWJiICQweDgwLTB4MSwlYWwJIyBEb2VzIG5leHQKKwkJY21w YiBOSFJEUlYsJWFsCQkjICBkcml2ZSBleGlzdD8gKGZyb20gQklPUz8pCisJCWpiIHByaW50X2Ry aXZlCQkjIFllcworCQlkZWN3ICVheAkJIyBBbHJlYWR5IGRyaXZlIDA/CisJCWp6IHByaW50X3By b21wdAkJIyBZZXMKKzwvcHJvZ3JhbWxpc3Rpbmc+CitXZSBtYWtlIHRoZSBhc3N1bXB0aW9uIHRo YXQgYSBzaW5nbGUgZHJpdmUgaXMgcHJlc2VudCwgc28gdGhlIGp1bXAgdG8gPGxpdGVyYWw+cHJp bnRfZHJpdmU8L2xpdGVyYWw+IGlzIG5vdCBwZXJmb3JtZWQuIFdlIGFsc28gYXNzdW1lIG5vdGhp bmcgc3RyYW5nZSBoYXBwZW5lZCwgc28gd2UganVtcCB0byA8bGl0ZXJhbD5wcmludF9wcm9tcHQ8 L2xpdGVyYWw+LiAKKzwvcGFyYT4KKzxwYXJhPgorVGhpcyBuZXh0IGJsb2NrIGp1c3QgcHJpbnRz IG91dCBhIHByb21wdCBmb2xsb3dlZCBieSB0aGUgZGVmYXVsdCBvcHRpb246IAorPHByb2dyYW1s aXN0aW5nPgorcHJpbnRfcHJvbXB0Ogltb3Z3ICRwcm9tcHQsJXNpCSMgRGlzcGxheQorCQljYWxs dyBwdXRzdHIJCSMgIHByb21wdAorCQltb3ZiIF9PUFQoJWJwKSwlZGwJIyBEaXNwbGF5CisJCWRl Y3cgJXNpCQkjICBkZWZhdWx0CisJCWNhbGx3IHB1dGtleQkJIyAga2V5CisJCWptcCBzdGFydF9p bnB1dAkJIyBTa2lwIGJlZXAKKzwvcHJvZ3JhbWxpc3Rpbmc+CitGaW5hbGx5LCBhIGp1bXAgaXMg cGVyZm9yZWQgdG8gPGxpdGVyYWw+c3RhcnRfaW5wdXQ8L2xpdGVyYWw+LCB3aGVyZSB0aGUgQklP UyBzZXJ2aWNlcyBhcmUgdXNlZCB0byBzdGFydCBhIHRpbWVyIGFuZCBmb3IgcmVhZGluZyB1c2Vy IGlucHV0IGZyb20gdGhlIGtleWJvYXJkOyBpZiB0aGUgdGltZXIgZXhwaXJlcywgdGhlIGRlZmF1 bHQgb3B0aW9uIHdpbGwgYmUgc2VsZWN0ZWQ6Cis8cHJvZ3JhbWxpc3Rpbmc+CitzdGFydF9pbnB1 dDoKKwkJeG9yYiAlYWgsJWFoCQkjIEJJT1M6IEdldAorCQlpbnQgJDB4MWEJCSMgIHN5c3RlbSB0 aW1lCisJCW1vdncgJWR4LCVkaQkJIyBUaWNrcyB3aGVuCisJCWFkZHcgX1RJQ0tTKCVicCksJWRp CSMgIHRpbWVvdXQKK3JlYWRfa2V5OgorCQltb3ZiICQweDEsJWFoCQkjIEJJT1M6IENoZWNrCisJ CWludCAkMHgxNgkJIyAgZm9yIGtleXByZXNzCisJCWpueiBnb3Rfa2V5IAkJIyBIYXZlIGlucHV0 CisJCXhvcmIgJWFoLCVhaAkJIyBCSU9TOiBpbnQgMHgxYSwgMDAKKwkJaW50ICQweDFhCQkjICBn ZXQgc3lzdGVtIHRpbWUKKwkJY21wdyAlZGksJWR4CQkjIFRpbWVvdXQ/CisJCWpiIHJlYWRfa2V5 CQkjIE5vCis8L3Byb2dyYW1saXN0aW5nPgorTm90ZSB0aGF0IGFuIGludGVycnVwdCBpcyByZXF1 ZXN0ZWQgd2l0aCBudW1iZXIgPGxpdGVyYWw+MHgxYTwvbGl0ZXJhbD4sIGFuZCBhcmd1bWVudCA8 bGl0ZXJhbD4wPC9saXRlcmFsPiBpbiByZWdpc3RlciA8bGl0ZXJhbD4lYWg8L2xpdGVyYWw+LiBU aGUgQklPUyBoYXMgYSBwcmVkZWZpbmVkIGxpc3Qgb2YgaW50ZXJydXB0IHNlcnZpY2VzLCByZXF1 ZXN0ZWQgdGhyb3VnaCB0aGUgPGxpdGVyYWw+aW50PC9saXRlcmFsPiBpbnN0cnVjdGlvbiBhbmQg cmVjZWl2aW5nIGFyZ3VtZW50cyBpbiByZWdpc3RlcnMgKGluIHRoaXMgY2FzZSwgPGxpdGVyYWw+ JWFoPC9saXRlcmFsPikuIEhlcmUsIHBhcnRpY3VsYXJseSwgd2UgYXJlIHJlcXVlc3RpbmcgdGhl IG51bWJlciBvZiBjbG9jayAndGlja3MnIHNpbmNlIGxhc3QgbWlkbmlnaHQ7IHRoaXMgdmFsdWUg aXMgY29tcHV0ZWQgYnkgdGhlIEJJT1MgdGhyb3VnaCB0aGUgPGVtcGhhc2lzPlJlYWwgVGltZSBD bG9jazwvZW1waGFzaXM+LiBUaGlzIGNsb2NrIGNhbiBiZSBwcm9ncmFtbWVkIHRvIHdvcmsgYXQg ZnJlcXVlbmNpZXMgcmFuZ2luZyBmcm9tIDxsaXRlcmFsPjJoejwvbGl0ZXJhbD4gdG8gPGxpdGVy YWw+ODE5Mmh6PC9saXRlcmFsPjsgdGhlIEJJT1Mgc2V0cyBpdCB0byA8bGl0ZXJhbD4xOC4yaHo8 L2xpdGVyYWw+IGF0IHN0YXJ0dXAuIFRoZSAzMi1iaXQgcmVzdWx0IGlzIHJldHVybmVkIGJ5IHRo ZSBCSU9TIGluIHJlZ2lzdGVycyA8bGl0ZXJhbD4lY3g8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD4l ZHg8L2xpdGVyYWw+IChsb3dlciBieXRlcyBpbiA8bGl0ZXJhbD4lZHg8L2xpdGVyYWw+KS4gVGhp cyByZXN1bHQgKHRoZSA8bGl0ZXJhbD4lZHg8L2xpdGVyYWw+IHBhcnQpIGlzIGNvcGllZCB0byBy ZWdpc3RlciA8bGl0ZXJhbD4lZGk8L2xpdGVyYWw+LCBhbmQgdGhlIHZhbHVlIG9mIHRoZSBUSUNL UyB2YXJpYWJsZSBpcyBhZGRlZCB0byA8bGl0ZXJhbD4lZGk8L2xpdGVyYWw+LiBUaGlzIHZhcmlh YmxlIGlzIHBsYWNlZCBpbiA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBhdCBvZmZzZXQgPGxp dGVyYWw+X1RJQ0tTPC9saXRlcmFsPiAoYSBuZWdhdGl2ZSB2YWx1ZSkgZnJvbSByZWdpc3RlciA8 bGl0ZXJhbD4lYnA8L2xpdGVyYWw+ICh3aGljaCwgcmVjYWxsLCBwb2ludHMgdG8gMHg4MDApLiBU aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGlzIHZhcmlhYmxlIGlzIDB4YjYgKDE4MiBpbiBkZWNpbWFs KS4gVGhlIGlkZWEgaXMgdGhhdCA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBjb25zdGFudGx5 IHJlcXVlc3RzIHRoZSB0aW1lIHRvIHRoZSBCSU9TLCBhbmQgd2hlbiB0aGUgdmFsdWUgcmV0dXJu ZWQgaW4gcmVnaXN0ZXIgPGxpdGVyYWw+JWR4PC9saXRlcmFsPiBpcyBncmVhdGVyIHRoYW4gdGhl IHZhbHVlIHN0b3JlZCBpbiA8bGl0ZXJhbD4lZGk8L2xpdGVyYWw+LCB0aGUgdGltZSBpcyB1cCBh bmQgdGhlIGRlZmF1bHQgc2VsZWN0aW9uIHdvdWxkIGJlIG1hZGUuIFNpbmNlIHRoZSBSZWFsIFRp bWUgQ2xvY2sgdGlja3MgPGxpdGVyYWw+MTguMjwvbGl0ZXJhbD4gdGltZXMgcGVyIHNlY29uZCwg dGhpcyBjb25kaXRpb24gd2lsbCBiZSBtZXQgYWZ0ZXIgMTAgc2Vjb25kcyAodGhpcyBkZWZhdWx0 IGJlaGF2aW91ciBjYW4gYmUgY2hhbmdlZCBpbiB0aGUgPGZpbGVuYW1lPk1ha2VmaWxlPC9maWxl bmFtZT4uIFdoaWxlIHRoaXMgdGltZSBoYXMgbm90IHBhc3NlZCwgPGZpbGVuYW1lPmJvb3QwPC9m aWxlbmFtZT4gY29udGludWFsbHkgYXNrcyB0aGUgQklPUyBmb3IgYW55IHVzZXIgaW5wdXQ7IHRo aXMgaXMgZG9uZSB0aHJvdWdoIDxsaXRlcmFsPmludCAweDE2PC9saXRlcmFsPiwgYXJndW1lbnQg PGxpdGVyYWw+MTwvbGl0ZXJhbD4gaW4gPGxpdGVyYWw+JWFoPC9saXRlcmFsPi4gV2hldGhlciBh IGtleSB3YXMgcHJlc3NlZCwgb3IgdGhlIHRpbWUgZXhwaXJlZCwgc3Vic2VxdWVudCBjb2RlIHZh bGlkYXRlcyB0aGUgc2VsZWN0aW9uLCB0aGUgcmVnaXN0ZXIgPGxpdGVyYWw+JXNpPC9saXRlcmFs PiBpcyBzZXQgdG8gcG9pbnQgdG8gdGhlIGFwcHJvcGlhdGUgcGFydGl0aW9uIGVudHJ5IGluIHRo ZSBwYXJ0aXRpb24gdGFibGUsIGFjY29yZGluZyB0byB0aGUgc2VsZWN0aW9uLCBhbmQgdGhhdCBz ZWxlY3Rpb24gb3ZlcnJpZGVzIHRoZSBwcmV2aW91cyBkZWZhdWx0IG9uZTsgaW5kZWVkLCBpdCBi ZWNvbWVzIHRoZSA8ZW1waGFzaXM+bmV3PC9lbXBoYXNpcz4gZGVmYXVsdC4gRmluYWxseSwgdGhl IEFDVElWRSBmbGFnIG9mIHRoZSBzZWxlY3RlZCBwYXJ0aXRpb24gaXMgc2V0LiBJZiBlbmFibGVk IGF0IGNvbXBpbGUgdGltZSwgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gd2l0aCB0aGVzZSBt b2RpZmllZCB2YWx1ZXMsIGFyZSB3cml0dGVuIGJhY2sgdG8gdGhlIE1CUiBvbiBkaXNrLiBXZSBs ZWF2ZSB0aGUgZGV0YWlscyBvZiB0aGlzIGltcGxlbWVudGF0aW9uIHRvIHRoZSByZWFkZXIuCis8 L3BhcmE+Cis8cGFyYT4KK1dlIG5vdyBlbmQgb3VyIHN0dWR5IHdpdGggdGhlIGxhc3QgY29kZSBi bG9jayBmcm9tIHRoZSA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBwcm9ncmFtOgorPHByb2dy YW1saXN0aW5nPgorCQltb3Z3ICQweDdjMDAsJWJ4CSMgQWRkcmVzcyBmb3IgcmVhZAorCQltb3Zi ICQweDIsJWFoCQkjIFJlYWQgc2VjdG9yCisJCWNhbGx3IGludHgxMwkJIyAgZnJvbSBkaXNrCisJ CWpjIGJlZXAJCQkjIElmIGVycm9yCisJCWNtcHcgJDB4YWE1NSwweDFmZSglYngpCSMgQm9vdGFi bGU/CisJCWpuZSBiZWVwCQkjIE5vCisJCXB1c2h3ICVzaQkJIyBTYXZlIHB0ciB0byBzZWxlY3Rl ZCBwYXJ0LgorCQljYWxsdyBwdXRuCQkjIExlYXZlIHNvbWUgc3BhY2UKKwkJcG9wdyAlc2kJCSMg UmVzdG9yZSwgbmV4dCBzdGFnZSB1c2VzIGl0CisJCWptcCAqJWJ4CQkjIEludm9rZSBib290c3Ry YXAKKzwvcHJvZ3JhbWxpc3Rpbmc+CitSZWNhbGwgdGhhdCA8bGl0ZXJhbD4lc2k8L2xpdGVyYWw+ IHBvaW50cyB0byB0aGUgYXBwcm9waWF0ZSBwYXJ0aXRpb24gZW50cnkuIFRoaXMgZW50cnkgdGVs bHMgdXMgd2hlcmUgdGhlIHBhcnRpdGlvbiBiZWdpbnMgb24gZGlzazsgd2UgYXNzdW1lLCBvZiBj b3Vyc2UsIHRoYXQgdGhlIHBhcnRpdGlvbiBzZWxlY3RlZCBpcyBhIEZyZWVCU0QgcGFydGl0aW9u LiBUaGUgdHJhbnNmZXIgYnVmZmVyIGlzIHNldCB0byA8bGl0ZXJhbD4weDdjMDA8L2xpdGVyYWw+ IChyZWdpc3RlciA8bGl0ZXJhbD4lYng8L2xpdGVyYWw+KSwgYW5kIGEgcmVhZCBmb3IgdGhlIGZp cnN0IHNlY3RvciBvZiB0aGUgRnJlZUJTRCBwYXJ0aXRpb24gaXMgcmVxdWVzdGVkIGJ5IGNhbGxp bmcgPGxpdGVyYWw+aW50eDEzPC9saXRlcmFsPi4gV2UgYXNzdW1lIHRoYXQgZXZlcnl0aGluZyB3 ZW50IE9LLCBzbyBhIGp1bXAgdG8gPGxpdGVyYWw+YmVlcDwvbGl0ZXJhbD4gaXMgPGVtcGhhc2lz Pm5vdDwvZW1waGFzaXM+IHBlcmZvcm1lZC4gSW4gcGFydGljdWxhciwgdGhlIG5ldyBzZWN0b3Ig cmVhZCBtdXN0IGVuZCB3aXRoIHRoZSBtYWdpYyBzZXF1ZW5jZSA8bGl0ZXJhbD4weGFhNTU8L2xp dGVyYWw+LiBGaW5hbGx5LCB0aGUgdmFsdWUgYXQgPGxpdGVyYWw+JXNpPC9saXRlcmFsPiAodGhl IHBvaW50ZXIgdG8gdGhlIHNlbGVjdGVkIHBhcnRpdGlvbiB0YWJsZSkgaXMgcHJlc2VydmVkIGZv ciB1c2UgYnkgdGhlIG5leHQgc3RhZ2UsIGFuZCBhIGp1bXAgaXMgcGVyZm9ybWVkIHRvIGFkZHJl c3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPiwgd2hlcmUgZXhlY3V0aW9uIG9mIG91ciBuZXh0 IHN0YWdlICh0aGUganVzdC1yZWFkIGJsb2NrKSBpcyBzdGFydGVkLgorCis8L3BhcmE+CisKKwor ICA8L3NlY3QxPgorCisgIDxzZWN0MSB4bWw6aWQ9ImJvb3QtYm9vdDEiPgorICAgIDx0aXRsZT48 bGl0ZXJhbD5ib290MTwvbGl0ZXJhbD4gU3RhZ2U8L3RpdGxlPgorCisgICAgPHBhcmE+U28gZmFy IHdlIGhhdmUgZ29uZSB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2U6CiAgICAgPGl0ZW1p emVkbGlzdD4KICAgICAgIDxsaXN0aXRlbT4KLQk8cGFyYT5tb2RpZmllcyB0aGUgYm9vdGFibGUg ZmxhZyBmb3IgdGhlIHNlbGVjdGVkIHBhcnRpdGlvbiB0bwotCSAgbWFrZSBpdCBib290YWJsZSwg YW5kIGNsZWFycyB0aGUgcHJldmlvdXM8L3BhcmE+CisJPHBhcmE+VGhlIEJJT1MgZGlkIHNvbWUg ZWFybHkgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24sIGluY2x1ZGluZyB0aGUgUE9TVC4gVGhlIE1C UiAoPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4pIHdhcyBsb2FkZWQgZnJvbSBhYnNvbHV0ZSBk aXNrIHNlY3RvciAxIHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPi4gRXhlY3V0 aW9uIGNvbnRyb2wgd2FzIHBhc3NlZCB0byB0aGF0IGxvY2F0aW9uLjwvcGFyYT4KICAgICAgIDwv bGlzdGl0ZW0+CiAKICAgICAgIDxsaXN0aXRlbT4KLQk8cGFyYT5zYXZlcyBpdHNlbGYgdG8gZGlz ayB0byByZW1lbWJlciB3aGF0IHBhcnRpdGlvbiAoc2xpY2UpCi0JICBoYXMgYmVlbiBzZWxlY3Rl ZCBzbyB0byB1c2UgaXQgYXMgdGhlIGRlZmF1bHQgb24gdGhlIG5leHQKLQkgIGJvb3Q8L3BhcmE+ CisJPHBhcmE+PGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gcmVsb2NhdGVkIGl0c2VsZiB0byB0 aGUgbG9jYXRpb24gaXQgd2FzIGxpbmtlZCB0byBleGVjdXRlICg8bGl0ZXJhbD4weDYwMDwvbGl0 ZXJhbD4pLCBmb2xsb3dlZCBieSBhIGp1bXAgdG8gY29udGludWUgZXhlY3V0aW9uIGF0IHRoZSBh cHByb3BpYXRlIHBsYWNlLiBGaW5hbGx5LCA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBsb2Fk ZWQgdGhlIGZpcnN0IGRpc2sgc2VjdG9yIGZyb20gdGhlIEZyZWVCU0QgcGFydGl0aW9uIChzbGlj ZSkgdG8gYWRkcmVzcyA8bGl0ZXJhbD4weDdjMDA8L2xpdGVyYWw+LiBFeGVjdXRpb24gY29udHJv bCB3YXMgcGFzc2VkIHRvIHRoYXQgbG9jYXRpb24uPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4K KyAgICA8L2l0ZW1pemVkbGlzdD4KIAorPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gaXMgdGhl IG5leHQgc3RlcCBpbiBvdXIgYm9vdC1sb2FkaW5nIHNlcXVlbmNlOyBpdCBpcyB0aGUgZmlyc3Qg b2YgdGhyZWUgYm9vdCBzdGFnZXMuCitJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHdlIGhh dmUgYmVlbiBkZWFsaW5nIGV4Y2x1c2l2ZWx5IHdpdGggZGlzayBzZWN0b3JzLiBJbmRlZWQsIHRo ZSBCSU9TIGxvYWRzIHRoZSBhYnNvbHV0ZSBmaXJzdCBzZWN0b3IsIHdoaWxlIDxmaWxlbmFtZT5i b290MDwvZmlsZW5hbWU+IGxvYWRzIHRoZSBmaXJzdCBzZWN0b3Igb2YgdGhlIEZyZWVCU0Qgc2xp Y2U7IGJvdGggbG9hZHMgYXJlIHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAwPC9saXRlcmFsPi4g V2UgY2FuIGNvbmNlcHR1YWxseSB0aGluayBvZiB0aGVzZSBkaXNrIHNlY3RvcnMgYXMgZmlsZXMg Y29udGFpbmluZyA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPmJvb3Qx PC9maWxlbmFtZT4sIHJlc3BlY3RpdmVseSwgYnV0IGluIHJlYWxpdHkgdGhpcyBpcyBub3QgZW50 aXJlbHkgdHJ1ZSBmb3IgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4uIFN0cmljdGx5IHNwZWFr aW5nLCB0aGVyZSBpcyBubyBmaWxlIDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+PGZvb3Rub3Rl PjxwYXJhPlRoZXJlIGlzIGEgZmlsZSA8ZmlsZW5hbWU+L2Jvb3QvYm9vdDE8L2ZpbGVuYW1lPiwg YnV0IGl0IGlzIG5vdCB0aGUgZmlsZSByZWFkIGF0IGJvb3QgdGltZTsgaXQgaXMgY29uY2F0YW5h dGVkIHdpdGggPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gdG8gZm9ybSA8ZmlsZW5hbWU+Ym9v dDwvZmlsZW5hbWU+LjwvcGFyYT48L2Zvb3Rub3RlPjsgaW5zdGVhZCwgYSBzaW5nbGUsIGZ1bGwt Ymxvd24gZmlsZSwgPGZpbGVuYW1lPmJvb3Q8L2ZpbGVuYW1lPiwgaXMgd2hhdCB5b3Ugd2lsbCBm aW5kIGluIHRoZSBmaWxlIHN5c3RlbSAoPGZpbGVuYW1lPmJvb3QvYm9vdDwvZmlsZW5hbWU+KS4g VGhpcyBmaWxlIGlzIGEgY29tcG9zaXRpb24gb2YgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4s IDxmaWxlbmFtZT5ib290MjwvZmlsZW5hbWU+IGFuZCB0aGUgPGxpdGVyYWw+Qm9vdCBFeHRlbmRl cjwvbGl0ZXJhbD4gKG9yIDxsaXRlcmFsPkJUWDwvbGl0ZXJhbD4pLiBUaGlzIGJpZyBmaWxlIGlz IGdyZWF0ZXIgaW4gc2l6ZSB0aGFuIGEgc2luZ2xlIHNlY3RvciAoZ3JlYXRlciB0aGFuIDUxMiBi eXRlcykuIEZvcnR1bmF0ZWx5LCA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBvY2N1cGllcyA8 ZW1waGFzaXM+ZXhhY3RseTwvZW1waGFzaXM+IHRoZSBmaXJzdCA1MTIgYnl0ZXMgb2YgdGhpcyBz aW5nbGUgZmlsZSwgc28sIGluZGVlZCwgd2hlbiA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiBs b2FkcyB0aGUgZmlyc3Qgc2VjdG9yIG9mIHRoZSBGcmVlQlNEIHNsaWNlICg1MTIgYnl0ZXMpLCBp dCBpcyBhY3R1YWxseSBsb2FkaW5nIDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+IGFuZCB0cmFu c2ZlcmluZyBjb250cm9sIHRvIGl0LjwvcGFyYT4KKzxwYXJhPgorCitUaGUgbWFpbiB0YXNrIG9m IDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+IGlzIHRvIGxvYWQgdGhlIG5leHQgYm9vdCBzdGFn ZS4gVGhpcyBuZXh0IHN0YWdlIGlzIHNvbWV3aGF0IG1vcmUgY29tcGxleDsgaXQgaXMgY29tcG9z ZWQgb2YgPGVtcGhhc2lzPnRoZTwvZW1waGFzaXM+IHNlcnZlciwgY2FsbGVkIHRoZSA8bGl0ZXJh bD5Cb290IEV4dGVuZGVyPC9saXRlcmFsPiwgb3IgPGxpdGVyYWw+QlRYPC9saXRlcmFsPiwgYW5k IDxlbXBoYXNpcz5hPC9lbXBoYXNpcz4gY2xpZW50LCBjYWxsZWQgPGZpbGVuYW1lPmJvb3QyPC9m aWxlbmFtZT4uIFdlIHNheSA8ZW1waGFzaXM+YTwvZW1waGFzaXM+IGNsaWVudCBiZWNhdXNlLCBh cyB3ZSB3aWxsIHNlZSwgdGhlIGxhc3QgYm9vdCBzdGFnZSBpcyA8ZmlsZW5hbWU+bG9hZGVyPC9m aWxlbmFtZT4sIHdoaWNoIGlzIGFsc28gYSBjbGllbnQgb2YgdGhlIDxsaXRlcmFsPkJUWCBzZXJ2 ZXI8L2xpdGVyYWw+LgorPC9wYXJhPgorPHBhcmE+CitMZXQgdXMgbm93IGxvb2sgaW4gZGV0YWls IHdoYXQgZXhhY3RseSBpcyBkb25lIGJ5IDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+LCBzdGFy dGluZyBsaWtlIHdlIGRpZCBmb3IgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4sIGF0IGl0cyBl bnRyeSBwb2ludDoKKzxwcm9ncmFtbGlzdGluZz48ZmlsZW5hbWU+c3lzL2Jvb3QvaTM4Ni9ib290 Mi9ib290MS5TOjwvZmlsZW5hbWU+CitzdGFydDoKKyBqbXAgbWFpbgorPC9wcm9ncmFtbGlzdGlu Zz4KK1RoZSBlbnRyeSBwb2ludCBhdCA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gc2ltcGx5IGp1 bXBzIHBhc3QgYSBzcGVjaWFsIGRhdGEgYXJlYSB0byB0aGUgbGFiZWwgPGxpdGVyYWw+bWFpbjwv bGl0ZXJhbD4sIHdoaWNoIGluIHR1cm4gbG9va3MgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5n PjxmaWxlbmFtZT5zeXMvYm9vdC9pMzg2L2Jvb3QyL2Jvb3QxLlM6PC9maWxlbmFtZT4KK21haW46 CQljbGQJCQkjIFN0cmluZyBvcHMgaW5jCisJCXhvciAlY3gsJWN4CQkjIFplcm8KKwkJbW92ICVj eCwlZXMJCSMgQWRkcmVzcworCQltb3YgJWN4LCVkcwkJIyAgZGF0YQorCQltb3YgJWN4LCVzcwkJ IyBTZXQgdXAKKwkJbW92ICRzdGFydCwlc3AJCSMgIHN0YWNrCisJCW1vdiAlc3AsJXNpCQkjIFNv dXJjZQorCQltb3YgJDB4NzAwLCVkaQkJIyBEZXN0aW5hdGlvbgorCQlpbmNiICVjaAkJIyBXb3Jk IGNvdW50CisJCXJlcAkJCSMgQ29weQorCQltb3ZzdwkJCSMgIGNvZGUKKzwvcHJvZ3JhbWxpc3Rp bmc+CitOb3RlIHRoYXQsIGp1c3QgbGlrZSA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiwgdGhl IGFib3ZlIGNvZGUgPGVtcGhhc2lzPnJlbG9jYXRlczwvZW1waGFzaXM+IDxmaWxlbmFtZT5ib290 MTwvZmlsZW5hbWU+LCB0aGlzIHRpbWUgdG8gbWVtb3J5IGFkZHJlc3MgPGxpdGVyYWw+MHg3MDA8 L2xpdGVyYWw+LiBIb3dldmVyLCB1bmxpa2UgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4sIGl0 IGRvZXMgbm90IGp1bXAgb3ZlciB0aGVyZS4gSW4gZmFjdCwgPGZpbGVuYW1lPmJvb3QxPC9maWxl bmFtZT4gaXMgbGlua2VkIHRvIGV4ZWN1dGUgYXQgYWRkcmVzcyA8bGl0ZXJhbD4weDdjMDA8L2xp dGVyYWw+LCBlZmZlY3RpdmVseSB3aGVyZSBpdCB3YXMgbG9hZGVkIGluIHRoZSBmaXJzdCBwbGFj ZS4gVGhlIHJlYXNvbiBmb3IgdGhpcyByZWxvY2F0aW9uIHdpbGwgYmUgZGlzY3Vzc2VkIHNob3J0 bHkuPC9wYXJhPgorPHBhcmE+CitOZXh0IGNvbWVzIGEgbG9vcCB0aGF0IGxvb2tzIGZvciB0aGUg RnJlZUJTRCBwYXJ0aXRpb24uIE5vdGUgdGhhdCwgYWx0aG91Z2ggPGZpbGVuYW1lPmJvb3QwPC9m aWxlbmFtZT4gaW4gZmFjdCBsb2FkZWQgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gZnJvbSB0 aGUgRnJlZUJTRCBwYXJ0aXRpb24sIG5vIGluZm9ybWF0aW9uIHdhcyBwYXNzZWQgdG8gaXQgYWJv dXQgdGhpcyBwYXJ0aXRpb248Zm9vdG5vdGU+PHBhcmE+QWN0dWFsbHkgd2UgZGlkIHBhc3MgYSBw b2ludGVyIHRvIHRoZSBwYXJ0aXRpb24gZW50cnkgaW4gcmVnaXN0ZXIgJXNpLiBIb3dldmVyLCA8 ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBkb2VzIDxlbXBoYXNpcz5ub3Q8L2VtcGhhc2lzPiBh c3N1bWUgdGhhdCBpdCB3YXMgbG9hZGVkIGJ5IDxmaWxlbmFtZT5ib290MDwvZmlsZW5hbWU+IChw ZXJoYXBzIG90aGVyIE1CUiBsb2FkZWQgaXQgdGhhdCBkaWQgbm90IHBhc3MgdGhpcyBpbmZvcm1h dGlvbiksIHNvIGl0IGFzc3VtZXMgbm90aGluZy48L3BhcmE+PC9mb290bm90ZT47IDxmaWxlbmFt ZT5ib290MTwvZmlsZW5hbWU+IGVmZmVjdGl2ZWx5IG5lZWRzIHRvIHJlc2NhbiB0aGUgcGFydGl0 aW9uIHRhYmxlIHRvIGZpbmQgd2hlcmUgdGhlIEZyZWVCU0QgcGFydGl0aW9uIHN0YXJ0cy4gVGhl cmVmb3JlLCBpdCByZXJlYWRzIHRoZSBNQlI6Cis8cHJvZ3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5 cy9ib290L2kzODYvYm9vdDIvYm9vdDEuUzo8L2ZpbGVuYW1lPgorCQltb3YgJHBhcnQ0LCVzaQkJ IyBQYXJ0aXRpb24KKwkJY21wYiAkMHg4MCwlZGwJCSMgSGFyZCBkcml2ZT8KKwkJamIgbWFpbi40 CQkjIE5vCisJCW1vdmIgJDB4MSwlZGgJCSMgQmxvY2sgY291bnQKKwkJY2FsbHcgbnJlYWQJCSMg UmVhZCBNQlI8L3Byb2dyYW1saXN0aW5nPgorTm90ZSB0aGF0IGluIHRoZSBjb2RlIGFib3ZlLCBy ZWdpc3RlciA8bGl0ZXJhbD4lZGw8L2xpdGVyYWw+IG1haW50YWlucyBpbmZvcm1hdGlvbiBhYm91 dCB0aGUgYm9vdCBkZXZpY2U7IHRoaXMgaXMgcGFzc2VkIG9uIGJ5IHRoZSBCSU9TIGFuZCBwcmVz ZXJ2ZWQgYnkgdGhlIE1CUi4gTnVtYmVycyA8bGl0ZXJhbD4weDgwPC9saXRlcmFsPiBhbmQgZ3Jl YXRlciB0ZWxscyB1cyB0aGF0IHdlIGFyZSBkZWFsaW5nIHdpdGggYSBoYXJkIGRyaXZlLCBzbyBh IGNhbGwgaXMgbWFkZSB0byA8bGl0ZXJhbD5ucmVhZDwvbGl0ZXJhbD4sIHdoZXJlIHRoZSBNQlIg aXMgcmVhZC4gQXJndW1lbnRzIHRvIDxsaXRlcmFsPm5yZWFkPC9saXRlcmFsPiBhcmUgcGFzc2Vk IHRocm91Z2ggPGxpdGVyYWw+JXNpPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+JWRoPC9saXRlcmFs Pi4gVGhlIG1lbW9yeSBhZGRyZXNzIGF0IGxhYmVsIDxsaXRlcmFsPnBhcnQ0PC9saXRlcmFsPiBp cyBjb3BpZWQgdG8gPGxpdGVyYWw+JXNpPC9saXRlcmFsPi4gVGhpcyBtZW1vcnkgYWRkcmVzcyBo b2xkcyBhICdmYWtlIHBhcnRpdGlvbicsIHRvIGJlIHVzZWQgYnkgPGxpdGVyYWw+bnJlYWQ8L2xp dGVyYWw+LiBUaGUgZm9sbG93aW5nIGlzIHRoZSBkYXRhIGZvdW5kIGluIHRoaXMgZmFrZSBwYXJ0 aXRpb246Cis8cHJvZ3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5cy9ib290L2kzODYvYm9vdDIvYm9v dDEuUzo8L2ZpbGVuYW1lPgorcGFydDQ6CQkuYnl0ZSAweDgwLCAweDAwLCAweDAxLCAweDAwCisJ CS5ieXRlIDB4YTUsIDB4ZmUsIDB4ZmYsIDB4ZmYKKwkJLmJ5dGUgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMAorCQkuYnl0ZSAweDUwLCAweGMzLCAweDAwLCAweDAwCis8L3Byb2dyYW1saXN0aW5nPgor SW4gcGFydGljdWxhciwgdGhlIExCQSBmb3IgdGhpcyBmYWtlIHBhcnRpdGlvbiBpcyBoYXJkY29k ZWQgdG8gMDsgdGhpcyBlZmZlY3RpdmVseSBpcyB1c2VkIGFzIGFuIGFyZ3VtZW50IHRvIHRoZSBC SU9TIGZvciByZWFkaW5nIGFic29sdXRlIHNlY3RvciAxIGZyb20gdGhlIGhhcmQgZHJpdmUuIExl dCB1cyBub3cgcHJvY2VlZCB0byB0YWtlIGEgbG9vayBhdCA8bGl0ZXJhbD5ucmVhZDwvbGl0ZXJh bD46Cis8cHJvZ3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5cy9ib290L2kzODYvYm9vdDIvYm9vdDEu Uzo8L2ZpbGVuYW1lPgorbnJlYWQ6CQltb3YgJDB4OGMwMCwlYngJCSMgVHJhbnNmZXIgYnVmZmVy CisJCW1vdiAweDgoJXNpKSwlYXgJIyBHZXQKKwkJbW92IDB4YSglc2kpLCVjeAkjICBMQkEKKwkJ cHVzaCAlY3MJCSMgUmVhZCBmcm9tCisJCWNhbGx3IHhyZWFkLjEJCSMgIGRpc2sKKwkJam5jIHJl dHVybgkJIyBJZiBzdWNjZXNzLCByZXR1cm4KKzwvcHJvZ3JhbWxpc3Rpbmc+CitSZWNhbGwgdGhh dCA8bGl0ZXJhbD4lc2k8L2xpdGVyYWw+IHBvaW50cyB0byB0aGUgZmFrZSBwYXJ0aXRpb24uIFRo ZSB3b3JkIDxmb290bm90ZT48cGFyYT5JbiB0aGUgY29udGV4dCBvZiAxNi1iaXQgcmVhbCBtb2Rl LCBhIHdvcmQgaXMgMiBieXRlcy48L3BhcmE+PC9mb290bm90ZT4gYXQgb2Zmc2V0IDxsaXRlcmFs PjB4ODwvbGl0ZXJhbD4gaXMgY29waWVkIHRvIHJlZ2lzdGVyIDxsaXRlcmFsPiVheDwvbGl0ZXJh bD4gYW5kIHdvcmQgYXQgb2Zmc2V0IDxsaXRlcmFsPjB4YTwvbGl0ZXJhbD4gdG8gPGxpdGVyYWw+ JWN4PC9saXRlcmFsPjsgdGhleSBhcmUgaW50ZXJwcmV0ZWQgYnkgdGhlIEJJT1MgYXMgYSB0aGUg bG93ZXIgNC1ieXRlIHZhbHVlIGRlbm90aW5nIHRoZSBMQkEgdG8gYmUgcmVhZCAodGhlIHVwcGVy IDQgYnl0ZXMgYXJlIGFzc3VtZWQgMCkuIFJlZ2lzdGVyIDxsaXRlcmFsPiVieDwvbGl0ZXJhbD4g aG9sZHMgdGhlIG1lbW9yeSBhZGRyZXNzIHdoZXJlIHRoZSBNQlIgd2lsbCBiZSBsb2FkZWQuIFRo ZSBpbnN0cnVjdGlvbiBwdXNoaW5nIDxsaXRlcmFsPiVjczwvbGl0ZXJhbD4gb250byB0aGUgc3Rh Y2sgaXMgdmVyeSBpbnRlcmVzdGluZy4gSW4gdGhpcyBjb250ZXh0LCBpdCBhY2NvbXBsaXNoZXMg bm90aGluZywgYnV0LCBhcyB3ZSB3aWxsIHNlZSBzaG9ydGx5LCA8bGl0ZXJhbD54cmVhZC4xPC9s aXRlcmFsPiBtYWtlcyBubyBhc3N1bXB0aW9uIGFib3V0IHRoZSBjb250ZXh0IGluIHdoaWNoIGl0 IGlzIGludm9rZWQuIFBhcnRpY3VsYXJseSwgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gJ3Ry YXBzJyB0aGVyZTsgPGxpdGVyYWw+eHJlYWQuMTwvbGl0ZXJhbD4gdGhlbiBleGVjdXRlcyBpbiBW TTg2IChWaXJ0dWFsIFJlYWwgTW9kZSkuIEJ1dCwgYmVjYXVzZSA8ZmlsZW5hbWU+Ym9vdDI8L2Zp bGVuYW1lPiBleGVjdXRlcyBpbiAzMi1iaXQgcHJvdGVjdGVkIG1vZGUsIGEgbG9uZyByZXR1cm4g aXMgZXhlY3V0ZWQgd2hlbiA8bGl0ZXJhbD54cmVhZC4xPC9saXRlcmFsPiBmaW5pc2hlcyBleGVj dXRpb24uIFRoaXMgaW5zdHJ1Y3Rpb24gcG9wcyBvdXQgZnJvbSB0aGUgc3RhY2sgdGhlIGNvZGUg c2VnbWVudCAocmVnaXN0ZXIgPGxpdGVyYWw+JWNzPC9saXRlcmFsPikgdG8gcmV0dXJuLiBUaGlz IG1lY2hhbmlzbSB3aWxsIGJlY29tZSBtb3JlIGNsZWFyIGxhdGVyLgorTm93LCB0aGUgY29kZSBh dCA8bGl0ZXJhbD54cmVhZC4xPC9saXRlcmFsPiBmdXJ0aGVyIGNhbGxzIHRoZSA8bGl0ZXJhbD5y ZWFkPC9saXRlcmFsPiBmdW5jdGlvbiwgd2hpY2ggYWN0dWFsbHkgY2FsbHMgdGhlIEJJT1MgYXNr aW5nIGZvciB0aGUgZGlzayBzZWN0b3I6Cis8cHJvZ3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5cy9i b290L2kzODYvYm9vdDIvYm9vdDEuUzo8L2ZpbGVuYW1lPgoreHJlYWQuMToJCQkJIyBTdGFydGlu ZworCQlwdXNobCAkMHgwCQkjICBhYnNvbHV0ZQorCQlwdXNoICVjeAkJIyAgYmxvY2sKKwkJcHVz aCAlYXgJCSMgIG51bWJlcgorCQlwdXNoICVlcwkJIyBBZGRyZXNzIG9mCisJCXB1c2ggJWJ4CQkj ICB0cmFuc2ZlciBidWZmZXIKKwkJeG9yICVheCwlYXgJCSMgTnVtYmVyIG9mCisJCW1vdmIgJWRo LCVhbAkJIyAgYmxvY2tzIHRvCisJCXB1c2ggJWF4CQkjICB0cmFuc2ZlcgorCQlwdXNoICQweDEw CQkjIFNpemUgb2YgcGFja2V0CisJCW1vdiAlc3AsJWJwCQkjIFBhY2tldCBwb2ludGVyCisJCWNh bGx3IHJlYWQJCSMgUmVhZCBmcm9tIGRpc2sKKwkJbGVhIDB4MTAoJWJwKSwlc3AJIyBDbGVhciBz dGFjaworCQlscmV0CQkJIyBUbyBmYXIgY2FsbGVyCis8L3Byb2dyYW1saXN0aW5nPgorTm90ZSB0 aGUgPGVtcGhhc2lzPmxvbmcgcmV0dXJuPC9lbXBoYXNpcz4gaW5zdHJ1Y3Rpb24gYXQgdGhlIGVu ZCBvZiB0aGlzIGJsb2NrLiBUaGlzIGluc3RydWN0aW9uIHBvcHMgb3V0IHRoZSA8bGl0ZXJhbD4l Y3M8L2xpdGVyYWw+IHJlZ2lzdGVyIHB1c2hlZCBieSA8bGl0ZXJhbD5ucmVhZDwvbGl0ZXJhbD4s IGFuZCByZXR1cm5zLiBGaW5hbGx5LCA8bGl0ZXJhbD5ucmVhZDwvbGl0ZXJhbD4gYWxzbyByZXR1 cm5zLgorCitOb3csIHdpdGggdGhlIE1CUiBsb2FkZWQgdG8gbWVtb3J5LCB0aGUgYWN0dWFsIGxv b3AgZm9yIHNlYXJjaGluZyB0aGUgRnJlZUJTRCBwYXJ0aXRpb24gYmVnaW5zLiBUaGUgaW1wbGVt ZW50YXRpb24gaXMgYXMgZm9sbG93czoKKzxwcm9ncmFtbGlzdGluZz48ZmlsZW5hbWU+c3lzL2Jv b3QvaTM4Ni9ib290Mi9ib290MS5TOjwvZmlsZW5hbWU+CisJCW1vdiAkMHgxLCVjeAkgCSAjIFR3 byBwYXNzZXMKK21haW4uMTogCW1vdiAkTUVNX0JVRitQUlRfT0ZGLCVzaSAjIFBhcnRpdGlvbiB0 YWJsZQorCQltb3ZiICQweDEsJWRoCQkgIyBQYXJ0aXRpb24KK21haW4uMjogCWNtcGIgJFBSVF9C U0QsMHg0KCVzaSkJICMgT3VyIHBhcnRpdGlvbiB0eXBlPworCQlqbmUgbWFpbi4zCQkgIyBObwor CQlqY3h6IG1haW4uNQkJICMgSWYgc2Vjb25kIHBhc3MKKwkJdGVzdGIgJDB4ODAsKCVzaSkJICMg QWN0aXZlPworCQlqbnogbWFpbi41CQkgIyBZZXMKK21haW4uMzogCWFkZCAkMHgxMCwlc2kJIAkg IyBOZXh0IGVudHJ5CisJCWluY2IgJWRoCQkgIyBQYXJ0aXRpb24KKwkJY21wYiAkMHgxK1BSVF9O VU0sJWRoCSAjIEluIHRhYmxlPworCQlqYiBtYWluLjIJCSAjIFllcworCQlkZWMgJWN4CQkJICMg RG8gdHdvCisJCWpjeHogbWFpbi4xCQkgIyAgcGFzc2VzCis8L3Byb2dyYW1saXN0aW5nPgorVGhp cyBjb2RlLCB3aGljaCBmb2xsb3dzIHRoZSBjYWxsIHRvIDxsaXRlcmFsPm5yZWFkPC9saXRlcmFs PiwgaW1wbGVtZW50cyB0aGUgc2NhbiBpbiB0aGUgcGFydGl0aW9uIHRhYmxlIGxvb2tpbmcgZm9y IHRoZSBGcmVlQlNEIHBhcnRpdGlvbi4gSWYgYSBGcmVlQlNEIHBhcnRpdGlvbiBpcyBzdWNjZXNz ZnVsbHkgaWRlbnRpZmllZCwgZXhlY3V0aW9uIGNvbnRpbnVlcyBhdCA8bGl0ZXJhbD5tYWluLjU8 L2xpdGVyYWw+OyB3ZSBhc3N1bWUgdGhpcyBiZWhhdmlvdXIsIHNvIHdlIGNvbnRpbnVlIGV4ZWN1 dGlvbiB0aGVyZToKKzxwcm9ncmFtbGlzdGluZz48ZmlsZW5hbWU+c3lzL2Jvb3QvaTM4Ni9ib290 Mi9ib290MS5TOjwvZmlsZW5hbWU+CittYWluLjU6IAltb3YgJWR4LE1FTV9BUkcJCQkgICAjIFNh dmUgYXJncworCQltb3ZiICQweDEwLCVkaAkJCSAgICMgU2VjdG9yIGNvdW50CisJCWNhbGx3IG5y ZWFkCQkJICAgIyBSZWFkIGRpc2sKKwkJbW92ICRNRU1fQlRYLCVieAkJICAgIyBCVFgKKwkJbW92 IDB4YSglYngpLCVzaQkJICAgIyBHZXQgQlRYIGxlbmd0aCBhbmQgc2V0CisJCWFkZCAlYngsJXNp CQkJICAgIyAgJXNpIHRvIHN0YXJ0IG9mIGJvb3QyLmJpbgorCQltb3YgJE1FTV9VU1IrU0laX1BB RyoyLCVkaQkgICAjIENsaWVudCBwYWdlIDIKKwkJbW92ICRNRU1fQlRYKyhOU0VDVC0xKSpTSVpf U0VDLCVjeCAjIEJ5dGUKKwkJc3ViICVzaSwlY3gJCQkgICAjICBjb3VudAorCQlyZXAJCQkJICAg IyBSZWxvY2F0ZQorCQltb3ZzYgkJCQkgICAjICBjbGllbnQKKzwvcHJvZ3JhbWxpc3Rpbmc+Cis8 L3BhcmE+Cis8cGFyYT4KK1JlY2FsbCB0aGF0IGF0IHRoaXMgcG9pbnQsIHJlZ2lzdGVyIDxsaXRl cmFsPiVzaTwvbGl0ZXJhbD4gcG9pbnRzIHRvIHRoZSBGcmVlQlNEIHBhcnRpdGlvbiBlbnRyeSBp biB0aGUgTUJSIHBhcnRpdGlvbiB0YWJsZSwgc28gYSBjYWxsIHRvIDxsaXRlcmFsPm5yZWFkPC9s aXRlcmFsPiB3aWxsIGVmZmVjdGl2ZWx5IHJlYWQgc2VjdG9ycyBhdCB0aGUgYmVnaW5uaW5nIG9m IHRoaXMgcGFydGl0aW9uLiBUaGUgYXJndW1lbnQgcGFzc2VkIG9uIHJlZ2lzdGVyIDxsaXRlcmFs PiVkaDwvbGl0ZXJhbD4gdGVsbHMgPGxpdGVyYWw+bnJlYWQ8L2xpdGVyYWw+IHRvIHJlYWQgMTYg ZGlzayBzZWN0b3JzLiBSZWNhbGwgdGhhdCB0aGUgZmlyc3QgNTEyIGJ5dGVzLCAodGhlIGZpcnN0 IHNlY3RvciBvZiB0aGUgRnJlZUJTRCBwYXJ0aXRpb24pLCBjb2luY2lkZXMgd2l0aCB0aGUgPGZp bGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gcHJvZ3JhbS4gQWxzbyByZWNhbGwgdGhhdCB0aGUgZmls ZSB3cml0dGVuIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIEZyZWVCU0QgcGFydGl0aW9uIGlzIG5v dCA8ZmlsZW5hbWU+L2Jvb3QvYm9vdDE8L2ZpbGVuYW1lPiwgYnV0IDxmaWxlbmFtZT4vYm9vdC9i b290PC9maWxlbmFtZT4uIExldCdzIHRha2UgYSBsb29rIGF0IHRoZSBzaXplIG9mIHRoZXNlIGZp bGVzIGluIHRoZSBmaWxlc3lzdGVtOgorPHByb2dyYW1saXN0aW5nPjxmaWxlbmFtZT5zeXMvYm9v dC9pMzg2L2Jvb3QyL2Jvb3QxLlM6PC9maWxlbmFtZT4KKy1yLS1yLS1yLS0gIDEgcm9vdCAgd2hl ZWwgICA1MTJCIEphbiAgOCAwMDoxNSAvYm9vdC9ib290MAorLXItLXItLXItLSAgMSByb290ICB3 aGVlbCAgIDUxMkIgSmFuICA4IDAwOjE1IC9ib290L2Jvb3QxCistci0tci0tci0tICAxIHJvb3Qg IHdoZWVsICAgNy41SyBKYW4gIDggMDA6MTUgL2Jvb3QvYm9vdDIKKy1yLS1yLS1yLS0gIDEgcm9v dCAgd2hlZWwgICA4LjBLIEphbiAgOCAwMDoxNSAvYm9vdC9ib290Cis8L3Byb2dyYW1saXN0aW5n PgorQXMgeW91IGNhbiBzZWUgZnJvbSB0aGlzIG91dHB1dCwgYm90aCA8ZmlsZW5hbWU+Ym9vdDA8 L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gYXJlIDUxMiBieXRlcyBl YWNoLCBzbyB0aGV5IGZpdCA8ZW1waGFzaXM+ZXhhY3RseTwvZW1waGFzaXM+IGluIDEgZGlzayBz ZWN0b3IuIE5vdGUgdGhhdCA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVuYW1lPiBpcyBtdWNoIGJpZ2dl cjsgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gaG9sZHMgdGhlIEJUWCBwcm9ncmFtIGFuZCB0 aGUgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gY2xpZW50LiBGaW5hbGx5LCBhIGZpbGUgY2Fs bGVkIHNpbXBseSA8ZmlsZW5hbWU+Ym9vdDwvZmlsZW5hbWU+IGlzIDUxMiBieXRlcyBsYXJnZXIg dGhhbiA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVuYW1lPjsgaXQgaXMgYSBjb25jYXRlbmF0aW9uIG9m IDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+IGFuZCA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVuYW1l Pi4gQXMgYWxyZWFkeSBub3RlZCwgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4gaXMgdGhlIGZp bGUgd3JpdHRlbiB0byB0aGUgYWJzb2x1dGUgZmlyc3QgZGlzayBzZWN0b3IgKHRoZSBNQlIpLCBh bmQgPGZpbGVuYW1lPmJvb3Q8L2ZpbGVuYW1lPiBpcyB0aGUgZmlsZSB3cml0dGVuIHRvIHRoZSBm aXJzdCBzZWN0b3Igb2YgdGhlIEZyZWVCU0QgcGFydGl0aW9uOyA8ZmlsZW5hbWU+Ym9vdDE8L2Zp bGVuYW1lPiBhbmQgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gYXJlIDxlbXBoYXNpcz5ub3Q8 L2VtcGhhc2lzPiB3cml0dGVuIHRvIGRpc2suIEZvbGxvd2luZyBpcyB0aGUgY29tbWFuZCB1c2Vk IHRvIGNvbmNhdGVuYXRlIDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+IGFuZCA8ZmlsZW5hbWU+ Ym9vdDI8L2ZpbGVuYW1lPiBpbnRvIGEgc2luZ2xlIGZpbGUgPGZpbGVuYW1lPmJvb3Q8L2ZpbGVu YW1lPjoKKzxwcm9ncmFtbGlzdGluZz48ZmlsZW5hbWU+c3lzL2Jvb3QvaTM4Ni9ib290Mi9ib290 MS5TOjwvZmlsZW5hbWU+CitjYXQgYm9vdDEgYm9vdDIgPiBib290Cis8L3Byb2dyYW1saXN0aW5n PgorU28sIGVmZmVjdGl2ZWx5LCA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBvY2N1cGllcyA8 ZW1waGFzaXM+ZXhhY3RseTwvZW1waGFzaXM+IHRoZSBmaXJzdCA1MTIgb2YgdGhlIDxmaWxlbmFt ZT5ib290PC9maWxlbmFtZT4gZmlsZSBhbmQsIGJlY2F1c2UgPGZpbGVuYW1lPmJvb3Q8L2ZpbGVu YW1lPiBpcyB3cml0dGVuIHRvIHRoZSBmaXJzdCBzZWN0b3Igb2YgdGhlIEZyZWVCU0QgcGFydGl0 aW9uLCA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBmaXRzIDxlbXBoYXNpcz5leGFjdGx5PC9l bXBoYXNpcz4gaW4gdGhpcyBmaXJzdCBzZWN0b3IuIE5vdywgcmV0dXJuaW5nIHRvIG91ciBleGVj dXRpb24sIGJlY2F1c2UgPGxpdGVyYWw+bnJlYWQ8L2xpdGVyYWw+IHJlYWRzIHRoZSBmaXJzdCAx NiBzZWN0b3JzIG9mIHRoZSBGcmVlQlNEIHBhcnRpdGlvbiwgaXQgZWZmZWN0aXZlbHkgaXMgcmVh ZGluZyB0aGUgZW50aXJlIDxmaWxlbmFtZT5ib290PC9maWxlbmFtZT4gZmlsZS4gPGZvb3Rub3Rl PjxwYXJhPjUxMioxNj04MTkyIGJ5dGVzLCBleGFjdGx5IHRoZSBzaXplIG9mIDxmaWxlbmFtZT5i b290PC9maWxlbmFtZT48L3BhcmE+PC9mb290bm90ZT4KK1dlIHdpbGwgc2VlIG1vcmUgZGV0YWls cyBhYm91dCBob3cgPGZpbGVuYW1lPmJvb3Q8L2ZpbGVuYW1lPiBpcyBmb3JtZWQgZnJvbSA8Zmls ZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gaW4g dGhlIG5leHQgc2VjdGlvbi4KKzwvcGFyYT4KKzxwYXJhPgorUmVjYWxsIHRoYXQgPGxpdGVyYWw+ bnJlYWQ8L2xpdGVyYWw+IHVzZXMgbWVtb3J5IGFkZHJlc3MgPGxpdGVyYWw+MHg4YzAwPC9saXRl cmFsPiBhcyB0aGUgdHJhbnNmZXIgYnVmZmVyIHRvIGhvbGQgdGhlIHNlY3RvcnMgcmVhZC4gVGhp cyBhZGRyZXNzIGlzIGNvbnZlbmllbnRseSBjaG9zZW4uIEluZGVlZCwgYmVjYXVzZSA8ZmlsZW5h bWU+Ym9vdDE8L2ZpbGVuYW1lPiBiZWxvbmdzIHRvIHRoZSBmaXJzdCA1MTIgYnl0ZXMsIGl0IGlz IHN0b3JlZCBhdCBhZGRyZXNzIHJhbmdlIDxsaXRlcmFsPjB4OGMwMDwvbGl0ZXJhbD4tPGxpdGVy YWw+MHg4ZGZmPC9saXRlcmFsPi4gVGhlIDUxMiBieXRlcyB0aGF0IGZvbGxvd3MgKHJhbmdlIDxs aXRlcmFsPjB4OGUwMDwvbGl0ZXJhbD4tPGxpdGVyYWw+MHg4ZmZmPC9saXRlcmFsPikgaXMgdXNl ZCB0byBzdG9yZSB0aGUgPGVtcGhhc2lzPmRpc2tsYWJlbDwvZW1waGFzaXM+PGZvb3Rub3RlPjxw YXJhPklmIHlvdSBldmVyIHdvbmRlcmVkIHdoZXJlIEZyZWVCU0Qgc3RvcmVkIHRoaXMgaW5mb3Jt YXRpb24sIGl0IGlzIGluIHRoaXMgcmVnaW9uLjwvcGFyYT48L2Zvb3Rub3RlPi4gU3RhcnRpbmcg YXQgYWRkcmVzcyA8bGl0ZXJhbD4weDkwMDA8L2xpdGVyYWw+IGlzIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIDxsaXRlcmFsPkJUWCBzZXJ2ZXI8L2xpdGVyYWw+LCBhbmQgaW1tZWRpYXRlbHkgZm9sbG93 aW5nIHRoZSA8bGl0ZXJhbD5CVFg8L2xpdGVyYWw+IGlzIHRoZSA8ZmlsZW5hbWU+Ym9vdDI8L2Zp bGVuYW1lPiBjbGllbnQuIEFzIHdlIHdpbGwgc2VlLCB0aGUgPGxpdGVyYWw+QlRYIHNlcnZlcjwv bGl0ZXJhbD4gYWN0cyBhcyBhIGtlcm5lbCwgYW5kIGV4ZWN1dGVzIGluIHByb3RlY3RlZCBtb2Rl IGluIHRoZSBtb3N0IHByaXZpbGVnZWQgbGV2ZWwuIEluIGNvbnRyYXN0LCB0aGUgQlRYIGNsaWVu dHMgKDxmaWxlbmFtZT5ib290MjwvZmlsZW5hbWU+LCBmb3IgZXhhbXBsZSksIGV4ZWN1dGUgaW4g dXNlciBtb2RlOyB3ZSB3aWxsIHNlZSBob3cgdGhpcyBpcyBhY2NvbXBsaXNoZWQgaW4gdGhlIG5l eHQgc2VjdGlvbi4gVGhlIGNvZGUgYWZ0ZXIgdGhlIGNhbGwgdG8gPGxpdGVyYWw+bnJlYWQ8L2xp dGVyYWw+IGxvY2F0ZXMgdGhlIGJlZ2lubmluZyBvZiA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVuYW1l PiBpbiB0aGUgbWVtb3J5IGJ1ZmZlciwgYW5kIGNvcGllcyBpdCB0byBtZW1vcnkgYWRkcmVzcyA8 bGl0ZXJhbD4weGMwMDA8L2xpdGVyYWw+LiBUaGlzIGlzIGJlY2F1c2UgdGhlIEJUWCBhcnJhbmdl cyA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVuYW1lPiB0byBleGVjdXRlIGluIGEgc2VnbWVudCBzdGFy dGluZyBhdCA8bGl0ZXJhbD4weGEwMDA8L2xpdGVyYWw+LiBXZSBleHBsb3JlIHRoaXMgaW4gZGV0 YWlsIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbi4KKzwvcGFyYT4KKzxwYXJhPgorVGhlIGxhc3Qg Y29kZSBibG9jayBvZiA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBlbmFibGVzIGFjY2VzcyB0 byBtZW1vcnkgYWJvdmUgMU1CPGZvb3Rub3RlPjxwYXJhPlRoaXMgaXMgbmVjZXNzYXJ5IGZvciBs ZWdhY3kgcmVhc29uczsgdGhlIGludGVyZXN0ZWQgcmVhZGVyIGlzIHJlbWl0dGVkIHRvIGh0dHA6 Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQTIwX2xpbmUuPC9wYXJhPjwvZm9vdG5vdGU+IGFuZCBj b25jbHVkZXMgd2l0aCBhIGp1bXAgdG8gdGhlIHN0YXJ0aW5nIHBvaW50IG9mIHRoZSA8bGl0ZXJh bD5CVFggc2VydmVyPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz48ZmlsZW5hbWU+c3lzL2Jv b3QvaTM4Ni9ib290Mi9ib290MS5TOjwvZmlsZW5hbWU+CitzZXRhMjA6IAljbGkJCQkjIERpc2Fi bGUgaW50ZXJydXB0cworc2V0YTIwLjE6CWRlYyAlY3gJCQkjIFRpbWVvdXQ/CisJCWp6IHNldGEy MC4zCQkjIFllcworCQlpbmIgJDB4NjQsJWFsCQkjIEdldCBzdGF0dXMKKwkJdGVzdGIgJDB4Miwl YWwJCSMgQnVzeT8KKwkJam56IHNldGEyMC4xCQkjIFllcworCQltb3ZiICQweGQxLCVhbAkJIyBD b21tYW5kOiBXcml0ZQorCQlvdXRiICVhbCwkMHg2NAkJIyAgb3V0cHV0IHBvcnQKK3NldGEyMC4y OglpbmIgJDB4NjQsJWFsCQkjIEdldCBzdGF0dXMKKwkJdGVzdGIgJDB4MiwlYWwJCSMgQnVzeT8K KwkJam56IHNldGEyMC4yCQkjIFllcworCQltb3ZiICQweGRmLCVhbAkJIyBFbmFibGUKKwkJb3V0 YiAlYWwsJDB4NjAJCSMgIEEyMAorc2V0YTIwLjM6CXN0aQkJCSMgRW5hYmxlIGludGVycnVwdHMK KworCQlqbXAgc3RhcnQrTUVNX0pNUC1NRU1fT1JHIyBTdGFydCBCVFgKKzwvcHJvZ3JhbWxpc3Rp bmc+CitOb3RlIHRoYXQgcmlnaHQgYmVmb3JlIHRoZSBqdW1wLCBpbnRlcnJ1cHRzIGFyZSBlbmFi bGVkLgorPC9wYXJhPgorICA8L3NlY3QxPgorICA8c2VjdDEgeG1sOmlkPSJidHgtc2VydmVyIj4K KyAgICA8dGl0bGU+VGhlIEJUWCBTZXJ2ZXI8L3RpdGxlPgorPHBhcmE+CitOZXh0IGluIG91ciBi b290IHNlcXVlbmNlIGlzIHRoZSA8bGl0ZXJhbD5CVFggU2VydmVyPC9saXRlcmFsPi4gTGV0J3Mg cXVpY2tseSByZW1lbWJlciBob3cgd2UgZ290IGhlcmU6CisgICAgPGl0ZW1pemVkbGlzdD4KICAg ICAgIDxsaXN0aXRlbT4KLQk8cGFyYT5sb2FkcyB0aGUgZmlyc3Qgc2VjdG9yIG9mIHRoZSBzZWxl Y3RlZCBwYXJ0aXRpb24gKHNsaWNlKQotCSAgaW50byBtZW1vcnkgYW5kIGp1bXBzIHRoZXJlPC9w YXJhPgorCTxwYXJhPkJJT1MgbG9hZHMgdGhlIGFic29sdXRlIHNlY3RvciAxICh0aGUgTUJSLCBv ciA8ZmlsZW5hbWU+Ym9vdDA8L2ZpbGVuYW1lPiksIHRvIGFkZHJlc3MgPGxpdGVyYWw+MHg3YzAw PC9saXRlcmFsPiBhbmQganVtcHMgb3ZlciB0aGVyZS48L3BhcmE+CiAgICAgICA8L2xpc3RpdGVt PgorCisgICAgICA8bGlzdGl0ZW0+CisJPHBhcmE+PGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4g cmVsb2NhdGVzIHRvIDxsaXRlcmFsPjB4NjAwPC9saXRlcmFsPiwgdGhlIGFkZHJlc3MgaXQgd2Fz IGxpbmtlZCB0byBleGVjdXRlLCBhbmQganVtcHMgb3ZlciB0aGVyZS4gSXQgdGhlbiByZWFkcyB0 aGUgZmlyc3Qgc2VjdG9yIG9mIHRoZSBGcmVlQlNEIHBhcnRpdGlvbiAod2hpY2ggY29uc2lzdHMg b2YgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4pIGludG8gYWRkcmVzcyA8bGl0ZXJhbD4weDdj MDA8L2xpdGVyYWw+IGFuZCBqdW1wcyBvdmVyIHRoZXJlLjwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisKKyAgICAgIDxsaXN0aXRlbT4KKwk8cGFyYT48ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1l PiBsb2FkcyB0aGUgZmlyc3QgMTYgc2VjdG9ycyBvZiB0aGUgRnJlZUJTRCBwYXJ0aXRpb24gaW50 byBhZGRyZXNzIDxsaXRlcmFsPjB4OGMwMDwvbGl0ZXJhbD4uIFRoaXMgMTYgc2VjdG9ycywgb3Ig PGxpdGVyYWw+ODE5MjwvbGl0ZXJhbD4gYnl0ZXMsIGNvbnNpc3RzIDxlbXBoYXNpcz5leGFjdGx5 PC9lbXBoYXNpcz4gb2YgdGhlIDxmaWxlbmFtZT5ib290PC9maWxlbmFtZT4gZmlsZS4gVGhlIDxm aWxlbmFtZT5ib290PC9maWxlbmFtZT4gZmlsZSBjb25zaXN0cyBvZiBhIGNvbmNhdGVuYXRpb24g b2YgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gYW5kIDxmaWxlbmFtZT5ib290MjwvZmlsZW5h bWU+IGFuZCwgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4sIGluIHR1cm4sIGNvbnRhaW5zIHRo ZSA8bGl0ZXJhbD5CVFggc2VydmVyPC9saXRlcmFsPiBhbmQgdGhlIDxmaWxlbmFtZT5ib290Mjwv ZmlsZW5hbWU+IGNsaWVudC4gRmluYWxseSwgYSBqdW1wIGlzIG1hZGUgdG8gYWRkcmVzcyA8bGl0 ZXJhbD4weDkwMTA8L2xpdGVyYWw+LCB0aGUgZW50cnkgcG9pbnQgb2YgdGhlIDxsaXRlcmFsPkJU WCBzZXJ2ZXI8L2xpdGVyYWw+LjwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC9pdGVt aXplZGxpc3Q+CitMZXQgdXMgZnVydGhlciByZXZpZXcgaG93IHRoZSBzaW5nbGUsIGFsbC1pbi1v bmUgPGZpbGVuYW1lPmJvb3Q8L2ZpbGVuYW1lPiBmaWxlIGlzIGNyZWF0ZWQuIFRoZSBjb21tYW5k cyBzdGF0ZWQgaW4gdGhlIDxmaWxlbmFtZT5NYWtlZmlsZTwvZmlsZW5hbWU+IGFyZSBxdWl0ZSBs b25nLCBzbyBsZXQncyBnbyBzdGVwIGJ5IHN0ZXAuIFRoZSB3YXkgPGZpbGVuYW1lPmJvb3Q8L2Zp bGVuYW1lPiBpcyBidWlsdCBpcyBkZWZpbmVkIGluIGl0cyA8ZmlsZW5hbWU+TWFrZWZpbGU8L2Zp bGVuYW1lPiAoPGZpbGVuYW1lPi91c3Ivc3JjL3N5cy9ib290L2kzODYvYm9vdDIvTWFrZWZpbGU8 L2ZpbGVuYW1lPikuIExldCdzIGxvb2sgYXQgdGhlIHJ1bGUgdGhhdCBjcmVhdGVzIHRoZSA8Zmls ZW5hbWU+Ym9vdDwvZmlsZW5hbWU+IGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5 cy9ib290L2kzODYvYm9vdDIvTWFrZWZpbGU6PC9maWxlbmFtZT4KK2Jvb3Q6IGJvb3QxIGJvb3Qy CisJY2F0IGJvb3QxIGJvb3QyID4gYm9vdAorPC9wcm9ncmFtbGlzdGluZz4KK1RoaXMgdGVsbHMg dXMgdGhhdCA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPmJvb3QyPC9m aWxlbmFtZT4gYXJlIG5lZWRlZCwgYW5kIHRoZSBydWxlIHNpbXBseSBjb25jYXRlbmF0ZXMgdGhl bSB0byBwcm9kdWNlIGEgc2luZ2xlIGZpbGUgY2FsbGVkIDxmaWxlbmFtZT5ib290PC9maWxlbmFt ZT4uIFRoZSBydWxlcyBmb3IgY3JlYXRpbmcgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gYXJl IGFsc28gcXVpdGUgc2ltcGxlOgorPHByb2dyYW1saXN0aW5nPjxmaWxlbmFtZT5zeXMvYm9vdC9p Mzg2L2Jvb3QyL01ha2VmaWxlOjwvZmlsZW5hbWU+Citib290MTogYm9vdDEub3V0CisJb2JqY29w eSAtUyAtTyBiaW5hcnkgYm9vdDEub3V0ICR7LlRBUkdFVH0KIAotICAgIDxwYXJhPldoYXQga2lu ZCBvZiBkYXRhIHNob3VsZCByZXNpZGUgb24gdGhlIHZlcnkgZmlyc3Qgc2VjdG9yIG9mCi0gICAg ICBhIGJvb3RhYmxlIHBhcnRpdGlvbiAoc2xpY2UpLCBpbiBvdXIgY2FzZSwgYSBGcmVlQlNEIHNs aWNlPyAgQXMKLSAgICAgIHlvdSBtYXkgaGF2ZSBhbHJlYWR5IGd1ZXNzZWQsIGl0IGlzCi0gICAg ICA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVuYW1lPi48L3BhcmE+Ci0gIDwvc2VjdDE+Citib290MS5v dXQ6IGJvb3QxLm8KKwlsZCAtZSBzdGFydCAtVHRleHQgMHg3YzAwIC1vIGJvb3QxLm91dCBib290 MS5vCis8L3Byb2dyYW1saXN0aW5nPgorSW4gb3JkZXIgdG8gYXBwbHkgdGhlIHJ1bGUgZm9yIGNy ZWF0aW5nIDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+LCA8ZmlsZW5hbWU+Ym9vdDEub3V0PC9m aWxlbmFtZT4gbXVzdCBiZSByZXNvbHZlZC4gVGhpcywgaW4gdHVybiwgZGVwZW5kcyBvbiB0aGUg ZXhpc3RlbmNlIG9mIDxmaWxlbmFtZT5ib290MS5vPC9maWxlbmFtZT4uIFRoaXMgbGFzdCBmaWxl IGlzIHNpbXBseSB0aGUgcmVzdWx0IG9mIGFzc2VtYmxpbmcgb3VyIGZhbWlsaWFyIDxmaWxlbmFt ZT5ib290MS5TPC9maWxlbmFtZT4sIHdpdGhvdXQgbGlua2luZy4gTm93LCB0aGUgcnVsZSBmb3Ig Y3JlYXRpbmcgPGZpbGVuYW1lPmJvb3QxLm91dDwvZmlsZW5hbWU+IGlzIGFwcGxpZWQuIFRoaXMg dGVsbHMgdXMgdGhhdCA8ZmlsZW5hbWU+Ym9vdDEubzwvZmlsZW5hbWU+IHNob3VsZCBiZSBsaW5r ZWQgd2l0aCA8bGl0ZXJhbD5zdGFydDwvbGl0ZXJhbD4gYXMgaXRzIGVudHJ5IHBvaW50LCBhbmQg c3RhcnRpbmcgYXQgYWRkcmVzcyA8bGl0ZXJhbD4weDdjMDA8L2xpdGVyYWw+LiBGaW5hbGx5LCA8 ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiBpcyBjcmVhdGVkIGZyb20gPGZpbGVuYW1lPmJvb3Qx Lm91dDwvZmlsZW5hbWU+IGFwcGx5aW5nIHRoZSBhcHByb3BpYXRlIHJ1bGUuIFRoaXMgcnVsZSBp cyB0aGUgPGZpbGVuYW1lPm9iamNvcHk8L2ZpbGVuYW1lPiBjb21tYW5kIGFwcGxpZWQgdG8gPGZp bGVuYW1lPmJvb3QxLm91dDwvZmlsZW5hbWU+LiBOb3RlIHRoZSBmbGFncyBwYXNzZWQgdG8gPGZp bGVuYW1lPm9iamNvcHk8L2ZpbGVuYW1lPjogLVMgdGVsbHMgaXQgdG8gc3RyaXAgYWxsIHJlbG9j YXRpb24gYW5kIHN5bWJvbGljIGluZm9ybWF0aW9uOyAtTyBiaW5hcnkgaW5kaWNhdGVzIHRoZSBv dXRwdXQgZm9ybWF0LCB0aGF0IGlzLCBhIHNpbXBsZSwgdW5mb3JtYXR0ZWQgYmluYXJ5IGZpbGUu IFdlIG5vdyBoYXZlIDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+LiBMZXQncyB0YWtlIGEgbG9v ayBhdCBob3cgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gaXMgY29uc3RydWN0ZWQ6Cis8cHJv Z3JhbWxpc3Rpbmc+PGZpbGVuYW1lPnN5cy9ib290L2kzODYvYm9vdDIvTWFrZWZpbGU6PC9maWxl bmFtZT4KK2Jvb3QyOiBib290Mi5sZAorCUBzZXQgLS0gYGxzIC1sIGJvb3QyLmxkYDsgeD0kJCgo NzY4MC0kJDUpKTsgXAorCSAgICBlY2hvICIkJHggYnl0ZXMgYXZhaWxhYmxlIjsgdGVzdCAkJHgg LWdlIDAKKwlkZCBpZj1ib290Mi5sZCBvZj0key5UQVJHRVR9IG9icz03NjgwIGNvbnY9b3N5bmMK IAotICA8c2VjdDEgeG1sOmlkPSJib290LWJvb3QyIj4KLSAgICA8dGl0bGU+PGxpdGVyYWw+Ym9v dDI8L2xpdGVyYWw+IFN0YWdlPC90aXRsZT4KK2Jvb3QyLmxkOiBib290Mi5sZHIgYm9vdDIuYmlu ICR7QlRYS0VSTn0KKwlidHhsZCAtdiAtRSAke09SRzJ9IC1mIGJpbiAtYiAke0JUWEtFUk59IC1s IGJvb3QyLmxkciBcCisJICAgIC1vICR7LlRBUkdFVH0gLVAgMSBib290Mi5iaW4KIAotICAgIDxw YXJhPllvdSBtaWdodCB3b25kZXIsIHdoeSA8bGl0ZXJhbD5ib290MjwvbGl0ZXJhbD4gY29tZXMg YWZ0ZXIKLSAgICAgIDxsaXRlcmFsPmJvb3QwPC9saXRlcmFsPiwgYW5kIG5vdCBib290MS4gIEFj dHVhbGx5LCB0aGVyZSBpcyBhCi0gICAgICA1MTItYnl0ZSBmaWxlIGNhbGxlZCA8ZmlsZW5hbWU+ Ym9vdDE8L2ZpbGVuYW1lPiBpbiB0aGUgZGlyZWN0b3J5Ci0gICAgICA8ZmlsZW5hbWU+L2Jvb3Q8 L2ZpbGVuYW1lPiBhcyB3ZWxsLiAgSXQgaXMgdXNlZCBmb3IgYm9vdGluZyBmcm9tCi0gICAgICBh IGZsb3BweS4gIFdoZW4gYm9vdGluZyBmcm9tIGEgZmxvcHB5LAotICAgICAgPGZpbGVuYW1lPmJv b3QxPC9maWxlbmFtZT4gcGxheXMgdGhlIHNhbWUgcm9sZSBhcwotICAgICAgPGZpbGVuYW1lPmJv b3QwPC9maWxlbmFtZT4gZm9yIGEgaGFyZGRpc2s6IGl0IGxvY2F0ZXMKLSAgICAgIDxmaWxlbmFt ZT5ib290MjwvZmlsZW5hbWU+IGFuZCBydW5zIGl0LjwvcGFyYT4KK2Jvb3QyLmxkcjoKKwlkZCBp Zj0vZGV2L3plcm8gb2Y9JHsuVEFSR0VUfSBicz01MTIgY291bnQ9MQogCi0gICAgPHBhcmE+WW91 IG1heSBoYXZlIHJlYWxpemVkIHRoYXQgYSBmaWxlCi0gICAgICA8ZmlsZW5hbWU+L2Jvb3QvbWJy PC9maWxlbmFtZT4gZXhpc3RzIGFzIHdlbGwuICBJdCBpcyBhCi0gICAgICBzaW1wbGlmaWVkIHZl cnNpb24gb2YgPGZpbGVuYW1lPmJvb3QwPC9maWxlbmFtZT4uICBUaGUgY29kZSBpbgotICAgICAg PGZpbGVuYW1lPm1icjwvZmlsZW5hbWU+IGRvZXMgbm90IHByb3ZpZGUgYSBtZW51IGZvciB0aGUg dXNlciwKLSAgICAgIGl0IGp1c3QgYmxpbmRseSBib290cyB0aGUgcGFydGl0aW9uIG1hcmtlZCBh Y3RpdmUuPC9wYXJhPgorYm9vdDIuYmluOiBib290Mi5vdXQKKwlvYmpjb3B5IC1TIC1PIGJpbmFy eSBib290Mi5vdXQgJHsuVEFSR0VUfQogCitib290Mi5vdXQ6ICR7QlRYRElSfS9saWIvY3J0MC5v IGJvb3QyLm8gc2lvLm8KKwlsZCAtVHRleHQgMHgyMDAwIC1vIGJvb3QyLm91dAorCitib290Mi5v OiBib290Mi5zCisJJHtDQ30gJHtBQ0ZMQUdTfSAtYyBib290Mi5zCisKK1NSQ1M9CWJvb3QyLmMg Ym9vdDIuaAorCitib290Mi5zOiBib290Mi5jIGJvb3QyLmggJHsuQ1VSRElSfS8uLi8uLi9jb21t b24vdWZzcmVhZC5jCisJJHtDQ30gJHtDRkxBR1N9IC1TIC1vIGJvb3QyLnMudG1wICR7LkNVUkRJ Un0vYm9vdDIuYworCXNlZCAtZSAnL2FsaWduL2QnIC1lICcvbm9wL2QnICJNSVNTSU5HIiBib290 Mi5zLnRtcCA+IGJvb3QyLnMKKwlybSAtZiBib290Mi5zLnRtcAorCitib290Mi5oOiBib290MS5v dXQKKwkke05NfSAtdCBkICR7LkFMTFNSQ30gfCBhd2sgJy8oWzAtOV0pKyBUIHhyZWFkLyBcCisJ ICAgIHsgeCA9ICQkMSAtIE9SRzE7IFwKKwkgICAgcHJpbnRmKCIjZGVmaW5lIFhSRUFET1JHICUj eFxuIiwgUkVMMSArIHgpIH0nIFwKKwkgICAgT1JHMT1gcHJpbnRmICIlZCIgJHtPUkcxfWAgXAor CSAgICBSRUwxPWBwcmludGYgIiVkIiAke1JFTDF9YCA+ICR7LlRBUkdFVH0KKzwvcHJvZ3JhbWxp c3Rpbmc+CitUaGUgbWVjaGFuaXNtIGZvciBidWlsZGluZyA8ZmlsZW5hbWU+Ym9vdDI8L2ZpbGVu YW1lPiBpcyBmYXIgbW9yZSBlbGFib3JhdGVkLiBMZXQncyBwb2ludCBvdXQgdGhlIG1vc3QgcmVs ZXZhbnQgZmFjdHMuIFRoZSBkZXBlbmRlbmN5IGxpc3QgaXMgYXMgZm9sbG93czoKKzxwcm9ncmFt bGlzdGluZz48ZmlsZW5hbWU+c3lzL2Jvb3QvaTM4Ni9ib290Mi9NYWtlZmlsZTo8L2ZpbGVuYW1l PgorYm9vdDI6IGJvb3QyLmxkCitib290Mi5sZDogYm9vdDIubGRyIGJvb3QyLmJpbiAke0JUWERJ Un0vYnR4L2J0eAorYm9vdDIuYmluOiBib290Mi5vdXQKK2Jvb3QyLm91dDogJHtCVFhESVJ9L2xp Yi9jcnQwLm8gYm9vdDIubyBzaW8ubworYm9vdDIubzogYm9vdDIucworYm9vdDIuczogYm9vdDIu YyBib290Mi5oICR7LkNVUkRJUn0vLi4vLi4vY29tbW9uL3Vmc3JlYWQuYworYm9vdDIuaDogYm9v dDEub3V0Cis8L3Byb2dyYW1saXN0aW5nPgorCitOb3RlIHRoYXQgaW5pdGlhbGx5IHRoZXJlIGlz IG5vIGhlYWRlciA8ZmlsZW5hbWU+Ym9vdDIuaDwvZmlsZW5hbWU+IGZpbGU7IGl0cyBjcmVhdGlv biBkZXBlbmRzIG9uIDxmaWxlbmFtZT5ib290MS5vdXQ8L2ZpbGVuYW1lPiwgd2hpY2ggd2UgYWxy ZWFkeSBoYXZlLiBUaGUgcnVsZSBmb3IgaXRzIGNyZWF0aW9uIGlzIGEgYml0IHRlcnNlLCBidXQg dGhlIGltcG9ydGFudCB0aGluZyBpcyB0aGF0IHRoZSBvdXRwdXQsIDxmaWxlbmFtZT5ib290Mi5o PC9maWxlbmFtZT4sIGlzIHNvbWV0aGluZyBsaWtlIHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+PGZp bGVuYW1lPnN5cy9ib290L2kzODYvYm9vdDIvYm9vdDIuaDo8L2ZpbGVuYW1lPgorI2RlZmluZSBY UkVBRE9SRyAweDcyNQorPC9wcm9ncmFtbGlzdGluZz4KK1JlY2FsbCB0aGF0IDxmaWxlbmFtZT5i b290MTwvZmlsZW5hbWU+IHdhcyByZWxvY2F0ZWQgKGkuZSBjb3BpZWQgZnJvbSA8bGl0ZXJhbD4w eDdjMDA8L2xpdGVyYWw+IHRvIDxsaXRlcmFsPjB4NzAwPC9saXRlcmFsPikuIE5vdyB0aGlzIHJl bG9jYXRpb24gd2lsbCBtYWtlIHNlbnNlLCBiZWNhdXNlIGFzIHdlIHdpbGwgc2VlLCB0aGUgPGxp dGVyYWw+QlRYIHNlcnZlcjwvbGl0ZXJhbD4gcmVjbGFpbXMgc29tZSBtZW1vcnksIGluY2x1ZGlu ZyB3aGVyZSA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPiB3YXMgb3JpZ2luYWxseSBsb2FkZWQu IEhvd2V2ZXIsIGl0IG5lZWRzIGFjY2VzcyB0byA8ZmlsZW5hbWU+Ym9vdDE8L2ZpbGVuYW1lPidz IDxsaXRlcmFsPnhyZWFkPC9saXRlcmFsPiBmdW5jdGlvbjsgdGhpcyBmdW5jdGlvbiwgYWNjb3Jk aW5nIHRvIHRoZSBvdXRwdXQgb2YgPGZpbGVuYW1lPmJvb3QyLmg8L2ZpbGVuYW1lPiwgaXMgYXQg bG9jYXRpb24gPGxpdGVyYWw+MHg3MjU8L2xpdGVyYWw+LiBJbmRlZWQsIHRoZSA8bGl0ZXJhbD5C VFggc2VydmVyPC9saXRlcmFsPiB1c2VzIHRoZSA8bGl0ZXJhbD54cmVhZDwvbGl0ZXJhbD4gZnVu Y3Rpb24gZnJvbSB0aGUgcmVsb2NhdGVkIDxmaWxlbmFtZT5ib290MTwvZmlsZW5hbWU+J3MgY29k ZS4gVGhpcyBmdW5jdGlvbiBpcyBub3cgYWNjZXNpYmxlIGZyb20gd2l0aGluIHRoZSA8ZmlsZW5h bWU+Ym9vdDI8L2ZpbGVuYW1lPiBjbGllbnQuPC9wYXJhPgorPHBhcmE+CitIYXZpbmcgPGZpbGVu YW1lPmJvb3QyLmg8L2ZpbGVuYW1lPiwgd2UgbmV4dCBidWlsZCA8ZmlsZW5hbWU+Ym9vdDIuczwv ZmlsZW5hbWU+IGZyb20gPGZpbGVuYW1lPmJvb3QyLmg8L2ZpbGVuYW1lPiwgPGZpbGVuYW1lPmJv b3QyLmM8L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPi91c3Ivc3JjL3N5cy9ib290L2NvbW1vbi91 ZnNyZWFkLmM8L2ZpbGVuYW1lPi4gVGhlIHJ1bGUgZm9yIHRoaXMgaXMgdG8gY29tcGlsZSB0aGUg Y29kZSBpbiA8ZmlsZW5hbWU+Ym9vdDIuYzwvZmlsZW5hbWU+IGludG8gYXNzZW1ibHkgY29kZS4g VGhlIG5leHQgcnVsZSBhc3NlbWJsZXMgPGZpbGVuYW1lPmJvb3QyLnM8L2ZpbGVuYW1lPiBjcmVh dGluZyB0aGUgb2JqZWN0IGZpbGUgPGZpbGVuYW1lPmJvb3QyLm88L2ZpbGVuYW1lPi4gQWZ0ZXIg dGhpcywgdGhlIGZvbGxvd2luZyBydWxlIGRpcmVjdHMgdGhlIGxpbmtlciB0byBsaW5rIHZhcmlv dXMgZmlsZXMgKDxmaWxlbmFtZT5jcnQwLm88L2ZpbGVuYW1lPiwgPGZpbGVuYW1lPmJvb3QyLm88 L2ZpbGVuYW1lPiBhbmQgPGZpbGVuYW1lPnNpby5vPC9maWxlbmFtZT4pLiBOb3RlIHRoYXQgdGhl IG91dHB1dCBmaWxlLCA8ZmlsZW5hbWU+Ym9vdDIub3V0PC9maWxlbmFtZT4sIGlzIGxpbmtlZCB0 byBleGVjdXRlIGF0IGFkZHJlc3MgPGxpdGVyYWw+MHgyMDAwPC9saXRlcmFsPi4gUmVjYWxsIHRo YXQgPGZpbGVuYW1lPmJvb3QyPC9maWxlbmFtZT4gd2lsbCBiZSBleGVjdXRlZCBpbiB1c2VyIG1v ZGUsIHdpdGhpbiBhIHNwZWNpYWwgdXNlciBzZWdtZW50IHNldCB1cCBieSB0aGUgPGxpdGVyYWw+ QlRYIHNlcnZlcjwvbGl0ZXJhbD4uIFRoaXMgc2VnbWVudCBzdGFydHMgYXQgPGxpdGVyYWw+MHhh MDAwPC9saXRlcmFsPi4gQWxzbywgcmVtZW1iZXIgdGhhdCB0aGUgPGZpbGVuYW1lPmJvb3QyPC9m aWxlbmFtZT4gcG9ydGlvbiBvZiA8ZmlsZW5hbWU+Ym9vdDwvZmlsZW5hbWU+IHdhcyBjb3BpZWQg YnkgPGZpbGVuYW1lPmJvb3QxPC9maWxlbmFtZT4gaW50byBhZGRyZXNzIDxsaXRlcmFsPjB4YzAw MDwvbGl0ZXJhbD4sIHRoYXQgaXMsIG9mZnNldCA8bGl0ZXJhbD4weDIwMDA8L2xpdGVyYWw+IGZy b20gdGhlIHN0YXJ0IG9mIHRoZSB1c2VyIHNlZ21lbnQsIHNvIDxmaWxlbmFtZT5ib290MjwvZmls ZW5hbWU+IHdpbGwgd29yayBwcm9wZXJseSB3aGVuIHdlIHRyYW5zZmVyIGNvbnRyb2wgdG8gaXQu IE5leHQsIDxmaWxlbmFtZT5ib290Mi5iaW48L2ZpbGVuYW1lPiBpcyBjcmVhdGVkIGZyb20gPGZp bGVuYW1lPmJvb3QyLm91dDwvZmlsZW5hbWU+IGJ5IHN0cmlwcGluZyBpdHMgc3ltYm9scyBhbmQg Zm9ybWF0IGluZm9ybWF0aW9uOyBib290Mi5iaW4gaXMgYSA8ZW1waGFzaXM+cmF3PC9lbXBoYXNp cz4uIE5vdywgbm90ZSB0aGF0IGEgZmlsZSA8ZmlsZW5hbWU+Ym9vdDIubGRyPC9maWxlbmFtZT4g aXMgY3JlYXRlZCBhcyBhIDUxMi1ieXRlIGZpbGUgZnVsbAorPC9wYXJhPgorICA8L3NlY3QxPgor IAorPHNlY3QxIHhtbDppZD0iYm9vdDIiPgorICAgIDx0aXRsZT48bGl0ZXJhbD5ib290MjwvbGl0 ZXJhbD4gU3RhZ2U8L3RpdGxlPgorCiAgICAgPHBhcmE+VGhlIGNvZGUgaW1wbGVtZW50aW5nIDxm aWxlbmFtZT5ib290MjwvZmlsZW5hbWU+IHJlc2lkZXMgaW4KICAgICAgIDxmaWxlbmFtZT5zeXMv Ym9vdC9pMzg2L2Jvb3QyLzwvZmlsZW5hbWU+LCBhbmQgdGhlIGV4ZWN1dGFibGUKICAgICAgIGl0 c2VsZiBpcyBpbiA8ZmlsZW5hbWU+L2Jvb3Q8L2ZpbGVuYW1lPi4gIFRoZSBmaWxlcwpAQCAtNDQ5 LDEwICs4MTUsMTMgQEAKICAgICBfX2V4ZWMoKGNhZGRyX3QpYWRkciwgUkJfQk9PVElORk8gfCAo b3B0cyAmYW1wOyBSQlhfTUFTSyksCiAJICAgTUFLRUJPT1RERVYoZGV2X21haltkc2sudHlwZV0s IDAsIGRzay5zbGljZSwgZHNrLnVuaXQsIGRzay5wYXJ0KSwKIAkgICAwLCAwLCAwLCBWVE9QKCZh bXA7Ym9vdGluZm8pKTs8L3Byb2dyYW1saXN0aW5nPgorCiAgIDwvc2VjdDE+CiAKKworCiAgIDxz ZWN0MSB4bWw6aWQ9ImJvb3QtbG9hZGVyIj4KLSAgICA8dGl0bGU+PGFwcGxpY2F0aW9uPmxvYWRl cjwvYXBwbGljYXRpb24+IFN0YWdlPC90aXRsZT4KKyAgICA8dGl0bGU+PGxpdGVyYWw+bG9hZGVy PC9saXRlcmFsPiBTdGFnZTwvdGl0bGU+CiAKICAgICA8cGFyYT48YXBwbGljYXRpb24+bG9hZGVy PC9hcHBsaWNhdGlvbj4gaXMgYSBCVFggY2xpZW50IGFzIHdlbGwuCiAgICAgICBJIHdpbGwgbm90 IGRlc2NyaWJlIGl0IGhlcmUgaW4gZGV0YWlsLCB0aGVyZSBpcyBhIGNvbXByZWhlbnNpdmUK --089e01176f01ef40cf04efecd7a9--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1389679735.19797.YahooMailNeo>