[#100689] [Ruby master Feature#17303] Make webrick to bundled gems or remove from stdlib — hsbt@...

Issue #17303 has been reported by hsbt (Hiroshi SHIBATA).

11 messages 2020/11/02

[#100715] [Ruby master Bug#17306] TestGCCompact#test_ast_compacts test failures — v.ondruch@...

Issue #17306 has been reported by vo.x (Vit Ondruch).

11 messages 2020/11/05

[#100720] [Ruby master Feature#17307] A way to mark C extensions as thread-safe, Ractor-safe, or unsafe — eregontp@...

Issue #17307 has been reported by Eregon (Benoit Daloze).

22 messages 2020/11/05

[#100744] [Ruby master Bug#17310] Closed ractors should die — marcandre-ruby-core@...

Issue #17310 has been reported by marcandre (Marc-Andre Lafortune).

12 messages 2020/11/08

[#100753] [Ruby master Feature#17312] New methods in Enumerable and Enumerator::Lazy: flatten, product, compact — zverok.offline@...

Issue #17312 has been reported by zverok (Victor Shepelev).

11 messages 2020/11/09

[#100763] [Ruby master Feature#17314] Provide a way to declare visibility of attributes defined by attr* methods in a single expression — radek.bulat@...

SXNzdWUgIzE3MzE0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHJhZGFyZWsgKFJhZG9zxYJhdyBCdcWC

17 messages 2020/11/10

[#100777] [Ruby master Feature#17316] On memoization — sawadatsuyoshi@...

Issue #17316 has been reported by sawa (Tsuyoshi Sawada).

18 messages 2020/11/11

[#100788] [Ruby master Misc#17319] Rename Random::urandom to os_random and document random data sources — zofrex@...

Issue #17319 has been reported by zofrex (James Sanderson).

11 messages 2020/11/11

[#100807] [Ruby master Feature#17322] Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator — ko1@...

Issue #17322 has been reported by ko1 (Koichi Sasada).

14 messages 2020/11/12

[#100816] [Ruby master Feature#17323] Ractor::LVar to provide ractor-local storage — ko1@...

Issue #17323 has been reported by ko1 (Koichi Sasada).

19 messages 2020/11/12

[#100849] [Ruby master Feature#17325] Adds Fiber#cancel, which forces a Fiber to break/return — nicholas.evans@...

Issue #17325 has been reported by nevans (Nicholas Evans).

17 messages 2020/11/14

[#100852] [Ruby master Feature#17326] Add Kernel#must! to the standard library — zimmerman.jake@...

SXNzdWUgIzE3MzI2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGpleiAoSmFrZSBaaW1tZXJtYW4pLg0K

24 messages 2020/11/14

[#100858] [Ruby master Feature#17327] The Queue constructor should take an initial set of items — chris@...

Issue #17327 has been reported by chrisseaton (Chris Seaton).

10 messages 2020/11/15

[#100897] [Ruby master Feature#17330] Object#non — zverok.offline@...

Issue #17330 has been reported by zverok (Victor Shepelev).

21 messages 2020/11/17

[#100925] [Ruby master Feature#17331] Let Fiber#raise work with transferring fibers — nicholas.evans@...

Issue #17331 has been reported by nevans (Nicholas Evans).

12 messages 2020/11/18

[#100930] [Ruby master Feature#17333] Enumerable#many? — masafumi.o1988@...

Issue #17333 has been reported by okuramasafumi (Masafumi OKURA).

10 messages 2020/11/18

[#100971] [Ruby master Bug#17337] Don't embed Ruby build time configuration into Ruby — v.ondruch@...

Issue #17337 has been reported by vo.x (Vit Ondruch).

16 messages 2020/11/20

[#100999] [Ruby master Feature#17339] Semantic grouping on BigDecimal#to_s — co.chuma@...

Issue #17339 has been reported by chumaltd (Takahiro Chuma).

9 messages 2020/11/21

[#101071] [Ruby master Feature#17342] Hash#fetch_set — hunter_spawn@...

Issue #17342 has been reported by MaxLap (Maxime Lapointe).

26 messages 2020/11/25

[#101093] [Ruby master Misc#17346] DevelopersMeeting20201210Japan — mame@...

Issue #17346 has been reported by mame (Yusuke Endoh).

17 messages 2020/11/26

[#101141] [Ruby master Bug#17354] Module#const_source_location is misleading for constants awaiting autoload — tom@...

SXNzdWUgIzE3MzU0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHRvbXN0dWFydCAoVG9tIFN0dWFydCku

21 messages 2020/11/29

[#101143] [Ruby master Feature#17355] Or-patterns (pattern matching like Foo(x) | Bar(x)) — fg@...

Issue #17355 has been reported by decuplet (Nikita Shilnikov).

8 messages 2020/11/29

[#101153] [Ruby master Feature#17356] Alignment of memory allocated through Fiddle struct's malloc — andrea.ribuoli@...

Issue #17356 has been reported by AndreaRibuoli (Andrea Ribuoli).

8 messages 2020/11/30

[ruby-core:100828] [Ruby master Feature#17100] Ractor: a proposal for a new concurrent abstraction without thread-safety issues

From: ko1@...
Date: 2020-11-13 08:15:14 UTC
List: ruby-core #100828
SXNzdWUgIzE3MTAwIGhhcyBiZWVuIHVwZGF0ZWQgYnkga28xIChLb2ljaGkgU2FzYWRhKS4NCg0K
DQojIGBSYWN0b3Ijc2VuZGAgbmFtaW5nIGlzc3VlDQoNClJlY2VudCB3ZWVrcyBJJ20gdGhpbmtp
bmcgYWJvdXQgdGhlIG5hbWUgb2YgYFJhY3RvciNzZW5kYC4NCk1hdHogYW5kIEkgZGlzY3Vzc2Vk
IHBvc3NpYmlsaXRpZXMgbG9uZyB0aW1lICh0aGlzIGRpc2N1c3Npb25zIGFuZCBjb25zaWRlcmF0
aW9ucyBzdG9wIG15IGRldmVsb3BtZW50cyksIGFuZCB3ZSBhZ3JlZSB0byByZW1haW4gdGhlIG5h
bWUgYFJhY3RvciNzZW5kYCBhcyBhbiAqZXhwZXJpbWVudGFsKiBmZWF0dXJlLg0KDQojIyBNYXR6
IGNvbmZpcm1lZCB0aGluZ3MgYWJvdXQgYEtlcm5lbCNzZW5kYA0KDQoqIGBCYXNpY1NvY2tldCNz
ZW5kYCBhbmQgYFVEUFNvY2tldCNzZW5kYCB3aWxsIG5vdCBiZSBkZXByZWNhdGVkLiBVTklYIGlu
dGVyZmFjZSBzaG91bGQgYmUgcmVzcGVjdGVkLiAoVGhpcyBpcyBNYXR6J3MgZGVjaXNpb24pDQoN
CiogV2UgY2FuIHVzZSBgS2VybmVsI3NlbmRgICpvbmx5IGlmKiB3ZSBrbm93IHRoZSByZWNlaXZl
ciBkb2Vzbid0IG92ZXJyaWRlIHRoZSBgS2VybmVsI3NlbmRgIG1ldGhvZC4NCiAgKiBUaGUgZG9j
dW1lbnQgaGFkIGltcGxpZXMgdGhlIHBvc3NpYmlsaXR5IG9mIG92ZXJyaWRpbmcgb2YgInNlbmQi
OiAiWW91IGNhbiB1c2UgYF9fc2VuZF9fYCBpZiB0aGUgbmFtZSBgc2VuZGAgY2xhc2hlcyB3aXRo
IGFuIGV4aXN0aW5nIG1ldGhvZCBpbiBfb2JqXy4iIGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1
YnkvYmxvYi9ydWJ5XzJfNy92bV9ldmFsLmMjTDExNzENCiAgKiBDdXJyZW50IGRvY3VtZW50IHBv
aW50cyBvdXQgY2xlYXJlcjogImBfX3NlbmRfX2AgaXMgc2FmZXIgdGhhbiBgc2VuZGAgd2hlbiBf
b2JqXyBoYXMgdGhlIHNhbWUgbWV0aG9kIG5hbWUgbGlrZSBgU29ja2V0YC4iIGh0dHBzOi8vZ2l0
aHViLmNvbS9ydWJ5L3J1YnkvYmxvYi9tYXN0ZXIvdm1fZXZhbC5jI0wxMDkyDQogICogSmFwYW5l
c2UgZG9jdW1lbnQgd3JpdGUgaXQgZXhwbGljaXRseTogIlRoZXJlIGlzIGFsc28gYW4gYWxpYXMg
YF9fc2VuZF9fYCBpbiBjYXNlIGBfX3NlbmRfX2AgaXMgcmVkZWZpbmVkLCBhbmQgbGlicmFyaWVz
IHNob3VsZCB1c2UgaXQuIiB0cmFuc2xhdGVkIGZyb20g44CMYHNlbmRgIOOBjOWGjeWumue+qeOB
leOCjOOBn+WgtOWQiOOBq+WCmeOBiOOBpuWIpeWQjSBgX19zZW5kX19gIOOCgiDnlKjmhI/jgZXj
gozjgabjgYrjgorjgIHjg6njgqTjg5bjg6njg6rjgafjga/jgZPjgaHjgonjgpLkvb/jgYbjgbnj
gY3jgafjgZnjgI1odHRwczovL2RvY3MucnVieS1sYW5nLm9yZy9qYS8xLjguNy9tZXRob2QvT2Jq
ZWN0L2kvc2VuZC5odG1sICgqMSkNCg0KKiBJZiB5b3UgZG9uJ3Qga25vdyB0aGUgcmVjZWl2ZXIn
cyBjbGFzcywgeW91IG5lZWQgdG8gdXNlIGBfX3NlbmRfX2AgbWV0aG9kIGluc3RlYWQgb2YgYEtl
cm5lbCNzZW5kYCB0byBkaXNwYXRjaCB0aGUgbWV0aG9kLg0KICAqIGBTb2NrZXRgIG9iamVjdHMg
aGFzIGBzZW5kYCBtZXRob2QgYXMgZGVzY3JpYmVkIGFib3ZlLg0KICAqIEEgcmFpbHMgYXBwIGNy
ZWF0ZWQgYnkgYHJhaWxzIG5ld2AgaGFzIDMgY2xhc3NlcyB3aGljaCBoYXMgYHNlbmRgIG90aGVy
IHRoYW4gYEtlcm5lbCNzZW5kYC4NCiAgICAgKiBgVURQU29ja2V0I3NlbmQoKilgDQogICAgICog
YEJhc2ljU29ja2V0I3NlbmQoKilgDQogICAgICogYENvbmN1cnJlbnQ6OkFnZW50I3NlbmQoKmFy
Z3MsICZhY3Rpb24pYCAoaXQgaXMgc2ltaWxhciB0byBSYWN0b3IpDQoNCiogTWF0eiBhZ3JlZWQg
dGhhdCBgX19zZW5kX19gIGlzIHVnbHkgKCoyKSwgc28gaGUgaXMgdGhpbmtpbmcgYWJvdXQgbmV3
IG1ldGhvZCBkaXNwYXRjaCBvcGVyYXRvciB3aGljaCBjYW4gcmVwbGFjZSB3aXRoIGBfX3NlbmRf
X2AuDQoNCiogT3ZlcnJpZGluZyBgT2JqZWN0I3NlbmRgIHZpb2xhdGVzIExpc2tvdidzIHN1YnN0
aXR1dGlvbiBwcmluY2lwbGUuIEhvd2V2ZXIsIHNvbWV0aW1lcyBSdWJ5IHZpb2xhdGVzIHRoaXMg
cHJpbmNpcGxlLg0KICAqIGBzZW5kYCBoYXMgYWxyZWFkeSBvdmVycmlkZGVuLg0KICAqIGBpbml0
aWFsaXplYCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIGBPYmplY3QjaW5pdGlhbGl6ZWAuDQogICog
dGhlcmUgYXJlIHNvbWUgYGxvYWRgIG1ldGhvZHMuDQoNCmAoKjEpYCBUaGlzIGlzIGFuIG92ZXJz
aW1wbGlmaWNhdGlvbiwgeW91IGNhbiB1c2UgYHNlbmRgIGlmIHlvdSBrbm93IHRoZSByZWNlaXZl
cnMuDQpgKCoyKWAgTVkgT1BJTklPTiAobm90IGEgZmFjdCk6IEJUVyBJIGRvbid0IHRoaW5rIGBf
X3NlbmRfX2AgaXMgdWdseSAoYmVjYXVzZSBJJ20gYSBDIHByb2dyYW1tZXI/KS4gSXQgaXMgY2xl
YXIgdGhhdCBzb21ldGhpbmcgc3BlY2lhbCAobWV0YS1wcm9ncmFtbWluZykgYW5kIGl0IGluY3Jl
YXNlcyB0aGUgcmVhZGFiaWxpdHkgZm9yIG1lLg0KDQojIyBDb25zaWRlcmF0aW9ucw0KDQpSdWJ5
IHByZWZlcnMgZHVjay10eXBpbmcgYW5kIGl0IGlzIGZyaWVuZGx5IHRoYXQgc2FtZSBtZXRob2Qg
bmFtZSBzaG91bGQgYmVoYXZlIHNhbWUgZnVuY3Rpb25hbGl0eSAobWF5YmUgcGVvcGxlIHNheWlu
ZyAiTGlza292J3Mgc3Vic3RpdHV0aW9uIHByaW5jaXBsZSIgd2FudCB0byBhcmd1ZSBhYm91dCBp
dCkuIElmIGAjd3JpdGVgIG1ldGhvZCBvbmx5IHJlYWRzIHNvbWV0aGluZywgaXQgaXMgc3VycHJp
c2luZy4gSSBiZWxpZXZlIHRoZSBwcm9ibGVtIG9mIHRoZSBuYW1lICJzZW5kIiBpcyB0aGlzIG9u
ZSBpc3N1ZS4NCg0KSWYgYSByZWFkZXIgZmluZHMgdGhlIGNvZGUgYHIxLnNlbmQobWVzc2FnZSlg
IGFuZCBpdCB0YWtlcyBzb21lIHNlY29uZHMgdG8gdW5kZXJzdGFuZCB0aGF0IGl0IGlzIGVpdGhl
ciBgUmFjdG9yI3NlbmRgIG9yIGBLZXJuZWwjc2VuZGAsIGl0J3MgYSBwcm9ibGVtIHRvIGNvbnNp
ZGVyLiBGb3IgZXhhbXBsZSwgSSBmb3VuZCB0aGF0IGByYWNvdHIuc2VuZChvYmopYCBpbiBgbWV0
aG9kX21pc3NpbmdgIGlzIGEgYml0IGNvbmZ1c2luZy4gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20v
a28xL2NlZTk0NWU4YTlmYTVlZjRlMjNjZTk2ZDM5ODBlMTFjI2ZpbGUtYWN0aXZlb2JqZWN0LXJi
LUwxOA0KDQpJIGJlbGlldmUgdGhlcmUgaXMgbm8gY29uZnVzaW9uIHdpdGggYFJhY3RvciNzZW5k
YCBhbmQgYEtlcm5lbCNzZW5kYCBpbiBtb3N0IG9mIGNhc2VzIGlmIHRoZSByZWNlaXZlciBpcyBj
bGVhci4gU28gSSBlc3RpbWF0ZWQgdGhlIGNvbmZ1c2lvbiBwcm9ibGVtIGlzIGxpbWl0ZWQgaW4g
cHJhY3RpY2UuDQoNCldlIGRpc2N1c3NlZCBhbHRlcm5hdGl2ZSBuYW1lcyBidXQgd2UgY2FuIG5v
dCBmaW5kIHRoZSBiZXN0IG5hbWUgdG8gcmVwbGFjZSB0aGUgInNlbmQiLg0KDQoqIGBzZW5kX21l
c3NhZ2Uob2JqKWA6IE1hdHogZG9lc24ndCBsaWtlIGl0IGJlY2F1c2UgaW4gT09QIHRoZSBuYW1l
ICJtZXNzYWdlIiBtZWFucyBtZXRob2Qgc2VsZWN0b3IgKG5hbWUpIHdpdGggcGFyYW1ldGVycy4N
CiogYGRlbGl2ZXIob2JqKWA6IEFhcm9uIHBvaW50ZWQgb3V0IHRoYXQgd2hlbiBgZGVsaXZlcmAg
bWV0aG9kIGZpbmlzaGVkLCB0aGUgcmVjZWl2ZWQgc2hvdWxkIGJlIGZpbmlzaGVkLg0KKiBgcG9z
dChvYmopYDogSSBjYW4ndCBhY2NlcHQgdGhpcyBtZXRob2QgbmFtZSBiZWNhdXNlIGl0IGlzIHN0
cm9uZ2x5IGNvbm5lY3RlZCB3aXRoIG1haWxpbmcgc3lzdGVtLg0KKGFuZCBvdGhlciBuYW1lcykN
Cg0KSW4gIkFjdG9yIiBjb250ZXh0LCAic2VuZCIgaXMgdGhlIG1vc3QgY2xlYXIgd29yZCB0byBy
ZXByZXNlbnQgdGhlIGJlaGF2aW9yIGJlY2F1c2Ugb2YgaGlzdG9yaWNhbCByZWFzb25zLiBNYW55
IHBhcGVycyBhbmQgbGFuZ3VhZ2UgcmVmZXJlbmNlcyB1c2UgdGhpcyB3b3JkLg0KDQpJIHRob3Vn
aHQgdGhhdCBuYW1pbmcgaXQgYXMgb3RoZXIgbmFtZSAobGlrZSBgcG9zdGApIGFuZCBhZnRlciBp
bnRyb2R1Y2luZyBuZXcgbWV0aG9kIGRpc3BhdGNoIG9wZXJhdG9yLCByZW5hbWUgKG9yIGFkZCBh
biBhbGlhcykgaXQgdG8gYHNlbmRgIGlzIG9uZSBpZGVhLiBIb3dldmVyLCBpdCBpcyBpbXBvc3Np
YmxlIGJlY2F1c2UgcGVvcGxlIGNhbiB1c2UgYEtlcm5lbCNzZW5kYCBmb3IgcmFjdG9yIG9iamVj
dHMgYmVmb3JlIHJlbmFtaW5nIGl0Lg0KDQpGaW5hbGx5LCB3ZSBjYW4gbm90IGZpbmQgZW5vdWdo
IGFkdmFudGFnZSBvZiBzb2x2aW5nIGxpbWl0ZWQgbmFtaW5nIGNvbmZ1c2lvbiBwcm9ibGVtIGJ5
IG5vdCBiZWluZyBhYmxlIHRvIHVzZSBhcHByb3ByaWF0ZSBuYW1lLg0KDQpGb3J0dW5hdGVseSwg
IlJhY3RvciIgYW5kIFJhY3RvciBBUElzIGFyZSBleHBlcmltZW50YWwgZmVhdHVyZXMgKHRoZXkg
c2hvd3MgbWFuZGF0b3J5IGV4cGVyaW1lbnRhbCB3YXJuaW5nKSwgc28gd2UgY2FuIGNoYW5nZSB0
aGUgbmFtZSAic2VuZCIgaWYgaXQgaGFzIGNyaXRpY2FsIGlzc3Vlcy4gDQoNCigiQSBsaWJyYXJ5
IGRvZXNuJ3Qgd29yayB3ZWxsIGJlY2F1c2UgaXQgZG9lc24ndCB1c2UgYF9fc2VuZF9fYCIgaXMg
bm90IGEgcHJvYmxlbSBiZWNhdXNlIGl0IGRvZXMgbm90IHN1cHBvcnQgYWxsIG9iamVjdHMgd2l0
aG91dCBgUmFjdG9yI3NlbmRgKQ0KDQpTbyBsZXQncyB0cnkgYFJhY3RvciNzZW5kYCBvbiBSdWJ5
IDMuMCBhcyAqZXhwZXJpbWVudGFsKiBuYW1lLg0KDQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMTcxMDA6IFJhY3RvcjogYSBwcm9wb3NhbCBm
b3IgYSBuZXcgY29uY3VycmVudCBhYnN0cmFjdGlvbiB3aXRob3V0IHRocmVhZC1zYWZldHkgaXNz
dWVzDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTcxMDAjY2hhbmdlLTg4NDY3
DQoNCiogQXV0aG9yOiBrbzEgKEtvaWNoaSBTYXNhZGEpDQoqIFN0YXR1czogQ2xvc2VkDQoqIFBy
aW9yaXR5OiBOb3JtYWwNCiogQXNzaWduZWU6IGtvMSAoS29pY2hpIFNhc2FkYSkNCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgUmFjdG9yOiBhIHByb3Bvc2FsIGZv
ciBhIG5ldyBjb25jdXJyZW50IGFic3RyYWN0aW9uIHdpdGhvdXQgdGhyZWFkLXNhZmV0eSBpc3N1
ZXMNCg0KIyMgQWJzdHJhY3QNCg0KVGhpcyB0aWNrZXQgcHJvcG9zZXMgYSBuZXcgY29uY3VycmVu
dCBhYnN0cmFjdGlvbiBuYW1lZCAiUmFjdG9yLCIgUnVieSdzIEFjdG9yLWxpa2UgZmVhdHVyZSAo
bm90IGFuIGV4YWN0IEFjdG9yLW1vZGVsKS4NCg0KUmFjdG9yIGFjaGlldmVzIHRoZSBmb2xsb3dp
bmcgZ29hbHM6DQoNCiogUGFyYWxsZWwgZXhlY3V0aW9uIGluIGEgUnVieSBpbnRlcnByZXRlciBw
cm9jZXNzDQoqIEF2b2lkYW5jZSBvZiB0aHJlYWQtc2FmZXR5IGlzc3VlcyAoZXNwZWNpYWxseSBy
YWNlIGlzc3VlcykgYnkgbGltaXRpbmcgb2JqZWN0IHNoYXJpbmcNCiogQ29tbXVuaWNhdGlvbiB2
aWEgY29weWluZyBhbmQgbW92aW5nDQoNCkkgaGF2ZSBiZWVuIHdvcmtpbmcgb24gdGhpcyBwcm9w
b3NhbCBmb3IgYSBmZXcgeWVhcnMuIFRoZSBwcm9qZWN0IG5hbWUgaGFzIGJlZW4gIkd1aWxkLCIg
YnV0IEkgcmVuYW1lZCBpdCB0byBSYWN0b3IgZm9sbG93aW5nIE1hdHonIHByZWZlcmVuY2UuDQoN
ClJlc291cmNlczoNCiogUHJvcG9zZWQgc3BlY2lmaWNhdGlvbjogaHR0cHM6Ly9naXRodWIuY29t
L2tvMS9ydWJ5L2Jsb2IvcmFjdG9yX3BhcmFsbGVsL2RvYy9yYWN0b3IubWQNCiogTXkgdGFsazoN
CiAgKiAobGF0ZXN0LCBidXQgd3JpdHRlbiBpbiBKYXBhbmVzZSkgaHR0cDovL2F0ZG90Lm5ldC9+
a28xL2FjdGl2aXRpZXMvMjAyMF9ydWJ5M3N1bW1pdC5wZGYNCiAgKiAob2xkLCBBUEkgaXMgY2hh
bmdlZCkgaHR0cDovL2F0ZG90Lm5ldC9+a28xL2FjdGl2aXRpZXMvMjAxOF9ydWJ5a2FpZ2kyMDE4
LnBkZg0KICAqIChvbGQsIEFQSSBpcyBjaGFuZ2VkKSBodHRwOi8vYXRkb3QubmV0L35rbzEvYWN0
aXZpdGllcy8yMDE4X3J1Ynljb25mMjAxOC5wZGYNCg0KQ3VycmVudCBpbXBsZW1lbnRhdGlvbiBp
cyBub3QgY29tcGxldGUgKGNvbnRhaW5zIG1hbnkgYnVncykgYnV0IGl0IHBhc3NlcyB0aGUgY3Vy
cmVudCBDSS4gSSBwcm9wb3NlIHRvIG1lcmdlIGl0IHNvb24gYW5kIHRyeSB0aGUgQVBJLCBhbmQg
dG8gY29udGludWUgd29ya2luZyBvbiB0aGUgaW1wbGVtZW50YXRpb24gb24gbWFzdGVyIGJyYW5j
aC4NCg0KIyMgQmFja2dyb3VuZA0KDQpNUkkgZG9lc24ndCBwcm92aWRlIGFuIGluLXByb2Nlc3Mg
cGFyYWxsZWwgY29tcHV0YXRpb24gZmVhdHVyZSBiZWNhdXNlIHBhcmFsbGVsICJUaHJlYWRzIiBo
YXZlIG1hbnkgaXNzdWVzOg0KDQoqIFJ1YnkgcHJvZ3JhbW1lcnMgbmVlZCB0byBjb25zaWRlciBh
Ym91dCBUaHJlYWQtc2FmZXR5IG1vcmUuDQoqIEludGVycHJldGVyIGRldmVsb3BlcnMgbmVlZCB0
byBjb25zaWRlciBhYm91dCBUaHJlYWQtc2FmZXR5IG1vcmUuDQoqIEludGVycHJldGVyIHdpbGwg
c2xvdyBkb3duIGluIHNpbmdsZSB0aHJlYWQgZXhlY3V0aW9uIGJlY2F1c2Ugb2YgZmluZS1ncmFp
biBzeW5jaHJvbml6YXRpb24gd2l0aG91dCBjbGV2ZXIgb3B0aW1pemF0aW9ucy4NCg0KVGhlIHJl
YXNvbiBmb3IgdGhlc2UgaXNzdWVzIGlzICJzaGFyZWQtZXZlcnl0aGluZyIgdGhyZWFkIG1vZGVs
Lg0KDQojIyBQcm9wb3NhbA0KDQpUbyBvdmVyY29tZSB0aGUgaXNzdWVzIG9uIG11bHRpcGxlLXRo
cmVhZHMsIFJhY3RvciBhYnN0cmFjdGlvbiBpcyBwcm9wb3NlZC4gVGhpcyBwcm9wb3NhbCBjb25z
aXN0cyBvZiB0d28gbGF5ZXJzOiBtZW1vcnkgbW9kZWwgYW5kIGNvbW11bmljYXRpb24gbW9kZWwu
DQoNCkJhc2ljczoNCiogSW50cm9kdWNlICJSYWN0b3IiIGFzIGEgbmV3IGNvbmN1cnJlbnQgZW50
aXR5Lg0KKiBSYWN0b3JzIHJ1biBpbiBwYXJhbGxlbC4NCg0KTWVtb3J5IG1vZGVsOg0KKiBTZXBh
cmF0ZSAic2hhcmVhYmxlIiBvYmplY3RzIGFuZCAidW4tc2hhcmVhYmxlIiBvYmplY3RzIGFtb25n
IHJhY3RvcnMgcnVubmluZyBpbiBwYXJhbGxlbC4NCiAgICogU2hhcmVhYmxlIG9iamVjdHM6DQog
ICAgICogSW1tdXRhYmxlIG9iamVjdHMgKGZyb3plbiBvYmplY3RzIG9ubHkgcmVmZXIgdG8gc2hh
cmVhYmxlIG9iamVjdHMpDQogICAgICogQ2xhc3MvbW9kdWxlIG9iamVjdHMNCiAgICAgKiBTcGVj
aWFsIHNoYXJlYWJsZSBvYmplY3RzIChSYWN0b3Igb2JqZWN0cywgYW5kIHNvIG9uKQ0KICAgKiBV
bi1zaGFyZWFibGUgb2JqZWN0czogDQogICAgICogT3RoZXIgb2JqZWN0cw0KKiBNb3N0IG9iamVj
dHMgYXJlICJ1bi1zaGFyZWFibGUsIiB3aGljaCBtZWFucyB3ZSBSdWJ5IHByb2dyYW1tZXJzIGFu
ZCBpbnRlcnByZXRlciBkZXZlbG9wZXJzIGRvbid0IG5lZWQgdG8gY2FyZSBhYm91dCB0aHJlYWQt
c2FmZXR5IGluIG1vc3QgY2FzZXMuDQoqIFdlIG9ubHkgY29uY2VudHJhdGUgb24gc3luY2hyb25p
emluZyAic2hhcmVhYmxlIiBvYmplY3RzLg0KKiBDb21wYXJlZCB3aXRoIGNvbXBsZXRlbHkgc2Vw
YXJhdGVkIG1lbW9yeSBtb2RlbCAobGlrZSBNVk0gcHJvcG9zYWwpLCBwcm9ncmFtbWluZyB3aWxs
IGJlIGVhc2llci4NCiogVGhpcyBtb2RlbCBpcyBzaW1pbGFyIHRvIFJhY2tldCdzIGBQbGFjZWAg
YWJzdHJhY3Rpb24uDQoNCkNvbW11bmljYXRpb24gbW9kZWw6DQoqIEFjdG9yLWxpa2UgKG5vdCB0
aGUgc2FtZSkgbWVzc2FnZSBwYXNzaW5nIHVzaW5nIGBSYWN0b3Ijc2VuZChvYmopYCBhbmQgYFJh
Y3Rvci5yZWN2YA0KKiBQdWxsLXR5cGUgY29tbXVuaWNhdGlvbiB1c2luZyBgUmFjdG9yLnlpZWxk
KG9iailgIGFuZCBgUmFjdG9yI3Rha2VgDQoqIFN1cHBvcnQgZm9yIG11bHRpcGxlIHdhaXRpbmcg
dXNpbmcgYFJhY3Rvci5zZWxlY3QoLi4uKWANCg0KQWN0b3ItbGlrZSBtb2RlbCBpcyB0aGUgb3Jp
Z2luIG9mIHRoZSBuYW1lIG9mIG91ciBwcm9wb3NhbCAiUmFjdG9yIiAoUnVieSdzIGFjdG9yKS4g
SG93ZXZlciwgY3VycmVudGx5LCBpdCBpcyBub3QgYW4gQWN0b3IgbW9kZWwgYmVjYXVzZSB3ZSBj
YW4ndCBzZWxlY3QgdGhlIG1lc3NhZ2UgKHVzaW5nIHBhdHRlcm4gbWF0Y2ggYXMgaW4gRXJsYW5n
LCBFbGl4aXIsIC4uLikuIFRoaXMgbWVhbnMgdGhhdCB3ZSBjYW4ndCBoYXZlIG11bHRpcGxlIGNv
bW11bmljYXRpb24gY2hhbm5lbHMuIEluc3RlYWQgb2YgYWRvcHRpbmcgYW4gaW5jb21wbGV0ZSBh
Y3RvciBtb2RlbCwgdGhpcyBwcm9wb3NhbCBwcm92aWRlcyBgeWllbGRgL2B0YWtlYCBwYWlyIHRv
IGhhbmRsZSBtdWx0aXBsZSBjaGFubmVscy4gV2UgZGlzY3VzcyB0aGlzIHRvcGljIGxhdGVyLg0K
DQpJIHN0cm9uZ2x5IGJlbGlldmUgdGhlIG1lbW9yeSBtb2RlbCBpcyBwcm9taXNpbmcuIEhvd2V2
ZXIsIEknbSBub3Qgc3VyZSBpZiB0aGUgY29tbXVuaWNhdGlvbiBtb2RlbCBpcyB0aGUgYmVzdC4g
VGhpcyBpcyB3aHkgSSBpbnRyb2R1Y2VkICJleHBlcmltZW50YWwiIHdhcm5pbmcuDQoNClByb3Bv
c2VkIHNwZWNpZmljYXRpb246IGh0dHBzOi8vZ2l0aHViLmNvbS9rbzEvcnVieS9ibG9iL3JhY3Rv
cl9wYXJhbGxlbC9kb2MvcmFjdG9yLm1kDQoNCiMjIEltcGxlbWVudGF0aW9uDQoNCmh0dHBzOi8v
Z2l0aHViLmNvbS9ydWJ5L3J1YnkvcHVsbC8zMzY1DQpBbGwgR0ggYWN0aW9ucyBwYXNzLg0KDQpJ
IGRlc2NyaWJlIHRoZSBpbXBsZW1lbnRhdGlvbiBicmllZmx5Lg0KDQojIyMgYHJiX3JhY3Rvcl90
YA0KDQpXaXRob3V0IFJhY3RvciwgdGhlIFZNLVRocmVhZC1GaWJlciBoaWVyYXJjaHkgaXMgbGlr
ZSB0aGlzOg0KDQoqIFRoZSBWTSBgcmJfdm1fdGAgbWFuYWdlcyBydW5uaW5nIHRocmVhZHMgKGBy
Yl90aHJlYWRfdGApLg0KKiBBIHRocmVhZCAoYHJiX3RocmVhZF90YCkgcG9pbnRzIHRvIGEgcnVu
bmluZyBmaWJlciAoYHJiX2ZpYmVyX3RgKS4NCg0KV2l0aCBSYWN0b3IsIHdlIGludHJvZHVjZSBh
IG5ldyBsYXllciBgcmJfcmFjdG9yX3RgOg0KDQoqIFRoZSBWTSBgcmJfdm1fdGAgbWFuYWdlcyBy
dW5uaW5nIHJhY3RvcnMgKGByYl9yYWN0b3JfdGApLg0KKiBBIFJhY3RvciBtYW5hZ2VzIHJ1bm5p
bmcgdGhyZWFkcyAoYHJiX3RocmVhZF90YCkuDQoqIEEgdGhyZWFkIChgcmJfdGhyZWFkX3RgKSBw
b2ludHMgdG8gYSBydW5uaW5nIGZpYmVyIChgcmJfZmliZXJfdGApLg0KDQpgcmJfcmFjdG9yX3Rg
IGhhcyBhIEdWTCB0byBtYW5hZ2UgdGhyZWFkcyAob25seSBvbmUgYW1vbmcgYSBSYWN0b3IncyB0
aHJlYWRzIGNhbiBydW4pLg0KDQpSYWN0b3IgaW1wbGVtZW50YXRpb24gaXMgbG9jYXRlZCBpbiBg
cmFjdG9yLmhgLCBgcmFjdG9yLmNgIGFuZCBgcmFjdG9yLnJiYC4NCg0KIyMjIFZNLXdpZGUgbG9j
aw0KDQpWTS13aWRlIGxvY2sgaXMgaW50cm9kdWNlZCB0byBwcm90ZWN0IFZNIGdsb2JhbCByZXNv
dXJjZXMgc3VjaCBhcyBvYmplY3Qgc3BhY2UuIEl0IHNob3VsZCBhbGxvdyByZWN1cnNpdmUgbG9j
aywgc28gdGhlIGltcGxlbWVudGF0aW9uIGlzIGEgbW9uaXRvci4gV2Ugc2hhbGwgY2FsbCBpdCBW
TS13aWRlIG1vbml0b3IuIEZvciBub3csIGBSQl9WTV9MT0NLX0VOVEVSKClgIGFuZCBgUkJfVk1f
TE9DS19MRUFWRSgpYCBhcmUgcHJvdmlkZWQgdG8gYWNxdWlyZS9yZWxlYXNlIHRoZSBsb2NrLg0K
DQpOb3RlIHRoYXQgaXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIChjdXJyZW50KSBHVkwuIEEgR1ZM
IGlzIGFjcXVpcmVkIGFueXRpbWUgeW91IHJ1biBhIFJ1YnkgdGhyZWFkLiBWTS13aWRlIGxvY2sg
aXMgYWNxdWlyZWQgb25seSB3aGVuIGFjY2Vzc2luZyBWTS13aWRlIHJlc291cmNlcy4NCg0KT24g
c2luZ2xlIHJhY3RvciBtb2RlIChhbGwgUnVieSBzY3JpcHRzIGV4Y2VwdCBteSB0ZXN0cykgDQoN
CiMjIyBPYmplY3QgbWFuYWdlbWVudCBhbmQgR0MNCg0KKiAoMSkgQWxsIHJhY3RvcnMgc2hhcmUg
dGhlIG9iamVjdCBzcGFjZS4NCiogKDIpIEVhY2ggR0MgZXZlbnQgd2lsbCBzdG9wIGFsbCByYWN0
b3JzLCBhbmQgYSByYWN0b3IgR0Mgd29ya3MgdW5kZXIgYmFycmllciBzeW5jaHJvbml6YXRpb24u
DQogICogQmFycmllciBhdCBgZ2NfZW50ZXIoKWANCiAgKiBtYXJraW5nLCAobGF6eSkgc3dlZXBp
bmcsIC4uLg0KKiAoMykgQmVjYXVzZSBhbGwgb2YgdGhlIG9iamVjdCBzcGFjZSBhcmUgc2hhcmVk
IGJ5IHJhY3RvcnMsIG9iamVjdCBjcmVhdGlvbiBpcyBwcm90ZWN0ZWQgYnkgVk0td2lkZSBsb2Nr
Lg0KDQooMikgYW5kICgzKSBoYXZlIGh1Z2UgaW1wYWN0IG9uIHBlcmZvcm1hbmNlLiBUaGUgcGxh
biBpczoNCg0KKiBGb3IgKDIpLCBpbnRyb2R1Y2UgKHNlbWktKXNlcGFyYXRlZCBvYmplY3Qgc3Bh
Y2UuIEl0IHdvdWxkIHJlcXVpcmUgYSBsb25nIHRpbWUgYW5kIFJ1YnkgMy4wIGNhbid0IGVtcGxv
eSB0aGlzIHRlY2huaXF1ZS4NCiogRm9yICgzKSwgaW50cm9kdWNlIGZyZWUgc2xvdCBjYWNoZSBm
b3IgZXZlcnkgcmFjdG9yOyB0aGVuIG1vc3QgY3JlYXRpb25zIGNhbiBiZSBkb25lIHdpdGhvdXQg
c3luY2hyb25pemF0aW9uLiBJdCB3aWxsIGJlIGVtcGxveWVkIHNvb24uDQoNCiMjIyBFeHBlcmlt
ZW50YWwgd2FybmluZw0KDQpDdXJyZW50bHksIFJhY3RvciBpbXBsZW1lbnRhdGlvbiBhbmQgc3Bl
Y2lmaWNhdGlvbiBhcmUgbm90IHN0YWJsZS4gU28gdXBvbiBpdHMgZmlyc3QgdXNhZ2UsIGBSYWN0
b3IubmV3YCB3aWxsIHNob3cgYSB3YXJuaW5nOg0KDQpgd2FybmluZzogUmFjdG9yIGlzIGV4cGVy
aW1lbnRhbCwgYW5kIHRoZSBiZWhhdmlvciBtYXkgY2hhbmdlIGluIGZ1dHVyZSB2ZXJzaW9ucyBv
ZiBSdWJ5ISBBbHNvIHRoZXJlIGFyZSBtYW55IGltcGxlbWVudGF0aW9uIGlzc3Vlcy5gDQoNCiMj
IERpc2N1c3Npb24NCg0KIyMjIEFjdG9yLWJhc2VkIGFuZCBjaGFubmVsLWJhc2VkDQoNCkkgdGhp
bmsgdGhlcmUgYXJlIHR3byBtZXNzYWdlIHBhc3NpbmcgYXBwcm9hY2hlczogQWN0b3ItYmFzZWQg
KGFzIGluIEVybGFuZywgLi4uKSBhbmQgY2hhbm5lbC1iYXNlZCAoYXMgaW4gR28sIC4uLikuDQoN
CldpdGggY2hhbm5lbC1iYXNlZCBhcHByb2FjaCwgaXQgaXMgZWFzeSB0byBtYW5pcHVsYXRlIG11
bHRpcGxlIGNoYW5uZWxzIGJlY2F1c2UgaXQgbWFuYWdlcyB0aGVtIGV4cGxpY2l0bHkuIEFjdG9y
LWJhc2VkIGFwcHJvYWNoIG1hbmlwdWxhdGVzIG11bHRpcGxlIGNoYW5uZWxzIHdpdGggbWVzc2Fn
ZSBwYXR0ZXJuLiBUaGUgcmVjZWl2ZXIgY2FuIGlnbm9yZSB1bmV4cGVjdGVkIHN0cnVjdHVyZWQg
bWVzc2FnZXMgb3IgcHV0IHRoZW0gb24gaG9sZCBhbmQgY2FuIGhhbmRsZSB0aGVtIGFmdGVyIHRo
ZSBiZWhhdmlvciBoYXMgY2hhbmdlZCAocm9sZSBvZiBhY3RvciBoYXMgY2hhbmdlZCkuDQoNClJh
Y3RvciBoYXMgYHNlbmQvcmVjdmAgbGlrZSBBY3Rvci1tb2RlbCwgYnV0IHRoZXJlIGlzIG5vIHBh
dHRlcm4gbWF0Y2hpbmcgZmVhdHVyZS4gVGhpcyBpcyBiZWNhdXNlIHdlIGNhbid0IGludHJvZHVj
ZSBuZXcgc3ludGF4LCBhbmQgSSBjYW4ndCBkZXNpZ24gYSBnb29kIEFQSS4NCg0KV2l0aCBjaGFu
bmVsLWJhc2VkIGFwcHJvYWNoLCBpdCBpcyBlYXN5IHRvIGRlc2lnbiB0aGUgQVBJIChmb3IgZXhh
bXBsZSwgZG8gYGNoID0gUmFjdG9yOjpDaGFubmVsLm5ld2AgYW5kIHNoYXJlIHRoZSBgY2hgIHRo
YXQgcmFjdG9ycyBjYW4gcHJvdmlkZSkuIEhvd2V2ZXIsIEkgY2FuJ3QgZGVzaWduIGEgZ29vZCBB
UEkgdG8gaGFuZGxlIGV4Y2VwdGlvbnMgYW1vbmcgUmFjdG9ycy4NCg0KUmVnYXJkaW5nIGVycm9y
IGhhbmRsaW5nLCB3ZSBwcm9wb3NlIGEgaHlicmlkIG1vZGVsIHVzaW5nIGBzZW5kL3JlY3ZgLCBg
eWllbGQvdGFrZWAgcGFpcnMuIGBSYWN0b3IjdGFrZWAgY2FuIHJlY2VpdmUgdGhlIHNvdXJjZSBy
YWN0b3IncyBleGNlcHRpb24gKGxpa2UgYFRocmVhZCNqb2luYCkuIE9uIEFjdG9yIGFwcHJvYWNo
LCB3ZSBjYW4gZGV0ZWN0IHdoZW4gdGhlIGRlc3RpbmF0aW9uIFJhY3RvciBpcyBub3Qgd29ya2lu
ZyAoa2lsbGVkKSB1cG9uIGBSYWN0b3Ijc2VuZChvYmopYC4gQSByZWNlaXZlciByYWN0b3IgKHdh
aXRpbmcgZm9yIGBSYWN0b3IucmVjdmApIGNhbm5vdCBkZXRlY3QgdGhlIHNlbmRlcidzIHRyb3Vi
bGUsIGJ1dCBtYXliZSB0aGUgcHJpb3JpdHkgaXMgbm90IGhpZ2guIGBSYWN0b3IjdGFrZWAgYWxz
byBkZXRlY3RzIHRoZSBzZW5kZXIncyAoYFJhY3Rvci55aWVsZChvYmopYCkgZXJyb3IsIHNvIHRo
ZSBlcnJvciBjYW4gYmUgcHJvcGFnYXRlZC4NCg0KVG8gaGFuZGxlIG11bHRpcGxlIGNvbW11bmlj
YXRpb24gY2hhbm5lbHMgb24gUmFjdG9yLCBpbnN0ZWFkIG9mIHVzaW5nIG11bHRpcGxlIGNoYW5u
ZWxzLCB3ZSB1c2UgKnBpcGUqIHJhY3RvcnMuDQoNCmBgYA0KIyB3b3JrZXItcG9vbCAocmVjZWl2
ZSBieSBzZW5kKQ0KDQptYWluICMgcGlwZS5zZW5kKG9iaikNCi0+IHBpcGUgIyBSYWN0b3IueWll
bGQgUmFjdG9yLnJlY3YNCiAgLT4NCiAgICB3b3JrZXIxICMgUmFjdG9yLnlpZWxkKHNvbWVfdGFz
ayBwaXBlLnRha2UpKQ0KICAgIHdvcmtlcjIgIyBSYWN0b3IueWllbGQoc29tZV90YXNrIHBpcGUu
dGFrZSkpDQogICAgd29ya2VyMyAjIFJhY3Rvci55aWVsZChzb21lX3Rhc2sgcGlwZS50YWtlKSkN
Ci0+IG1haW4gIyBSYWN0b3Iuc2VsZWN0KHdvcmtlcjEsIHdvcmtlcjIsIHdvcmtlcjMpDQoNCiMg
aWYgd29ya2VyKiBjYXVzZXMgYW4gZXJyb3IsIG1haW4gY2FuIGRldGVjdCB0aGUgZXJyb3IuDQpg
YGANCg0KKnBpcGUqIHJhY3RvcnMgbWF5IGxvb2sgbGlrZSBjaGFubmVscy4gSG93ZXZlciwgd2Ug
ZG9uJ3QgbmVlZCB0byBpbnRyb2R1Y2UgbmV3IGNsYXNzZXMgd2l0aCB0aGlzIHRlY2huaXF1ZSAo
dGhlIGltcGxlbWVudGF0aW9uIGNhbiBvbWl0IFJhY3RvciBjcmVhdGlvbiBmb3IgcGlwZSByYWN0
b3JzKS4NCg0KTWF5YmUgdGhlcmUgYXJlIG90aGVyIHBvc3NpYmlsaXRpZXMuIEZvciBleGFtcGxl
LCBpZiB3ZSBjYW4gcHJvcGFnYXRlIHRoZSBlcnJvcnMgd2l0aCBjaGFubmVscywgd2UgY2FuIGFs
c28gY29uc2lkZXIgYSBjaGFubmVsLW1vZGVsICh3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgUmFjdG9y
IG5hbWUgOnAgdGhlbikuDQoNCiMjIyBOYW1lIG9mIFJhY3RvciAoYW5kIEd1aWxkKQ0KDQpXaGVu
IEkgcHJvcG9zZWQgR3VpbGQgaW4gMjAxNiwgSSByZWdhcmRlZCAibW92ZSIgbWVzc2FnZS1wYXNz
aW5nIChzZWUgc3BlY2lmaWNhdGlvbikgdG8gYmUgY2hhcmFjdGVyaXN0aWMgb2YgaXQsIGFuZCBJ
IGNhbGxlZCB0aGlzIGZlYXR1cmUgIm1vdmluZyBtZW1iZXJzaGlwLiIgVGhpcyBpcyB3aHkgdGhl
IG5hbWUgIkd1aWxkIiB3YXMgY2hvc2VuLiBIb3dldmVyIE1hdHogcG9pbnRlZCBvdXQgdGhhdCB0
aGlzIG1vdmUgc2VtYW50aWNzIGlzIG5vdCB1c2VkIGZyZXF1ZW50bHksIGFuZCBoZSBhc2tlZCBt
ZSB0byBjaGFuZ2UgdGhlIG5hbWUuIEFsc28sIHNvbWVvbmUgaGFkIGFscmVhZHkgYmVlbiB1c2lu
ZyB0aGUgY2xhc3MgbmFtZSAiR3VpbGQuIg0KDQoiUmFjdG9yIiBpcyBzaG9ydCBhbmQgaXMgbm90
IGFuIGV4aXN0aW5nIGNsYXNzOyB0aGlzIGlzIHdoeSBJIGNob29zZSAiUmFjdG9yLiINCg0KSSB1
bmRlcnN0YW5kIHBlb3BsZSBtYXkgY29uZnVzZSBpdCB3aXRoICJSZWFjdG9yLiINCg0KIyMgVE9E
Tw0KDQpUaGVyZSBhcmUgbWFueSByZW1haW5pbmcgdGFza3MuDQoNCiMjIyBQcm90ZWN0aW9uDQoN
Ck1hbnkgVk0td2lkZSAocHJvY2Vzcy13aWRlKSByZXNvdXJjZXMgYXJlIG5vdCBwcm90ZWN0ZWQg
Y29ycmVjdGx5LCBzbyB1c2luZyBSYWN0b3Igb24gYSBjb21wbGljYXRlZCBwcm9ncmFtIGNhbiBj
YXVzZSBjcml0aWNhbCBidWdzIChgW0JVR11gKS4gTW9zdCBnbG9iYWwgcmVzb3VyY2UgYXJlIG1h
bmFnZWQgYnkgZ2xvYmFsIHZhcmlhYmxlcywgc28gd2UgbmVlZCB0byBjaGVjayB0aGVtIGNvcnJl
Y3RseS4NCg0KIyMjIEMtbWV0aG9kcw0KDQpDdXJyZW50bHksIEMtbWV0aG9kcyAobWV0aG9kcyB3
cml0dGVuIGluIEMgYW5kIGRlZmluZWQgd2l0aCBgcmJfZGVmaW5lX21ldGhvZCgpYCkgcnVuIGlu
IHBhcmFsbGVsLiBJdCBtZWFucyB0aGF0IHRocmVhZC11bnNhZmUgY29kZSBjYW4gcnVuIGluIHBh
cmFsbGVsLiBUbyBzb2x2ZSB0aGlzIGlzc3VlLCBJIHBsYW4gdGhlIGZvbGxvd2luZzoNCg0KKDEp
IEludHJvZHVjZSB0aHJlYWQtdW5zYWZlIGxhYmVsIGZvciBtZXRob2RzDQoNCkl0IGlzIGltcG9z
c2libGUgdG8gbWFrZSBhbGwgQy1tZXRob2RzIHRocmVhZC1zYWZlLCBlc3BlY2lhbGx5IGZvciBD
LW1ldGhvZHMgaW4gdGhpcmQgcGFydHkgQy1leHRlbnNpb25zLiBUbyBwcm90ZWN0IHRoZW0sIGxh
YmVsIHRoZXNlIChwb3NzaWJseSkgdGhyZWFkLXVuc2FmZSBDLW1ldGhvZHMgYXMgInRocmVhZC11
bnNhZmUuIg0KDQpXaGVuICJ1bnNhZmUiLWxhYmVsZWQgQyBtZXRob2RzIGFyZSBpbnZva2VkLCB0
aGV5IGFjcXVpcmUgYSBWTS13aWRlIGxvY2suIFRoaXMgVk0td2lkZSBsb2NrIHNob3VsZCBjaGVj
ayBmb3IgcmVjdXJzaXZlbmVzcyAoc28gdGhpcyBsb2NrIHNob3VsZCBiZSBhIG1vbml0b3IpIGFu
ZCBlc2NhcGluZyAoZXhjZXB0aW9ucykuIEN1cnJlbnRseSwgVk0td2lkZSBsb2NrIGRvZXNuJ3Qg
Y2hlY2sgZm9yIGVzY2FwaW5nLCBidXQgdGhhdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgc29vbi4N
Cg0KKDIpIEJ1aWx0LWluIEMtbWV0aG9kcw0KDQpJJ2xsIGZpeCBtb3N0IG9mIHRoZSBidWlsdGlu
IEMtbWV0aG9kcyAoU3RyaW5nLCBBcnJheSwgLi4uKSBzbyB0aGF0IHRoZXkgd2lsbCBiZWNvbWUg
dGhyZWFkLXNhZmUuIElmIGl0IGlzIG5vdCBlYXN5LCBJJ2xsIHVzZSB0aHJlYWQtdW5zYWZlIGxh
YmVsLg0KDQojIyMgQ29weWluZyBhbmQgbW92aW5nDQoNCkN1cnJlbnRseSwgTWFyc2hhbCBwcm90
b2NvbCBtYWtlcyBkZWVwIGNvcHkgb24gbWVzc2FnZSBjb21tdW5pY2F0aW9uLiBIb3dldmVyLCBN
YXJzaGFsIHByb3RvY29sIGRvZXNuJ3Qgc3VwcG9ydCBzb21lIG9iamVjdHMgbGlrZSBgUmFjdG9y
YCBvYmplY3RzLCBzbyB3ZSBuZWVkIHRvIG1vZGlmeSB0aGVtLg0KDQpPbmx5IGEgZmV3IHR5cGVz
IGFyZSBzdXBwb3J0ZWQgZm9yIG1vdmluZywgc28gd2UgbmVlZCB0byB3cml0ZSBtb3JlLg0KDQoj
IyMgIkdWTCIgbmFtaW5nDQoNCkN1cnJlbnRseSwgdGhlIHNvdXJjZSBjb2RlIGNvbnRhaW5zIHRo
ZSBuYW1lICJHVkwiIGZvciBSYWN0b3IgbG9jYWwgbG9ja3MuIE1heWJlIHRoZXkgc2hvdWxkIGJl
IHJlbmFtZWQuDQoNCiMjIyBQZXJmb3JtYW5jZQ0KDQpUbyBpbnRyb2R1Y2UgZmluZS1ncmFpbmVk
IGxvY2ssIHBlcmZvcm1hbmNlIHR1bmluZyBpcyBuZWVkZWQuDQoNCiMjIyBCdWcgZml4ZXMNCg0K
bWFueSBtYW55IC4uLi4NCg0KIyMgQ29uY2x1c2lvbg0KDQpUaGlzIHRpY2tldCBwcm9wb3NlcyBh
IG5ldyBjb25jdXJyZW50IGFic3RyYWN0aW9uICJSYWN0b3IuIiBJIHRoaW5rIFJ1YnkgMyBjYW4g
c2hpcCB3aXRoIFJhY3RvciB1bmRlciAiZXhwZXJpbWVudGFsIiBzdGF0dXMuDQoNCg0KDQoNCi0t
IA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVi
eS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDov
L2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread