Re: [PATCH RFC v4 02/15] ACPI: processor: Register all CPUs from acpi_processor_get_info()

"Rafael J. Wysocki" <[email protected]> Wed, 21 Feb 2024 13:04:43 +0100
Newsgroups gmane.linux.ports.riscv,gmane.linux.power-management.general,gmane.linux.acpi.devel,gmane.linux.kernel.cross-arch,gmane.linux.kernel,gmane.linux.ports.arm.kernel,gmane.linux.documentation,gmane.linux.ports.ia64,gmane.linux.ports.parisc
Message-ID <CAJZ5v0hu32UCLPO6txptfn1DxCNqdYc+Ls-yNa09LdzhroyddQ@mail.gmail.com>
T24gVHVlLCBGZWIgMjAsIDIwMjQgYXQgODo1OeKAr1BNIFJhZmFlbCBKLiBXeXNvY2tpIDxyYWZh
ZWxAa2VybmVsLm9yZz4gd3JvdGU6Cj4KPiBPbiBUdWUsIEZlYiAyMCwgMjAyNCBhdCA1OjI04oCv
UE0gSm9uYXRoYW4gQ2FtZXJvbgo+IDxKb25hdGhhbi5DYW1lcm9uQGh1YXdlaS5jb20+IHdyb3Rl
Ogo+ID4KPiA+IE9uIFR1ZSwgMjAgRmViIDIwMjQgMTU6MTM6NTggKzAwMDAKPiA+ICJSdXNzZWxs
IEtpbmcgKE9yYWNsZSkiIDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4KPiA+ID4g
T24gVHVlLCBGZWIgMjAsIDIwMjQgYXQgMTE6Mjc6MTVBTSArMDAwMCwgUnVzc2VsbCBLaW5nIChP
cmFjbGUpIHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgRmViIDE1LCAyMDI0IGF0IDA4OjIyOjI5UE0g
KzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOgo+ID4gPiA+ID4gT24gV2VkLCBKYW4gMzEs
IDIwMjQgYXQgNTo1MOKAr1BNIFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcu
dWs+IHdyb3RlOgo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlfcHJv
Y2Vzc29yLmMgYi9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiA+ID4gPiBpbmRl
eCBjZjdjMWNjYTY5ZGQuLmE2OGM0NzVjZGVhNSAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJp
dmVycy9hY3BpL2FjcGlfcHJvY2Vzc29yLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9hY3Bp
L2FjcGlfcHJvY2Vzc29yLmMKPiA+ID4gPiA+ID4gQEAgLTMxNCw2ICszMTQsMTggQEAgc3RhdGlj
IGludCBhY3BpX3Byb2Nlc3Nvcl9nZXRfaW5mbyhzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkK
PiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY3B1ZnJlcV9hZGRfZGV2aWNlKCJh
Y3BpLWNwdWZyZXEiKTsKPiA+ID4gPiA+ID4gICAgICAgICB9Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g
PiA+ICsgICAgICAgLyoKPiA+ID4gPiA+ID4gKyAgICAgICAgKiBSZWdpc3RlciBDUFVzIHRoYXQg
YXJlIHByZXNlbnQuIGdldF9jcHVfZGV2aWNlKCkgaXMgdXNlZCB0byBza2lwCj4gPiA+ID4gPiA+
ICsgICAgICAgICogZHVwbGljYXRlIENQVSBkZXNjcmlwdGlvbnMgZnJvbSBmaXJtd2FyZS4KPiA+
ID4gPiA+ID4gKyAgICAgICAgKi8KPiA+ID4gPiA+ID4gKyAgICAgICBpZiAoIWludmFsaWRfbG9n
aWNhbF9jcHVpZChwci0+aWQpICYmIGNwdV9wcmVzZW50KHByLT5pZCkgJiYKPiA+ID4gPiA+ID4g
KyAgICAgICAgICAgIWdldF9jcHVfZGV2aWNlKHByLT5pZCkpIHsKPiA+ID4gPiA+ID4gKyAgICAg
ICAgICAgICAgIGludCByZXQgPSBhcmNoX3JlZ2lzdGVyX2NwdShwci0+aWQpOwo+ID4gPiA+ID4g
PiArCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAocmV0KQo+ID4gPiA+ID4gPiArICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+ID4gPiArICAgICAgIH0KPiA+
ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgICAgICAgIC8qCj4gPiA+ID4gPiA+ICAgICAgICAgICog
IEV4dHJhIFByb2Nlc3NvciBvYmplY3RzIG1heSBiZSBlbnVtZXJhdGVkIG9uIE1QIHN5c3RlbXMg
d2l0aAo+ID4gPiA+ID4gPiAgICAgICAgICAqICBsZXNzIHRoYW4gdGhlIG1heCAjIG9mIENQVXMu
IFRoZXkgc2hvdWxkIGJlIGlnbm9yZWQgX2lmZgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoaXMgaXMg
aW50ZXJlc3RpbmcsIGJlY2F1c2UgcmlnaHQgYmVsb3cgdGhlcmUgaXMgdGhlIGZvbGxvd2luZyBj
b2RlOgo+ID4gPiA+ID4KPiA+ID4gPiA+ICAgICBpZiAoaW52YWxpZF9sb2dpY2FsX2NwdWlkKHBy
LT5pZCkgfHwgIWNwdV9wcmVzZW50KHByLT5pZCkpIHsKPiA+ID4gPiA+ICAgICAgICAgaW50IHJl
dCA9IGFjcGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0KHByKTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAg
ICAgICAgIGlmIChyZXQpCj4gPiA+ID4gPiAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiA+
ID4gICAgIH0KPiA+ID4gPiA+Cj4gPiA+ID4gPiBhbmQgYWNwaV9wcm9jZXNzb3JfaG90YWRkX2lu
aXQoKSBlc3NlbnRpYWxseSBjYWxscyBhcmNoX3JlZ2lzdGVyX2NwdSgpCj4gPiA+ID4gPiB3aXRo
IHNvbWUgZXh0cmEgdGhpbmdzIGFyb3VuZCBpdCAobW9yZSBhYm91dCB0aGF0IGJlbG93KS4KPiA+
ID4gPiA+Cj4gPiA+ID4gPiBJIGRvIHJlYWxpemUgdGhhdCBhY3BpX3Byb2Nlc3Nvcl9ob3RhZGRf
aW5pdCgpIGlzIGRlZmluZWQgdW5kZXIKPiA+ID4gPiA+IENPTkZJR19BQ1BJX0hPVFBMVUdfQ1BV
LCBzbyBmb3IgdGhlIHNha2Ugb2YgdGhlIGFyZ3VtZW50IGxldCdzCj4gPiA+ID4gPiBjb25zaWRl
ciBhbiBhcmNoaXRlY3R1cmUgd2hlcmUgQ09ORklHX0FDUElfSE9UUExVR19DUFUgaXMgc2V0Lgo+
ID4gPiA+ID4KPiA+ID4gPiA+IFNvIHdoeSBhcmUgdGhlIHR3byBjb25kaXRpb25hbHMgdGhhdCBh
bG1vc3QgY29udHJhZGljdCBlYWNoIG90aGVyIGJvdGgKPiA+ID4gPiA+IG5lZWRlZD8gIEl0IGxv
b2tzIGxpa2UgdGhlIG5ldyBjb2RlIGNvdWxkIGJlIGNvbWJpbmVkIHdpdGgKPiA+ID4gPiA+IGFj
cGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0KCkgdG8gZG8gdGhlIHJpZ2h0IHRoaW5nIGluIGFsbCBj
YXNlcy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBOb3csIGFjcGlfcHJvY2Vzc29yX2hvdGFkZF9pbml0
KCkgZG9lcyBzb21lIGV4dHJhIHRoaW5ncyB0aGF0IGxvb2sKPiA+ID4gPiA+IGxpa2UgdGhleSBz
aG91bGQgYmUgZG9uZSBieSB0aGUgbmV3IGNvZGUgdG9vLgo+ID4gPiA+ID4KPiA+ID4gPiA+IDEu
IEl0IGNoZWNrcyBpbnZhbGlkX3BoeXNfY3B1aWQoKSB3aGljaCBhcHBlYXJzIHRvIGJlIGEgZ29v
ZCBpZGVhIHRvIG1lLgo+ID4gPiA+ID4KPiA+ID4gPiA+IDIuIEl0IHVzZXMgbG9ja2luZyBhcm91
bmQgYXJjaF9yZWdpc3Rlcl9jcHUoKSB3aGljaCBkb2Vzbid0IHNlZW0KPiA+ID4gPiA+IHVucmVh
c29uYWJsZSBlaXRoZXIuCj4gPiA+ID4gPgo+ID4gPiA+ID4gMy4gSXQgY2FsbHMgYWNwaV9tYXBf
Y3B1KCkgYW5kIEknbSBub3Qgc3VyZSB3aHkgdGhpcyBpcyBub3QgZG9uZSBieQo+ID4gPiA+ID4g
dGhlIG5ldyBjb2RlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoZSBvbmx5IHRoaW5nIHRoYXQgY2Fu
IGJlIGRyb3BwZWQgZnJvbSBpdCBpcyB0aGUgX1NUQSBjaGVjayBBRkFJQ1MsCj4gPiA+ID4gPiBi
ZWNhdXNlIGFjcGlfcHJvY2Vzc29yX2FkZCgpIHdvbid0IGV2ZW4gYmUgY2FsbGVkIGlmIHRoZSBD
UFUgaXMgbm90Cj4gPiA+ID4gPiBwcmVzZW50IChhbmQgbm90IGVuYWJsZWQgYWZ0ZXIgdGhlIGZp
cnN0IHBhdGNoKS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBTbyB3aHkgZG9lcyB0aGUgY29kZSBub3Qg
ZG8gMSAtIDMgYWJvdmU/Cj4gPiA+ID4KPiA+ID4gPiBIb25lc3RseSwgSSdtIG91dCBvZiBteSBk
ZXB0aCB3aXRoIHRoaXMgYW5kIGNhbid0IGFuc3dlciB5b3VyCj4gPiA+ID4gcXVlc3Rpb25zIC0g
YW5kIEkgcmVhbGx5IGRvbid0IHdhbnQgdG8gdHJ5IGZpZGRsaW5nIHdpdGggdGhpcyBjb2RlCj4g
PiA+ID4gYmVjYXVzZSBpdCdzIGp1c3QgdG9vIGlja3kgKGV2ZW4gaW4gaXRzIGN1cnJlbnQgZm9y
bSBpbiBtYWlubGluZSkKPiA+ID4gPiB0byBiZSB1bmRlcnN0YW5kYWJsZSB0byBhbnlvbmUgd2hv
IGhhc24ndCBnYWluZWQgYSBkZXRhaWxlZCBrbm93bGVkZ2UKPiA+ID4gPiBvZiB0aGlzIGNvZGUu
Cj4gPiA+ID4KPiA+ID4gPiBJdCdzIGdvaW5nIHRvIHJlcXVpcmUgYSBsb3Qgb2YgYW5hbHlzaXMg
LSBob3cgYWNwaV9tYXBfY3B1aWQoKSBiZWhhdmVzCj4gPiA+ID4gaW4gYWxsIGNpcmN1bXN0YW5j
ZXMsIHdoYXQgdGhpcyBtZWFucyBmb3IgaW52YWxpZF9sb2dpY2FsX2NwdWlkKCkgYW5kCj4gPiA+
ID4gaW52YWxpZF9waHlzX2NwdWlkKCksIHdoYXQgcGF0aHMgd2lsbCBiZSB0YWtlbiBpbiBlYWNo
IGNhc2UuIFRoaXMgY29kZQo+ID4gPiA+IGlzIGFscmVhZHkganVzdCB0b28gaGFpcnkgZm9yIHNv
bWVvbmUgd2hvIGlzbid0IGFuIGV4cGVyaWVuY2VkIEFDUEkKPiA+ID4gPiBoYWNrZXIgdG8gYmUg
YWJsZSB0byBmb2xsb3cgYW5kIEkgZG9uJ3Qgc2VlIGFuIG9idmlvdXMgd2F5IHRvIG1ha2UgaXQK
PiA+ID4gPiBtb3JlIHJlYWRhYmxlLgo+ID4gPiA+Cj4gPiA+ID4gSmFtZXMnIGFkZGl0aW9ucyBt
YWtlIGl0IGV2ZW4gbW9yZSBjb21wbGV4IGFuZCBsZXNzIHJlYWRhYmxlLgo+ID4gPgo+ID4gPiBB
cyBhbiBpbGx1c3RyYXRpb24gb2YgdGhlIHByb2JsZW1zIEknbSBoYXZpbmcgaGVyZSwgSSB3YXMg
anVzdCB3cml0aW5nCj4gPiA+IGEgcmVwbHkgdG8gdGhpcyB3aXRoIGEgc3VnZ2VzdGlvbiBvZiB0
cmFuc2Zvcm1pbmcgdGhpcyBjb2RlIHVsdGltYXRlbHkKPiA+ID4gdG86Cj4gPiA+Cj4gPiA+ICAg
ICAgIGlmICghZ2V0X2NwdV9kZXZpY2UocHItPmlkKSkgewo+ID4gPiAgICAgICAgICAgICAgIGlu
dCByZXQ7Cj4gPiA+Cj4gPiA+ICAgICAgICAgICAgICAgaWYgKCFpbnZhbGlkX2xvZ2ljYWxfY3B1
aWQocHItPmlkKSAmJiBjcHVfcHJlc2VudChwci0+aWQpKQo+ID4gPiAgICAgICAgICAgICAgICAg
ICAgICAgcmV0ID0gYWNwaV9wcm9jZXNzb3JfbWFrZV9lbmFibGVkKHByKTsKPiA+ID4gICAgICAg
ICAgICAgICBlbHNlCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBhY3BpX3Byb2Nl
c3Nvcl9tYWtlX3ByZXNlbnQocHIpOwo+ID4gPgo+ID4gPiAgICAgICAgICAgICAgIGlmIChyZXQp
Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiAgICAgICB9Cj4g
PiA+Cj4gPiA+IChhY3BpX3Byb2Nlc3Nvcl9tYWtlX3ByZXNlbnQoKSB3b3VsZCBiZSBhY3BpX3By
b2Nlc3Nvcl9ob3RhZGRfaW5pdCgpCj4gPiA+IGFuZCBhY3BpX3Byb2Nlc3Nvcl9tYWtlX2VuYWJs
ZWQoKSB3b3VsZCBiZSBhcmNoX3JlZ2lzdGVyX2NwdSgpIGF0IHRoaXMKPiA+ID4gcG9pbnQuKQo+
ID4gPgo+ID4gPiBUaGVuIEkgcmVhbGlzZWQgdGhhdCdzIGEgYmFkIGlkZWEgLSBiZWNhdXNlIHdl
IHJlYWxseSBuZWVkIHRvIGNoZWNrCj4gPiA+IHRoYXQgcHItPmlkIGlzIHZhbGlkIGJlZm9yZSBj
YWxsaW5nIGdldF9jcHVfZGV2aWNlKCkgb24gaXQsIHNvIHRoaXMKPiA+ID4gd29uJ3Qgd29yay4g
VGhhdCBsZWF2ZXMgdXMgd2l0aDoKPiA+ID4KPiA+ID4gICAgICAgaW50IHJldDsKPiA+ID4KPiA+
ID4gICAgICAgaWYgKGludmFsaWRfbG9naWNhbF9jcHVpZChwci0+aWQpIHx8ICFjcHVfcHJlc2Vu
dChwci0+aWQpKSB7Cj4gPiA+ICAgICAgICAgICAgICAgLyogeDg2IGV0LmFsLiBwYXRoICovCj4g
PiA+ICAgICAgICAgICAgICAgcmV0ID0gYWNwaV9wcm9jZXNzb3JfbWFrZV9wcmVzZW50KHByKTsK
PiA+ID4gICAgICAgfSBlbHNlIGlmICghZ2V0X2NwdV9kZXZpY2UocHItPmlkKSkgewo+ID4gPiAg
ICAgICAgICAgICAgIC8qIEFybTY0IHBhdGggKi8KPiA+ID4gICAgICAgICAgICAgICByZXQgPSBh
Y3BpX3Byb2Nlc3Nvcl9tYWtlX2VuYWJsZWQocHIpOwo+ID4gPiAgICAgICB9IGVsc2Ugewo+ID4g
PiAgICAgICAgICAgICAgIHJldCA9IDA7Cj4gPiA+ICAgICAgIH0KPiA+ID4KPiA+ID4gICAgICAg
aWYgKHJldCkKPiA+ID4gICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPgo+ID4gPiBOb3cs
IHRoZSBuZXh0IHRyYW5zZm9ybWF0aW9uIHdvdWxkIGJlIHRvIG1vdmUgIWdldF9jcHVfZGV2aWNl
KHByLT5pZCkKPiA+ID4gaW50byBhY3BpX3Byb2Nlc3Nvcl9tYWtlX2VuYWJsZWQoKSB3aGljaCB3
b3VsZCBlbGltaW5hdGUgb25lIG9mIHRob3NlCj4gPiA+IGlmKCkgbGVncy4KPiA+ID4KPiA+ID4g
Tm93LCBpZiB3ZSB3YW50IHRvIHNvbWVob3cgbWFrZSB0aGUgY2FsbCB0byBhcmNoX3JlZ3N0ZXJf
Y3B1KCkgY29tbW9uCj4gPiA+IGluIHRoZXNlIHR3byBwYXRocywgdGhlIG5leHQgcXVlc3Rpb24g
aXMgd2hhdCBhcmUgdGhlIF9wcmVjaXNlXwo+ID4gPiBzZW1hbnRpY3Mgb2YgYWNwaV9tYXBfY3B1
KCksIHBhcnRpY3VsYXJseSB3aXRoIHJlc3BlY3QgdG8gaXQKPiA+ID4gbW9kaWZ5aW5nIHByLT5p
ZC4gSXMgaXQgZ3VhcmFudGVlZCB0byBhbHdheXMgZ2l2ZSB0aGUgc2FtZSByZXN1bHQKPiA+ID4g
Zm9yIHRoZSBzYW1lIHByb2Nlc3NvciBkZXNjcmliZWQgaW4gQUNQST8gV2hhdCBhY3BpX21hcF9j
cHUoKSBhbnl3YXksCj4gPiA+IEkgY2FuIGZpbmQgbm8gZG9jdW1lbnRhdGlvbiBmb3IgaXQuCj4g
PiA+Cj4gPiA+IFRoZW4gdGhlcmUncyB0aGUgcXVlc3Rpb24gd2hldGhlciBjYWxsaW5nIGFjcGlf
dW5tYXBfY3B1KCkgc2hvdWxkIGJlCj4gPiA+IGRvbmUgb24gdGhlIGZhaWx1cmUgcGF0aCBpZiBh
cmNoX3JlZ2lzdGVyX2NwdSgpIGZhaWxzLCB3aGljaCBpcyBkb25lCj4gPiA+IGZvciB0aGUgeDg2
IHBhdGggYnV0IG5vdCB0aGUgQXJtNjQgcGF0aC4gU2hvdWxkIGl0IGJlIGRvbmUgZm9yIHRoZQo+
ID4gPiBBcm02NCBwYXRoPyBJJ3ZlIG5vIGlkZWEsIGJ1dCBhcyBBcm02NCBkb2Vzbid0IGltcGxl
bWVudCBlaXRoZXIgb2YKPiA+ID4gdGhlc2UgdHdvIGZ1bmN0aW9ucywgSSBndWVzcyB0aGV5IGNv
dWxkIGJlIHN0dWJiZWQgb3V0IGFuZCB0aHVzIGJlCj4gPiA+IG5vLW9wcyAtIGJ1dCB0aGVuIHdl
IG9wZW4gYSBob2xlIHdoZXJlIGlmIHByLT5pZCBpcyBpbnZhbGlkLCB3ZQo+ID4gPiBlbmQgdXAg
cGFzc2luZyB0aGF0IGludmFsaWQgdmFsdWUgdG8gYXJjaF9yZWdpc3Rlcl9jcHUoKSB3aGljaCBJ
J20KPiA+ID4gcXVpdGUgc3VyZSB3aWxsIGV4cGxvZGUgd2l0aCBhIG5lZ2F0aXZlIENQVSBudW1i
ZXIuCj4gPiA+Cj4gPiA+IFNvLCB0byBteSBtaW5kLCB3aGF0IHlvdSdyZSBlZmZlY3RpdmVseSBh
c2tpbmcgZm9yIGlzIGEgdG90YWwgcmV3cml0ZQo+ID4gPiBvZiBhbGwgdGhlIGNvZGUgaW4gYW5k
IGNhbGxlZCBieSBhY3BpX3Byb2Nlc3Nvcl9nZXRfaW5mbygpLi4uIGFuZCB0aGF0Cj4gPiA+IGlz
IG5vdCBzb21ldGhpbmcgSSBhbSB3aWxsaW5nIHRvIGRvIChiZWNhdXNlIGl0J3MgdG9vIGZhciBv
dXRzaWRlIG9mCj4gPiA+IG15IGtub3dsZWRnZSBhcmVhLikKPiA+ID4KPiA+ID4gQXMgSSBzYWlk
IGluIG15IHJlcGx5IHRvIHBhdGNoIDEsIEkgdGhpbmsgeW91ciBjb21tZW50cyBvbiBwYXRjaCAy
Cj4gPiA+IG1ha2UgQXJtNjQgdmNwdSBob3RwbHVnIHVuYWNoaWV2YWJsZSBpbiBhIHJlYXNvbmFi
bGUgdGltZSBmcmFtZSwgYW5kCj4gPiA+IGNlcnRhaW5seSBvdXRzaWRlIHRoZSBib3VuZHMgb2Yg
d2hhdCBJIGNhbiBkbyB0byBwcm9ncmVzcyB0aGlzLgo+ID4gPgo+ID4gPiBTbywgYXQgdGhpcyBw
b2ludCBJJ20gZ29pbmcgdG8gc3RhbmQgZG93biBmcm9tIGZ1cnRoZXIgcGFydGljaXBhdGlvbgo+
ID4gPiB3aXRoIHRoaXMgcGF0Y2ggc2V0IGFzIEkgYmVsaWV2ZSBJJ3ZlIHJlYWNoZWQgdGhlIGxp
bWl0IG9mIHdoYXQgSSBjYW4KPiA+ID4gZG8gdG8gcHJvZ3Jlc3MgaXQuCj4gPiA+Cj4gPgo+ID4g
VGhhbmtzIGZvciB5b3VyIGhhcmQgd29yayBvbiB0aGlzIFJ1c3NlbGwgLSB3ZSBoYXZlIG1vdmVk
IGZvcndhcmRzLgo+ID4KPiA+IFNob3J0IG9mIGFueW9uZSBlbHNlIHN0ZXBwaW5nIHVwIEknbGwg
cGljayB0aGlzIHVwIHdpdGgKPiA+IHRoZSBoZWxwIG9mIHNvbWUgbXkgY29sbGVhZ3Vlcy4gQXMg
c3VjaCBJJ20ga2VlbiBvbiBnZXR0aW5nIHBhdGNoCj4gPiAxIHVwc3RyZWFtIEFTQVAgc28gdGhh
dCB3ZSBjYW4gZXhjbHVkZSB0aGUgbmVlZCBmb3Igc29tZSBvZiB0aGUKPiA+IG90aGVyIHdvcmth
cm91bmRzIGZyb20gZWFybGllciB2ZXJzaW9ucyBvZiB0aGlzIHNlcmllcyAodGhlIG9uZXMKPiA+
IGRyb3BwZWQgYmVmb3JlIG5vdykuCj4KPiBBcHBsaWVkIChhcyA2LjkgbWF0ZXJpYWwpLgoKQW5k
IEknbSBnb2luZyB0byBkcm9wIGl0LCBiZWNhdXNlIGl0IGlzIG5vdCBjb3JyZWN0LgoKVGhlIHBy
b2JsZW0gaXMgdGhhdCBpdCBpcyBnb2luZyB0byBhZmZlY3Qgbm9uLXByb2Nlc3NvciBkZXZpY2Vz
LCBidXQKbGV0IG1lIGNvbW1lbnQgb24gdGhhdCBwYXRjaCBpdHNlbGYuCgpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxp
c3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk
Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==