From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by sourceware.org (Postfix) with ESMTPS id 27A063857C62 for ; Wed, 2 Sep 2020 17:29:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 27A063857C62 Received: from collabora.com (unknown [IPv6:2001:4d48:ad56:3000:8e70:5aff:fe59:c29c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: vivek) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 4976B2994ED; Wed, 2 Sep 2020 18:29:52 +0100 (BST) Date: Wed, 2 Sep 2020 18:29:49 +0100 (BST) From: =?UTF-8?Q?Vivek_Das=C2=A0Mohapatra?= X-X-Sender: vivek@noise.cbg.collabora.co.uk To: Florian Weimer cc: Mark Wielaard , GNU gABI gnu-gabi Subject: Re: ABI document In-Reply-To: <874kojj7rn.fsf@oldenburg2.str.redhat.com> Message-ID: References: <87o8nypmpq.fsf@oldenburg2.str.redhat.com> <616c0f661732fd1021e5a5b13ef872927390004d.camel@klomp.org> <87ime6pl2q.fsf@oldenburg2.str.redhat.com> <1597402688538.b66a61e7629438@mozgaia> <874kojj7rn.fsf@oldenburg2.str.redhat.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="8323329-598017517-1599067792=:31454" X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_ASCII_DIVIDERS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gnu-gabi@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gnu-gabi mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Sep 2020 17:29:56 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-598017517-1599067792=:31454 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8BIT This patch is cumulative with the last one. > I can't tell whether the formatting is okay, and whether we need to add > markup (like ``) for program text. I asked and was told it was more important to get the actual content agreed before we worried about that (and tbh the content is the hard part). > Can you dig out a link to a document that describes for the format of > the GNU_EH_FRAME segment? Done. > I think this should also say that the virtual address range must be > covered by an earlier PT_LOAD segment. Done. >> +PT_GNU_STACK 0x6474e551 >> + Otherwise the stack is executable (the default). > > The default depends on the architecture, I think. Fixed. > I think we have differing behavior in regards to the size of the > segment. glibc ignores it, other implementations may use it to set the > stack size. Annotated. >> +PT_GNU_RELRO 0x6474e552 >> + >> + The specified segment should be made read-only once run-time linking >> + has completed. > > I think it's relocation of this object, not the entire linking > operation. Fixed. > Also we should try to sketch the interaction with PT_LOAD. Not done yet. >> +PT_GNU_PROPERTY 0x6474e553 >> + some action before loading and ELF file (eg AArch64 BTI or intel CET) > > “Intel” Fixed. > The requirement could be worded better. It must only be present if > these features are to be enabled. Clarified. >> + Properties are sorted in ascending order of pr_type; >> + >> + pr_data is aligned to 4 bytes in 32-bit objects and 8 bytes in 64-bit ones. > > What's the overall alignment of the segment? 8 bytes on 64-bit? Clarified. Is explicitly given by the p_align of the PT_* program header. > This also has to say where the padding is inserted: before pr_data? > After Elf_Prop? I think it's the latter, and that Elf_Prop is aligned > even if the pr_data member is absent. Clairified. Always aligned. The padding is as laid out in the struct given, so after pr_data. >> + GNU_PROPERTY_STACK_SIZE 0x1 >> + >> + A native format & size integer specifying the minimum stack size. >> + The linker should pick the highest instance of this from all relocatable >> + objects in the link chain and ensure the stack is at least this big. > > So this is an Elf*_Addr? I guess, but explicitly defined in the doc now. >> + GNU_PROPERTY_NO_COPY_ON_PROTECTED 0x2 >> + This type has a PR_DATASZ of 0. > > “pr_datasz field”? Fixed. >> +DT_GNU_PRELINKED 0x6ffffdf5 >> + > That's not good for reproducibility (but then prelink results depend Agreed, but that seems to be how prelinking works. >> +DT_GNU_CONFLICTSZ 0x6ffffdf6 >> +DT_GNU_LIBLISTSZ 0x6ffffdf7 > It would be nice to add a link there to the prelink documentation. > (There's a prelink.tex file in the sources.) Couldn't see this - perhaps I was looking in the wrong place? >> +DT_GNU_HASH 0x6ffffef5 > Do we have a format documentation for those? No - added a note that this may need to be reversed from the glibc source. >> +DT_GNU_CONFLICT 0x6ffffef8 >> +DT_GNU_LIBLIST 0x6ffffef9 > > Maybe group this with the earlier prelink items? Moved. >> +Section Headers >> +=============== > >> +SHT_GNU_verdef 0x6ffffffd >> +SHT_GNU_verneed 0x6ffffffe >> +SHT_GNU_versym 0x6fffffff > I think the canonical reference for these is: > > Documented and references to LSB with the details given. >> +Note section descriptors (SHT_NOTE extensions) >> +============================================== > >> +NT_GNU_BUILD_ID 3 >> + >> + descsz bytes of build-id data. >> + Typically presented as a hex string. > > But stored in binary? Yes. > Maybe reference the ld documentation here, and say that the actual > computation mechanism is unspecified? Documented as binary+opaque, and the required unique-ness properties noted. --8323329-598017517-1599067792=:31454 Content-Type: text/x-diff; name=0001-Incorporate-feedback-and-add-DOCUMENTME-tags-where-m.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=0001-Incorporate-feedback-and-add-DOCUMENTME-tags-where-m.patch RnJvbSBhOTNjMDIxMmY1M2NkMDY5YmE0NjI2MWM1N2E5YmFiMjg5YjJkNDY2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogPT9VVEYtOD9xP1Zp dmVrPTIwRGFzPUMyPUEwTW9oYXBhdHJhPz0gPHZpdmVrQGNvbGxhYm9yYS5j b20+DQpEYXRlOiBXZWQsIDIgU2VwIDIwMjAgMTg6MTU6NDMgKzAxMDANClN1 YmplY3Q6IFtQQVRDSF0gSW5jb3Jwb3JhdGUgZmVlZGJhY2sgYW5kIGFkZCBE T0NVTUVOVE1FIHRhZ3Mgd2hlcmUgbW9yZSBpbmZvDQogaXMgbmVlZGVkDQoN Ci0tLQ0KIHByb2dyYW0tbG9hZGluZy1hbmQtZHluYW1pYy1saW5raW5nLnR4 dCB8IDI2MiArKysrKysrKysrKysrKysrKysrKysrLS0NCiAxIGZpbGUgY2hh bmdlZCwgMjQzIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQ0KDQpk aWZmIC0tZ2l0IGEvcHJvZ3JhbS1sb2FkaW5nLWFuZC1keW5hbWljLWxpbmtp bmcudHh0IGIvcHJvZ3JhbS1sb2FkaW5nLWFuZC1keW5hbWljLWxpbmtpbmcu dHh0DQppbmRleCA3NTFlYWNhLi5mN2Y0Mjg0IDEwMDY0NA0KLS0tIGEvcHJv Z3JhbS1sb2FkaW5nLWFuZC1keW5hbWljLWxpbmtpbmcudHh0DQorKysgYi9w cm9ncmFtLWxvYWRpbmctYW5kLWR5bmFtaWMtbGlua2luZy50eHQNCkBAIC05 LDkgKzksMTkgQEAgUFRfU1VOV19FSF9GUkFNRSAweDY0NzRlNTUwDQogDQog ICBTZWdtZW50IGNvbnRhaW5zIHRoZSBFSF9GUkFNRV9IRFIgc2VjdGlvbiAo c3RhY2sgZnJhbWUgdW53aW5kIGluZm9ybWF0aW9uKQ0KIA0KKyAgTk9URTog VGhlIHZpcnR1YWwgYWRkcmVzcyByYW5nZSByZWZlcnJlZCB0byBieSBQVF9H TlVfRUhfRlJBTUUgbXVzdCBiZQ0KKyAgY292ZXJlZCBieSBhIHNlcGFyYXRl IFBUX0xPQUQgaGVhZGVyIC0gUFRfR05VX0VIX0ZSQU1FIG9uIGl0cyBvd24g ZG9lcw0KKyAgbm90IHRyaWdnZXIgdGhlIG1hcHBpbmcvbG9hZGluZyBvZiBh bnkgZGF0YSBpbnRvIG1lbW9yeS4NCisNCiAgIFBUX1NVTldfRUhfRlJBTUUg aXMgdXNlZCBieSBhIG5vbi1HTlUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBz YW1lIHB1cnBvc2UsDQogICBhbmQgaGFzIHRoZSBzYW1lIHZhbHVlIChhbHRo b3VnaCB0aGlzIGRvZXMgbm90IGltcGx5IGNvbXBhdGlibGUgY29udGVudHMp Lg0KIA0KKyAgVGhlIGNvbnRlbnRzIG9mIHRoZSBFSF9GUkFNRV9IRFIgYXJl IGRlc2NyaWJlZCBpbiB0aGUgTFNCLiBBcyBvZiB2NS4wOg0KKw0KKyAgUmVm ZXJlbmNlOiBodHRwczovL3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlvbi5vcmcv TFNCXzUuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNvcmUtZ2VuZXJpYy9l aGZyYW1lY2hwdC5odG1sDQorICBSZWZlcmVuY2U6IGh0dHBzOi8vcmVmc3Bl Y3MubGludXhmb3VuZGF0aW9uLm9yZy9MU0JfNS4wLjAvTFNCLUNvcmUtZ2Vu ZXJpYy9MU0ItQ29yZS1nZW5lcmljL2VoZnJhbWVjaHB0Lmh0bWwjRUhGUkFN RUhEUg0KKyAgUmVmZXJlbmNlOiBodHRwczovL3JlZnNwZWNzLmxpbnV4Zm91 bmRhdGlvbi5vcmcvTFNCXzUuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNv cmUtZ2VuZXJpYy5odG1sI1BST0dIRUFERVINCisNCiBQVF9HTlVfU1RBQ0sg ICAgIDB4NjQ3NGU1NTENCiANCiAgIFRoZSBwX2ZsYWdzIG1lbWJlciBvZiB0 aGlzIEVsZlcoUGhkcikgc3RydWN0dXJlIGFwcGx5IHRvIHRoZSBzdGFjay4N CkBAIC0xOSwyMiArMjksMzQgQEAgUFRfR05VX1NUQUNLICAgICAweDY0NzRl NTUxDQogICBJZiBwcmVzZW50IEFORCBwX2ZsYWdzIERPRVMgTk9UIGNvbnRh aW4gUEZfWCAoMHgxKSB0aGVuIHRoZSBzdGFjaw0KICAgc2hvdWxkIF9ub3Rf IGJlIGV4ZWN1dGFibGUuDQogDQotICBPdGhlcndpc2UgdGhlIHN0YWNrIGlz IGV4ZWN1dGFibGUgKHRoZSBkZWZhdWx0KS4NCisgIE90aGVyd2lzZSB0aGUg c3RhY2sgZm9sbG93cyB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlZmF1 bHQgZm9yDQorICBleGVjdXRhYmlsaXR5OiBGb3IgZXhhbXBsZSBvbiB4ODYg dGhlIHN0YWNrIGlzIGV4ZWN1dGFibGUgYnkgZGVmYXVsdC4NCisNCisgIE5P VEU6IFNvbWUgaW1wbGVtZW50YXRpb25zIG1heSB1c2UgdGhpcyBoZWFkZXIn cyBwX3NpemUgdG8gc2V0IHRoZSBzdGFjayBzaXplLg0KKyAgZ2xpYmMgZG9l cyBOT1QgZG8gdGhpczogU2VlIEdOVV9QUk9QRVJUWV9TVEFDS19TSVpFIGlu c3RlYWQuDQorDQorICBSZWZlcmVuY2U6IGh0dHBzOi8vcmVmc3BlY3MubGlu dXhmb3VuZGF0aW9uLm9yZy9MU0JfNS4wLjAvTFNCLUNvcmUtZ2VuZXJpYy9M U0ItQ29yZS1nZW5lcmljLmh0bWwjUFJPR0hFQURFUg0KIA0KIFBUX0dOVV9S RUxSTyAgICAgMHg2NDc0ZTU1Mg0KIA0KICAgVGhlIHNwZWNpZmllZCBzZWdt ZW50IHNob3VsZCBiZSBtYWRlIHJlYWQtb25seSBvbmNlIHJ1bi10aW1lIGxp bmtpbmcNCi0gIGhhcyBjb21wbGV0ZWQuDQorICBvZiB0aGlzIG9iamVjdCBo YXMgY29tcGxldGVkLg0KKw0KKyAgRE9DVU1FTlRNRTogSW50ZXJhY3Rpb24g d2l0aCBQVF9MT0FEIGhlcmUNCisNCisgIFJlZmVyZW5jZTogaHR0cHM6Ly9y ZWZzcGVjcy5saW51eGZvdW5kYXRpb24ub3JnL0xTQl81LjAuMC9MU0ItQ29y ZS1nZW5lcmljL0xTQi1Db3JlLWdlbmVyaWMuaHRtbCNQUk9HSEVBREVSDQog DQogUFRfR05VX1BST1BFUlRZICAweDY0NzRlNTUzDQogDQogICBUaGUgTGlu dXgga2VybmVsIHVzZXMgdGhpcyBwcm9ncmFtIGhlYWRlciB0byBsb2NhdGUg dGhlDQotICAubm90ZS5nbnUucHJvcGVydHkgc2VjdGlvbi4NCisgICIubm90 ZS5nbnUucHJvcGVydHkgc2VjdGlvbiIuDQogDQogICBJZiB0aGVyZSBpcyBh IHByb2dyYW0gcHJvcGVydHkgdGhhdCByZXF1aXJlcyB0aGUga2VybmVsIHRv IHBlcmZvcm0NCi0gIHNvbWUgYWN0aW9uIGJlZm9yZSBsb2FkaW5nIGFuZCBF TEYgZmlsZSAoZWcgQUFyY2g2NCBCVEkgb3IgaW50ZWwgQ0VUKQ0KKyAgc29t ZSBhY3Rpb24gYmVmb3JlIGxvYWRpbmcgYW5kIEVMRiBmaWxlIChlZyBBQXJj aDY0IEJUSSBvciBJbnRlbCBDRVQpDQogICB0aGVuIHRoaXMgaGVhZGVyIE1V U1QgYmUgcHJlc2VudC4NCiANCisgIElmIG5vIHN1Y2ggZmVhdHVyZXMgYXJl IHRvIGJlIGVuYWJsZWQgdGhpcyBoZWFkZXIgTVVTVCBOT1QgYmUgcHJlc2Vu dC4NCisNCiAgIFRoZSBjb250ZW50cyBhcmUgbGFpZCBvdXQgYXMgZm9sbG93 czoNCiANCiAgIEZpZWxkICAgICAgfCBMZW5ndGggICB8IENvbnRlbnRzDQpA QCAtNTMsMTggKzc1LDMyIEBAIFBUX0dOVV9QUk9QRVJUWSAgMHg2NDc0ZTU1 Mw0KICAgICB1bnNpZ25lZCBjaGFyIHByX3BhZGRpbmdbUFJfUEFERElOR107 DQogICB9IEVsZl9Qcm9wOw0KIA0KLSAgUHJvcGVydGllcyBhcmUgc29ydGVk IGluIGFzY2VuZGluZyBvcmRlciBvZiBwcl90eXBlOw0KLQ0KICAgcHJfZGF0 YSBpcyBhbGlnbmVkIHRvIDQgYnl0ZXMgaW4gMzItYml0IG9iamVjdHMgYW5k IDggYnl0ZXMgaW4gNjQtYml0IG9uZXMuDQogDQorICBUaGUgc2VnbWVudCBp dHNlbGYgaXMgYWxpZ25lZCBhY2NvcmRpbmcgdG8gdGhlIHByb2dyYW0gaGVh ZGVyJ3MgcF9hbGlnbg0KKyAgZmllbGQuDQorDQorICBQUl9QQURESU5HIGJ5 dGVzIGFyZSBhZGRlZCBfYWZ0ZXJfIFBSX0RBVEFTWiBzbyB0aGF0IGVhY2gg cHJvcGVydHkgaXMNCisgIGFsaWduZWQgdG8gNCBieXRlcyAob24gMzIgYml0 IGFyY2hpdGVjdHVyZXMpIGFuZCB0byA4IGJ5dGVzIG9uIDY0IGJpdA0KKyAg YXJjaGl0ZWN0dXJlcy4NCisNCisgIFRoaXMgaXMgdHJ1ZSBldmVuIGlmIHBy X2RhdGFzeiBpcyAwIChjZiBHTlVfUFJPUEVSVFlfTk9fQ09QWV9PTl9QUk9U RUNURUQpLg0KKw0KKyAgUHJvcGVydGllcyBhcmUgc29ydGVkIGluIGFzY2Vu ZGluZyBvcmRlciBvZiBwcl90eXBlOw0KKw0KICAgRGVmaW5lZCBwcm9wZXJ0 aWVzIGFyZToNCiANCiAgIEdOVV9QUk9QRVJUWV9TVEFDS19TSVpFICAweDEN CiANCi0gIEEgbmF0aXZlIGZvcm1hdCAmIHNpemUgaW50ZWdlciBzcGVjaWZ5 aW5nIHRoZSBtaW5pbXVtIHN0YWNrIHNpemUuDQorICBwcl9kYXRhIGhvbGRz IGEgbmF0aXZlIHNpemVkICg0IGJ5dGVzIG9uIDMyIGJpdCBhcmNoaXRlY3Vy ZXMsDQorICA4IGJ5dGVzIG9uIDY0IGJpdCkgaW50ZWdlciBpbiB0aGUgdGFy Z2V0IHByb2Nlc3NvcidzIG5hdGl2ZSBmb3JtYXQuDQorDQogICBUaGUgbGlu a2VyIHNob3VsZCBwaWNrIHRoZSBoaWdoZXN0IGluc3RhbmNlIG9mIHRoaXMg ZnJvbSBhbGwgcmVsb2NhdGFibGUNCiAgIG9iamVjdHMgaW4gdGhlIGxpbmsg Y2hhaW4gYW5kIGVuc3VyZSB0aGUgc3RhY2sgaXMgYXQgbGVhc3QgdGhpcyBi aWcuDQogDQorICBUaGVyZSBpcyBubyBpbXBsaWNhdGlvbiBvciByZXF1aXJl bWVudCB0aGF0IHRoZSBsaW5rZXIgc2hvdWxkIG9yIHdpbGwNCisgIHJlZHVj ZSB0aGUgc3RhY2sgc2l6ZSB0byBtYXRjaCB0aGlzIHZhbHVlLg0KKw0KICAg R05VX1BST1BFUlRZX05PX0NPUFlfT05fUFJPVEVDVEVEIDB4Mg0KIA0KICAg VGhlIGxpbmtlciBzaG91bGQgdHJlYXQgcHJvdGVjdGVkIGRhdGEgc3ltYm9s IGFzIGRlZmluZWQgbG9jYWxseSBhdA0KQEAgLTc2LDcgKzExMiw4IEBAIFBU X0dOVV9QUk9QRVJUWSAgMHg2NDc0ZTU1Mw0KICAgVGhlIHJ1bi10aW1lIGxv YWRlciBzaG91bGQgZGlzYWxsb3cgY29weSByZWxvY2F0aW9ucyBhZ2FpbnN0 IHByb3RlY3RlZA0KICAgZGF0YSBzeW1ib2xzIGRlZmluZWQgc3VjaCBvYmpl Y3RzLg0KIA0KLSAgVGhpcyB0eXBlIGhhcyBhIFBSX0RBVEFTWiBvZiAwLg0K KyAgVGhpcyB0eXBlIGlzIGV4cGVjdGVkIHRvIGhhdmUgYSBwcl9kYXRhc3og ZmllbGQgb2YgMCwgYW5kIG5vIHByX2RhdGENCisgIGNvbnRlbnRzIChvbmx5 IHBhZGRpbmcpLg0KIA0KICAgR05VX1BST1BFUlRZX0xPUFJPQyAgMHhjMDAw MDAwMA0KICAgR05VX1BST1BFUlRZX0hJUFJPQyAgMHhkZmZmZmZmZg0KQEAg LTg4LDggKzEyNSwxMCBAQCBQVF9HTlVfUFJPUEVSVFkgIDB4NjQ3NGU1NTMN CiANCiAgIFJlc2VydmVkIGZvciBhcHBsaWNhdGlvbiBzcGVjaWZpYyB2YWx1 ZXMuDQogDQorICBSZWZlcmVuY2U6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJj b250ZW50LmNvbS93aWtpL2hqbC10b29scy9saW51eC1hYmkvbGludXgtYWJp LWRyYWZ0LnBkZg0KKw0KIFRoZXJlIGFyZSBmdXJ0aGVyIGV4dGVuc2lvbnMg dG8gcF90eXBlIGJ1dCBjdXJyZW50bHkgdGhleSBhcmUgYWxsDQotYXJjaGl0 ZWN0dXJlIHNwZWNpZmljIGFuZCB3aWxsIGJlIGRvY3VtZW50ZWQgaW4gdGhl IHJlbGV2YW50IEFCSXMuDQorYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGFuZCBz aG91bGQgYmUgZG9jdW1lbnRlZCBpbiB0aGUgcmVsZXZhbnQgQUJJcy4NCiAN CiBEeW5hbWljIHNlZ21lbnQgZXh0ZW5zaW9ucyAoUFRfRFlOQU1JQyBlbnRy aWVzKQ0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQpAQCAtMTM3LDExICsxNzYsMTggQEAgRFRfR05VX0ZMQUdT XzEgICAgMHg2ZmZmZmRmNA0KIA0KICAgVGhpcyBiZWhhdmlvdXIgY2FuIGFs d2F5cyBiZSBleHBsaWNpdGx5IG92ZXJyaWRkZW4gYnkgdGhlIGNhbGxlciBv ZiBkbG1vcGVuKDMpLg0KIA0KKyAgUmVmZXJlbmNlOiBUaGlzIGRvY3VtZW50 IGlzIGNhbm9uaWNhbC4NCisNCitQcmVsaW5raW5nDQorPT09PT09PT09PQ0K Kw0KIERUX0dOVV9QUkVMSU5LRUQgIDB4NmZmZmZkZjUNCiANCiAgIFRoZSBk X3ZhbCBmaWVsZCBjb250YWlucyBhIHRpbWVfdCB2YWx1ZSBnaXZpbmcgdGhl IFVUQyB0aW1lIGF0IHdoaWNoIHRoZQ0KICAgb2JqZWN0IHdhcyAocHJlKWxp bmtlZC4NCiANCisgIFJlZmVyZW5jZTogRE9DVU1FTlRNRQ0KKw0KIERUX0dO VV9DT05GTElDVFNaIDB4NmZmZmZkZjYNCiANCiAgIFVzZWQgaW4gcHJlbGlu a2VkIG9iamVjdHMuDQpAQCAtMTUyLDEwICsxOTgsNiBAQCBEVF9HTlVfTElC TElTVFNaICAweDZmZmZmZGY3DQogICBVc2VkIGluIHByZWxpbmtlZCBvYmpl Y3RzLg0KICAgZF92YWwgY29udGFpbnMgdGhlIHNpemUgb2YgdGhlIGxpYnJh cnkgbGlzdC4NCiANCi1EVF9HTlVfSEFTSCAgICAgICAweDZmZmZmZWY1DQot DQotICBUaGUgZF9wdHIgdmFsdWUgZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIHRo ZSBHTlUgc3R5bGUgc3ltYm9sIGhhc2ggdGFibGUuDQotDQogRFRfR05VX0NP TkZMSUNUICAgMHg2ZmZmZmVmOA0KIA0KICAgVXNlZCBpbiBwcmVsaW5rZWQg b2JqZWN0cy4NCkBAIC0xNzUsNiArMjE3LDIzIEBAIERUX0dOVV9MSUJMSVNU ICAgIDB4NmZmZmZlZjkNCiAgIFRoaXMgaXMgdXNlZCB0byBjaGVjayB0aGF0 IGFsbCByZXF1aXJlZCBwcmVsaW5rZWQgbGlicmFyaWVzIGFyZSBzdGlsbA0K ICAgcHJlc2VudCwgbG9hZGVkLCBhbmQgaGF2ZSB0aGUgY29ycmVjdCBjaGVj a3N1bXMgYXQgcnVudGltZS4NCiANCisgIHR5cGVkZWYgc3RydWN0IHsNCisg ICAgRWxmVyhXb3JkKSBsX25hbWU7ICAgICAgICAgIC8qIE5hbWUgKHN0cmlu ZyB0YWJsZSBpbmRleCkgKi8NCisgICAgRWxmVyhXb3JkKSBsX3RpbWVfc3Rh bXA7ICAgIC8qIFRpbWVzdGFtcCAqLw0KKyAgICBFbGZXKFdvcmQpIGxfY2hl Y2tzdW07ICAgICAgLyogQ2hlY2tzdW0gKi8NCisgICAgRWxmVyhXb3JkKSBs X3ZlcnNpb247ICAgICAgIC8qIEludGVyZmFjZSB2ZXJzaW9uICovDQorICAg IEVsZlcoV29yZCkgbF9mbGFnczsgICAgICAgICAvKiBGbGFncyAqLw0KKyAg fSBFbGZXKExpYik7DQorDQorSGFzaGVzDQorPT09PT09DQorDQorRFRfR05V X0hBU0ggICAgICAgMHg2ZmZmZmVmNQ0KKw0KKyAgVGhlIGRfcHRyIHZhbHVl IGdpdmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgR05VIHN0eWxlIHN5bWJvbCBo YXNoIHRhYmxlLg0KKw0KKyAgRE9DVU1FTlRNRTogZmluZCB0aGUgY2Fub25p Y2FsIHNwZWMgZm9yIHRoaXMgKG9yIHJldmVyc2UgZSBmcm9tIGdsaWJjIHNv dXJjZSkNCisNCiBTZWN0aW9uIEhlYWRlcnMNCiA9PT09PT09PT09PT09PT0N CiANCkBAIC0xODMsMTEgKzI0MiwxNCBAQCBUeXBpY2FsbHkgZm91bmQgaW4g RWxmVyhTaGRyKS5zaF90eXBlLg0KIA0KIFNIVF9HTlVfSU5DUkVNRU5UQUxf SU5QVVRTIDB4NmZmZjQ3MDANCiANCi0gIFRoZSBzZWN0aW9uIHNob3VsZCBi ZSBuYW1lZCAiLmdudV9pbmNyZW1lbnRhbF9pbnB1dHMiLg0KLSAgQ3VycmVu dGx5IHVzZWQgZm9yIGluY3JlbWVudGFsIGxpbmtpbmcgYnkgZ29sZC4NCisg IFNlY3Rpb24gbmFtZTogIi5nbnVfaW5jcmVtZW50YWxfaW5wdXRzIg0KKw0K KyAgQ3VycmVudGx5IHVzZWQgaW50ZXJuYWxseSBmb3IgaW5jcmVtZW50YWwg bGlua2luZyBieSBnb2xkLg0KIA0KIFNIVF9HTlVfQVRUUklCVVRFUyAgICAg ICAgIDB4NmZmZmZmZjUNCiANCisgIFNlY3Rpb24gbmFtZTogIi5nbnUuYXR0 cmlidXRlcyINCisNCiAgIEdOVSBzcGVjaWZpYyBwcm9ncmFtIGF0dHJpYnV0 ZXMsIHNoX3NpemUgYnl0ZXMgYXQgc2hfb2Zmc2V0IGludG8gdGhlIGZpbGUu DQogDQogICBUaGUgZmlyc3QgYnl0ZSBpcyB0aGUgdmVyc2lvbiBvZiB0aGUg YXR0cmlidXRlIHNwZWM6IEN1cnJlbnRseSBvbmx5ICdBJw0KQEAgLTIwMCwy OSArMjYyLDE4MCBAQCBTSFRfR05VX0FUVFJJQlVURVMgICAgICAgICAweDZm ZmZmZmY1DQogICAgICAgLSBhIHRhZyBieXRlDQogICAgICAgLSBhIDQgYnl0 ZSBuYXRpdmUgaW50ZWdlciBzaXplIChpbmNsdWRpbmcgdGhlIHRhZyBieXRl IGFuZCB0aGUgc2l6ZSBpdHNlbGYpDQogICAgICAgICAtIGlmIHRoZSB0YWcg aXMgMiBvciAzOiBhIExFQjEyOCBlbmNvZGVkIHZhbHVlIHN0b3JlZCBpbiB0 aGUgcmVtYWluaW5nIHNwYWNlDQotICAgICAgLSBET0NVTUVOVE1FOiBwb3Nz aWJseSBzb21lIHJlbWFpbmluZyBhdHRyaWJ1dGUgYnl0ZXMNCisgICAgICAt IERPQ1VNRU5UTUU6IHNvbWUgYXR0cmlidXRlIGJ5dGVzPyByZXZlcnNlIGVu Z2luZWVyIGZyb20gcmVhZGVsZj8NCiANCiBTSFRfR05VX0hBU0ggICAgICAg ICAgICAgICAweDZmZmZmZmY2DQogDQorICBTZWN0aW9uIG5hbWU6ICIuZ251 Lmhhc2giIChhcmNoaXRlY3R1cmUgc3BlY2lmaWMgQUJJIG1heSBvdmVycmlk ZSB0aGlzKQ0KKw0KKyAgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIHRoZSBHTlUg c3R5bGUgaGFzaCB0YWJsZS4gU2VlIERUX0dOVV9IQVNILg0KKyAgQ3VycmVu dGx5IG9ubHkgdGhlIE1JUFMgYXJjaGl0ZWN0dXJlIGlzIGtub3duIHRvIHVz ZSBhIGRpZmZlcmVudCBuYW1lLg0KKw0KIFNIVF9HTlVfTElCTElTVCAgICAg ICAgICAgIDB4NmZmZmZmZjcNCiANCisgIFNlZSBEVF9HTlVfTElCTElTVC4N CisNCisgIFNlY3Rpb24gbmFtZTogIi5nbnUubGlibGlzdCINCisNCisgIFRo aXMgc2VjdGlvbiBzaG91bGQgcmVmZXIgdG8gYSBTSFRfU1RSVEFCIHR5cGUg c2VjdGlvbiB2aWEgaXRzIHNoX2xpbmsNCisgIGZpZWxkOiBUaGF0IHN0cnRh YiBob2xkcyB0aGUgbmFtZXMgb2YgdGhlIGxpYnJhcmllcyBsaXN0ZWQgaW4g ZWFjaA0KKyAgRWxmVyhMaWIpIHN0cnVjdCBjb250YWluZWQgaW4gdGhpcyBH TlVfTElCTElTVCBzZWN0aW9uLg0KKw0KK1N5bWJvbCBWZXJzaW9uaW5nDQor PT09PT09PT09PT09PT09PT0NCisNCitUaGVzZSBzZWN0aW9ucyBpbXBsZW1l bnQgR05VIHN5bWJvbCB2ZXJzaW9uaW5nLg0KK1RoZXNlIHNlY3Rpb25zIGFs bCBoYXZlIHRoZSBTSEZfQUxMT0MgYXRyaWJ1dGUuDQorDQorUmVmZXJlbmNl OiBodHRwczovL3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlvbi5vcmcvTFNCXzUu MC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNvcmUtZ2VuZXJpYy5odG1sDQor UmVmZXJlbmNlOiBodHRwczovL3JlZnNwZWNzLmxpbnV4Zm91bmRhdGlvbi5v cmcvTFNCXzUuMC4wL0xTQi1Db3JlLWdlbmVyaWMvTFNCLUNvcmUtZ2VuZXJp Yy5odG1sI1NZTVZFUlNJT04NCisNCiBTSFRfR05VX3ZlcmRlZiAgICAgICAg ICAgICAweDZmZmZmZmZkDQogDQorICBTZWN0aW9uIG5hbWU6ICIuZ251LnZl cnNpb25fZCINCisNCisgIFRoaXMgc2VjdGlvbiBjb250YWlucyBzeW1ib2wg dmVyc2lvbiBkZWZpbml0aW9ucy4NCisNCisgIFRoZSBudW1iZXIgb2YgZW50 cmllcyBpdCBjb250YWlucyBpcyBnaXZlbiBieSB0aGUgRFRfVkVSREVGTlVN IGVudHJ5DQorICBvZiB0aGUgRHluYW1pYyBTZWN0aW9uIFNIVF9EWU5BTUlD LyIuZHluYW1pYyIuDQorDQorICBUaGUgc2hfbGluayBtZW1iZXIgb2YgdGhp cyBzZWN0aW9uIGhlYWRlciAoc2VlIHRoZSBTeXN0ZW0gViBBQkkpIHBvaW50 cyB0bw0KKyAgdGhlIFNIVF9TVFJUQUIgc2VjdGlvbiB0aGF0IGNvbnRhaW5z IHRoZSBzdHJpbmdzIHJlZmVyZW5jZWQgYnkgdGhpcyBzZWN0aW9uLg0KKw0K KyAgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGFuIGFycmF5IG9mIEVsZlcoVmVy ZGVmKSBzdHJ1Y3R1cmVzIG9wdGlvbmFsbHkNCisgIGZvbGxvd2VkIGJ5IGFu IGFycmF5IG9mIEVsZlcoVmVyZGF1eCkgc3RydWN0dXJlcy4NCisNCisgIEVs ZlcoVmVyZGVmKToNCisNCisgIHR5cGVkZWYgc3RydWN0IHsNCisgICAgRWxm VyhIYWxmKSB2ZF92ZXJzaW9uOyAvKiAwLCAxIG9yIDIuIFNlZSBiZWxvdyAg ICAgICAgICAgICAgICAgICAgICAgICovDQorICAgIEVsZlcoSGFsZikgdmRf ZmxhZ3M7ICAgLyogQSBmbGFnIGJpdGZpZWxkLiBTZWUgYmVsb3cgICAgICAg ICAgICAgICAgICAqLw0KKyAgICBFbGZXKEhhbGYpIHZkX25keDsgICAgIC8q IFJlZmVycmVkIHRvIGJ5IFNIVF9HTlVfdmVyc3ltLiBTZWUgYmVsb3cgICAg Ki8NCisgICAgRWxmVyhIYWxmKSB2ZF9jbnQ7ICAgICAvKiBOdW1iZXIgb2Yg YXNzb2NpYXRlZCBFbGZXKFZlcmRhdXgpIGVudHJpZXMgICovDQorICAgIEVs ZlcoV29yZCkgdmRfaGFzaDsgICAgLyogVmVyc2lvbiBuYW1lIGhhc2ggKHBl ciBFTEYgSGFzaCBmdW5jdGlvbikgICAqLw0KKyAgICBFbGZXKFdvcmQpIHZk X2F1eDsgICAgIC8qIE9mZnNldCBpbiBieXRlcyBmcm9tIHRoaXMgRWxmVyhW ZXJkZWYpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gaXRz IEVsZlcoVmVyZGF1eCkgYXJyYXkgICAgICAgICAgICAgICAgICAqLw0KKyAg ICBFbGZXKFdvcmQpIHZkX25leHQ7ICAgIC8qIE9mZnNldCBpbiBieXRlcyBm cm0gdGhpcyBFbGZXKFZlcmRlZikNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0byB0aGUgbmV4dCBFbGZXKFZlcmRlZikgZW50cnkuDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCBmb3IgbGFzdCBlbnRyeS4g ICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KKyAgfSBFbGZXKFZlcmRl Zik7DQorDQorICB2ZF92ZXJzaW9uOg0KKyAgICBWRVJfREVGX05PTkUgICAg MCAvLyBObyB2ZXJzaW9uDQorICAgIFZFUl9ERUZfQ1VSUkVOVCAxIC8vIEN1 cnJyZW50IHZlcnNpb24NCisNCisgIHZkX2ZsYWdzOg0KKyAgICBWRVJfRkxH X0JBU0UgMHgxIC8vIFtEZWZhdWx0XSBWZXJzaW9uIG9mIHRoZSB3aG9sZSBv YmplY3QNCisgICAgVkVSX0ZMR19XRUFLIDB4MiAvLyBXZWFrIHZlcnNpb24g aWRlbnRpZmllcg0KKw0KKyAgdmRfbmR4Og0KKyAgICBWRVJfTkRYX0xPQ0FM ICAgICAwICAgICAgLy8gcHJpdmF0ZSBzeW1ib2wNCisgICAgVkVSX05EWF9H TE9CQUwgICAgMSAgICAgIC8vIGdsb2JhbCBzeW1ib2wNCisgICAgVkVSX05E WF9MT1JFU0VSVkUgMHhmZjAwIC8vIEJlZ2lubmluZyBvZiByZXNlcnZlZCBl bnRyaWVzDQorICAgIFZFUl9ORFhfRUxJTUlOQVRFIDB4ZmYwMSAvLyBET0NV TUVOVE1FOiBTeW1ib2wgc2hvdWxkIGJlIGVsaW1pbmF0ZWQNCisNCisgIEVs ZlcoVmVyZGF1eCk6DQorDQorICB0eXBlZGVmIHN0cnVjdCB7DQorICAgIEVs ZlcoV29yZCkgdmRhX25hbWU7IC8vIGJ5dGUgb2Zmc2V0IGludG8gdGhlIHN0 cnRhYiBvZiB0aGUgdmVyc2lvbiBuYW1lDQorICAgIEVsZlcoV29yZCkgdmRh X25leHQ7IC8vIGJ5dGUgb2Zmc2V0IGZyb20gdGhpcyBFbGZXKFZlcmRhdXgp IHRvIHRoZSBuZXh0DQorICB9IEVsZlcoVmVyZGF1eCk7DQorDQogU0hUX0dO VV92ZXJuZWVkICAgICAgICAgICAgMHg2ZmZmZmZmZQ0KIA0KKyAgU2VjdGlv biBuYW1lOiAiLmdudS52ZXJzaW9uX3IiDQorDQorICBUaGlzIHNlY3Rpb24g Y29udGFpbnMgc3ltYm9sIHZlcnNpb24gcmVxdWlyZW1lbnRzLg0KKw0KKyAg VGhlIG51bWJlciBvZiBlbnRyaWVzIGl0IGNvbnRhaW5zIGlzIGdpdmVuIGJ5 IHRoZSBEVF9WRVJORUVETlVNIGVudHJ5DQorICBvZiB0aGUgRHluYW1pYyBT ZWN0aW9uIFNIVF9EWU5BTUlDLyIuZHluYW1pYyIuDQorDQorICBUaGUgc2hf bGluayBtZW1iZXIgb2YgdGhpcyBzZWN0aW9uIGhlYWRlciAoc2VlIHRoZSBT eXN0ZW0gViBBQkkpIHBvaW50cyB0bw0KKyAgdGhlIFNIVF9TVFJUQUIgc2Vj dGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBzdHJpbmdzIHJlZmVyZW5jZWQgYnkg dGhpcyBzZWN0aW9uLg0KKw0KKyAgVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGFu IGFycmF5IG9mIEVsZlcoVmVybmVlZCkgc3RydWN0dXJlcyBvcHRpb25hbGx5 DQorICBmb2xsb3dlZCBieSBhbiBhcnJheSBvZiBFbGZXKFZlcm5hdXgpIHN0 cnVjdHVyZXMuDQorDQorICBFbGZXKFZlcm5lZWQpOg0KKw0KKyAgdHlwZWRl ZiBzdHJ1Y3Qgew0KKyAgICBFbGZXKEhhbGYpIHZuX3ZlcnNpb247IC8qIFNl ZSBiZWxvdyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8NCisgICAgRWxmVyhIYWxmKSB2bl9jbnQ7ICAgICAvKiBOdW1iZXIgb2Yg YXNzb2NpYXRlZCBFbGZXKFZlcm5hdXgpIGVudHJpZXMgICAgICovDQorICAg IEVsZlcoV29yZCkgdm5fZmlsZTsgICAgLyogQnl0ZSBvZmZzZXQgaW4gc3Ry dGFiIG9mIHJlcXVpcmVkIERTTyBmaWxlbmFtZSAqLw0KKyAgICBFbGZXKFdv cmQpIHZuX2F1eDsgICAgIC8qIEJ5dGUgb2Zmc2V0IGZyb20gdGhpcyBFbGZX KFZlcm5lZWQpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8g aXRzIEVsZlcoVmVybmF1eCkgYXJyYXkgICAgICAgICAgICAgICAgICAgICAq Lw0KKyAgICBFbGZXKFdvcmQpIHZuX25leHQ7ICAgIC8qIEJ5dGUgb2Zmc2V0 IGZyb20gdGhpcyBFbGZXKFZlcm5lZWQpIHRvIHRoZQ0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5leHQgb25lLiAwIGluIHRoZSBsYXN0IG9u ZSAgICAgICAgICAgICAgICAgICAgKi8NCisgIH0gRWxmVyhWZXJuZWVkKTsN CisNCisgIEVsZlcoVmVybmF1eCk6DQorDQorICB0eXBlZGVmIHN0cnVjdCB7 DQorICAgIEVsZlcoV29yZCkgdm5hX2hhc2g7ICAvKiBEZXBlbmRlbmN5IG5h bWUgaGFzaCAocGVyIEVMRiBoYXNoIGZ1bmN0aW9uKSAgICAqLw0KKyAgICBF bGZXKEhhbGYpIHZuYV9mbGFnczsgLyogRGVwZW5kZW5jeSBmbGFnIGJpdGZp ZWxkLiBTZWUgYmVsb3cgICAgICAgICAgICAgKi8NCisgICAgRWxmVyhIYWxm KSB2bmFfb3RoZXI7IC8qIFJlZmVycmVkIHRvIGJ5IFNIVF9HTlVfdmVyc3lt LCBidXQgc2VlIGJlbG93ICAgICovDQorICAgIEVsZlcoV29yZCkgdm5hX25h bWU7ICAvKiBCeXRlIG9mZnNldCBpbiBzdHJ0YWIgb2YgcmVxdWlyZWQgKHN5 bWJvbCkgbmFtZSAqLw0KKyAgICBFbGZXKFdvcmQpIHZuYV9uZXh0OyAgLyog Qnl0ZSBvZmZzZXQgZnJvbSB0aGlzIEVsZlcoVmVybmF1eCkgdG8gdGhlIG5l eHQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgZm9yIHRoZSBs YXN0IGVudHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQorICB9 IEVsZlcoVmVybmF1eCk7DQorDQorICB2bmFfZmxhZ3M6DQorICAgIFZFUl9G TEdfV0VBSyAweDIgIFdlYWsgdmVyc2lvbiBpZGVudGlmaWVyOg0KKyAgICAg ICAgICAgICAgICAgICAgICBOb3QgZmF0YWwgaWYgdGhpcyBzeW1ib2wrdmVy c2lvbiBpcyBtaXNzaW5nLg0KKw0KKyAgdm5hX290aGVyOg0KKyAgICBJZiBi aXQgMTUgKDB4ODAwMCkgaXMgc2V0IHRoZW4gdGhpcyBzeW1ib2wgaXMgaGlk ZGVuLg0KKyAgICB2bmFfb3RoZXIgc2hvdWxkIHRoZXJlZm9yZSBiZSBiaXR3 aXNlLWFuZGVkIHdpdGggMHg3ZmZmIGJlZm9yZQ0KKyAgICBjb21wYXJpc29u IHdpdGggdGhlIHZhbHVlIGZyb20gU0hUX0dOVV92ZXJzeW0uDQorDQogU0hU X0dOVV92ZXJzeW0gICAgICAgICAgICAgMHg2ZmZmZmZmZg0KIA0KKyAgU2Vj dGlvbiBuYW1lOiAiLmdudS52ZXJzaW9uIg0KKw0KKyAgVGhlIHZlcnNpb25l ZCBzeW1ib2wgdGFibGUuDQorDQorICBJZiBwcmVzZW50LCB0aGlzIG11c3Qg aGF2ZSB0aGUgc2FtZSBudW1iZXIgb2ZlbnRyaWVzIGFzIHRoZQ0KKyAgU0hU X0RZTlNZTS8iLmR5bnN5bSIgc2VjdGlvbi4gVGhlIGVudHJpZXMgaW4gdGhp cyBzZWN0aW9uIGFyZSBpbiB0aGUNCisgIHNhbWUgb3JkZXIgYXMgdGhvc2Ug aW4gU0hUX0RZTlNZTS4NCisNCisgIFRoYXQgaXMgdG8gc2F5OiBFbnRyeSAy IGluIHRoaXMgdGFibGUgY29ycmVzcG9uZHMgdG8gZW50cnkgMiBpbg0KKyAg U0hUX0RZTlNZTSwgZW50cnkgMyBoZXJlIHRvIGVudHJ5IDMgaW4gU0hUX0RZ TlNZTSwgYW5kIHNvIG9uLg0KKw0KKyAgVGhpcyBzZWN0aW9uIGNvbnRhaW5z IGFuIGFycmF5IG9mIGVsZW1lbnRzIG9mIHR5cGUgRWxmVyhIYWxmKS4NCisN CisgIEVhY2ggZW50cnkgc3BlY2lmaWVzIHRoZSB2ZXJzaW9uIGRlZmluZWQg Zm9yIG9yIHJlcXVpcmVkIGJ5IHRoZQ0KKyAgY29ycmVzcG9uZGluZyBzeW1i b2wgaW4gdGhlIER5bmFtaWMgU3ltYm9sIFRhYmxlLg0KKw0KKyAgRW50cmll cyBkbyBub3QgZ2l2ZSB0aGUgdmVyc2lvbiBkaXJlY3RseSAtIGluc3RlYWQg dGhleSByZWZlciB0byB0aGUNCisgIGNvcnJlc3BvbmRpbmcgRWxmVyhWZXJu YXV4KS52bmFfb3RoZXIgb3IgRWxmVyhWZXJkZWYpLnZkX25keCBzdHJ1Y3R1 cmUrbWVtYmVyLg0KKw0KK1R3byB2YWx1ZXMgYXJlIHJlc2VydmVkOg0KKw0K KyAgVkVSX05EWF9MT0NBTCAgMCAtIFRoZSBzeW1ib2wgaXMgcHJpdmF0ZSwg YW5kIGlzIG5vdCBhdmFpbGFibGUgb3V0c2lkZSB0aGlzIG9iamVjdC4NCisg IFZFUl9ORFhfR0xPQkFMIDEgLSBUaGUgc3ltYm9sIGlzIGdsb2JhbGx5IGF2 YWlsYWJsZSAoaWUgbm90IHZlcnNpb25lZD8gRE9DVU1FTlRNRSkuDQorDQog Tm90ZSBzZWN0aW9uIGRlc2NyaXB0b3JzIChTSFRfTk9URSBleHRlbnNpb25z KQ0KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCiANCi1UaGVzZSBOb3RlIGRlc2NyaXB0b3IgdHlwZXMgYXJlIEdO VSBleHRlbnNpb25zDQorVGhlc2UgU0hUX05PVEUgZGVzY3JpcHRvciB0eXBl cyBhcmUgR05VIGV4dGVuc2lvbnMNCiBGb3VuZCBpbiB0aGUgdHlwZSBmaWVs ZCBvZiB0aGUgRUxGIG5vdGUgbGF5b3V0Lg0KIA0KK1NlY3Rpb24gbmFtZTog Ii5ub3RlIiBhcyBwZXIgc3RhbmRhcmQgU0hUX05PVEUgc2VjdGlvbnMuDQor DQorRWFjaCBub3RlIGVudHJ5IHNob3VsZCBiZSBhbGlnbmVkIHRvIDQgYnl0 ZXMgaW4gMzItYml0IG9iamVjdHMgb3INCis4IGJ5dGVzIGluIDY0LWJpdCBv YmplY3RzIChzZWUgYmVsb3cgZm9yIGV4Y2VwdGlvbnMgdG8gdGhpcykuDQor DQorQWxpZ25tZW50OiBBIG5vdGUgcGFyc2VyIHNob3VsZCB1c2UgcF9hbGln biBmcm9tIHRoZSBwcm9ncmFtIHNlY3Rpb24NCitoZWFkZXIgZm9yIG5vdGUg YWxpZ25tZW50IHJhdGhlciB0aGFuIGFzc3VtaW5nIGFsaWdubWVudCBiYXNl ZCBvbiBFTEYNCitmaWxlIGNsYXNzLg0KKw0KIE5UX0dOVV9BQklfVEFHICAg ICAgICAgMQ0KIA0KICAgVXNlIHRvIGluZGljYXRlIGtlcm5lbCB0eXBlIGFu ZCBtaW5pbXVtIGtlcm5lbCB2ZXJzaW9uOg0KICAgU2VjdGlvbiBtdXN0IGJl IG5hbWVkICIubm90ZS5BQkktdGFnIg0KIA0KKyAgQWxpZ25tZW50OiBBbHdh eXMgNC1ieXRlcywgRXZlbiBvbiA2NCBiaXQgYXJjaGl0ZWN0dXJlcy4NCisN CiAgIFRoZSBuYW1lIGZpZWxkIChuYW1lc3ovbmFtZSkgY29udGFpbnMgdGhl IHN0cmluZyAiR05VIi4NCiANCiAgIFRoZSBkZXNjc3ogZmllbGQgbXVzdCBi ZSBhdCBsZWFzdCAxNiwNCkBAIC0yNTUsNyArNDY4LDE4IEBAIE5UX0dOVV9I V0NBUCAgICAgICAgICAgMg0KIE5UX0dOVV9CVUlMRF9JRCAgICAgICAgMw0K IA0KICAgZGVzY3N6IGJ5dGVzIG9mIGJ1aWxkLWlkIGRhdGEuDQotICBUeXBp Y2FsbHkgcHJlc2VudGVkIGFzIGEgaGV4IHN0cmluZy4NCisNCisgIEFsaWdu bWVudDogQWx3YXlzIDQtYnl0ZXMsIEV2ZW4gb24gNjQgYml0IGFyY2hpdGVj dHVyZXMuDQorDQorICBUeXBpY2FsbHkgcHJlc2VudGVkIGFzIGEgaGV4IHN0 cmluZyBieSB1c2VyLWZhY2luZyB0b29scy4NCisgIFN0b3JlZCBhcyBiaW5h cnkgKGllIG5vdCBuZWNlc3NhcmlseSBwcmludGFibGUsIG5vdCBlbmNvZGVk KS4NCisNCisgIFRoZSBidWlsZC1pZCBpcyBkZXNjdHJpYmVkIGFzIGhhdmlu ZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6DQorICBJdCBpcyB1bmlxdWUg YW1vbmcgdGhlIHNldCBvZiBtZWFuaW5nZnVsIGNvbnRlbnRzIGZvciBFTEYg ZmlsZXMgYW5kDQorICBpZGVudGljYWwgd2hlbiB0aGUgb3V0cHV0IGZpbGV3 b3VsZCBvdGhlcndpc2UgaGF2ZSBiZWVuIGlkZW50aWNhbC4NCisNCisgIFRo ZSBjb21wdXRhdGlvbiBtZWNoYW5pc20gZm9yIHRoZSBidWlsZC1pZCBpcyBu b3QgZ2l2ZW4sIGFuZCBpcyBpbg0KKyAgYW55IGNhc2Ugb3BhcXVlIGFmdGVy IGNvbXBpbGUgdGltZS4NCiANCiBOVF9HTlVfR09MRF9WRVJTSU9OICAgIDQN CiANCkBAIC0yNjksNCArNDkzLDQgQEAgTlRfR05VX1BST1BFUlRZX1RZUEVf MCA1DQogICA0IGJ5dGVzLCBhIG5hdGl2ZSBpbnRlZ2VyIGdpdmluZyB0aGUg c3VidHlwZS4NCiAgIDQgYnl0ZXMsIGEgbmF0aXZlIGludGVnZXIgZ2l2aW5n IHRoZSBzaXplIG9mIHRoZSBlbnRyeQ0KIA0KLSAgU2VlIFBUX0dOVV9QUk9Q RVJUWSBhbmQvYXJjaGl0ZWN0dXJlIHNwZWNpZmljIEFCSXMgZm9yIGRldGFp bHMuDQorICBTZWUgUFRfR05VX1BST1BFUlRZIGFuZC9vciBhcmNoaXRlY3R1 cmUgc3BlY2lmaWMgQUJJcyBmb3IgZGV0YWlscy4NCi0tIA0KMi4yMC4xDQoN Cg== --8323329-598017517-1599067792=:31454--