Date: Tue, 17 Sep 2019 23:36:50 +0000 From: vm finance <vm.finance2@gmail.com> To: Randall Stewart <rrs@netflix.com> Cc: Jamie Landeg-Jones <jamie@catflap.org>, Ryan Stone <rysto32@gmail.com>, freebsd-net <freebsd-net@freebsd.org> Subject: Re: BBR patches? Message-ID: <CAKy-8=jY6NRfn0xEiAhCnA4r=U1jpyOVu__B8NkFWW9t2UDg4Q@mail.gmail.com> In-Reply-To: <CAKy-8=jwoV8=gXXUCCMARe4%2BELuqDXuYY=J9Rn7ej0536xTJvQ@mail.gmail.com> References: <CAKy-8=jUu=dbp1s7nhYBwgeh%2BiO-XY-YEnh1MJ81aYJoopVonA@mail.gmail.com> <201909091232.x89CWl4b047025@donotpassgo.dyslexicfish.net> <CAKy-8=gZ8E73PZdxb33aN=TmfigcNyTvZP4wP3M-mAy9no-v6w@mail.gmail.com> <CAFMmRNxbX5f3s0ZZk=Epr7Gu7%2Bsjat8F0TV0aX_RwoFgX0s%2ByA@mail.gmail.com> <CAKy-8=g=3LC8u_vc_3_Pfe6pgoUxpvx7N_j=xv7nRaM%2BD1Oz-A@mail.gmail.com> <D35AF884-C631-42CE-ABFD-F4AA76AA6693@netflix.com> <CAKy-8=jSdSFPJWL=cLeea-KSc=9wxR6vQTODibw7-GUh0XpCfw@mail.gmail.com> <27AD43DA-3237-490A-B3A6-C1792F9674E5@netflix.com> <CAKy-8=idqzA0-Trm%2B5gZSQs=vyXrPm40gP3AsbMf_YQj-NEHaA@mail.gmail.com> <CAKy-8=jpGvKU1khALK%2Ba5Ojp7btg7y1W%2BELtTLQaniVNtgBj3g@mail.gmail.com> <AD906F45-B083-476F-952E-3318F36BD828@netflix.com> <BCC20B79-ECEF-4D7C-AA7E-5F8A0869753A@netflix.com> <5B630235-ABC7-4122-9082-F59BCCCDE14A@netflix.com> <CAKy-8=jwoV8=gXXUCCMARe4%2BELuqDXuYY=J9Rn7ej0536xTJvQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000065de770592cab622 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable My Kernel config is attached here. Thanks! On Wed, Sep 18, 2019 at 2:26 AM vm finance <vm.finance2@gmail.com> wrote: > Hi Randall, > > Could you please provide a pointer to the latest patch. I had applied the > one you published Sep-10. > > Following is what I have done: > 1. Picked FreeBSD 12.0 RELEASE VM from osboxes.org > 2. Got VM up under VMPlayer on x86 laptop > 3. Checked out latest codebase from freebsd repo: > svn co svn://svn.freebsd.org/base/head /usr/src* > cd /usr/src; > make buildworld buildkernel > [this is where make fails when patch is applied] > > I could try to build with your latest patch - please send me a pointer. > > Thanks for your help! > > > On Tue, Sep 17, 2019 at 1:33 PM Randall Stewart <rrs@netflix.com> wrote: > >> Looking at your make file log I can=E2=80=99t really tell what you are d= oing. >> >> Its not the BBR or Rack code that is blowing up=E2=80=A6 >> >> Are you cross compiling? >> >> I have done the old fashioned kernel make >> >> i.e. >> >> cd src/sys/amd64/config >> config headvm >> cd ../compile/headvm >> >> make cleandepend ; make depend; make -j3 >> >> I have done >> >> cd src >> make buildkernel KERNCONF=3Dheadvm >> >> And even >> >> make buildkernel KERNCONF=3DGENERIC >> >> to make sure that the build works without bbr. >> >> I attach my headvm config.. >> >> What exactly are you building and how? kernel config too please? >> >> R >> >> >> >> >> > On Sep 17, 2019, at 1:11 PM, Randall Stewart <rrs@netflix.com> wrote: >> > >> > looking >> > >> > I was at 352408.. let me update and try it >> > >> > R >> > >> >> On Sep 17, 2019, at 1:10 PM, Randall Stewart <rrs@netflix.com> wrote: >> >> >> >> Hmm >> >> >> >> Did you get the patch I updated too this am? >> >> >> >> I have built it both with and without the bbr stack and had no issue.= . >> there was >> >> an issue with KTLS before the update though. >> >> >> >> I don=E2=80=99t recognize what you have below there though=E2=80=A6 >> >> >> >> R >> >> >> >>> On Sep 17, 2019, at 11:47 AM, vm finance <vm.finance2@gmail.com> >> wrote: >> >>> >> >>> Got it - thank you! >> >>> >> >>> btw, I tried to build the patch but its giving an error. Following i= s >> SVN info + make error mesg. >> >>> >> >>> Please let me know what am I missing here? >> >>> >> >>> Thanks! >> >>> >> >>> #svnlite revision >> >>> Path: . >> >>> Working Copy Root Path: /usr/src >> >>> URL: svn://svn.freebsd.org/base/head >> >>> Relative URL: ^/head >> >>> Repository Root: svn://svn.freebsd.org/base >> >>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f >> >>> Revision: 352436 >> >>> Node Kind: directory >> >>> Schedule: normal >> >>> Last Changed Author: jah >> >>> Last Changed Rev: 352434 >> >>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep 2019) >> >>> >> >>> root@osboxes:/usr/src # >> >>> >> >>> -------------------------------------------- snip >> ---------------------------- >> >>> >> >>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo >> dev_net.llo bcache.llo interp_simple.llo zfs_cmd.llo >> >>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS >> >>> =3D=3D=3D> sys (cleandir) >> >>> rm -f export_syms machine x86 tcp_bbr.ko tcp_bbr.kld bbr.o >> sack_filter.o rack_bbr_common.o opt_inet.h opt_inet6.h opt_ipsec.h >> opt_tcpdebug.h opt_kern_tls.h >> >>> rm: x86: is a directory >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make[3]: stopped in /usr/src/sys >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make[2]: stopped in /usr/src >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make[1]: stopped in /usr/src >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make: stopped in /usr/src >> >>> >> >>> >> >>> On Tue, Sep 17, 2019 at 6:41 PM vm finance <vm.finance2@gmail.com> >> wrote: >> >>> Got it - thank you! >> >>> >> >>> btw, I tried to build the patch but its giving an error. Following i= s >> SVN info + make error mesg. >> >>> I have also attached the entire build log...snippet is below >> >>> >> >>> Please let me know what am I missing here? >> >>> >> >>> Thanks! >> >>> >> >>> #svnlite revision >> >>> Path: . >> >>> Working Copy Root Path: /usr/src >> >>> URL: svn://svn.freebsd.org/base/head >> >>> Relative URL: ^/head >> >>> Repository Root: svn://svn.freebsd.org/base >> >>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f >> >>> Revision: 352436 >> >>> Node Kind: directory >> >>> Schedule: normal >> >>> Last Changed Author: jah >> >>> Last Changed Rev: 352434 >> >>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep 2019) >> >>> >> >>> root@osboxes:/usr/src # >> >>> >> >>> -------------------------------------------- snip >> ---------------------------- >> >>> >> >>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo >> dev_net.llo bcache.llo interp_simple.llo zfs_cmd.llo >> >>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS >> >>> =3D=3D=3D> sys (cleandir) >> >>> rm -f export_syms machine x86 tcp_bbr.ko tcp_bbr.kld bbr.o >> sack_filter.o rack_bbr_common.o opt_inet.h opt_inet6.h opt_ipsec.h >> opt_tcpdebug.h opt_kern_tls.h >> >>> rm: x86: is a directory >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make[3]: stopped in /usr/src/sys >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make[2]: stopped in /usr/src >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make[1]: stopped in /usr/src >> >>> *** Error code 1 >> >>> >> >>> Stop. >> >>> make: stopped in /usr/src >> >>> >> >>> >> >>> On Tue, Sep 17, 2019 at 6:27 PM Randall Stewart <rrs@netflix.com> >> wrote: >> >>> Pacing is provided by tcp_hpts.c. The current linux patches do not >> have >> >>> to have fq.. they built an alternate means of doing pacing into bbr. >> >>> >> >>> In either case our testing has shown that our pacing is more accurat= e >> than >> >>> either fq or the internal pacer :) >> >>> >> >>> R >> >>> >> >>>> On Sep 17, 2019, at 11:05 AM, vm finance <vm.finance2@gmail.com> >> wrote: >> >>>> >> >>>> Thanks Randall. >> >>>> I was able to apply the patch - now rebuilding the kernel. Would >> update on how it goes. >> >>>> >> >>>> BTW, is there any description on how lack of tc_fq under FreeBSD is >> compensated here? >> >>>> The original BBR patches on Linux show that as a must-have? Is that >> functionality implemented via tcp_ratelimit.[ch]? >> >>>> >> >>>> Any pointers to existing presentations/discussions highly >> appreciated? >> >>>> >> >>>> Thanks a lot. >> >>>> >> >>>> On Tue, Sep 17, 2019 at 5:39 AM Randall Stewart <rrs@netflix.com> >> wrote: >> >>>> You should be able to compile it against the current head. I >> re-doing that now (had an >> >>>> issue with my machine and had to roll it back to a backup). >> >>>> >> >>>> When I put the patch up on Sept 10th it complied with and without >> BBR on whatever >> >>>> was that rev.. >> >>>> >> >>>> Looking in the commit logs that would have been around 352191 >> >>>> >> >>>> Hope that helps >> >>>> >> >>>> R >> >>>> >> >>>>> On Sep 17, 2019, at 3:32 AM, vm finance <vm.finance2@gmail.com> >> wrote: >> >>>>> >> >>>>> Hi Randall, >> >>>>> >> >>>>> Thanks for releasing BBR patch: >> >>>>> https://reviews.freebsd.org/D21582#change-xcAWBif3E9Jq >> >>>>> >> >>>>> Could you please let me know what SVN/GIT label tag this is based >> on? I would like to patch and experiment with it. I couldn't find this i= nfo >> in the released patch. >> >>>>> >> >>>>> Thanks a lot! >> >>>>> >> >>>>> On Tue, Sep 10, 2019 at 10:26 AM Ryan Stone <rysto32@gmail.com> >> wrote: >> >>>>> rrs@ has just posted the BBR patch to phabricator: >> >>>>> >> >>>>> https://reviews.freebsd.org/D21582 >> >>>> >> >>>> ------ >> >>>> Randall Stewart >> >>>> rrs@netflix.com >> >>>> >> >>>> >> >>>> >> >>> >> >>> ------ >> >>> Randall Stewart >> >>> rrs@netflix.com >> >>> >> >>> >> >>> >> >> >> >> ------ >> >> Randall Stewart >> >> rrs@netflix.com >> >> >> >> >> >> >> > >> > ------ >> > Randall Stewart >> > rrs@netflix.com >> > >> > >> > >> >> ------ >> Randall Stewart >> rrs@netflix.com >> >> >> >> --00000000000065de770592cab622 Content-Type: application/octet-stream; name=MYKERNEL Content-Disposition: attachment; filename=MYKERNEL Content-Transfer-Encoding: base64 Content-ID: <f_k0oh840h0> X-Attachment-Id: f_k0oh840h0 IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBGcmVl QlNEL2FtZDY0CiMKIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGZpbGUsIHBsZWFzZSBy ZWFkIHRoZSBjb25maWcoNSkgbWFudWFsIHBhZ2UsCiMgYW5kL29yIHRoZSBoYW5kYm9vayBzZWN0 aW9uIG9uIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGVzOgojCiMgICAgaHR0cHM6Ly93d3cuRnJl ZUJTRC5vcmcvZG9jL2VuX1VTLklTTzg4NTktMS9ib29rcy9oYW5kYm9vay9rZXJuZWxjb25maWct Y29uZmlnLmh0bWwKIwojIFRoZSBoYW5kYm9vayBpcyBhbHNvIGF2YWlsYWJsZSBsb2NhbGx5IGlu IC91c3Ivc2hhcmUvZG9jL2hhbmRib29rCiMgaWYgeW91J3ZlIGluc3RhbGxlZCB0aGUgZG9jIGRp c3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIGFsd2F5cyBzZWUgdGhlCiMgRnJlZUJTRCBXb3JsZCBXaWRl IFdlYiBzZXJ2ZXIgKGh0dHBzOi8vd3d3LkZyZWVCU0Qub3JnLykgZm9yIHRoZQojIGxhdGVzdCBp bmZvcm1hdGlvbi4KIwojIEFuIGV4aGF1c3RpdmUgbGlzdCBvZiBvcHRpb25zIGFuZCBtb3JlIGRl dGFpbGVkIGV4cGxhbmF0aW9ucyBvZiB0aGUKIyBkZXZpY2UgbGluZXMgaXMgYWxzbyBwcmVzZW50 IGluIHRoZSAuLi8uLi9jb25mL05PVEVTIGFuZCBOT1RFUyBmaWxlcy4KIyBJZiB5b3UgYXJlIGlu IGRvdWJ0IGFzIHRvIHRoZSBwdXJwb3NlIG9yIG5lY2Vzc2l0eSBvZiBhIGxpbmUsIGNoZWNrIGZp cnN0CiMgaW4gTk9URVMuCiMKIyAkRnJlZUJTRDogaGVhZC9zeXMvYW1kNjQvY29uZi9HRU5FUklD IDM0OTI1MyAyMDE5LTA2LTIxIDAwOjE2OjMwWiBjZW0gJAoKY3B1CQlIQU1NRVIKaWRlbnQJCUdF TkVSSUMKCm1ha2VvcHRpb25zCURFQlVHPS1nCQkjIEJ1aWxkIGtlcm5lbCB3aXRoIGdkYigxKSBk ZWJ1ZyBzeW1ib2xzCm1ha2VvcHRpb25zCVdJVEhfQ1RGPTEJCSMgUnVuIGN0ZmNvbnZlcnQoMSkg Zm9yIERUcmFjZSBzdXBwb3J0CgpvcHRpb25zIAlTQ0hFRF9VTEUJCSMgVUxFIHNjaGVkdWxlcgpv cHRpb25zIAlOVU1BCQkJIyBOb24tVW5pZm9ybSBNZW1vcnkgQXJjaGl0ZWN0dXJlIHN1cHBvcnQK b3B0aW9ucyAJUFJFRU1QVElPTgkJIyBFbmFibGUga2VybmVsIHRocmVhZCBwcmVlbXB0aW9uCm9w dGlvbnMgCVZJTUFHRQkJCSMgU3Vic3lzdGVtIHZpcnR1YWxpemF0aW9uLCBlLmcuIFZORVQKb3B0 aW9ucyAJSU5FVAkJCSMgSW50ZXJORVR3b3JraW5nCm9wdGlvbnMgCUlORVQ2CQkJIyBJUHY2IGNv bW11bmljYXRpb25zIHByb3RvY29scwpvcHRpb25zIAlJUFNFQ19TVVBQT1JUCQkjIEFsbG93IGts ZGxvYWQgb2YgaXBzZWMgYW5kIHRjcG1kNQpvcHRpb25zIAlUQ1BfT0ZGTE9BRAkJIyBUQ1Agb2Zm bG9hZApvcHRpb25zIAlUQ1BfQkxBQ0tCT1gJCSMgRW5oYW5jZWQgVENQIGV2ZW50IGxvZ2dpbmcK b3B0aW9ucyAJVENQX0hIT09LCQkjIGhob29rKDkpIGZyYW1ld29yayBmb3IgVENQCm9wdGlvbnMJ CVRDUF9SRkM3NDEzCQkjIFRDUCBGYXN0IE9wZW4Kb3B0aW9ucyAJU0NUUAkJCSMgU3RyZWFtIENv bnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sCm9wdGlvbnMgCUZGUwkJCSMgQmVya2VsZXkgRmFz dCBGaWxlc3lzdGVtCm9wdGlvbnMgCVNPRlRVUERBVEVTCQkjIEVuYWJsZSBGRlMgc29mdCB1cGRh dGVzIHN1cHBvcnQKb3B0aW9ucyAJVUZTX0FDTAkJCSMgU3VwcG9ydCBmb3IgYWNjZXNzIGNvbnRy b2wgbGlzdHMKb3B0aW9ucyAJVUZTX0RJUkhBU0gJCSMgSW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBi aWcgZGlyZWN0b3JpZXMKb3B0aW9ucyAJVUZTX0dKT1VSTkFMCQkjIEVuYWJsZSBnam91cm5hbC1i YXNlZCBVRlMgam91cm5hbGluZwpvcHRpb25zIAlRVU9UQQkJCSMgRW5hYmxlIGRpc2sgcXVvdGFz IGZvciBVRlMKb3B0aW9ucyAJTURfUk9PVAkJCSMgTUQgaXMgYSBwb3RlbnRpYWwgcm9vdCBkZXZp Y2UKb3B0aW9ucyAJTkZTQ0wJCQkjIE5ldHdvcmsgRmlsZXN5c3RlbSBDbGllbnQKb3B0aW9ucyAJ TkZTRAkJCSMgTmV0d29yayBGaWxlc3lzdGVtIFNlcnZlcgpvcHRpb25zIAlORlNMT0NLRAkJIyBO ZXR3b3JrIExvY2sgTWFuYWdlcgpvcHRpb25zIAlORlNfUk9PVAkJIyBORlMgdXNhYmxlIGFzIC8s IHJlcXVpcmVzIE5GU0NMCm9wdGlvbnMgCU1TRE9TRlMJCQkjIE1TRE9TIEZpbGVzeXN0ZW0Kb3B0 aW9ucyAJQ0Q5NjYwCQkJIyBJU08gOTY2MCBGaWxlc3lzdGVtCm9wdGlvbnMgCVBST0NGUwkJCSMg UHJvY2VzcyBmaWxlc3lzdGVtIChyZXF1aXJlcyBQU0VVRE9GUykKb3B0aW9ucyAJUFNFVURPRlMJ CSMgUHNldWRvLWZpbGVzeXN0ZW0gZnJhbWV3b3JrCm9wdGlvbnMgCUdFT01fUkFJRAkJIyBTb2Z0 IFJBSUQgZnVuY3Rpb25hbGl0eS4Kb3B0aW9ucyAJR0VPTV9MQUJFTAkJIyBQcm92aWRlcyBsYWJl bGl6YXRpb24Kb3B0aW9ucyAJRUZJUlQJCQkjIEVGSSBSdW50aW1lIFNlcnZpY2VzIHN1cHBvcnQK b3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0QzMgkjIENvbXBhdGlibGUgd2l0aCBpMzg2IGJpbmFyaWVz Cm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNENAkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDQKb3B0 aW9ucyAJQ09NUEFUX0ZSRUVCU0Q1CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNENQpvcHRpb25z IAlDT01QQVRfRlJFRUJTRDYJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q2Cm9wdGlvbnMgCUNP TVBBVF9GUkVFQlNENwkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDcKb3B0aW9ucyAJQ09NUEFU X0ZSRUVCU0Q5CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNEOQpvcHRpb25zIAlDT01QQVRfRlJF RUJTRDEwCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0QxMApvcHRpb25zIAlDT01QQVRfRlJFRUJT RDExCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0QxMQpvcHRpb25zIAlDT01QQVRfRlJFRUJTRDEy CSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0QxMgpvcHRpb25zIAlTQ1NJX0RFTEFZPTUwMDAJCSMg RGVsYXkgKGluIG1zKSBiZWZvcmUgcHJvYmluZyBTQ1NJCm9wdGlvbnMgCUtUUkFDRQkJCSMga3Ry YWNlKDEpIHN1cHBvcnQKb3B0aW9ucyAJU1RBQ0sJCQkjIHN0YWNrKDkpIHN1cHBvcnQKb3B0aW9u cyAJU1lTVlNITQkJCSMgU1lTVi1zdHlsZSBzaGFyZWQgbWVtb3J5Cm9wdGlvbnMgCVNZU1ZNU0cJ CQkjIFNZU1Ytc3R5bGUgbWVzc2FnZSBxdWV1ZXMKb3B0aW9ucyAJU1lTVlNFTQkJCSMgU1lTVi1z dHlsZSBzZW1hcGhvcmVzCm9wdGlvbnMgCV9LUE9TSVhfUFJJT1JJVFlfU0NIRURVTElORyAjIFBP U0lYIFAxMDAzXzFCIHJlYWwtdGltZSBleHRlbnNpb25zCm9wdGlvbnMgCVBSSU5URl9CVUZSX1NJ WkU9MTI4CSMgUHJldmVudCBwcmludGYgb3V0cHV0IGJlaW5nIGludGVyc3BlcnNlZC4Kb3B0aW9u cyAJS0JEX0lOU1RBTExfQ0RFVgkjIGluc3RhbGwgYSBDREVWIGVudHJ5IGluIC9kZXYKb3B0aW9u cyAJSFdQTUNfSE9PS1MJCSMgTmVjZXNzYXJ5IGtlcm5lbCBob29rcyBmb3IgaHdwbWMoNCkKb3B0 aW9ucyAJQVVESVQJCQkjIFNlY3VyaXR5IGV2ZW50IGF1ZGl0aW5nCm9wdGlvbnMgCUNBUEFCSUxJ VFlfTU9ERQkJIyBDYXBzaWN1bSBjYXBhYmlsaXR5IG1vZGUKb3B0aW9ucyAJQ0FQQUJJTElUSUVT CQkjIENhcHNpY3VtIGNhcGFiaWxpdGllcwpvcHRpb25zIAlNQUMJCQkjIFRydXN0ZWRCU0QgTUFD IEZyYW1ld29yawpvcHRpb25zIAlLRFRSQUNFX0ZSQU1FCQkjIEVuc3VyZSBmcmFtZXMgYXJlIGNv bXBpbGVkIGluCm9wdGlvbnMgCUtEVFJBQ0VfSE9PS1MJCSMgS2VybmVsIERUcmFjZSBob29rcwpv cHRpb25zIAlEREJfQ1RGCQkJIyBLZXJuZWwgRUxGIGxpbmtlciBsb2FkcyBDVEYgZGF0YQpvcHRp b25zIAlJTkNMVURFX0NPTkZJR19GSUxFCSMgSW5jbHVkZSB0aGlzIGZpbGUgaW4ga2VybmVsCm9w dGlvbnMgCVJBQ0NUCQkJIyBSZXNvdXJjZSBhY2NvdW50aW5nIGZyYW1ld29yawpvcHRpb25zIAlS QUNDVF9ERUZBVUxUX1RPX0RJU0FCTEVEICMgU2V0IGtlcm4ucmFjY3QuZW5hYmxlPTAgYnkgZGVm YXVsdApvcHRpb25zIAlSQ1RMCQkJIyBSZXNvdXJjZSBsaW1pdHMKCiMgRGVidWdnaW5nIHN1cHBv cnQuICBBbHdheXMgbmVlZCB0aGlzOgpvcHRpb25zIAlLREIJCQkjIEVuYWJsZSBrZXJuZWwgZGVi dWdnZXIgc3VwcG9ydC4Kb3B0aW9ucyAJS0RCX1RSQUNFCQkjIFByaW50IGEgc3RhY2sgdHJhY2Ug Zm9yIGEgcGFuaWMuCiMgRm9yIGZ1bGwgZGVidWdnZXIgc3VwcG9ydCB1c2UgKHR1cm4gb2ZmIGlu IHN0YWJsZSBicmFuY2gpOgpvcHRpb25zIAlCVUZfVFJBQ0tJTkcJCSMgVHJhY2sgYnVmZmVyIGhp c3RvcnkKb3B0aW9ucyAJRERCCQkJIyBTdXBwb3J0IEREQi4Kb3B0aW9ucyAJRlVMTF9CVUZfVFJB Q0tJTkcJIyBUcmFjayBtb3JlIGJ1ZmZlciBoaXN0b3J5Cm9wdGlvbnMgCUdEQgkJCSMgU3VwcG9y dCByZW1vdGUgR0RCLgpvcHRpb25zIAlERUFETEtSRVMJCSMgRW5hYmxlIHRoZSBkZWFkbG9jayBy ZXNvbHZlcgpvcHRpb25zIAlJTlZBUklBTlRTCQkjIEVuYWJsZSBjYWxscyBvZiBleHRyYSBzYW5p dHkgY2hlY2tpbmcKb3B0aW9ucyAJSU5WQVJJQU5UX1NVUFBPUlQJIyBFeHRyYSBzYW5pdHkgY2hl Y2tzIG9mIGludGVybmFsIHN0cnVjdHVyZXMsIHJlcXVpcmVkIGJ5IElOVkFSSUFOVFMKb3B0aW9u cyAJV0lUTkVTUwkJCSMgRW5hYmxlIGNoZWNrcyB0byBkZXRlY3QgZGVhZGxvY2tzIGFuZCBjeWNs ZXMKb3B0aW9ucyAJV0lUTkVTU19TS0lQU1BJTgkjIERvbid0IHJ1biB3aXRuZXNzIG9uIHNwaW5s b2NrcyBmb3Igc3BlZWQKb3B0aW9ucyAJTUFMTE9DX0RFQlVHX01BWFpPTkVTPTgJIyBTZXBhcmF0 ZSBtYWxsb2MoOSkgem9uZXMKb3B0aW9ucyAJVkVSQk9TRV9TWVNJTklUPTAJIyBTdXBwb3J0IGRl YnVnLnZlcmJvc2Vfc3lzaW5pdCwgb2ZmIGJ5IGRlZmF1bHQKCiMgS2VybmVsIFNhbml0aXplcnMK I29wdGlvbnMgCUNPVkVSQUdFCQkjIEdlbmVyaWMga2VybmVsIGNvdmVyYWdlLiBVc2VkIGJ5IEtD T1YKI29wdGlvbnMgCUtDT1YJCQkjIEtlcm5lbCBDb3ZlcmFnZSBTYW5pdGl6ZXIKIyBXYXJuaW5n OiBLVUJTQU4gY2FuIHJlc3VsdCBpbiBhIGtlcm5lbCB0b28gbGFyZ2UgZm9yIGxvYWRlciB0byBs b2FkCiNvcHRpb25zIAlLVUJTQU4JCQkjIEtlcm5lbCBVbmRlZmluZWQgQmVoYXZpb3IgU2FuaXRp emVyCgojIEtlcm5lbCBkdW1wIGZlYXR1cmVzLgpvcHRpb25zIAlFS0NECQkJIyBTdXBwb3J0IGZv ciBlbmNyeXB0ZWQga2VybmVsIGR1bXBzCm9wdGlvbnMgCUdaSU8JCQkjIGd6aXAtY29tcHJlc3Nl ZCBrZXJuZWwgYW5kIHVzZXIgZHVtcHMKb3B0aW9ucyAJWlNURElPCQkJIyB6c3RkLWNvbXByZXNz ZWQga2VybmVsIGFuZCB1c2VyIGR1bXBzCm9wdGlvbnMgCU5FVERVTVAJCQkjIG5ldGR1bXAoNCkg Y2xpZW50IHN1cHBvcnQKCiMgTWFrZSBhbiBTTVAtY2FwYWJsZSBrZXJuZWwgYnkgZGVmYXVsdApv cHRpb25zIAlTTVAJCQkjIFN5bW1ldHJpYyBNdWx0aVByb2Nlc3NvciBLZXJuZWwKb3B0aW9ucyAJ RUFSTFlfQVBfU1RBUlRVUAoKIyBDUFUgZnJlcXVlbmN5IGNvbnRyb2wKZGV2aWNlCQljcHVmcmVx CgojIEJ1cyBzdXBwb3J0LgpkZXZpY2UJCWFjcGkKb3B0aW9ucyAJQUNQSV9ETUFSCmRldmljZQkJ cGNpCm9wdGlvbnMgCVBDSV9IUAkJCSMgUENJLUV4cHJlc3MgbmF0aXZlIEhvdFBsdWcKb3B0aW9u cwkJUENJX0lPVgkJCSMgUENJIFNSLUlPViBzdXBwb3J0CgojIEZsb3BweSBkcml2ZXMKZGV2aWNl CQlmZGMKCiMgQVRBIGNvbnRyb2xsZXJzCmRldmljZQkJYWhjaQkJCSMgQUhDSS1jb21wYXRpYmxl IFNBVEEgY29udHJvbGxlcnMKZGV2aWNlCQlhdGEJCQkjIExlZ2FjeSBBVEEvU0FUQSBjb250cm9s bGVycwpkZXZpY2UJCW12cwkJCSMgTWFydmVsbCA4OFNYNTBYWC84OFNYNjBYWC84OFNYNzBYWC9T b0MgU0FUQQpkZXZpY2UJCXNpaXMJCQkjIFNpbGljb25JbWFnZSBTaUkzMTI0L1NpSTMxMzIvU2lJ MzUzMSBTQVRBCgojIFNDU0kgQ29udHJvbGxlcnMKZGV2aWNlCQlhaGMJCQkjIEFIQTI5NDAgYW5k IG9uYm9hcmQgQUlDN3h4eCBkZXZpY2VzCmRldmljZQkJYWhkCQkJIyBBSEEzOTMyMC8yOTMyMCBh bmQgb25ib2FyZCBBSUM3OXh4IGRldmljZXMKZGV2aWNlCQllc3AJCQkjIEFNRCBBbTUzQzk3NCAo VGVrcmFtIERDLTM5MChUKSkKZGV2aWNlCQlocHRpb3AJCQkjIEhpZ2hwb2ludCBSb2NrZXRSYWlk IDN4eHggc2VyaWVzCmRldmljZQkJaXNwCQkJIyBRbG9naWMgZmFtaWx5CiNkZXZpY2UJCWlzcGZ3 CQkJIyBGaXJtd2FyZSBmb3IgUUxvZ2ljIEhCQXMtIG5vcm1hbGx5IGEgbW9kdWxlCmRldmljZQkJ bXB0CQkJIyBMU0ktTG9naWMgTVBULUZ1c2lvbgpkZXZpY2UJCW1wcwkJCSMgTFNJLUxvZ2ljIE1Q VC1GdXNpb24gMgpkZXZpY2UJCW1wcgkJCSMgTFNJLUxvZ2ljIE1QVC1GdXNpb24gMwpkZXZpY2UJ CXN5bQkJCSMgTkNSL1N5bWJpb3MgTG9naWMKZGV2aWNlCQl0cm0JCQkjIFRla3JhbSBEQzM5NVUv VVcvRiBEQzMxNVUgYWRhcHRlcnMKZGV2aWNlCQlpc2NpCQkJIyBJbnRlbCBDNjAwIFNBUyBjb250 cm9sbGVyCmRldmljZQkJb2NzX2ZjCQkJIyBFbXVsZXggRkMgYWRhcHRlcnMKCiMgQVRBL1NDU0kg cGVyaXBoZXJhbHMKZGV2aWNlCQlzY2J1cwkJCSMgU0NTSSBidXMgKHJlcXVpcmVkIGZvciBBVEEv U0NTSSkKZGV2aWNlCQljaAkJCSMgU0NTSSBtZWRpYSBjaGFuZ2VycwpkZXZpY2UJCWRhCQkJIyBE aXJlY3QgQWNjZXNzIChkaXNrcykKZGV2aWNlCQlzYQkJCSMgU2VxdWVudGlhbCBBY2Nlc3MgKHRh cGUgZXRjKQpkZXZpY2UJCWNkCQkJIyBDRApkZXZpY2UJCXBhc3MJCQkjIFBhc3N0aHJvdWdoIGRl dmljZSAoZGlyZWN0IEFUQS9TQ1NJIGFjY2VzcykKZGV2aWNlCQlzZXMJCQkjIEVuY2xvc3VyZSBT ZXJ2aWNlcyAoU0VTIGFuZCBTQUYtVEUpCiNkZXZpY2UJCWN0bAkJCSMgQ0FNIFRhcmdldCBMYXll cgoKIyBSQUlEIGNvbnRyb2xsZXJzIGludGVyZmFjZWQgdG8gdGhlIFNDU0kgc3Vic3lzdGVtCmRl dmljZQkJYW1yCQkJIyBBTUkgTWVnYVJBSUQKZGV2aWNlCQlhcmNtc3IJCQkjIEFyZWNhIFNBVEEg SUkgUkFJRApkZXZpY2UJCWNpc3MJCQkjIENvbXBhcSBTbWFydCBSQUlEIDUqCmRldmljZQkJaHB0 bXYJCQkjIEhpZ2hwb2ludCBSb2NrZXRSQUlEIDE4MngKZGV2aWNlCQlocHRucgkJCSMgSGlnaHBv aW50IERDNzI4MCwgUjc1MApkZXZpY2UJCWhwdHJyCQkJIyBIaWdocG9pbnQgUm9ja2V0UkFJRCAx N3h4LCAyMnh4LCAyM3h4LCAyNXh4CmRldmljZQkJaHB0Mjd4eAkJCSMgSGlnaHBvaW50IFJvY2tl dFJBSUQgMjd4eApkZXZpY2UJCWlpcgkJCSMgSW50ZWwgSW50ZWdyYXRlZCBSQUlECmRldmljZQkJ aXBzCQkJIyBJQk0gKEFkYXB0ZWMpIFNlcnZlUkFJRApkZXZpY2UJCW1seQkJCSMgTXlsZXggQWNj ZWxlUkFJRC9lWHRyZW1lUkFJRApkZXZpY2UJCXR3YQkJCSMgM3dhcmUgOTAwMCBzZXJpZXMgUEFU QS9TQVRBIFJBSUQKZGV2aWNlCQlzbWFydHBxaQkJIyBNaWNyb3NlbWkgc21hcnRwcWkgZHJpdmVy CmRldmljZQkJdHdzCQkJIyBMU0kgM3dhcmUgOTc1MCBTQVRBK1NBUyA2R2IvcyBSQUlEIGNvbnRy b2xsZXIKCiMgUkFJRCBjb250cm9sbGVycwpkZXZpY2UJCWFhYwkJCSMgQWRhcHRlYyBGU0EgUkFJ RApkZXZpY2UJCWFhY3AJCQkjIFNDU0kgcGFzc3Rocm91Z2ggZm9yIGFhYyAocmVxdWlyZXMgQ0FN KQpkZXZpY2UJCWFhY3JhaWQJCQkjIEFkYXB0ZWMgYnkgUE1DIFJBSUQKZGV2aWNlCQlpZGEJCQkj IENvbXBhcSBTbWFydCBSQUlECmRldmljZQkJbWZpCQkJIyBMU0kgTWVnYVJBSUQgU0FTCmRldmlj ZQkJbWx4CQkJIyBNeWxleCBEQUM5NjAgZmFtaWx5CmRldmljZQkJbXJzYXMJCQkjIExTSS9BdmFn byBNZWdhUkFJRCBTQVMvU0FUQSwgNkdiL3MgYW5kIDEyR2IvcwpkZXZpY2UJCXBtc3BjdgkJCSMg UE1DLVNpZXJyYSBTQVMvU0FUQSBDb250cm9sbGVyIGRyaXZlcgojWFhYIHBvaW50ZXIvaW50IHdh cm5pbmdzCiNkZXZpY2UJCXBzdAkJCSMgUHJvbWlzZSBTdXBlcnRyYWsgU1g2MDAwCmRldmljZQkJ dHdlCQkJIyAzd2FyZSBBVEEgUkFJRAoKIyBOVk0gRXhwcmVzcyAoTlZNZSkgc3VwcG9ydApkZXZp Y2UJCW52bWUJCQkjIGJhc2UgTlZNZSBkcml2ZXIKZGV2aWNlCQludmQJCQkjIGV4cG9zZSBOVk1l IG5hbWVzcGFjZXMgYXMgZGlza3MsIGRlcGVuZHMgb24gbnZtZQoKIyBhdGtiZGMwIGNvbnRyb2xz IGJvdGggdGhlIGtleWJvYXJkIGFuZCB0aGUgUFMvMiBtb3VzZQpkZXZpY2UJCWF0a2JkYwkJCSMg QVQga2V5Ym9hcmQgY29udHJvbGxlcgpkZXZpY2UJCWF0a2JkCQkJIyBBVCBrZXlib2FyZApkZXZp Y2UJCXBzbQkJCSMgUFMvMiBtb3VzZQoKZGV2aWNlCQlrYmRtdXgJCQkjIGtleWJvYXJkIG11bHRp cGxleGVyCgpkZXZpY2UJCXZnYQkJCSMgVkdBIHZpZGVvIGNhcmQgZHJpdmVyCm9wdGlvbnMgCVZF U0EJCQkjIEFkZCBzdXBwb3J0IGZvciBWRVNBIEJJT1MgRXh0ZW5zaW9ucyAoVkJFKQoKZGV2aWNl CQlzcGxhc2gJCQkjIFNwbGFzaCBzY3JlZW4gYW5kIHNjcmVlbiBzYXZlciBzdXBwb3J0CgojIHN5 c2NvbnMgaXMgdGhlIGRlZmF1bHQgY29uc29sZSBkcml2ZXIsIHJlc2VtYmxpbmcgYW4gU0NPIGNv bnNvbGUKZGV2aWNlCQlzYwpvcHRpb25zIAlTQ19QSVhFTF9NT0RFCQkjIGFkZCBzdXBwb3J0IGZv ciB0aGUgcmFzdGVyIHRleHQgbW9kZQoKIyB2dCBpcyB0aGUgbmV3IHZpZGVvIGNvbnNvbGUgZHJp dmVyCmRldmljZQkJdnQKZGV2aWNlCQl2dF92Z2EKZGV2aWNlCQl2dF9lZmlmYgoKZGV2aWNlCQlh Z3AJCQkjIHN1cHBvcnQgc2V2ZXJhbCBBR1AgY2hpcHNldHMKCiMgUENDQVJEIChQQ01DSUEpIHN1 cHBvcnQKIyBQQ01DSUEgYW5kIGNhcmRidXMgYnJpZGdlIHN1cHBvcnQKZGV2aWNlCQljYmIJCQkj IGNhcmRidXMgKHllbnRhKSBicmlkZ2UKZGV2aWNlCQlwY2NhcmQJCQkjIFBDIENhcmQgKDE2LWJp dCkgYnVzCmRldmljZQkJY2FyZGJ1cwkJCSMgQ2FyZEJ1cyAoMzItYml0KSBidXMKCiMgU2VyaWFs IChDT00pIHBvcnRzCmRldmljZQkJdWFydAkJCSMgR2VuZXJpYyBVQVJUIGRyaXZlcgoKIyBQYXJh bGxlbCBwb3J0CmRldmljZQkJcHBjCmRldmljZQkJcHBidXMJCQkjIFBhcmFsbGVsIHBvcnQgYnVz IChyZXF1aXJlZCkKZGV2aWNlCQlscHQJCQkjIFByaW50ZXIKZGV2aWNlCQlwcGkJCQkjIFBhcmFs bGVsIHBvcnQgaW50ZXJmYWNlIGRldmljZQojZGV2aWNlCQl2cG8JCQkjIFJlcXVpcmVzIHNjYnVz IGFuZCBkYQoKZGV2aWNlCQlwdWMJCQkjIE11bHRpIEkvTyBjYXJkcyBhbmQgbXVsdGktY2hhbm5l bCBVQVJUcwoKIyBQQ0kvUENJLVgvUENJZSBFdGhlcm5ldCBOSUNzIHRoYXQgdXNlIGlmbGliIGlu ZnJhc3RydWN0dXJlCmRldmljZQkJaWZsaWIKZGV2aWNlCQllbQkJCSMgSW50ZWwgUFJPLzEwMDAg R2lnYWJpdCBFdGhlcm5ldCBGYW1pbHkKZGV2aWNlCQlpeAkJCSMgSW50ZWwgUFJPLzEwR2JFIFBD SUUgUEYgRXRoZXJuZXQKZGV2aWNlCQlpeHYJCQkjIEludGVsIFBSTy8xMEdiRSBQQ0lFIFZGIEV0 aGVybmV0CmRldmljZQkJaXhsCQkJIyBJbnRlbCA3MDAgU2VyaWVzIFBoeXNpY2FsIEZ1bmN0aW9u CmRldmljZQkJaWF2ZgkJCSMgSW50ZWwgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbgpkZXZpY2UJ CXZteAkJCSMgVk13YXJlIFZNWE5FVDMgRXRoZXJuZXQKCiMgUENJIEV0aGVybmV0IE5JQ3MuCmRl dmljZQkJYnhlCQkJIyBCcm9hZGNvbSBOZXRYdHJlbWUgSUkgQkNNNTc3MVgvQkNNNTc4WFggMTBH YkUKZGV2aWNlCQlsZQkJCSMgQU1EIEFtNzkwMCBMQU5DRSBhbmQgQW03OUM5eHggUENuZXQKZGV2 aWNlCQl0aQkJCSMgQWx0ZW9uIE5ldHdvcmtzIFRpZ29uIEkvSUkgZ2lnYWJpdCBFdGhlcm5ldAoK IyBQQ0kgRXRoZXJuZXQgTklDcyB0aGF0IHVzZSB0aGUgY29tbW9uIE1JSSBidXMgY29udHJvbGxl ciBjb2RlLgojIE5PVEU6IEJlIHN1cmUgdG8ga2VlcCB0aGUgJ2RldmljZSBtaWlidXMnIGxpbmUg aW4gb3JkZXIgdG8gdXNlIHRoZXNlIE5JQ3MhCmRldmljZQkJbWlpYnVzCQkJIyBNSUkgYnVzIHN1 cHBvcnQKZGV2aWNlCQlhZQkJCSMgQXR0YW5zaWMvQXRoZXJvcyBMMiBGYXN0RXRoZXJuZXQKZGV2 aWNlCQlhZ2UJCQkjIEF0dGFuc2ljL0F0aGVyb3MgTDEgR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJ CWFsYwkJCSMgQXRoZXJvcyBBUjgxMzEvQVI4MTMyIEV0aGVybmV0CmRldmljZQkJYWxlCQkJIyBB dGhlcm9zIEFSODEyMS9BUjgxMTMvQVI4MTE0IEV0aGVybmV0CmRldmljZQkJYmNlCQkJIyBCcm9h ZGNvbSBCQ001NzA2L0JDTTU3MDggR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCWJmZQkJCSMgQnJv YWRjb20gQkNNNDQweCAxMC8xMDAgRXRoZXJuZXQKZGV2aWNlCQliZ2UJCQkjIEJyb2FkY29tIEJD TTU3MHh4IEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQljYXMJCQkjIFN1biBDYXNzaW5pL0Nhc3Np bmkrIGFuZCBOUyBEUDgzMDY1IFNhdHVybgpkZXZpY2UJCWRjCQkJIyBERUMvSW50ZWwgMjExNDMg YW5kIHZhcmlvdXMgd29ya2FsaWtlcwpkZXZpY2UJCWV0CQkJIyBBZ2VyZSBFVDEzMTAgMTAvMTAw L0dpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQlmeHAJCQkjIEludGVsIEV0aGVyRXhwcmVzcyBQUk8v MTAwQiAoODI1NTcsIDgyNTU4KQpkZXZpY2UJCWdlbQkJCSMgU3VuIEdFTS9TdW4gRVJJL0FwcGxl IEdNQUMKZGV2aWNlCQlobWUJCQkjIFN1biBITUUgKEhhcHB5IE1lYWwgRXRoZXJuZXQpCmRldmlj ZQkJam1lCQkJIyBKTWljcm9uIEpNQzI1MCBHaWdhYml0L0pNQzI2MCBGYXN0IEV0aGVybmV0CmRl dmljZQkJbGdlCQkJIyBMZXZlbCAxIExYVDEwMDEgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCW1z awkJCSMgTWFydmVsbC9TeXNLb25uZWN0IFl1a29uIElJIEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNl CQluZmUJCQkjIG5WaWRpYSBuRm9yY2UgTUNQIG9uLWJvYXJkIEV0aGVybmV0CmRldmljZQkJbmdl CQkJIyBOYXRTZW1pIERQODM4MjAgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXJlCQkJIyBSZWFs VGVrIDgxMzlDKy84MTY5LzgxNjlTLzgxMTBTCmRldmljZQkJcmwJCQkjIFJlYWxUZWsgODEyOS84 MTM5CmRldmljZQkJc2dlCQkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBTaVMxOTAvMTkx CmRldmljZQkJc2lzCQkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBTaVMgOTAwL1NpUyA3 MDE2CmRldmljZQkJc2sJCQkjIFN5c0tvbm5lY3QgU0stOTg0eCAmIFNLLTk4MnggZ2lnYWJpdCBF dGhlcm5ldApkZXZpY2UJCXN0ZQkJCSMgU3VuZGFuY2UgU1QyMDEgKEQtTGluayBERkUtNTUwVFgp CmRldmljZQkJc3RnZQkJCSMgU3VuZGFuY2UvVGFtYXJhY2sgVEM5MDIxIGdpZ2FiaXQgRXRoZXJu ZXQKZGV2aWNlCQl2Z2UJCQkjIFZJQSBWVDYxMnggZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXZy CQkJIyBWSUEgUmhpbmUsIFJoaW5lIElJCmRldmljZQkJeGwJCQkjIDNDb20gM2M5MHggKGBgQm9v bWVyYW5nJycsIGBgQ3ljbG9uZScnKQoKIyBXaXJlbGVzcyBOSUMgY2FyZHMKZGV2aWNlCQl3bGFu CQkJIyA4MDIuMTEgc3VwcG9ydApvcHRpb25zIAlJRUVFODAyMTFfREVCVUcJCSMgZW5hYmxlIGRl YnVnIG1zZ3MKb3B0aW9ucyAJSUVFRTgwMjExX1NVUFBPUlRfTUVTSAkjIGVuYWJsZSA4MDIuMTFz IGRyYWZ0IHN1cHBvcnQKZGV2aWNlCQl3bGFuX3dlcAkJIyA4MDIuMTEgV0VQIHN1cHBvcnQKZGV2 aWNlCQl3bGFuX2NjbXAJCSMgODAyLjExIENDTVAgc3VwcG9ydApkZXZpY2UJCXdsYW5fdGtpcAkJ IyA4MDIuMTEgVEtJUCBzdXBwb3J0CmRldmljZQkJd2xhbl9hbXJyCQkjIEFNUlIgdHJhbnNtaXQg cmF0ZSBjb250cm9sIGFsZ29yaXRobQpkZXZpY2UJCWFuCQkJIyBBaXJvbmV0IDQ1MDAvNDgwMCA4 MDIuMTEgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQlhdGgJCQkjIEF0aGVyb3MgTklDcwpkZXZpY2UJ CWF0aF9wY2kJCQkjIEF0aGVyb3MgcGNpL2NhcmRidXMgZ2x1ZQpkZXZpY2UJCWF0aF9oYWwJCQkj IHBjaS9jYXJkYnVzIGNoaXAgc3VwcG9ydApvcHRpb25zIAlBSF9BUjU0MTZfSU5URVJSVVBUX01J VElHQVRJT04gIyBBUjU0MTYgaW50ZXJydXB0IG1pdGlnYXRpb24Kb3B0aW9ucyAJQVRIX0VOQUJM RV8xMU4JCSMgRW5hYmxlIDgwMi4xMW4gc3VwcG9ydCBmb3IgQVI1NDE2IGFuZCBsYXRlcgpkZXZp Y2UJCWF0aF9yYXRlX3NhbXBsZQkJIyBTYW1wbGVSYXRlIHR4IHJhdGUgY29udHJvbCBmb3IgYXRo CiNkZXZpY2UJCWJ3aQkJCSMgQnJvYWRjb20gQkNNNDMweC9CQ000MzF4IHdpcmVsZXNzIE5JQ3Mu CiNkZXZpY2UJCWJ3bgkJCSMgQnJvYWRjb20gQkNNNDN4eCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJ CWlwdwkJCSMgSW50ZWwgMjEwMCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCWl3aQkJCSMgSW50ZWwg MjIwMEJHLzIyMjVCRy8yOTE1QUJHIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJaXduCQkJIyBJbnRl bCA0OTY1LzEwMDAvNTAwMC82MDAwIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJbWFsbwkJCSMgTWFy dmVsbCBMaWJlcnRhcyB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCW13bAkJCSMgTWFydmVsbCA4OFc4 MzYzIDgwMi4xMW4gd2lyZWxlc3MgTklDcy4KZGV2aWNlCQlyYWwJCQkjIFJhbGluayBUZWNobm9s b2d5IFJUMjUwMCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCXdpCQkJIyBXYXZlTEFOL0ludGVyc2ls L1N5bWJvbCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQl3cGkJCQkjIEludGVsIDM5NDVB Qkcgd2lyZWxlc3MgTklDcy4KCiMgUHNldWRvIGRldmljZXMuCmRldmljZQkJY3J5cHRvCQkJIyBj b3JlIGNyeXB0byBzdXBwb3J0CmRldmljZQkJbG9vcAkJCSMgTmV0d29yayBsb29wYmFjawpkZXZp Y2UJCXBhZGxvY2tfcm5nCQkjIFZJQSBQYWRsb2NrIFJORwpkZXZpY2UJCXJkcmFuZF9ybmcJCSMg SW50ZWwgQnVsbCBNb3VudGFpbiBSTkcKZGV2aWNlCQlldGhlcgkJCSMgRXRoZXJuZXQgc3VwcG9y dApkZXZpY2UJCXZsYW4JCQkjIDgwMi4xUSBWTEFOIHN1cHBvcnQKZGV2aWNlCQl0dW50YXAJCQkj IFBhY2tldCB0dW5uZWwuCmRldmljZQkJbWQJCQkjIE1lbW9yeSAiZGlza3MiCmRldmljZQkJZ2lm CQkJIyBJUHY2IGFuZCBJUHY0IHR1bm5lbGluZwpkZXZpY2UJCWZpcm13YXJlCQkjIGZpcm13YXJl IGFzc2lzdCBtb2R1bGUKCiMgVGhlIGBicGYnIGRldmljZSBlbmFibGVzIHRoZSBCZXJrZWxleSBQ YWNrZXQgRmlsdGVyLgojIEJlIGF3YXJlIG9mIHRoZSBhZG1pbmlzdHJhdGl2ZSBjb25zZXF1ZW5j ZXMgb2YgZW5hYmxpbmcgdGhpcyEKIyBOb3RlIHRoYXQgJ2JwZicgaXMgcmVxdWlyZWQgZm9yIERI Q1AuCmRldmljZQkJYnBmCQkJIyBCZXJrZWxleSBwYWNrZXQgZmlsdGVyCgojIFVTQiBzdXBwb3J0 Cm9wdGlvbnMgCVVTQl9ERUJVRwkJIyBlbmFibGUgZGVidWcgbXNncwpkZXZpY2UJCXVoY2kJCQkj IFVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlCmRldmljZQkJb2hjaQkJCSMgT0hDSSBQQ0ktPlVTQiBp bnRlcmZhY2UKZGV2aWNlCQllaGNpCQkJIyBFSENJIFBDSS0+VVNCIGludGVyZmFjZSAoVVNCIDIu MCkKZGV2aWNlCQl4aGNpCQkJIyBYSENJIFBDSS0+VVNCIGludGVyZmFjZSAoVVNCIDMuMCkKZGV2 aWNlCQl1c2IJCQkjIFVTQiBCdXMgKHJlcXVpcmVkKQpkZXZpY2UJCXVrYmQJCQkjIEtleWJvYXJk CmRldmljZQkJdW1hc3MJCQkjIERpc2tzL01hc3Mgc3RvcmFnZSAtIFJlcXVpcmVzIHNjYnVzIGFu ZCBkYQoKIyBTb3VuZCBzdXBwb3J0CmRldmljZQkJc291bmQJCQkjIEdlbmVyaWMgc291bmQgZHJp dmVyIChyZXF1aXJlZCkKZGV2aWNlCQlzbmRfY21pCQkJIyBDTWVkaWEgQ01JODMzOC9DTUk4NzM4 CmRldmljZQkJc25kX2NzYQkJCSMgQ3J5c3RhbCBTZW1pY29uZHVjdG9yIENTNDYxeC80Mjh4CmRl dmljZQkJc25kX2VtdTEwa3gJCSMgQ3JlYXRpdmUgU291bmRCbGFzdGVyIExpdmUhIGFuZCBBdWRp Z3kKZGV2aWNlCQlzbmRfZXMxMzd4CQkjIEVuc29uaXEgQXVkaW9QQ0kgRVMxMzd4CmRldmljZQkJ c25kX2hkYQkJCSMgSW50ZWwgSGlnaCBEZWZpbml0aW9uIEF1ZGlvCmRldmljZQkJc25kX2ljaAkJ CSMgSW50ZWwsIE5WaWRpYSBhbmQgb3RoZXIgSUNIIEFDJzk3IEF1ZGlvCmRldmljZQkJc25kX3Zp YTgyMzMJCSMgVklBIFZUODIzM3ggQXVkaW8KCiMgTU1DL1NECmRldmljZQkJbW1jCQkJIyBNTUMv U0QgYnVzCmRldmljZQkJbW1jc2QJCQkjIE1NQy9TRCBtZW1vcnkgY2FyZApkZXZpY2UJCXNkaGNp CQkJIyBHZW5lcmljIFBDSSBTRCBIb3N0IENvbnRyb2xsZXIKCiMgVmlydElPIHN1cHBvcnQKZGV2 aWNlCQl2aXJ0aW8JCQkjIEdlbmVyaWMgVmlydElPIGJ1cyAocmVxdWlyZWQpCmRldmljZQkJdmly dGlvX3BjaQkJIyBWaXJ0SU8gUENJIGRldmljZQpkZXZpY2UJCXZ0bmV0CQkJIyBWaXJ0SU8gRXRo ZXJuZXQgZGV2aWNlCmRldmljZQkJdmlydGlvX2JsawkJIyBWaXJ0SU8gQmxvY2sgZGV2aWNlCmRl dmljZQkJdmlydGlvX3Njc2kJCSMgVmlydElPIFNDU0kgZGV2aWNlCmRldmljZQkJdmlydGlvX2Jh bGxvb24JCSMgVmlydElPIE1lbW9yeSBCYWxsb29uIGRldmljZQoKIyBIeXBlclYgZHJpdmVycyBh bmQgZW5oYW5jZW1lbnQgc3VwcG9ydApkZXZpY2UJCWh5cGVydgkJCSMgSHlwZXJWIGRyaXZlcnMg CgojIFhlbiBIVk0gR3Vlc3QgT3B0aW1pemF0aW9ucwojIE5PVEU6IFhFTkhWTSBkZXBlbmRzIG9u IHhlbnBjaS4gIFRoZXkgbXVzdCBiZSBhZGRlZCBvciByZW1vdmVkIHRvZ2V0aGVyLgpvcHRpb25z IAlYRU5IVk0JCQkjIFhlbiBIVk0ga2VybmVsIGluZnJhc3RydWN0dXJlCmRldmljZQkJeGVucGNp CQkJIyBYZW4gSFZNIEh5cGVydmlzb3Igc2VydmljZXMgZHJpdmVyCgojIE5ldG1hcCBwcm92aWRl cyBkaXJlY3QgYWNjZXNzIHRvIFRYL1JYIHJpbmdzIG9uIHN1cHBvcnRlZCBOSUNzCmRldmljZQkJ bmV0bWFwCQkJIyBuZXRtYXAoNCkgc3VwcG9ydAoKIyBldmRldiBpbnRlcmZhY2UKb3B0aW9ucyAJ RVZERVZfU1VQUE9SVAkJIyBldmRldiBzdXBwb3J0IGluIGxlZ2FjeSBkcml2ZXJzCmRldmljZQkJ ZXZkZXYJCQkjIGlucHV0IGV2ZW50IGRldmljZSBzdXBwb3J0CmRldmljZQkJdWlucHV0CQkJIyBp bnN0YWxsIC9kZXYvdWlucHV0IGNkZXYK --00000000000065de770592cab622--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKy-8=jY6NRfn0xEiAhCnA4r=U1jpyOVu__B8NkFWW9t2UDg4Q>