[ruby-core:97015] [Ruby master Feature#16511] Staged warnings for keyword arguments

From: daniel@...42.com
Date: 2020-01-29 03:37:57 UTC
List: ruby-core #97015
SXNzdWUgIzE2NTExIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp
Lg0KDQoNCk9rLCBpdCB0b29rIGEgd2hpbGUgdG8gcGxheSB3aXRoIHRoZSB2bV9hcmdzIGNvZGUg
ZW5vdWdoIHRvIHJlYWxseSB1bmRlcnN0YW5kIGl0LCBidXQgSSBmaW5hbGx5IGhhdmUgbXkgb3du
ICoqcHJvb2Ygb2YgY29uY2VwdCoqIHJlYWR5ISDjgYrlvoXjgZ/jgZvjgZfjgb7jgZfjgZ/jgIIN
Cmh0dHBzOi8vZ2l0aHViLmNvbS9kYW40Mi9ydWJ5L3RyZWUva3dhcmctd2FybmluZ3MtMTY1MTEN
ClBsZWFzZSBjaGVjayBpdCBvdXQuIEknbSBzdXJlIHRoZXJlIGFyZSBzdGlsbCBzb21lIGJ1Z3Mg
dG8gd29yayBvdXQsIHRob3VnaCwgc28gZG9uJ3QgdGFrZSB0aGF0IHRvIG1lYW4gdGhhdCB0aGUg
ZW50aXJlIGlkZWEgaXMgZmxhd2VkLg0KDQpOb3RlOiBJIGhlYXZpbHkgcmVmYWN0b3JlZCB0aGUg
dm1fYXJncyBjb2RlIGluIG9yZGVyIHRvIHVuZGVyc3RhbmQgaXQsIGJ1dCBfcGxlYXNlXyBkb24n
dCBmb2N1cyBvbiB0aGF0OyB0aGlzIGlzIGludGVuZGVkIGFzIHByb29mIG9mIGNvbmNlcHQgdG8g
ZGVtb25zdHJhdGUgdGhlIGJlbmVmaXRzIG9mIHRoaXMgYXBwcm9hY2gsIG5vdCBhIHBvbGlzaGVk
IHB1bGwgcmVxdWVzdC4gKEFsdGhvdWdoIEkgX2FtXyBwcmV0dHkgaGFwcHkgYWJvdXQgaG93IHRo
b3NlIHJlZmFjdG9yaW5ncyB0dXJuZWQgb3V0LikNCg0KQmVsb3cgSSByZWZlciB0byAyLjcuZSBm
b3IgcHJvcG9zYWwgIzE2NDYzOyBhbmQgMi43LmQgLyAzLnguZCBmb3IgdGhpcyBwcm9wb3NhbC4N
Cg0KQmVuZWZpdHM6DQoNCiMjIyBUaHJlZSBsZXZlbHMgb2YgdXJnZW5jeSBpbiB3YXJuaW5ncw0K
DQpbRklYIE5PV106IG11c3QgYmUgZml4ZWQgbm93IHNpbmNlIGJlaGF2aW9yIHdpbGwgYmUgZGlm
ZmVyZW50IGluIDMuMCwgZm9yIGV4YW1wbGUgSGFzaCBpcyBubyBsb25nZXIgY29udmVydGVkIHRv
IGtleXdvcmRzDQpbZml4IG5vd106IHdpbGwgZXZlbnR1YWxseSByYWlzZSBlcnJvcjsgc2hvdWxk
IGJlIGZpeGVkIG5vdyBidXQgdGhlcmUncyBubyBodXJyeSBvciBiZW5lZml0IHRvIGJyZWFrIHBl
b3BsZSdzIHN0dWZmIGluIDMuMA0KW2ZpeCBpbiAzLnhdOiB3aWxsIGV2ZW50dWFsbHkgcmFpc2Ug
ZXJyb3I7IGZpeCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIDIueDsgdGhlcmVmb3JlIG1lc3NhZ2Ug
aXMgbm90IGRpc3BsYXllZCBpbiAyLjc7IGZpeCBvbmNlIHlvdSdyZSByZWFkeSB0byBkcm9wIHN1
cHBvcnQgZm9yIHJ1YnkgMi54DQoNClRoaXMgaXMgYmVjYXVzZSB0aGVyZSBhcmUgZGlmZmVyZW50
IG5lZWRzOg0KKiBhcHAgZGV2ZWxvcGVyIGNhcmVzIGFib3V0IGhpcyBjdXJyZW50IHZlcnNpb24g
b2YgcnVieSBvbmx5DQoqIGdlbSBkZXZlbG9wZXIgY2FyZXMgYWJvdXQgcmVtYWluaW5nIGNvbXBh
dGlibGUgd2l0aCBhIGZldyB2ZXJzaW9ucw0KKiBnZW0gdXNlciBkb2Vzbid0IHdhbnQgdG8gdXBn
cmFkZSB0byBhIG5ldyBtYWpvciB2ZXJzaW9uIG9mIHRoZSBnZW0gd2l0aCBhbiBpbmNvbXBhdGli
bGUgQVBJDQoNCkluIHRoaXMgcHJvb2Ygb2YgY29uY2VwdCB0aGUgdGhyZWUgbGFiZWxzIGFib3Zl
IGFyZSBzaW1wbHkgYXBwZW5kZWQgdG8gdGhlIHdhcm5pbmdzLCBidXQgaW4gYSBmaW5hbCB2ZXJz
aW9uIHRoZXkgd291bGQgaW5zdGVhZCBjaGFuZ2UgdGhlIF92aXNpYmlsaXR5XyBvZiB0aGUgd2Fy
bmluZ3MuDQoNCiMjIyBEZWxlZ2F0aW9uIGlzIGJhY2t3YXJkIGNvbXBhdGlibGUNCg0KYGBgcnVi
eQ0KZGVmIGZvbygqYXJncyk7IHAgYXJnczsgZW5kDQpkZWYgYmFyKCoqa3cpOyBwIGt3OyBlbmQN
CmRlZiBkZWxlZyhtLCphcmdzKTsgc2VuZChtLCphcmdzKTsgZW5kDQpydWJ5Ml9rZXl3b3JkcyBk
ZWYgZGVsZWcyKG0sKmFyZ3MpOyBzZW5kKG0sKmFyZ3MpOyBlbmQNCmRlZiBkZWxlZ1YobSxhKTsg
c2VuZChtLGEpOyBlbmQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDIuNyAgICAg
IDIuNy5lICAgIDIuNy5kDQpkZWxlZyg6YmFyLCB4OjEpICAjPT4gezp4PT4xfSAgIyB3YXJuaW5n
ICAtICAgICAgICAtICAgIA0KZGVsZWcyKDpiYXIsIHg6MSkgIz0+IHs6eD0+MX0gICMgLSAgICAg
ICAgLSAgICAgICAgLSAgICANCmRlbGVnVig6YmFyLCB4OjEpICM9PiB7Ong9PjF9ICAjIHdhcm5p
bmcgIHdhcm5pbmcgIC0gICAgDQpkZWxlZyg6Zm9vLCAyKSAgICAjPT4gWzJdDQpkZWxlZzIoOmZv
bywgMikgICAjPT4gWzJdDQpkZWxlZ1YoOmZvbywgMikgICAjPT4gWzJdDQpgYGANCg0KVGhpcyBl
eGFtcGxlIGRlbW9uc3RyYXRlcyB0aGF0IGRlbGVnYXRpb24gX2Nhbl8gYnJlYWsgZXZlbiBpZiBp
dCBkb2Vzbid0IHVzZSBgKmFyZ3NgLiBJbiB0aGlzIGNhc2UgeW91J2QgaGF2ZSB0byBjaGFuZ2Ug
YGRlbGVnVmAgdG8gdXNlIGAqYXJnc2AgZGVsZWdhdGlvbiB3aXRoIHJ1YnkyX2tleXdvcmRzLiBJ
IGFja25vd2xlZGdlIHRoaXMgaXMgdW5saWtlbHkgdG8gaGFwcGVuIGluIHByYWN0aWNlLCBidXQg
c2luY2UgaXQncyB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlLi4uIGFsbCBlbHNlIGJlaW5nIGVxdWFs
IHdoeSBub3QgY2hvb3NlIHRoZSBhcHByb2FjaCB0aGF0IGhhbmRsZXMgZXZlbiB0aGlzIHJlbW90
ZSBwb3NzaWJpbGl0eT8NCg0KIyMjIEtleXdvcmRzLXRvLXBvc2l0aW9uYWwgaXMgY29tcGF0aWJs
ZSB3aXRoIDIuNg0KDQpgYGBydWJ5DQpkZWYgZm9vKCphcmdzKTsgcCBhcmdzOyBlbmQNCmgwID0g
e30NCmgxID0ge2s6IDQyfQ0KZm9vKCkgICAgICM9PiBbXSAgDQpmb28oKipoMCkgIz0+IFt7fV0g
ICAgICAgKGxpa2UgMi42LCB1bmxpa2UgMi43KQ0KZm9vKCoqaDEpICM9PiBbezprPT40Mn1dDQpg
YGANCg0KU2luY2UgaXQncyBiZWVuIGRlY2lkZWQgdGhhdCB0aGUgY29udmVyc2lvbiBmcm9tIGtl
eXdvcmRzIHRvIHBvc2l0aW9uYWwgd2lsbCByZW1haW4gZm9yZXZlciBmb3IgdGhlIHNha2Ugb2Yg
Y29tcGF0aWJpbGl0eSwgSSBzdHJvbmdseSBiZWxpZXZlIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGlu
dHJvZHVjZSBhbiBpbmNvbXBhdGliaWxpdHkgaW4gdGhpcyBjb21wYXRpYmlsaXR5IGJlaGF2aW9y
Lg0KDQojIyMgYCoqa3dgIGRlbGVnYXRpb24gZG9lc24ndCBpbnRyb2R1Y2UgYWRkaXRpb25hbCBo
YXNoIA0KDQpgYGBydWJ5DQpkZWYgZm9vKCphcmdzKTsgcCBhcmdzOyBlbmQNCmRlZiBkZWxlZygq
YSwqKmspOyBmb28oKmEsKiprKTsgZW5kDQpoMCA9IHt9DQpoMSA9IHtrOiA0Mn0NCnAgZm9vKCkg
ICAgPT1kZWxlZygpICAgICAgIz0+IFtdID09IFtdICAgICAgICAgICAgICAgICAjPT4gdHJ1ZSwg
dW5saWtlIFtdID09IFt7fV0gaW4gMi42DQpwIGZvbygqKmgwKT09ZGVsZWcoKipoMCkgICM9PiBb
e31dID09IFt7fV0gICAgICAgICAgICAgIz0+IHRydWUgICAgICAgICAgICAgICANCnAgZm9vKCoq
aDEpPT1kZWxlZygqKmgxKSAgIz0+IFt7Oms9PjQyfV0gPT0gW3s6az0+NDJ9XSAjPT4gdHJ1ZQ0K
cCBmb28oe30pICA9PWRlbGVnKHt9KSAgICAjPT4gW3t9XSA9PSBbe31dICAgICAgICAgICAgICM9
PiB0cnVlLCB1bmxpa2UgW3t9XSA9PSBbXSBpbiAyLjcgLi4uIGJ1dCB3aXRoIFtGSVggTk9XXSB3
YXJuaW5nDQpgYGANCg0KSSBpbnRyb2R1Y2VkIGEgZGlzdGluY3Rpb24gYmV0d2VlbiBhbiBlbXB0
eSBrd3NwbGF0IGFuZCBhICJub25leGlzdGVudCIga3dzcGxhdDsgdGhlIGxhdGVyIGlzIG5vdCBj
b252ZXJ0ZWQgdG8gYW4gZW1wdHkgcG9zaXRpb25hbCBoYXNoLiBJJ3ZlIGNvbWUgdG8gYmVsaWV2
ZSB0aGlzIGlzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBoYXZlIGJvdGggS2V5d29yZHMtdG8tcG9z
aXRpb25hbCBjb21wYXRpYmlsaXR5IGFuZCBgKiprd2AgZGVsZWdhdGlvbiB3b3JrIGF0IHRoZSBz
YW1lIHRpbWUuDQoNCiMjIyBEZXN0cnVjdHVyaW5nIGl0ZXJhdGlvbiBpcyBjb21wYXRpYmxlDQoN
CmBgYHJ1YnkNCnAgW3g6MV0ucHVzaCh4OjIpLm1hcHsgfHg6fCB4IH0gICAgICM9PiBbMSwgMl0g
IHdpdGggd2FybmluZyBpbiAyLjcgYW5kIDIuNy5lIGFuZCAzLnguZA0KcCBbe3g6MX1dLnB1c2go
e3g6Mn0pLm1hcHsgfHg6fCB4IH0gIz0+IFsxLCAyXSAgd2l0aCB3YXJuaW5nIGluIDIuNyBhbmQg
Mi43LmUgYW5kIDIuNy5kDQpgYGANCg0KSXQgbWF5IG5vdCBiZSBhIGNvbW1vbiBwYXR0ZXJuLCBi
dXQgYXQgbGVhc3QgMiBwZW9wbGUgaGF2ZSByZXBvcnRlZCB0aGlzIGJlaW5nIGFuIGlzc3VlLiBT
aW5jZSB0aGVyZSdzIGEgc29sdXRpb24gdGhhdCBhbGxvd3MgdGhpcyB0byB3b3JrLCB3aHkgbm90
IHRha2UgaXQ/IEluIHRoZSBlbmQgbWF5YmUgbWF0eiB3aWxsIGRlY2lkZSB0byBraWxsIHRoaXMg
ZmVhdHVyZSBidXQgSSB3b3VsZCBwcmVmZXIgdG8gaGF2ZSBhbiBhY3R1YWwgZGlzY3Vzc2lvbiBv
biB0aGlzIHJhdGhlciB0aGFuIHJ1c2ggdGhlICJraWxsIiBkZWNpc2lvbiBqdXN0IGJlY2F1c2Ug
dGhlIGN1cnJlbnQgYXBwcm9hY2ggZG9lc24ndCBhbGxvdyB0aGlzIGZsZXhpYmlsaXR5Lg0KDQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxNjUxMTog
U3RhZ2VkIHdhcm5pbmdzIGZvciBrZXl3b3JkIGFyZ3VtZW50cw0KaHR0cHM6Ly9idWdzLnJ1Ynkt
bGFuZy5vcmcvaXNzdWVzLzE2NTExI2NoYW5nZS04NDEwMw0KDQoqIEF1dGhvcjogRGFuMDA0MiAo
RGFuaWVsIERlTG9ybWUpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQoqIEFz
c2lnbmVlOiANCiogVGFyZ2V0IHZlcnNpb246IA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KQXMgYW4gYWx0ZXJuYXRpdmUgdG8gIzE2NDYzIGFuZCAjMTY0OTQgSSdk
IGxpa2UgdG8gcHJvcG9zZSB0aGlzIGFwcHJvYWNoLCB3aGljaCBJIGJlbGlldmUgYWxsb3dzIGEg
KiptdWNoKiogbW9yZSBmbGV4aWJsZSBwYXRoIGZvciBtaWdyYXRpb24gb2Yga2V5d29yZCBhcmd1
bWVudHMuDQoNClRoZSBpZGVhIGlzIHRvIGluZGljYXRlIGZvciBldmVyeSBIYXNoIG9iamVjdCBp
ZiBpdCdzIGludGVuZGVkIHRvIHJlcHJlc2VudCBhIF9rZXl3b3JkXyBoYXNoIG9yIGEgX2RhdGFf
IGhhc2guIFRoaXMgZXh0cmEgaW5mb3JtYXRpb24gaXMgdGhlbiB1c2VkIHRvIGdlbmVyYXRlIG1v
cmUgZ3JhbnVsYXIgd2FybmluZ3MgZGVwZW5kaW5nIG9uIGEgdXNlcidzIGNvbXBhdGliaWxpdHkg
bmVlZHMuDQoNClRoZSAia2V5d29yZG5lc3MiIG9mIGEgaGFzaCB3b3VsZCBiZSBpbmRpY2F0ZWQg
YnkgYSAqKmZsYWcqKiBvbiB0aGUgSGFzaCBvYmplY3Q7IHRoaXMgaXMgYWxyZWFkeSBpbXBsZW1l
bnRlZCBpbiAyLjcgYW5kIGlzIHRoZSBhcHByb2FjaCBmYXZvcmVkIGJ5IE1hdHouIExldCdzIGNh
bGwgdGhpcyBmbGFnZ2VkIGhhc2ggYSAiS3dIYXNoIiwgYW5kIGEgbm9uLWZsYWdnZWQgaGFzaCBp
cyBqdXN0IGEgIkhhc2giLiBOb3RlOiB0aGlzIGNvdWxkIGFsc28gYmUgaW1wbGVtZW50ZWQgdmlh
IGEgKipzdWJjbGFzcyoqIG9mIEhhc2ggKEkgcGVyc29uYWxseSBmYXZvciB0aGlzIG9iamVjdC1v
cmllbnRlZCBhcHByb2FjaCkgd2hpY2ggd2FzIHRoZSBvcmlnaW5hbCBpZGVhIGluIHRoaXMgcHJv
cG9zYWwuDQoNCkknbGwgdHJ5IHRvIGRlc2NyaWJlIHRoZSBpZGVhIGluIGRldGFpbCBieSBicmVh
a2luZyBpdCBkb3duIGludG8gZmlndXJhdGl2ZSBzdGVwcy4gKFNraXAgdG8gIlB1dHRpbmcgaXQg
YWxsIHRvZ2V0aGVyIiBmb3IgdGhlIFRMO0RSIHZlcnNpb24uKSBJbWFnaW5lIHN0YXJ0aW5nIHdp
dGggcnVieSAyLjYgYW5kIHRoZW46DQoNCiMjIyBTdGVwIDENCg0KV2hlbiBhIGRvdWJsZS1zcGxh
dCBvciBhIGJyYWNlLWxlc3MgaGFzaCBpcyB1c2VkLCBpbnN0ZWFkIG9mIGEgSGFzaCBpdCBjcmVh
dGVzIGEgS3dIYXNoLg0KDQpgYGBydWJ5DQpkZWYgZm9vKHgpIHggZW5kDQpmb28oazoxKS5jbGFz
cyAgICAgICM9PiBLd0hhc2gNCmZvbygqKmhhc2gpLmNsYXNzICAgIz0+IEt3SGFzaA0KW2s6MV0u
bGFzdC5jbGFzcyAgICAjPT4gS3dIYXNoDQpbKipoYXNoXS5sYXN0LmNsYXNzICM9PiBLd0hhc2gN
CnsqKmhhc2h9LmNsYXNzICAgICAgIz0+IEhhc2gNCmBgYA0KDQpBdCB0aGlzIHBvaW50IHdlIGhh
dmVuJ3QgaW50cm9kdWNlZCBhbnkgcmVhbCBjaGFuZ2UuIEV2ZXJ5dGhpbmcgdGhhdCB3b3JrZWQg
YmVmb3JlIGlzIHN0aWxsIHdvcmtpbmcgdGhlIHNhbWUgd2F5Lg0KKFdpdGggYSBtaW5vciBleGNl
cHRpb24gaWYgdXNpbmcgdGhlIHN1YmNsYXNzIGFwcHJvYWNoOiB1bnVzdWFsIGNvZGUgbGlrZSBg
a3cuY2xhc3MgPT0gSGFzaGAgd291bGQgbm93IHJldHVybiBmYWxzZS4pDQoNCiMjIyBTdGVwIDIN
Cg0KV2hlbiB0aGVyZSBpcyBhbWJpZ3VpdHkgZHVlIHRvIG9wdGlvbmFsIHZzIGtleXdvcmQgYXJn
dW1lbnQsIHdlIHJlbHkgb24gdGhlIGxhc3QgYXJndW1lbnQgYmVpbmcgSGFzaCBvciBLd0hhc2gg
dG8gZGlzYW1iaWd1YXRlLg0KDQpgYGBydWJ5DQpkZWYgZm9vKHg9bmlsLCAqKmt3KQ0KICBbeCxr
d10NCmVuZA0KZm9vKHtrOjF9KSAjPT4gW3trOjF9LHt9XQ0KZm9vKGs6MSkgICAjPT4gW25pbCx7
azoxfV0NCmBgYA0KDQpUaGlzIGlzIHRoZSBfbWluaW11bV8gYW1vdW50IG9mIGluY29tcGF0aWJp
bGl0eSByZXF1aXJlZCB0byBzb2x2ZSBBTEwgYnVncyBwcmV2aW91c2x5IHJlcG9ydGVkIHdpdGgg
a2V5d29yZCBhcmd1bWVudHMuICgjODA0MCwgIzgzMTYsICM5ODk4LCAjMTA4NTYsICMxMTIzNiwg
IzExOTY3LCAjMTIxMDQsICMxMjcxNywgIzEyODIxLCAjMTMzMzYsICMxMzY0NywgIzE0MTMwLCBl
dGMuKSANCg0KVGhlIHdhcm5pbmdzIGZvciB0aGlzIHdvdWxkIGJlIGFib3V0IGFuIGltcGVuZGlu
ZyBfY2hhbmdlIG9mIGJlaGF2aW9yXyBpbiB0aGUgX25leHQgcnVieSB2ZXJzaW9uXywgd2hlcmUg
YGZvbyh7azoxfSlgIGlzIG5vIGxvbmdlciBpbnRlcnByZXRlZCBhcyBrZXl3b3JkIGFyZ3VtZW50
Lg0KDQojIyMgU3RlcCAzDQoNCkludHJvZHVjZSBhZGRpdGlvbmFsIGluY29tcGF0aWJpbGl0eSB0
byBpbXByb3ZlIGNsYXJpdHkgb2YgZGVzaWduLiBIZXJlIHdlIGRlcHJlY2F0ZSB0aGUgYXV0b21h
dGljIGNvbnZlcnNpb24gb2YgSGFzaCB0byBrZXl3b3JkIGFyZ3VtZW50OyBvbmx5IEt3SGFzaCBp
cyBhY2NlcHRlZC4gV2l0aCBhIGRlcHJlY2F0aW9uL3dhcm5pbmcgcGhhc2UsIG9mIGNvdXJzZS4g
VGhlICJhdXRvbWF0aWMiIHByb21vdGlvbiBvZiBhIEt3SGFzaCB0byBhIGtleXdvcmQgYXJndW1l
bnQgZm9sbG93cyB0aGUgc2FtZSBydWxlcyBhcyBhIEhhc2ggaW4gMi42OyBzaW5jZSB0aGUgS3dI
YXNoIGlzIGNvbmNlcHR1YWxseSBpbnRlbmRlZCB0byByZXByZXNlbnQga2V5d29yZCBhcmd1bWVu
dHMsIHRoaXMgY29udmVyc2lvbiBtYWtlcyBzZW5zZSBpbiBhIHdheSB0aGF0IGEgbm9ybWFsIGRh
dGEgSGFzaCBkb2Vzbid0LiBXZSd2ZSB0YWtlbiB0aGUgImxhc3QgcG9zaXRpb25hbCBoYXNoIiBj
b25jZXB0IGFuZCBzcGxpdCBpdCBpbnRvICJjb25jZXB0dWFsbHkgYSBoYXNoIiBhbmQgImNvbmNl
cHR1YWxseSBrZXl3b3JkIGFyZ3VtZW50cyIuIF9Nb3N0IGltcG9ydGFudGx5XywgYWxsIHRoZSBj
aGFuZ2VzIHJlcXVpcmVkIHRvIHNpbGVuY2UgdGhlc2Ugd2FybmluZ3MgYXJlIF9jb21wYXRpYmxl
IHdpdGggMi42Xy4NCg0KYGBgcnVieQ0KZGVmIGZvbyh4LCAqKmt3KTsgZW5kDQpmb28oazoxKSAg
ICAgICMgQXJndW1lbnRFcnJvciBiZWNhdXNlIHggbm90IHNwZWNpZmllZA0KZm9vKDEsIHtrOjF9
KSAjIEFyZ3VtZW50RXJyb3IgYmVjYXVzZSB0b28gbWFueSBhcmd1bWVudHM7IEhhc2ggY2Fubm90
IGJlIGNvbnZlcnRlZCB0byBLd0hhc2hzDQpvcHRzID0gW2s6MV0uZmlyc3QNCmZvbyhvcHRzKSAg
ICAgIyBvcHRzIGlzIGEgS3dIYXNoIHRoZXJlZm9yZSB1c2VkIGFzIGtleXdvcmQgYXJndW1lbnQ7
IEFyZ3VtZW50RXJyb3IgYmVjYXVzZSB4IG5vdCBzcGVjaWZpZWQNCmZvbygxLCBvcHRzKSAgIyBv
cHRzIGlzIGEgS3dIYXNoIHRoZXJlZm9yZSB1c2VkIGFzIGtleXdvcmQgYXJndW1lbnQNCmBgYA0K
DQpUaGUgd2FybmluZ3MgZm9yIHRoaXMgd291bGQgYmUgYWJvdXQgdXBjb21pbmcgX2Vycm9yc18g
Zm9yIHBvc2l0aW9uYWwgYXJndW1lbnRzOiBgZm9vKHg6MSlgIHdpbGwgYmUgImdpdmVuIDAsIGV4
cGVjdGVkIDEiIGFuZCBgZm9vKDEse3g6Mn0pYCB3aWxsIGJlICJnaXZlbiAyLCBleHBlY3RlZCAx
Ii4gU3VjaCBlcnJvcnMgYXJlIHVzZWZ1bCB3aGVuIGRldmVsb3BpbmcsIGJ1dCB0aGVyZSBpcyBu
byBuZXcgZnVuY3Rpb25hbGl0eSBwZXIgc2UsIGp1c3QgYSBzdHJpY3RlciBzeW50YXguIFNvIGl0
J3MgbGVzcyBpbXBvcnRhbnQgdG8gZXNjYWxhdGUgdG8gYW4gZXJyb3IgYW5kIHdlIGNhbiBrZWVw
IHRoZSB3YXJuaW5ncyBmb3IgbG9uZ2VyIHRoYW4gU3RlcCAyLg0KDQpBdCB0aGlzIHBvaW50IHdl
IGhhdmUgYWNoaWV2ZWQgX2FsbW9zdC1mdWxsXyAqKmR5bmFtaWMqKiBrZXl3b3JkIHNlcGFyYXRp
b24sIGFzIG9wcG9zZWQgdG8gdGhlIGN1cnJlbnQgX2FsbW9zdC1mdWxsXyAqKnN0YXRpYyoqIGFw
cHJvYWNoLiBJIHdhbnQgdG8gbWFrZSB0aGUgcG9pbnQgaGVyZSB0aGF0LCB5ZXMsIGtleXdvcmQg
YXJndW1lbnRzICoqYXJlKiogc2VwYXJhdGVkLCBpdCdzIGp1c3QgYSBkaWZmZXJlbnQgcGFyYWRp
Z20uIFdpdGggc3RhdGljIHNlcGFyYXRpb24sIGEga2V5d29yZCBhcmd1bWVudCBpcyBkZWZpbmVk
IGxleGljYWxseSBieSBhIGRvdWJsZS1zcGxhdC4gV2l0aCBkeW5hbWljIHNlcGFyYXRpb24sIGEg
a2V5d29yZCBhcmd1bWVudCBpcyB3aGVuIHRoZSBsYXN0IGFyZ3VtZW50IGlzIGEgS3dIYXNoLiB7
e05vdGU6IEknbSBzYXlpbmcgImFsbW9zdC1mdWxsIiBiZWNhdXNlIEt3SGFzaCBpcyBub3QgcHJv
bW90ZWQgdG8ga2V5d29yZHMgaW4gYGRlZiBmb28oYSwqKmt3KTtlbmQ7Zm9vKHg6MSlgIGFuZCBi
ZWNhdXNlIHN0YXRpYyBrZXl3b3JkcyBhcmUgYXV0by1kZW1vdGVkIHRvIHBvc2l0aW9uYWwgaW4g
YGRlZiBmb28oYSk7ZW5kO2Zvbyh4OjEpYH19DQoNCkFueSBmb3JtIG9mIGRlbGVnYXRpb24gd29y
a3Mgd2l0aCBubyBjaGFuZ2UgcmVxdWlyZWQuIFRoaXMgcHJlc2VydmVzIHRoZSBiZWhhdmlvciBv
ZiAyLjYgYnV0IG9ubHkgZm9yIEt3SGFzaCBvYmplY3RzLiBUaGlzIGlzIHNpbWlsYXIgdG8gaGF2
aW5nIDIuNyB3aXRoIGBydWJ5Ml9rZXl3b3Jkc2AgZW5hYmxlZCBieSBkZWZhdWx0LiBCdXQgYWxz
byBkaWZmZXJlbnQgaW4gc29tZSB3YXlzOyBtb3N0IG5vdGFibHkgaXQgYWxsb3dzIHRoZSBjYXNl
IHNob3duIGluICMxNjQ5NCB0byB3b3JrIGJ5IGRlZmF1bHQ6DQoNCmBgYHJ1YnkNCmFycmF5ID0g
W3g6MV0NCmFycmF5LnB1c2goeDoyKQ0KYXJyYXkubWFweyB8eDp8IHggfSAjPT4gWzEsMl0NClt7
eDozfV0ubWFweyB8eDp8IHggfSAjPT4gYnV0IHRoaXMgd2FybnMsIGFzIGl0IHNob3VsZA0KYGBg
DQoNClRoZSBjdXJyZW50IGFwcHJvYWNoIGRvZXMgbm90IGFsbG93IHRoaXMgdG8gd29yayBhdCBh
bGwuIFRoZSBzb2x1dGlvbiBwcm9wb3NlZCBpbiAjMTY0OTQgaGFzIGFsbCB0aGUgc2FtZSBmbGF3
cyBhcyBIYXNoLWJhc2VkIGtleXdvcmQgYXJndW1lbnRzOyB3aGF0IGhhcHBlbnMgdG8gYGVhY2h7
IHx4PW5pbCwqKmt3fCB9YCA/IFRoaXMgc29sdXRpb24gYWxsb3dzIGEgS3dIYXNoIHRvIGJlIGNv
bnZlcnRlZCB0by4uLiBrZXl3b3Jkcy4gVmVyeSB1bnN1cnByaXNpbmcuDQoNCkdpdmVuIHRoYXQg
cnVieSBpcyBhIGR5bmFtaWNhbGx5LXR5cGVkIGxhbmd1YWdlIEkgZmVlbCB0aGF0IGR5bmFtaWMg
dHlwaW5nIG9mIGtleXdvcmRzIGlmIGEgbW9yZSBuYXR1cmFsIGZpdCB0aGFuIHN0YXRpYyB0eXBp
bmcuIEJ1dCBJIHJlYWxpemUgdGhhdCBtYW55IGRpc2FncmVlIHdpdGggdGhhdCwgd2hpY2ggaXMg
d2h5IHdlIGNvbnRpbnVlIHRvLi4uDQoNCiMjIyBTdGVwIDQNCg0KSW50cm9kdWNlIGFkZGl0aW9u
YWwgaW5jb21wYXRpYmlsaXR5IHRvIHJlYWNoIHN0YXRpYy9sZXhpY2FsIHNlcGFyYXRpb24gb2Yg
a2V5d29yZCBhcmd1bWVudHMuIEhlcmUgd2UgcmVxdWlyZSB0aGF0IGV2ZW4gYSBLd0hhc2ggc2hv
dWxkIGJlIHBhc3NlZCB3aXRoIGEgZG91YmxlLXNwbGF0IGluIG9yZGVyIHRvIHF1YWxpZnkgYXMg
YSBrZXl3b3JkIGFyZ3VtZW50Lg0KDQpgYGBydWJ5DQpkZWYgYmFyKCoqa3cpDQplbmQNCmRlZiBm
b28oKiprdykNCiAgYmFyKGt3KSAgICM9PiBlcnJvcjsgS3dIYXNoIHBhc3NlZCB3aXRob3V0ICoq
DQogIGJhcigqKmt3KSAjPT4gb2sNCmVuZA0KYGBgDQoNCkF0IHRoaXMgcG9pbnQgd2UndmUgcmVh
Y2hlZCB0aGUgc2FtZSBiZWhhdmlvciBhcyAyLjcuIERlbGVnYXRpb24gbmVlZHMgdG8gYmUgZml4
ZWQsIGJ1dCBhcyB3ZSBrbm93IHRoZSBjaGFuZ2VzIHJlcXVpcmVkIHRvIHNpbGVuY2UgdGhlc2Ug
d2FybmluZ3MgYXJlICoqbm90KiogY29tcGF0aWJsZSB3aXRoIDIuNiBvciAyLjcuIFRoZSB3YXJu
aW5ncyBmb3IgdGhpcyBhcmUgX2Z1bmRhbWVudGFsbHkgbm90IGZpeGFibGVfIGFzIGxvbmcgYXMg
U3RlcCAyIGhhcyBub3QgYmVlbiBmaXhlZC4gVGhpcyBpcyB0aGUgY29yZSByZWFzb24gd2h5IGBy
dWJ5Ml9rZXl3b3Jkc2AgaXMgY3VycmVudGx5IG5lY2Vzc2FyeSBpbiAyLjcuIFNvIGluIHRoZSB2
ZXJzaW9uIGFmdGVyIDIuNyB3ZSBjYW4gZW5hYmxlIHRoZXNlIHdhcm5pbmdzIGJ5IGRlZmF1bHQg
c2luY2UgaXQncyBub3cgcG9zc2libGUgdG8gZml4IGRlbGVnYXRpb24gdG8gdXNlIHN0YXRpYyBr
ZXl3b3Jkcy4gRXhjZXB0IHRoYXQgZ2VtIGF1dGhvcnMgd2hvIG5lZWQgdG8gc3RheSBjb21wYXRp
YmxlIHdpdGgg4omkMi43IGNhbm5vdCB5ZXQgbWFrZSB0aGVzZSBjaGFuZ2VzLCBzbyB3ZSBpbnRy
b2R1Y2UgYSB3YXkgdG8gX3NpbGVuY2UgKipvbmx5KiogdGhlc2UgIlN0ZXAgNCIgd2FybmluZ3Nf
LCBmb3IgcGVvcGxlIHdobyBuZWVkIHRvIHJlbWFpbiBjb21wYXRpYmxlIHdpdGgg4omkMi43LiBB
bmQgd2Uga2VlcCB0aGVtIGFzIHdhcm5pbmdzIGluc3RlYWQgb2YgZXJyb3JzIHVudGlsIHJ1Ynkg
Mi43IGlzIEVPTC4NCg0KU28gaW5zdGVhZCBvZiBoYXZpbmcgdG8gdXBkYXRlIGEgYnVuY2ggb2Yg
cGxhY2VzIHdpdGggYHJ1YnkyX2tleXdvcmRzYCBqdXN0IHRvIHRlbXBvcmFyaWx5IHNpbGVuY2Ug
d2FybmluZ3MsIGl0J3MgYSBzaW5nbGUgZmxhZyBsaWtlIGBXYXJuaW5nWzpydWJ5M19rZXl3b3Jk
c11gLiBPbmNlIHJ1YnkgMi43IGlzIEVPTCB0aGVzZSBiZWNvbWUgY29udHJvbGxlZCBieSBgV2Fy
bmluZ1s6ZGVwcmVjYXRlZF1gIHdoaWNoIHRlbGxzIHBlb3BsZSB0aGV5ICoqaGF2ZSoqIHRvIGZp
eCB0aGVpciBjb2RlLiBXaGljaCBpcyBqdXN0IGxpa2UgdGhlIGV2ZW50dWFsIGRlcHJlY2F0aW9u
IG9mIGBydWJ5Ml9rZXl3b3Jkc2AsIGp1c3Qgd2l0aG91dCB0aGUgYnVzeSB3b3JrIG9mIGFkZGlu
ZyBgcnVieTJfa2V5d29yZHNgIHN0YXRlbWVudHMgaW4gdGhlIGZpcnN0IHBsYWNlLiBCdXQgYWdh
aW4sIHRoaXMgaW50cm9kdWNlcyBubyBuZXcgZnVuY3Rpb25hbGl0eSwganVzdCBhIHN0cmljdGVy
IHN5bnRheC4gU28gd2UgY2FuIHBsYXkgbmljZSBhbmQgbGVhdmUgdGhlIHdhcm5pbmdzIGZvciBh
IGZldyB5ZWFycyBiZWZvcmUgY2hhbmdpbmcgdG8gZXJyb3JzLg0KDQpUaGUgcXVlc3Rpb24gcmVt
YWlucyBvZiBob3cgdG8gaGFuZGxlICMxNjQ5NCBoZXJlLiBFaXRoZXIgZGlzYWxsb3cgaXQgZW50
aXJlbHksIGJ1dCBJIHRoaW5rIHRoYXQgd291bGQgYmUgYSBzaGFtZS4gT3IganVzdCBsaWtlICMx
NjQ5NCBzdWdnZXN0cywgYWxsb3cgaGFzaCB1bnBhY2tpbmcgaW4gbm9uLWxhbWJkYSBQcm9jLiBF
eGNlcHQgdGhhdCBub3cgaXQgY2FuIGJlIGEgS3dIYXNoIGluc3RlYWQgb2YgYSBIYXNoLCB3aGlj
aCBhdCBsZWFzdCBwcmVzZXJ2ZXMgZHluYW1pYyBrZXl3b3JkIHNlcGFyYXRpb24uDQoNCiMjIFB1
dHRpbmcgaXQgYWxsIHRvZ2V0aGVyIChUTDtEUikNCg0KVGhlIGlkZWEgaXMgX25vdF8gdG8gcmVp
bXBsZW1lbnQga2V5d29yZCBhcmd1bWVudCBzZXBhcmF0aW9uOyBhbGwgdGhhdCBpcyBuZWVkZWQg
aXMgdG8gaW1wbGVtZW50IHRoZSB0aGluZ3MgYWJvdmUgdGhhdCBhcmUgbm90IGluIDIuNzoNCiog
Q3JlYXRlIGEgS3dIYXNoIG9iamVjdCBmb3IgYnJhY2UtbGVzcyBhbmQgZG91YmxlLXNwbGF0dGVk
IGhhc2hlcy4NCiogRGlmZmVyZW50aWF0ZSB0aGUgdmFyaW91cyB0eXBlcyBvZiB3YXJuaW5ncyBh
bmQgYWxsb3cgdG8gdG9nZ2xlIG9uL29mZiBzZXBhcmF0ZWx5DQogICogU3RlcCAyIHdhcm5pbmdz
IF9tdXN0XyBiZSBmaXhlZCBub3c7IGNhbm5vdCB0b2dnbGUgb2ZmDQogICogU3RlcCAzIHdhcm5p
bmdzIF9zaG91bGRfIGJlIGZpeGVkIG5vdyBidXQgeW91IGRvbid0IGFic29sdXRlbHkgbmVlZCB0
byB1cGdyYWRlIHlvdXIgZ2VtcyBqdXN0IGZvciB0aGF0DQogICogU3RlcCA0IHdhcm5pbmdzIF9z
aG91bGRfIGJlIGZpeGVkIGluIG5leHQgdmVyc2lvbiB1bmxlc3MgeW91IG5lZWQgdG8gc3VwcG9y
dCDiiaQyLjcNCg0KSSB0aGluayB0aGF0J3MgYWxsLCByZWFsbHkuLi4NCg0KIyMjIFByb3MNCiog
Q2xlYW5lciB3YXkgdG8gc29sdmUgIzE2NDk0DQoqIEJldHRlciBjb21wYXRpYmlsaXR5IChhdCBs
ZWFzdCB1bnRpbCAyLjYgaXMgRU9MKQ0KICAgKiBkZWxlZ2F0aW9uDQogICAqIHN0b3JpbmcgYW4g
YXJndW1lbnQgbGlzdCB0aGF0IGVuZHMgd2l0aCBhIEt3SGFzaA0KICAgKiBkZXN0cnVjdHVyaW5n
IGl0ZXJhdGlvbiAoIzE2NDk0KQ0KKiBXZSBjYW4gYXZvaWQgdGhlICJ1bmZvcnR1bmF0ZSBjb3Ju
ZXIgY2FzZSIgYXMgZGVzY3JpYmVkIGluIHRoZSBbcmVsZWFzZSBub3Rlc10oaHR0cHM6Ly93d3cu
cnVieS1sYW5nLm9yZy9lbi9uZXdzLzIwMTkvMTIvMTIvc2VwYXJhdGlvbi1vZi1wb3NpdGlvbmFs
LWFuZC1rZXl3b3JkLWFyZ3VtZW50cy1pbi1ydWJ5LTMtMC8pDQogICAqIGluIDIuNyBvbmx5IGRv
IG5vdCBvdXRwdXQgIlN0ZXAgNCIgd2FybmluZ3MsIGxlYXZlIGRlbGVnYXRpb24gbGlrZSBpdCB3
YXMNCiAgICogaW4gMi44IHRoZSAiU3RlcCAzIiB3YXJuaW5ncyBoYXZlIGJlZW4gZml4ZWQgYW5k
IGEgSGFzaCB3aWxsIG5vdCBiZSBjb252ZXJ0ZWQgdG8ga2V5d29yZCBhcmd1bWVudHMNCiAgICog
ZGVsZWdhdGlvbiBjYW4gbm93IHNhZmVseSBiZSBmaXhlZCB0byB1c2UgdGhlIGAqKmAgc3ludGF4
DQoqIHJ1YnkyX2tleXdvcmRzIGlzIG5vdCByZXF1aXJlZCwgd2hpY2ggaXMgZGVzaXJhYmxlIGJl
Y2F1c2UNCiAgICogaXQncyBhIGhpZGRlbiBmbGFnIF9oYWNrXw0KICAgKiBpdCByZXF1aXJlcyB0
byBjaGFuZ2UgdGhlIGNvZGUgbm93LCBhbmQgY2hhbmdlIGl0IF9hZ2Fpbl8gd2hlbiBydWJ5Ml9r
ZXl3b3JkcyBpcyBkZXByZWNhdGVkOyB0d2ljZSB0aGUgd29yazsgdHdpY2UgdGhlIGdlbSB1cGdy
YWRlcw0KICAgKiBpdCB3YXMgc3VwcG9zZWQgdG8gYmUgdXNlZCBvbmx5IGZvciBwZW9wbGUgd2hv
IG5lZWQgdG8gc3VwcG9ydCAyLjYgb3IgYmVsb3csIGJ1dCBpdCdzIGJlaW5nIG1pc3VuZGVyc3Rv
b2QgYXMgYW4gYWNjZXB0YWJsZSB3YXkgdG8gZml4IGRlbGVnYXRpb24gaW4gZ2VuZXJhbA0KICAg
KiB0aGVyZSdzIHRoZSBub24temVybyByaXNrIHRoYXQgcnVieTJfa2V5d29yZHMgd2lsbCBuZXZl
ciBiZSByZW1vdmVkLCBsZWF2aW5nIHVzIHdpdGggYSBwZXJtYW5lbnQgImhhY2sgbW9kZSINCiAg
ICAgICogZHluYW1pYyBrZXl3b3JkcyBhcmUgYnkgZmFyIHByZWZlcmFibGUgdG8gc3VwcG9ydGlu
ZyBydWJ5Ml9rZXl3b3JkcyBmb3JldmVyDQoqIExpa2VseSBfYmV0dGVyIHBlcmZvcm1hbmNlXywg
YXMgdGhlIEt3SGFzaCBjbGFzcyBjYW4gYmUgb3B0aW1pemVkIHNwZWNpZmljYWxseSBmb3IgdGhl
IGNoYXJhY3RlcmlzdGljcyBvZiBrZXl3b3JkIGFyZ3VtZW50cy4NCiogTW9yZSBmbGV4aWJsZSBt
aWdyYXRpb24NCiAgICogQWxsb3cgbW9yZSB0aW1lIHRvIHVwZ3JhZGUgdGhlIGhhcmQgc3R1ZmYg
aW4gU3RlcCA0DQogICAqIENhbiByZWFjaCB0aGUgX3NhbWVfIGdvYWwgYXMgdGhlIGN1cnJlbnQg
c3RhdGljIGFwcHJvYWNoDQogICAqIExhcmdlciAic3VwcG9ydCB6b25lIiBodHRwczovL3hrY2Qu
Y29tLzIyMjQvDQogICAqIEluc3RlYWQgb2Ygd2lkZS1yYW5naW5nIGluY29tcGF0aWJpbGl0aWVz
IGFsbCBhdCBvbmNlLCB0aGVyZSdzIHRoZSBfcG9zc2liaWxpdHlfIG9mIG1ha2luZyBpdCBmaW5l
ci1ncmFpbmVkIGFuZCBtb3JlIGdyYWR1YWwNCiAgICAgICogcnVieWlzdHMgY2FuIF9jaG9vc2Vf
IHRvIG1pZ3JhdGUgYWxsIGF0IG9uY2Ugb3IgaW4gc21hbGxlciBjaHVua3MNCiAgICogSXQgaGVk
Z2VzIHRoZSByaXNrcyBieSBrZWVwaW5nIG1vcmUgcG9zc2liaWxpdGllcyBvcGVuIGZvciBub3cu
DQogICAqIEl0IGFsbG93cyB0byBjb3Atb3V0IGF0IFN0ZXAgMyBpZiBTdGVwIDQgdHVybnMgb3V0
IHRvbyBoYXJkIGJlY2F1c2UgaXQgYnJlYWtzIHRvbyBtdWNoIHN0dWZmDQoNCiMjIyBDb25zDQoq
IEl0IGFsbG93cyB0byBjb3Atb3V0IGF0IFN0ZXAgMyBpZiBTdGVwIDQgdHVybnMgb3V0IHRvbyBo
YXJkIGJlY2F1c2UgaXQgYnJlYWtzIHRvbyBtdWNoIHN0dWZmDQoNCg0KDQoNCi0tIA0KaHR0cHM6
Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJl
cXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1
YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next