[#105544] [Ruby master Feature#18239] Variable Width Allocation: Strings — "peterzhu2118 (Peter Zhu)" <noreply@...>

SXNzdWUgIzE4MjM5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHBldGVyemh1MjExOCAoUGV0ZXIgWmh1

18 messages 2021/10/04

[#105566] [Ruby master Bug#18242] Parser makes multiple assignment sad in confusing way — "danh337 (Dan Higgins)" <noreply@...>

SXNzdWUgIzE4MjQyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGRhbmgzMzcgKERhbiBIaWdnaW5zKS4K

9 messages 2021/10/06

[#105573] [Ruby master Bug#18243] Ractor.make_shareable does not freeze the receiver of a Proc but allows accessing ivars of it — "Eregon (Benoit Daloze)" <noreply@...>

SXNzdWUgIzE4MjQzIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEVyZWdvbiAoQmVub2l0IERhbG96ZSku

11 messages 2021/10/06

[#105586] [Ruby master Bug#18244] Unexpected errors output order — "inversion (Yura Babak)" <noreply@...>

SXNzdWUgIzE4MjQ0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGludmVyc2lvbiAoWXVyYSBCYWJhayku

8 messages 2021/10/07

[#105618] [Ruby master Bug#18249] The ABI version of dev builds of CRuby does not correspond to the ABI — "Eregon (Benoit Daloze)" <noreply@...>

SXNzdWUgIzE4MjQ5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEVyZWdvbiAoQmVub2l0IERhbG96ZSku

23 messages 2021/10/11

[#105626] [Ruby master Bug#18250] Anonymous variables seem to break `Ractor.make_shareable` — "tenderlovemaking (Aaron Patterson)" <noreply@...>

SXNzdWUgIzE4MjUwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHRlbmRlcmxvdmVtYWtpbmcgKEFhcm9u

14 messages 2021/10/12

[#105660] [Ruby master Feature#18254] Add an `offset` parameter to String#unpack and String#unpack1 — "byroot (Jean Boussier)" <noreply@...>

SXNzdWUgIzE4MjU0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJ5cm9vdCAoSmVhbiBCb3Vzc2llciku

13 messages 2021/10/18

[#105665] [Ruby master Bug#18255] ioctl zeroes the last buffer byte — "vihai (Daniele Orlandi)" <noreply@...>

SXNzdWUgIzE4MjU1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHZpaGFpIChEYW5pZWxlIE9ybGFuZGkp

8 messages 2021/10/18

[#105672] [Ruby master Feature#18256] Change the canonical name of Thread::Mutex, Thread::Queue, Thread::SizedQueue and Thread::ConditionVariable to just Mutex, Queue, SizedQueue and ConditionVariable — "Eregon (Benoit Daloze)" <noreply@...>

SXNzdWUgIzE4MjU2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IEVyZWdvbiAoQmVub2l0IERhbG96ZSku

6 messages 2021/10/19

[#105692] [Ruby master Bug#18257] SystemTap/DTrace coredump on ppc64le/s390x — "vo.x (Vit Ondruch)" <noreply@...>

SXNzdWUgIzE4MjU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHZvLnggKFZpdCBPbmRydWNoKS4KCi0t

22 messages 2021/10/20

[#105750] [Ruby master Feature#18262] Enumerator::Lazy#partition — "zverok (Victor Shepelev)" <noreply@...>

SXNzdWUgIzE4MjYyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2

8 messages 2021/10/22

[#105781] [Ruby master Misc#18266] DevelopersMeeting20211118Japan — "mame (Yusuke Endoh)" <noreply@...>

SXNzdWUgIzE4MjY2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IG1hbWUgKFl1c3VrZSBFbmRvaCkuCgot

13 messages 2021/10/25

[#105805] [Ruby master Bug#18270] Refinement#{extend_object, append_features, prepend_features} should be removed — "shugo (Shugo Maeda)" <noreply@...>

SXNzdWUgIzE4MjcwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHNodWdvIChTaHVnbyBNYWVkYSkuCgot

8 messages 2021/10/26

[#105826] [Ruby master Feature#18273] Class.subclasses — "byroot (Jean Boussier)" <noreply@...>

SXNzdWUgIzE4MjczIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGJ5cm9vdCAoSmVhbiBCb3Vzc2llciku

35 messages 2021/10/27

[#105833] [Ruby master Feature#18275] Add an option to define_method to not capture the surrounding environment — "vinistock (Vinicius Stock)" <noreply@...>

SXNzdWUgIzE4Mjc1IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHZpbmlzdG9jayAoVmluaWNpdXMgU3Rv

11 messages 2021/10/27

[#105853] [Ruby master Feature#18276] `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)` — "ko1 (Koichi Sasada)" <noreply@...>

SXNzdWUgIzE4Mjc2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtvMSAoS29pY2hpIFNhc2FkYSkuCgot

15 messages 2021/10/28

[ruby-core:105686] [Ruby master Feature#18020] Introduce `IO::Buffer` for fiber scheduler.

From: "ioquatix (Samuel Williams)" <noreply@...>
Date: 2021-10-20 00:50:54 UTC
List: ruby-core #105686
SXNzdWUgIzE4MDIwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgaW9xdWF0aXggKFNhbXVlbCBXaWxsaWFt
cykuCgoKPiBJbiB0aGUgZGVzY3JpcHRpb24ncyBjb2RlLCB0aGVyZSBpcyBsb2NrIGFuZCB1bmxv
Y2suIEFyZSB0aG9zZSBzdXBwb3NlZCB0byBiZSB0aHJlYWQtc2FmZT8gSWYgeWVzIEkgdGhpbmsg
eW91J2QgbmVlZCB0byBzeW5jaHJvbml6ZSBpbiBhbG1vc3QgZXZlcnkgbWV0aG9kLCBpZiBpdCdz
IHBvc3NpYmxlIHRvIGFjY2VzcyB0aGUgYnVmZmVyIHdpdGhvdXQgR1ZMLgoKTm8sIGluc3RhbmNl
cyBvZiB0aGlzIGNsYXNzIHNob3VsZCBub3QgYmUgc2hhcmVkIGJldHdlZW4gdGhyZWFkcy4gSG93
ZXZlciwgdGhlcmUgd291bGQgYmUgc29tZSBjYXNlcyB3aGVyZSB0aGlzIG1pZ2h0IGJlIG9rYXks
IGUuZy4gaWYgdGhlIGJ1ZmZlciBpcyBpbW11dGFibGUuIFdlIGRlZmluaXRlbHkgd2FudCB0byBh
dm9pZCBhbnkga2luZCBvZiBzeW5jaHJvbmlzYXRpb24gb3ZlcmhlYWRzIGZvciBwZXJmb3JtYW5j
ZSByZWFzb25zLgoKPiBJIHRoaW5rIGl0J3MgYmV0dGVyIHRvIG9ubHkgYWxsb3cgImxvY2siIG9u
IGNyZWF0aW9uLCB0byB0aGVyZSBpcyBubyBkeW5hbWljIGxvY2sgb3IgdW5sb2NrLCB3aGljaCBt
YWtlcyBldmVyeXRoaW5nIG1vcmUgY29tcGxleC4KCkEgYnVmZmVyIGNhbiBiZSB1c2VkIGFjcm9z
cyBtdWx0aXBsZSBJL08gb3BlcmF0aW9ucyBuZWNlc3NpdGF0aW5nIGxvY2tpbmcgYW5kIHVubG9j
a2luZywgbm90IHVubGlrZSB0aGUgYWxyZWFkeSBleGlzdGluZyBpbXBsZW1lbnRhdGlvbiBvbiBg
U3RyaW5nYC4gVGhlIHJlYXNvbiBmb3IgdGhpcyBjb21wbGV4aXR5IGlzIHRvIHByZXZlbnQgdXNl
ciBlcnJvciBhbmQgdG8gbW9kZWwgdGhlIGZhY3QgdGhhdCB0aGUgT1MgY2FuIHVzZSBhIGJ1ZmZl
ciB3aGljaCBtYXkgYmUgZm9yIGEgZHVyYXRpb24gb2YgdGltZSBvdXRzaWRlIG9mIHRoZSBHVkwg
YW5kIGl0IHNob3VsZCBub3QgYmUgY2hhbmdlZCB3aGlsZSBpbiB1c2UgYnkgdGhlIE9TLgoKQWRk
aXRpb25hbGx5LCBJJ2QgYXJndWUgdGhhdCBgU3RyaW5nYCBpbXBsZW1lbnRhdGlvbiBpcyB3YXkg
bW9yZSBjb21wbGV4IGFuZCBwb29ybHkgdW5kZXJzdG9vZC9kb2N1bWVudGVkLCBhbmQgc28gZmFy
IHdlIHNlZW0gaGFwcHkgZm9yIHRoYXQ/IFRoZXJlIGFyZSBkZWZpbml0ZWx5IHNvbWUgdmVyeSBv
ZGQgZWRnZSBjYXNlcyB3aGVuIHVzaW5nIFN0cmluZ3MgYXMgYnVmZmVycywgc29tZSBvZiB3aGlj
aCBJIGFscmVhZHkgcmVwb3J0ZWQgYW5kIGZpeGVkIGFzIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1
ZXMsIGJvdGggaW4gQ1J1YnkgYW5kIG9uZSBvZiBKUnVieS9UcnVmZmxlUnVieS4KCj4gSW4gZmFj
dCwgZG8gd2UgZXZlbiBuZWVkIHJlc2l6YWJsZSBidWZmZXJzPyBJTUhPIHVzaW5nIGFub3RoZXIg
YnVmZmVyIHNlZW1zIG11Y2ggY2xlYW5lciBpZiBvbmUgbmVlZHMgdG8gZ3JvdyBpdC4KCkNlbGx1
bG9pZCBpbnRyb2R1Y2VkIGZpeGVkIHNpemUgYnVmZmVycyBhbmQgaXQgd2FzIHZlcnkgaGFyZCB0
byB1c2UgY29ycmVjdGx5LiBJbiB0aGUgZW5kLCBJIGNvdWxkbid0IGV2ZW4gdXNlIGl0IGluIGFz
eW5jIGJlY2F1c2UgaXQgd2FzIHNvIGltcHJhY3RpY2FsLiBTbyB5ZXMsIHJlc2l6YWJsZSBidWZm
ZXJzIGFyZSBhYnNvbHV0ZWx5IG5lZWRlZCBhbmQgY2FuIGJlIGVmZmljaWVudGx5IGltcGxlbWVu
dGVkLCBlaXRoZXIgYnkgbWVtb3J5IG1hcHBpbmcgb3IgY29weWluZyBpbiB0aGUgd29yc3QgY2Fz
ZS4gSWYgeW91IGRvbid0IGltcGxlbWVudCB0aGlzLCB0aGUgdXNlciBlbmRzIHVwIGhhdmluZyB0
byBkbyBpdCBieSBoYW5kID0gbW9yZSBidWdzICYgbGVzcyBwZXJmb3JtYW5jZS4KCj4gVGhlIG5l
dyBpbnRlcmZhY2UgZmVlbHMgcmVhbGx5IGJpZyBhbmQgaGFyZCB0byB1bmRlcnN0YW5kIGl0IGFz
IGEgd2hvbGUuCgpCYXNlZCBvbiBteSBleHBlcmllbmNlIG9mIGBpby5jYCBhbmQgYHN0cmluZy5j
YCBJIGNvbXBsZXRlbHkgZGlzYWdyZWUgd2l0aCB0aGlzIGFzc2VydGlvbi4gSSBmZWVsIHRoYXQg
dGhpcyBpcyBhIGZhciBzaW1wbGVyLCB3ZWxsIGFic3RyYWN0ZWQsIGlzb2xhdGVkLCByb2J1c3Qg
aW50ZXJmYWNlIGZvciBkZWFsaW5nIHdpdGggYmluYXJ5IGRhdGEgaW4gY29uanVuY3Rpb24gd2l0
aCBJTyBpbiBjb21wYXJpc29uIHRvIHdoYXQgd2UgYWxyZWFkeSBoYXZlLiBJIGxpdGVyYWxseSBz
cGVudCBsaWtlIGEgbW9udGggdHJ5aW5nIHRvIHJldHJvZml0IHRoZSBhZm9yZW1lbnRpb25lZCBj
b2RlIGJ1dCBpdCB3YXMgbGlrZSBhIGEgaG91c2Ugb2YgY2FyZHMuIE1vdmUgb25lIHRoaW5nIGFu
ZCB0aGUgZW50aXJlIHRoaW5nIGNvbGxhcHNlcy4gVW5mb3J0dW5hdGVseSB0aGUgUnVieSBgSU9g
ICYgYFN0cmluZ2AgY2xhc3MgaXMgcmVhbGx5IG92ZXJsb2FkZWQgYW5kIGhhcyBiZWNvbWUgYSBz
aWduaWZpY2FudCBidXJkZW4gdG8gaW1wbGVtZW50aW5nIHByZWRpY3RhYmxlLCBlZmZpY2llbnQg
YW5kIHJvYnVzdCBuZXR3b3JrIHByb3RvY29scy4KClRoZSBmdWxsIGltcGxlbWVudGF0aW9uIGlz
IGdpdmVuLCBpbmNsdWRpbmcgdGhlIGV4YW1wbGUgdXNhZ2UsIHRlc3RzLCBhbmQgYWxzbyB0aGUg
aW1wbGVtZW50YXRpb24gb2YgdGhlIHNjaGVkdWxlciBob29rcy4gQWRkaXRpb25hbGx5LCBhIGZ1
bGwgY29uc3VtZXIgaW1wbGVtZW50YXRpb24gaW4gdGhlIEV2ZW50IGdlbSBpcyBnaXZlbjogaHR0
cHM6Ly9naXRodWIuY29tL3NvY2tldHJ5L2V2ZW50L2Jsb2IvbWFzdGVyL2V4dC9ldmVudC9zZWxl
Y3Rvci91cmluZy5jI0wzNTktTDQ1OQoKSWYgeW91IHRoaW5rIHRoZXJlIGlzIHNvbWV0aGluZyB3
cm9uZyB3aXRoIHRoaXMgaW1wbGVtZW50YXRpb24gb3IgdGhhdCBpdCBjYW4gYmUgZ3JlYXRseSBz
aW1wbGlmaWVkLCBwbGVhc2UgcHJvcG9zZSBzcGVjaWZpYyBjaGFuZ2VzIHRvIHRoZSBpbXBsZW1l
bnRhdGlvbiB0aGF0IGFjaGlldmUgdGhpcyBhbmQgc3RpbGwgbWFpbnRhaW4gc2FmZXR5LCBlZmZp
Y2llbmN5LCBwZXJmb3JtYW5jZSwgZXRjLiBJIHdlbGNvbWUgYW55IHN1Y2ggY2hhbmdlcyBhbmQg
d291bGQgYmUgbW9zdCBncmF0ZWZ1bCBmb3IgeW91ciBpbnNpZ2h0cyBvbiBzdWNoIGltcHJvdmVt
ZW50cy4gWW91J3ZlIGdvdCBhIGZ1bGwgZW5kLXRvIGVuZCBQUiB0byB3b3JrIHdpdGgsIHRoZXJl
IGlzIG5vdGhpbmcgbWlzc2luZyBvciB0aGVvcmV0aWNhbCBoZXJlLgoKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxODAyMDogSW50cm9kdWNlIGBJTzo6
QnVmZmVyYCBmb3IgZmliZXIgc2NoZWR1bGVyLgpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9p
c3N1ZXMvMTgwMjAjY2hhbmdlLTk0MTg2CgoqIEF1dGhvcjogaW9xdWF0aXggKFNhbXVlbCBXaWxs
aWFtcykKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQWZ0ZXIgY29udGludWluZyB0byBidWlsZCBvdXQgdGhl
IGZpYmVyIHNjaGVkdWxlciBpbnRlcmZhY2UgYW5kIHRoZSBzcGVjaWZpYyBob29rcyByZXF1aXJl
ZCBmb3IgYGlvX3VyaW5nYCwgSSBmb3VuZCBzb21lIHRyb3VibGUgd2l0aGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZiBgSU9gLgoKSSBmb3VuZCB0aGF0IGluIHNvbWUgY2FzZXMsIHdlIG5lZWQgdG8g
cmVhZCBpbnRvIHRoZSBpbnRlcm5hbCBJTyBidWZmZXJzIGRpcmVjdGx5LiBJIHRyaWVkIGNyZWF0
aW5nIGEgImZha2Ugc3RyaW5nIiBpbiBvcmRlciB0byB0cmFuc2l0IGJhY2sgaW50byB0aGUgUnVi
eSBmaWJlciBzY2hlZHVsZXIgaW50ZXJmYWNlIGFuZCB0aGlzIGRpZCB3b3JrIHRvIGEgY2VydGFp
biBleHRlbnQsIGJ1dCBJIHdhcyB0b2xkIHdlIGNhbm5vdCBleHBvc2UgZmFrZSBzdHJpbmcgdG8g
UnVieSBzY2hlZHVsZXIgaW50ZXJmYWNlLgoKU28sIGFmdGVyIHRoaXMsIGFuZCBtYW55IG90aGVy
IGZydXN0cmF0aW9ucyB3aXRoIHVzaW5nIGBTdHJpbmdgIGFzIGEgSU8gYnVmZmVyLCBJIGRlY2lk
ZWQgdG8gaW1wbGVtZW50IGEgbG93IGxldmVsIGBJTzo6QnVmZmVyYCBiYXNlZCBvbiBteSBuZWVk
cyBmb3IgaGlnaCBwZXJmb3JtYW5jZSBJTywgYW5kIGFzIHBhcnQgb2YgdGhlIGZpYmVyIHNjaGVk
dWxlciBpbnRlcmZhY2UuCgpIZXJlIGlzIHJvdWdobHkgdGhlIGludGVyZmFjZSBpbXBsZW1lbnRl
ZCBieSB0aGUgc2NoZWR1bGVyIHcuci50LiB0aGUgYnVmZmVyOgoKYGBgcnVieQpjbGFzcyBTY2hl
ZHVsZXIKICAjIEBwYXJhbWV0ZXIgYnVmZmVyIFtJTzo6QnVmZmVyXSBCdWZmZXIgZm9yIHJlYWRp
bmcgaW50by4KICBkZWYgaW9fcmVhZChpbywgYnVmZmVyLCBsZW5ndGgpCiAgICAjIGltcGxlbWVu
dGF0aW9uIHByb3ZpZGVkIGJ5IGByZWFkYCBzeXN0ZW0gY2FsbCwgSU9fVVJJTkdfUkVBRFYsIGV0
Yy4KICBlbmQKCiAgIyBAcGFyYW1ldGVyIGJ1ZmZlciBbSU86OkJ1ZmZlcl0gQnVmZmVyIGZvciB3
cml0aW5nIGZyb20uCiAgZGVmIGlvX3dyaXRlKGlvLCBidWZmZXIsIGxlbmd0aCkKICAgICMgaW1w
bGVtZW50YXRpb24gcHJvdmlkZWQgYnkgYHdyaXRlYCBzeXN0ZW0gY2FsbCwgSU9fVVJJTkdfV1JJ
VEVWLCBldGMuCiAgZW5kCgogICMgUG90ZW50aWFsIG5ldyBob29rcyAoU29ja2V0I3JlY3Ztc2cs
IHNlbmRtc2csIGV0Yyk6CiAgZGVmIGlvX3JlY3Ztc2coaW8sIGJ1ZmZlciwgbGVuZ3RoKQogIGVu
ZAplbmQKYGBgCgpJbiByZXZpZXdpbmcgb3RoZXIgbGFuZ3VhZ2UgZGVzaWducywgSSBmb3VuZCB0
aGF0IHRoaXMgZGVzaWduIGlzIHZlcnkgc2ltaWxhciB0byBDcnlzdGFsJ3MgSU8gYnVmZmVyaW5n
IHN0cmF0ZWd5LgoKVGhlIHByb3Bvc2VkIGltcGxlbWVudGF0aW9uIHByb3ZpZGVzIGVub3VnaCBv
ZiBhbiBpbnRlcmZhY2UgdG8gaW1wbGVtZW50IGJvdGggbmF0aXZlIHNjaGVkdWxlcnMgYXMgd2Vs
bCBhcyBwdXJlIFJ1Ynkgc2NoZWR1bGVycy4gSXQgYWxzbyBwcm92aWRlcyBzb21lIGV4dHJhIGZ1
bmN0aW9uYWxpdHkgZm9yIGludGVycHJldGluZyB0aGUgZGF0YSBpbiB0aGUgYnVmZmVyLiBUaGlz
IGlzIG1vc3RseSBmb3IgdGVzdGluZyBhbmQgZXhwZXJpbWVudGF0aW9uLCBhbHRob3VnaCBpdCBt
aWdodCBtYWtlIHNlbnNlIHRvIGV4cG9zZSB0aGlzIGludGVyZmFjZSBmb3IgYmluYXJ5IHByb3Rv
Y29scyBsaWtlIEhUVFAvMiwgUVVJQywgV2ViU29ja2V0cywgZXRjLgoKIyMgUHJvcG9zZWQgU29s
dXRpb24KCldlIGludHJvZHVjZSBuZXcgY2xhc3MgYElPOjpCdWZmZXJgLgoKYGBgcnVieQpjbGFz
cyBJTzo6QnVmZmVyCiAgIyBAcmV0dXJucyBbSU86OkJ1ZmZlcl0gQSBidWZmZXIgd2l0aCB0aGUg
Y29udGVudHMgb2YgdGhlIHN0cmluZyBkYXRhLgogIGRlZiBzZWxmLmZvcihzdHJpbmcpCiAgZW5k
CgogIFBBR0VfU0laRSA9ICMgLi4uIG9wZXJhdGluZyBzeXN0ZW0gcGFnZSBzaXplCgogICMgQHJl
dHVybnMgW0lPOjpCdWZmZXJdIEEgYnVmZmVyIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxl
IG1hcHBlZCB0byBtZW1vcnkuCiAgZGVmIHNlbGYubWFwKGZpbGUpCiAgZW5kCgogICMgRmxhZ3Mg
Zm9yIGJ1ZmZlciBzdGF0ZS4KICBFWFRFUk5BTCA9ICMgVGhlIGJ1ZmZlciBpcyBmcm9tIGV4dGVy
bmFsIG1lbW9yeS4KICBJTlRFUk5BTCA9ICMgVGhlIGJ1ZmZlciBpcyBmcm9tIGludGVybmFsIG1l
bW9yeSAobWFsbG9jKS4KICBNQVBQRUQgPSAjIFRoZSBidWZmZXIgaXMgZnJvbSBtYXBwZWQgbWVt
b3J5IChtbWFwLCBWaXJ0dWFsQWxsb2MsIGV0YykKICBMT0NLRUQgPSAjIFRoZSBidWZmZXIgaXMg
bG9ja2VkIGZvciB1c2FnZSAoY2Fubm90IGJlIHJlc2l6ZWQpCiAgUFJJVkFURSA9ICMgVGhlIGJ1
ZmZlciBpcyBtYXBwZWQgYXMgY29weS1vbi13cml0ZS4KICBJTU1VVEFCTEUgPSAjIFRoZSBidWZm
ZXIgY2Fubm90IGJlIG1vZGlmaWVkLgoKICAjIEByZXR1cm5zIFtJTzo6QnVmZmVyXSBBIGJ1ZmZl
ciB3aXRoIHRoZSBzcGVjaWZpZWQgc2l6ZSwgYWxsb2NhdGVkIGFjY29yZGluZyB0byB0aGUgZ2l2
ZW4gZmxhZ3MuCiAgZGVmIGluaXRpYWxpemUoc2l6ZSwgZmxhZ3MpCiAgZW5kCgogICMgQHJldHVy
bnMgW0ludGVncmFsXSBUaGUgc2l6ZSBvZiB0aGUgYnVmZmVyCiAgYXR0ciA6c2l6ZQoKICAjIEBy
ZXR1cm5zIFtTdHJpbmddIEEgYnJpZWYgc3VtbWFyeSBhbmQgaGV4IGR1bXAgb2YgdGhlIGJ1ZmZl
ci4KICBkZWYgaW5zcGVjdAogIGVuZAoKICAjIEByZXR1cm5zIFtTdHJpbmddIEEgYnJpZWYgc3Vt
bWFyeSBvZiB0aGUgYnVmZmVyLgogIGRlZiB0b19zCiAgZW5kCgogICMgRmxhZyBwcmVkaWNhdGVz
OgogIGRlZiBleHRlcm5hbD8KICBlbmQKCiAgZGVmIGludGVybmFsPwogIGVuZAoKICBkZWYgbWFw
cGVkPwogIGVuZAoKICBkZWYgbG9ja2VkPwogIGVuZAoKICBkZWYgaW1tdXRhYmxlPwogIGVuZAoK
ICAjIEZsYWdzIGZvciBlbmRpYW4vYnl0ZSBvcmRlcjoKICBMSVRUTEVfRU5ESUFOID0gIyAuLi4K
ICBCSUdfRU5ESUFOID0gIyAuLi4KICBIT1NUX0VORElBTiA9ICMgLi4uCiAgTkVUV09SS19FTkRJ
QU49ICMgLi4uCgogICMgTG9jayB0aGUgYnVmZmVyIChwcmV2ZW50IHJlc2l6ZSwgdW5tYXAsIGNo
YW5nZXMgdG8gYmFzZSBhbmQgc2l6ZSkuCiAgZGVmIGxvY2sKICAgIHJhaXNlICJBbHJlYWR5IGxv
Y2tlZCEiIGlmIGZsYWdzICYgTE9DS0VECiAgICAKICAgIGZsYWdzIHw9IExPQ0tFRAogIGVuZAoK
ICAjIFVubG9jayB0aGUgYnVmZmVyLgogIGRlZiB1bmxvY2sKICAgIHJhaXNlICJOb3QgbG9ja2Vk
ISIgdW5sZXNzIGZsYWdzICYgTE9DS0VECiAgICAKICAgIGZsYWdzIHw9IH5MT0NLRUQKICBlbmQK
CiAgLy8gTWFuaXB1bGF0aW9uOgogICMgQHJldHVybnMgW0lPOjpCdWZmZXJdIEEgc2xpY2Ugb2Yg
dGhlIGJ1ZmZlcidzIGRhdGEuIERvZXMgbm90IGNvcHkuCiAgZGVmIHNsaWNlKG9mZnNldCwgbGVu
Z3RoKQogIGVuZAoKICAjIEByZXR1cm5zIFtTdHJpbmddIEEgYmluYXJ5IHN0cmluZyBzdGFydGlu
ZyBhdCBvZmZzZXQsIGxlbmd0aCBieXRlcy4KICBkZWYgdG9fc3RyKG9mZnNldCwgbGVuZ3RoKQog
IGVuZAoKICAjIENvcHkgdGhlIHNwZWNpZmllZCBzdHJpbmcgaW50byB0aGUgYnVmZmVyIGF0IHRo
ZSBnaXZlbiBvZmZzZXQuCiAgZGVmIGNvcHkoc3RyaW5nLCBvZmZzZXQpCiAgZW5kCgogICMgQ29t
cGFyZSB0d28gYnVmZmVycy4KICBkZWYgPD0+KG90aGVyKQogIGVuZAoKICBpbmNsdWRlIENvbXBh
cmFibGUKCiAgIyBSZXNpemUgdGhlIGJ1ZmZlciwgcHJlc2VydmluZyB0aGUgZ2l2ZW4gbGVuZ3Ro
IChpZiBub24temVybykuCiAgZGVmIHJlc2l6ZShzaXplLCBwcmVzZXJ2ZSA9IDApCiAgZW5kCgog
ICMgQ2xlYXIgdGhlIGJ1ZmZlciB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgogIGRlZiBjbGVhcih2
YWx1ZSA9IDAsIG9mZnNldCA9IDAsIGxlbmd0aCA9IChAc2l6ZSAtIG9mZnNldCkpCiAgZW5kCgog
ICMgRGF0YSBUeXBlczoKICAjIExvd2VyIGNhc2U6IGxpdHRsZSBlbmRpYW4uCiAgIyBVcHBlciBj
YXNlOiBiaWcgZW5kaWFuIChuZXR3b3JrIGVuZGlhbikuCiAgIwogICMgOlU4ICAgICAgICB8IHVu
c2lnbmVkIDgtYml0IGludGVnZXIuCiAgIyA6UzggICAgICAgIHwgc2lnbmVkIDgtYml0IGludGVn
ZXIuCiAgIwogICMgOnUxNiwgOlUxNiB8IHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgogICMgOnMx
NiwgOlMxNiB8IHNpZ25lZCAxNi1iaXQgaW50ZWdlci4KICAjCiAgIyA6dTMyLCA6VTMyIHwgdW5z
aWduZWQgMzItYml0IGludGVnZXIuCiAgIyA6czMyLCA6UzMyIHwgc2lnbmVkIDMyLWJpdCBpbnRl
Z2VyLgogICMKICAjIDp1NjQsIDpVNjQgfCB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlci4KICAjIDpz
NjQsIDpTNjQgfCBzaWduZWQgNjQtYml0IGludGVnZXIuCiAgIwogICMgOmYzMiwgOkYzMiB8IDMy
LWJpdCBmbG9hdGluZyBwb2ludCBudW1iZXIuCiAgIyA6ZjY0LCA6RjY0IHwgNjQtYml0IGZsb2F0
aW5nIHBvaW50IG51bWJlci4KCiAgIyBHZXQgdGhlIGdpdmVuIGRhdGEgdHlwZSBhdCB0aGUgc3Bl
Y2lmaWVkIG9mZnNldC4KICBkZWYgZ2V0KHR5cGUsIG9mZnNldCkKICBlbmQKCiAgIyBTZXQgdGhl
IGdpdmVuIHZhbHVlIGFzIHRoZSBzcGVjaWZpZWQgZGF0YSB0eXBlIGF0IHRoZSBzcGVjaWZpZWQg
b2Zmc2V0LgogIGRlZiBzZXQodHlwZSwgb2Zmc2V0LCB2YWx1ZSkKICBlbmQKZW5kCmBgYAoKVGhl
IEMgaW50ZXJmYWNlIHByb3ZpZGVzIGEgZmV3IGNvbnZlbmllbnQgbWV0aG9kcyBmb3IgYWNjZXNz
aW5nIHRoZSB1bmRlcmx5aW5nIGRhdGEgYnVmZmVyOgoKYGBgYwp2b2lkIHJiX2lvX2J1ZmZlcl9n
ZXRfbXV0YWJsZShWQUxVRSBzZWxmLCB2b2lkICoqYmFzZSwgc2l6ZV90ICpzaXplKTsKdm9pZCBy
Yl9pb19idWZmZXJfZ2V0X2ltbXV0YWJsZShWQUxVRSBzZWxmLCBjb25zdCB2b2lkICoqYmFzZSwg
c2l6ZV90ICpzaXplKTsKYGBgCgpJbiB0aGUgZmliZXIgc2NoZWR1bGVyLCBpdCBpcyB1c2VkIGxp
a2UgdGhpczoKCmBgYGMKVkFMVUUKcmJfZmliZXJfc2NoZWR1bGVyX2lvX3JlYWRfbWVtb3J5KFZB
TFVFIHNjaGVkdWxlciwgVkFMVUUgaW8sIHZvaWQgKmJhc2UsIHNpemVfdCBzaXplLCBzaXplX3Qg
bGVuZ3RoKQp7CiAgICBWQUxVRSBidWZmZXIgPSByYl9pb19idWZmZXJfbmV3KGJhc2UsIHNpemUs
IFJCX0lPX0JVRkZFUl9MT0NLRUQpOwoKICAgIFZBTFVFIHJlc3VsdCA9IHJiX2ZpYmVyX3NjaGVk
dWxlcl9pb19yZWFkKHNjaGVkdWxlciwgaW8sIGJ1ZmZlciwgbGVuZ3RoKTsKCiAgICByYl9pb19i
dWZmZXJfZnJlZShidWZmZXIpOwoKICAgIHJldHVybiByZXN1bHQ7Cn0KYGBgCgpUaGlzIGZ1bmN0
aW9uIGlzIGludm9rZWQgZnJvbSBgaW8uY2AgYXQgdmFyaW91cyBwbGFjZXMgdG8gZmlsbCB0aGUg
YnVmZmVyLiBXZSBzcGVjaWZpY2FsbHkgdGhlIGAoYmFzZSwgc2l6ZSlgIHR1cGxlLCBhbG9uZyB3
aXRoIGBsZW5ndGhgIHdoaWNoIGlzIHRoZSAqbWluaW11bSogbGVuZ3RoIHJlcXVpcmVkIGFuZCBh
c3Npc3RzIHdpdGggZWZmaWNpZW50IG5vbi1ibG9ja2luZyBpbXBsZW1lbnRhdGlvbi4KClRoZSBg
dXJpbmcuY2AgaW1wbGVtZW50YXRpb24gaW4gdGhlIGV2ZW50IGdlbSB1c2VzIHRoaXMgaW50ZXJm
YWNlIGxpa2Ugc286CgpgYGBjClZBTFVFIEV2ZW50X0JhY2tlbmRfVVJpbmdfaW9fcmVhZChWQUxV
RSBzZWxmLCBWQUxVRSBmaWJlciwgVkFMVUUgaW8sIFZBTFVFIGJ1ZmZlciwgVkFMVUUgX2xlbmd0
aCkgewoJc3RydWN0IEV2ZW50X0JhY2tlbmRfVVJpbmcgKmRhdGEgPSBOVUxMOwoJVHlwZWREYXRh
X0dldF9TdHJ1Y3Qoc2VsZiwgc3RydWN0IEV2ZW50X0JhY2tlbmRfVVJpbmcsICZFdmVudF9CYWNr
ZW5kX1VSaW5nX1R5cGUsIGRhdGEpOwoJCglpbnQgZGVzY3JpcHRvciA9IFJCX05VTTJJTlQocmJf
ZnVuY2FsbChpbywgaWRfZmlsZW5vLCAwKSk7CgkKCXZvaWQgKmJhc2U7CglzaXplX3Qgc2l6ZTsK
CXJiX2lvX2J1ZmZlcl9nZXRfbXV0YWJsZShidWZmZXIsICZiYXNlLCAmc2l6ZSk7CgkKCXNpemVf
dCBvZmZzZXQgPSAwOwoJc2l6ZV90IGxlbmd0aCA9IE5VTTJTSVpFVChfbGVuZ3RoKTsKCQoJd2hp
bGUgKGxlbmd0aCA+IDApIHsKCQlzaXplX3QgbWF4aW11bV9zaXplID0gc2l6ZSAtIG9mZnNldDsK
CQlpbnQgcmVzdWx0ID0gaW9fcmVhZChkYXRhLCBmaWJlciwgZGVzY3JpcHRvciwgKGNoYXIqKWJh
c2Urb2Zmc2V0LCBtYXhpbXVtX3NpemUpOwoJCQoJCWlmIChyZXN1bHQgPT0gMCkgewoJCQlicmVh
azsKCQl9IGVsc2UgaWYgKHJlc3VsdCA+IDApIHsKCQkJb2Zmc2V0ICs9IHJlc3VsdDsKCQkJaWYg
KChzaXplX3QpcmVzdWx0ID4gbGVuZ3RoKSBicmVhazsKCQkJbGVuZ3RoIC09IHJlc3VsdDsKCQl9
IGVsc2UgaWYgKC1yZXN1bHQgPT0gRUFHQUlOIHx8IC1yZXN1bHQgPT0gRVdPVUxEQkxPQ0spIHsK
CQkJRXZlbnRfQmFja2VuZF9VUmluZ19pb193YWl0KHNlbGYsIGZpYmVyLCBpbywgUkJfSU5UMk5V
TShSRUFEQUJMRSkpOwoJCX0gZWxzZSB7CgkJCXJiX3N5c2Vycl9mYWlsKC1yZXN1bHQsIHN0cmVy
cm9yKC1yZXN1bHQpKTsKCQl9Cgl9CgkKCXJldHVybiBTSVpFVDJOVU0ob2Zmc2V0KTsKfQpgYGAK
CiMjIEJ1ZmZlciBBbGxvY2F0aW9uCgpUaGUgTGludXgga2VybmVsIHByb3ZpZGVzIHNvbWUgYWR2
YW5jZWQgbWVjaGFuaXNtcyBmb3IgcmVnaXN0ZXJpbmcgYnVmZmVycyBmb3IgYXN5bmNocm9ub3Vz
IEkvTyB0byByZWR1Y2UgcGVyLW9wZXJhdGlvbiBvdmVyaGVhZC4KCj4gVGhlIGlvX3VyaW5nX3Jl
Z2lzdGVyKCkgc3lzdGVtIGNhbGwgcmVnaXN0ZXJzIHVzZXIgYnVmZmVycyBvciBmaWxlcyBmb3Ig
dXNlIGluIGFuIGlvX3VyaW5nKDcpIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgZmQuIFJlZ2lzdGVy
aW5nIGZpbGVzIG9yIHVzZXIgYnVmZmVycyBhbGxvd3MgdGhlIGtlcm5lbCB0byB0YWtlIGxvbmcg
dGVybSByZWZlcmVuY2VzIHRvIGludGVybmFsIGRhdGEgc3RydWN0dXJlcyBvciBjcmVhdGUgbG9u
ZyB0ZXJtIG1hcHBpbmdzIG9mIGFwcGxpY2F0aW9uIG1lbW9yeSwgZ3JlYXRseSByZWR1Y2luZyBw
ZXItSS9PIG92ZXJoZWFkLgoKV2l0aCBhcHByb3ByaWF0ZSBzdXBwb3J0LCB3ZSBjYW4gdXNlIGBJ
T1JJTkdfT1BfUFJPVklERV9CVUZGRVJTYCB0byBlZmZpY2llbnRseSBtYW5hZ2UgYnVmZmVycyBp
biBhcHBsaWNhdGlvbnMgd2hpY2ggYXJlIGRlYWxpbmcgd2l0aCBsb3RzIG9mIHNvY2tldHMuIFNl
ZSA8aHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvaW8tdXJpbmcvMjAyMDAyMjgyMDMwNTMuMjUwMjMt
MS1heGJvZUBrZXJuZWwuZGsvVC8+IGZvciBtb3JlIGRldGFpbHMgYWJvdXQgaG93IGl0IHdvcmtz
LiBJJ20gc3RpbGwgZXhwbG9yaW5nIHRoZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMgb2YgdGhp
cywgYnV0IHRoZSBwcm9wb3NlZCBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyBzdWZmaWNpZW50IG1l
dGEtZGF0YSBmb3IgdXMgdG8gZXhwbG9yZSB0aGlzIGluIHJlYWwgd29ybGQgc2NoZWR1bGVycy4K
ClBSOiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvNDYyMQoKCgotLSAKaHR0cHM6
Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVx
dWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVi
eS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread