[#106341] [Ruby master Bug#18369] users.detect(:name, "Dorian") as shorthand for users.detect { |user| user.name == "Dorian" } — dorianmariefr <noreply@...>
SXNzdWUgIzE4MzY5IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGRvcmlhbm1hcmllZnIgKERvcmlhbiBN
14 messages
2021/11/30
[#106351] [Ruby master Bug#18371] Release branches (release information in general) — "tenderlovemaking (Aaron Patterson)" <noreply@...>
SXNzdWUgIzE4MzcxIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHRlbmRlcmxvdmVtYWtpbmcgKEFhcm9u
7 messages
2021/11/30
[ruby-core:105963] [Ruby master Feature#18020] Introduce `IO::Buffer` for fiber scheduler.
From:
"matz (Yukihiro Matsumoto)" <noreply@...>
Date:
2021-11-08 02:35:51 UTC
List:
ruby-core #105963
SXNzdWUgIzE4MDIwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4KCgpJIGFtIG5vdCBmdWxseSBzYXRpc2ZpZWQgd2l0aCB0aGUgcXVhbGl0eSBvZiB0aGUgY29k ZSAoYXQgdGhlIGxhc3QgdGltZSBJIGNoZWNrZWQgYSB3aGlsZSBhZ28pLCBidXQgYmFzaWNhbGx5 LCBJIGFncmVlIHdpdGggdGhlIG1lcmdpbmcuClNvIGxldCB1cyBleHBlcmltZW50IHdpdGggaXQu CgpNYXR6LgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVy ZSAjMTgwMjA6IEludHJvZHVjZSBgSU86OkJ1ZmZlcmAgZm9yIGZpYmVyIHNjaGVkdWxlci4KaHR0 cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4MDIwI2NoYW5nZS05NDUxMAoKKiBBdXRo b3I6IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlhbXMpCiogU3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6 IE5vcm1hbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFmdGVyIGNv bnRpbnVpbmcgdG8gYnVpbGQgb3V0IHRoZSBmaWJlciBzY2hlZHVsZXIgaW50ZXJmYWNlIGFuZCB0 aGUgc3BlY2lmaWMgaG9va3MgcmVxdWlyZWQgZm9yIGBpb191cmluZ2AsIEkgZm91bmQgc29tZSB0 cm91YmxlIHdpdGhpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgYElPYC4KCkkgZm91bmQgdGhhdCBp biBzb21lIGNhc2VzLCB3ZSBuZWVkIHRvIHJlYWQgaW50byB0aGUgaW50ZXJuYWwgSU8gYnVmZmVy cyBkaXJlY3RseS4gSSB0cmllZCBjcmVhdGluZyBhICJmYWtlIHN0cmluZyIgaW4gb3JkZXIgdG8g dHJhbnNpdCBiYWNrIGludG8gdGhlIFJ1YnkgZmliZXIgc2NoZWR1bGVyIGludGVyZmFjZSBhbmQg dGhpcyBkaWQgd29yayB0byBhIGNlcnRhaW4gZXh0ZW50LCBidXQgSSB3YXMgdG9sZCB3ZSBjYW5u b3QgZXhwb3NlIGZha2Ugc3RyaW5nIHRvIFJ1Ynkgc2NoZWR1bGVyIGludGVyZmFjZS4KClNvLCBh ZnRlciB0aGlzLCBhbmQgbWFueSBvdGhlciBmcnVzdHJhdGlvbnMgd2l0aCB1c2luZyBgU3RyaW5n YCBhcyBhIElPIGJ1ZmZlciwgSSBkZWNpZGVkIHRvIGltcGxlbWVudCBhIGxvdyBsZXZlbCBgSU86 OkJ1ZmZlcmAgYmFzZWQgb24gbXkgbmVlZHMgZm9yIGhpZ2ggcGVyZm9ybWFuY2UgSU8sIGFuZCBh cyBwYXJ0IG9mIHRoZSBmaWJlciBzY2hlZHVsZXIgaW50ZXJmYWNlLgoKSGVyZSBpcyByb3VnaGx5 IHRoZSBpbnRlcmZhY2UgaW1wbGVtZW50ZWQgYnkgdGhlIHNjaGVkdWxlciB3LnIudC4gdGhlIGJ1 ZmZlcjoKCmBgYHJ1YnkKY2xhc3MgU2NoZWR1bGVyCiAgIyBAcGFyYW1ldGVyIGJ1ZmZlciBbSU86 OkJ1ZmZlcl0gQnVmZmVyIGZvciByZWFkaW5nIGludG8uCiAgZGVmIGlvX3JlYWQoaW8sIGJ1ZmZl ciwgbGVuZ3RoKQogICAgIyBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSBgcmVhZGAgc3lzdGVt IGNhbGwsIElPX1VSSU5HX1JFQURWLCBldGMuCiAgZW5kCgogICMgQHBhcmFtZXRlciBidWZmZXIg W0lPOjpCdWZmZXJdIEJ1ZmZlciBmb3Igd3JpdGluZyBmcm9tLgogIGRlZiBpb193cml0ZShpbywg YnVmZmVyLCBsZW5ndGgpCiAgICAjIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIGJ5IGB3cml0ZWAg c3lzdGVtIGNhbGwsIElPX1VSSU5HX1dSSVRFViwgZXRjLgogIGVuZAoKICAjIFBvdGVudGlhbCBu ZXcgaG9va3MgKFNvY2tldCNyZWN2bXNnLCBzZW5kbXNnLCBldGMpOgogIGRlZiBpb19yZWN2bXNn KGlvLCBidWZmZXIsIGxlbmd0aCkKICBlbmQKZW5kCmBgYAoKSW4gcmV2aWV3aW5nIG90aGVyIGxh bmd1YWdlIGRlc2lnbnMsIEkgZm91bmQgdGhhdCB0aGlzIGRlc2lnbiBpcyB2ZXJ5IHNpbWlsYXIg dG8gQ3J5c3RhbCdzIElPIGJ1ZmZlcmluZyBzdHJhdGVneS4KClRoZSBwcm9wb3NlZCBpbXBsZW1l bnRhdGlvbiBwcm92aWRlcyBlbm91Z2ggb2YgYW4gaW50ZXJmYWNlIHRvIGltcGxlbWVudCBib3Ro IG5hdGl2ZSBzY2hlZHVsZXJzIGFzIHdlbGwgYXMgcHVyZSBSdWJ5IHNjaGVkdWxlcnMuIEl0IGFs c28gcHJvdmlkZXMgc29tZSBleHRyYSBmdW5jdGlvbmFsaXR5IGZvciBpbnRlcnByZXRpbmcgdGhl IGRhdGEgaW4gdGhlIGJ1ZmZlci4gVGhpcyBpcyBtb3N0bHkgZm9yIHRlc3RpbmcgYW5kIGV4cGVy aW1lbnRhdGlvbiwgYWx0aG91Z2ggaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBleHBvc2UgdGhpcyBp bnRlcmZhY2UgZm9yIGJpbmFyeSBwcm90b2NvbHMgbGlrZSBIVFRQLzIsIFFVSUMsIFdlYlNvY2tl dHMsIGV0Yy4KCiMjIFByb3Bvc2VkIFNvbHV0aW9uCgpXZSBpbnRyb2R1Y2UgbmV3IGNsYXNzIGBJ Tzo6QnVmZmVyYC4KCmBgYHJ1YnkKY2xhc3MgSU86OkJ1ZmZlcgogICMgQHJldHVybnMgW0lPOjpC dWZmZXJdIEEgYnVmZmVyIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJpbmcgZGF0YS4KICBk ZWYgc2VsZi5mb3Ioc3RyaW5nKQogIGVuZAoKICBQQUdFX1NJWkUgPSAjIC4uLiBvcGVyYXRpbmcg c3lzdGVtIHBhZ2Ugc2l6ZQoKICAjIEByZXR1cm5zIFtJTzo6QnVmZmVyXSBBIGJ1ZmZlciB3aXRo IHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBtYXBwZWQgdG8gbWVtb3J5LgogIGRlZiBzZWxmLm1h cChmaWxlKQogIGVuZAoKICAjIEZsYWdzIGZvciBidWZmZXIgc3RhdGUuCiAgRVhURVJOQUwgPSAj IFRoZSBidWZmZXIgaXMgZnJvbSBleHRlcm5hbCBtZW1vcnkuCiAgSU5URVJOQUwgPSAjIFRoZSBi dWZmZXIgaXMgZnJvbSBpbnRlcm5hbCBtZW1vcnkgKG1hbGxvYykuCiAgTUFQUEVEID0gIyBUaGUg YnVmZmVyIGlzIGZyb20gbWFwcGVkIG1lbW9yeSAobW1hcCwgVmlydHVhbEFsbG9jLCBldGMpCiAg TE9DS0VEID0gIyBUaGUgYnVmZmVyIGlzIGxvY2tlZCBmb3IgdXNhZ2UgKGNhbm5vdCBiZSByZXNp emVkKQogIFBSSVZBVEUgPSAjIFRoZSBidWZmZXIgaXMgbWFwcGVkIGFzIGNvcHktb24td3JpdGUu CiAgSU1NVVRBQkxFID0gIyBUaGUgYnVmZmVyIGNhbm5vdCBiZSBtb2RpZmllZC4KCiAgIyBAcmV0 dXJucyBbSU86OkJ1ZmZlcl0gQSBidWZmZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHNpemUsIGFsbG9j YXRlZCBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIGZsYWdzLgogIGRlZiBpbml0aWFsaXplKHNpemUs IGZsYWdzKQogIGVuZAoKICAjIEByZXR1cm5zIFtJbnRlZ3JhbF0gVGhlIHNpemUgb2YgdGhlIGJ1 ZmZlcgogIGF0dHIgOnNpemUKCiAgIyBAcmV0dXJucyBbU3RyaW5nXSBBIGJyaWVmIHN1bW1hcnkg YW5kIGhleCBkdW1wIG9mIHRoZSBidWZmZXIuCiAgZGVmIGluc3BlY3QKICBlbmQKCiAgIyBAcmV0 dXJucyBbU3RyaW5nXSBBIGJyaWVmIHN1bW1hcnkgb2YgdGhlIGJ1ZmZlci4KICBkZWYgdG9fcwog IGVuZAoKICAjIEZsYWcgcHJlZGljYXRlczoKICBkZWYgZXh0ZXJuYWw/CiAgZW5kCgogIGRlZiBp bnRlcm5hbD8KICBlbmQKCiAgZGVmIG1hcHBlZD8KICBlbmQKCiAgZGVmIGxvY2tlZD8KICBlbmQK CiAgZGVmIGltbXV0YWJsZT8KICBlbmQKCiAgIyBGbGFncyBmb3IgZW5kaWFuL2J5dGUgb3JkZXI6 CiAgTElUVExFX0VORElBTiA9ICMgLi4uCiAgQklHX0VORElBTiA9ICMgLi4uCiAgSE9TVF9FTkRJ QU4gPSAjIC4uLgogIE5FVFdPUktfRU5ESUFOPSAjIC4uLgoKICAjIExvY2sgdGhlIGJ1ZmZlciAo cHJldmVudCByZXNpemUsIHVubWFwLCBjaGFuZ2VzIHRvIGJhc2UgYW5kIHNpemUpLgogIGRlZiBs b2NrCiAgICByYWlzZSAiQWxyZWFkeSBsb2NrZWQhIiBpZiBmbGFncyAmIExPQ0tFRAogICAgCiAg ICBmbGFncyB8PSBMT0NLRUQKICBlbmQKCiAgIyBVbmxvY2sgdGhlIGJ1ZmZlci4KICBkZWYgdW5s b2NrCiAgICByYWlzZSAiTm90IGxvY2tlZCEiIHVubGVzcyBmbGFncyAmIExPQ0tFRAogICAgCiAg ICBmbGFncyB8PSB+TE9DS0VECiAgZW5kCgogIC8vIE1hbmlwdWxhdGlvbjoKICAjIEByZXR1cm5z IFtJTzo6QnVmZmVyXSBBIHNsaWNlIG9mIHRoZSBidWZmZXIncyBkYXRhLiBEb2VzIG5vdCBjb3B5 LgogIGRlZiBzbGljZShvZmZzZXQsIGxlbmd0aCkKICBlbmQKCiAgIyBAcmV0dXJucyBbU3RyaW5n XSBBIGJpbmFyeSBzdHJpbmcgc3RhcnRpbmcgYXQgb2Zmc2V0LCBsZW5ndGggYnl0ZXMuCiAgZGVm IHRvX3N0cihvZmZzZXQsIGxlbmd0aCkKICBlbmQKCiAgIyBDb3B5IHRoZSBzcGVjaWZpZWQgc3Ry aW5nIGludG8gdGhlIGJ1ZmZlciBhdCB0aGUgZ2l2ZW4gb2Zmc2V0LgogIGRlZiBjb3B5KHN0cmlu Zywgb2Zmc2V0KQogIGVuZAoKICAjIENvbXBhcmUgdHdvIGJ1ZmZlcnMuCiAgZGVmIDw9PihvdGhl cikKICBlbmQKCiAgaW5jbHVkZSBDb21wYXJhYmxlCgogICMgUmVzaXplIHRoZSBidWZmZXIsIHBy ZXNlcnZpbmcgdGhlIGdpdmVuIGxlbmd0aCAoaWYgbm9uLXplcm8pLgogIGRlZiByZXNpemUoc2l6 ZSwgcHJlc2VydmUgPSAwKQogIGVuZAoKICAjIENsZWFyIHRoZSBidWZmZXIgdG8gdGhlIHNwZWNp ZmllZCB2YWx1ZS4KICBkZWYgY2xlYXIodmFsdWUgPSAwLCBvZmZzZXQgPSAwLCBsZW5ndGggPSAo QHNpemUgLSBvZmZzZXQpKQogIGVuZAoKICAjIERhdGEgVHlwZXM6CiAgIyBMb3dlciBjYXNlOiBs aXR0bGUgZW5kaWFuLgogICMgVXBwZXIgY2FzZTogYmlnIGVuZGlhbiAobmV0d29yayBlbmRpYW4p LgogICMKICAjIDpVOCAgICAgICAgfCB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyLgogICMgOlM4ICAg ICAgICB8IHNpZ25lZCA4LWJpdCBpbnRlZ2VyLgogICMKICAjIDp1MTYsIDpVMTYgfCB1bnNpZ25l ZCAxNi1iaXQgaW50ZWdlci4KICAjIDpzMTYsIDpTMTYgfCBzaWduZWQgMTYtYml0IGludGVnZXIu CiAgIwogICMgOnUzMiwgOlUzMiB8IHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLgogICMgOnMzMiwg OlMzMiB8IHNpZ25lZCAzMi1iaXQgaW50ZWdlci4KICAjCiAgIyA6dTY0LCA6VTY0IHwgdW5zaWdu ZWQgNjQtYml0IGludGVnZXIuCiAgIyA6czY0LCA6UzY0IHwgc2lnbmVkIDY0LWJpdCBpbnRlZ2Vy LgogICMKICAjIDpmMzIsIDpGMzIgfCAzMi1iaXQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLgogICMg OmY2NCwgOkY2NCB8IDY0LWJpdCBmbG9hdGluZyBwb2ludCBudW1iZXIuCgogICMgR2V0IHRoZSBn aXZlbiBkYXRhIHR5cGUgYXQgdGhlIHNwZWNpZmllZCBvZmZzZXQuCiAgZGVmIGdldCh0eXBlLCBv ZmZzZXQpCiAgZW5kCgogICMgU2V0IHRoZSBnaXZlbiB2YWx1ZSBhcyB0aGUgc3BlY2lmaWVkIGRh dGEgdHlwZSBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldC4KICBkZWYgc2V0KHR5cGUsIG9mZnNldCwg dmFsdWUpCiAgZW5kCmVuZApgYGAKClRoZSBDIGludGVyZmFjZSBwcm92aWRlcyBhIGZldyBjb252 ZW5pZW50IG1ldGhvZHMgZm9yIGFjY2Vzc2luZyB0aGUgdW5kZXJseWluZyBkYXRhIGJ1ZmZlcjoK CmBgYGMKdm9pZCByYl9pb19idWZmZXJfZ2V0X211dGFibGUoVkFMVUUgc2VsZiwgdm9pZCAqKmJh c2UsIHNpemVfdCAqc2l6ZSk7CnZvaWQgcmJfaW9fYnVmZmVyX2dldF9pbW11dGFibGUoVkFMVUUg c2VsZiwgY29uc3Qgdm9pZCAqKmJhc2UsIHNpemVfdCAqc2l6ZSk7CmBgYAoKSW4gdGhlIGZpYmVy IHNjaGVkdWxlciwgaXQgaXMgdXNlZCBsaWtlIHRoaXM6CgpgYGBjClZBTFVFCnJiX2ZpYmVyX3Nj aGVkdWxlcl9pb19yZWFkX21lbW9yeShWQUxVRSBzY2hlZHVsZXIsIFZBTFVFIGlvLCB2b2lkICpi YXNlLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGxlbmd0aCkKewogICAgVkFMVUUgYnVmZmVyID0gcmJf aW9fYnVmZmVyX25ldyhiYXNlLCBzaXplLCBSQl9JT19CVUZGRVJfTE9DS0VEKTsKCiAgICBWQUxV RSByZXN1bHQgPSByYl9maWJlcl9zY2hlZHVsZXJfaW9fcmVhZChzY2hlZHVsZXIsIGlvLCBidWZm ZXIsIGxlbmd0aCk7CgogICAgcmJfaW9fYnVmZmVyX2ZyZWUoYnVmZmVyKTsKCiAgICByZXR1cm4g cmVzdWx0Owp9CmBgYAoKVGhpcyBmdW5jdGlvbiBpcyBpbnZva2VkIGZyb20gYGlvLmNgIGF0IHZh cmlvdXMgcGxhY2VzIHRvIGZpbGwgdGhlIGJ1ZmZlci4gV2Ugc3BlY2lmaWNhbGx5IHRoZSBgKGJh c2UsIHNpemUpYCB0dXBsZSwgYWxvbmcgd2l0aCBgbGVuZ3RoYCB3aGljaCBpcyB0aGUgKm1pbmlt dW0qIGxlbmd0aCByZXF1aXJlZCBhbmQgYXNzaXN0cyB3aXRoIGVmZmljaWVudCBub24tYmxvY2tp bmcgaW1wbGVtZW50YXRpb24uCgpUaGUgYHVyaW5nLmNgIGltcGxlbWVudGF0aW9uIGluIHRoZSBl dmVudCBnZW0gdXNlcyB0aGlzIGludGVyZmFjZSBsaWtlIHNvOgoKYGBgYwpWQUxVRSBFdmVudF9C YWNrZW5kX1VSaW5nX2lvX3JlYWQoVkFMVUUgc2VsZiwgVkFMVUUgZmliZXIsIFZBTFVFIGlvLCBW QUxVRSBidWZmZXIsIFZBTFVFIF9sZW5ndGgpIHsKCXN0cnVjdCBFdmVudF9CYWNrZW5kX1VSaW5n ICpkYXRhID0gTlVMTDsKCVR5cGVkRGF0YV9HZXRfU3RydWN0KHNlbGYsIHN0cnVjdCBFdmVudF9C YWNrZW5kX1VSaW5nLCAmRXZlbnRfQmFja2VuZF9VUmluZ19UeXBlLCBkYXRhKTsKCQoJaW50IGRl c2NyaXB0b3IgPSBSQl9OVU0ySU5UKHJiX2Z1bmNhbGwoaW8sIGlkX2ZpbGVubywgMCkpOwoJCgl2 b2lkICpiYXNlOwoJc2l6ZV90IHNpemU7CglyYl9pb19idWZmZXJfZ2V0X211dGFibGUoYnVmZmVy LCAmYmFzZSwgJnNpemUpOwoJCglzaXplX3Qgb2Zmc2V0ID0gMDsKCXNpemVfdCBsZW5ndGggPSBO VU0yU0laRVQoX2xlbmd0aCk7CgkKCXdoaWxlIChsZW5ndGggPiAwKSB7CgkJc2l6ZV90IG1heGlt dW1fc2l6ZSA9IHNpemUgLSBvZmZzZXQ7CgkJaW50IHJlc3VsdCA9IGlvX3JlYWQoZGF0YSwgZmli ZXIsIGRlc2NyaXB0b3IsIChjaGFyKiliYXNlK29mZnNldCwgbWF4aW11bV9zaXplKTsKCQkKCQlp ZiAocmVzdWx0ID09IDApIHsKCQkJYnJlYWs7CgkJfSBlbHNlIGlmIChyZXN1bHQgPiAwKSB7CgkJ CW9mZnNldCArPSByZXN1bHQ7CgkJCWlmICgoc2l6ZV90KXJlc3VsdCA+IGxlbmd0aCkgYnJlYWs7 CgkJCWxlbmd0aCAtPSByZXN1bHQ7CgkJfSBlbHNlIGlmICgtcmVzdWx0ID09IEVBR0FJTiB8fCAt cmVzdWx0ID09IEVXT1VMREJMT0NLKSB7CgkJCUV2ZW50X0JhY2tlbmRfVVJpbmdfaW9fd2FpdChz ZWxmLCBmaWJlciwgaW8sIFJCX0lOVDJOVU0oUkVBREFCTEUpKTsKCQl9IGVsc2UgewoJCQlyYl9z eXNlcnJfZmFpbCgtcmVzdWx0LCBzdHJlcnJvcigtcmVzdWx0KSk7CgkJfQoJfQoJCglyZXR1cm4g U0laRVQyTlVNKG9mZnNldCk7Cn0KYGBgCgojIyBCdWZmZXIgQWxsb2NhdGlvbgoKVGhlIExpbnV4 IGtlcm5lbCBwcm92aWRlcyBzb21lIGFkdmFuY2VkIG1lY2hhbmlzbXMgZm9yIHJlZ2lzdGVyaW5n IGJ1ZmZlcnMgZm9yIGFzeW5jaHJvbm91cyBJL08gdG8gcmVkdWNlIHBlci1vcGVyYXRpb24gb3Zl cmhlYWQuCgo+IFRoZSBpb191cmluZ19yZWdpc3RlcigpIHN5c3RlbSBjYWxsIHJlZ2lzdGVycyB1 c2VyIGJ1ZmZlcnMgb3IgZmlsZXMgZm9yIHVzZSBpbiBhbiBpb191cmluZyg3KSBpbnN0YW5jZSBy ZWZlcmVuY2VkIGJ5IGZkLiBSZWdpc3RlcmluZyBmaWxlcyBvciB1c2VyIGJ1ZmZlcnMgYWxsb3dz IHRoZSBrZXJuZWwgdG8gdGFrZSBsb25nIHRlcm0gcmVmZXJlbmNlcyB0byBpbnRlcm5hbCBkYXRh IHN0cnVjdHVyZXMgb3IgY3JlYXRlIGxvbmcgdGVybSBtYXBwaW5ncyBvZiBhcHBsaWNhdGlvbiBt ZW1vcnksIGdyZWF0bHkgcmVkdWNpbmcgcGVyLUkvTyBvdmVyaGVhZC4KCldpdGggYXBwcm9wcmlh dGUgc3VwcG9ydCwgd2UgY2FuIHVzZSBgSU9SSU5HX09QX1BST1ZJREVfQlVGRkVSU2AgdG8gZWZm aWNpZW50bHkgbWFuYWdlIGJ1ZmZlcnMgaW4gYXBwbGljYXRpb25zIHdoaWNoIGFyZSBkZWFsaW5n IHdpdGggbG90cyBvZiBzb2NrZXRzLiBTZWUgPGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2lvLXVy aW5nLzIwMjAwMjI4MjAzMDUzLjI1MDIzLTEtYXhib2VAa2VybmVsLmRrL1QvPiBmb3IgbW9yZSBk ZXRhaWxzIGFib3V0IGhvdyBpdCB3b3Jrcy4gSSdtIHN0aWxsIGV4cGxvcmluZyB0aGUgcGVyZm9y bWFuY2UgaW1wbGljYXRpb25zIG9mIHRoaXMsIGJ1dCB0aGUgcHJvcG9zZWQgaW1wbGVtZW50YXRp b24gcHJvdmlkZXMgc3VmZmljaWVudCBtZXRhLWRhdGEgZm9yIHVzIHRvIGV4cGxvcmUgdGhpcyBp biByZWFsIHdvcmxkIHNjaGVkdWxlcnMuCgpQUjogaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVi eS9wdWxsLzQ2MjEKCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5zdWJzY3Jp YmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vi c2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlv bnMvcnVieS1jb3JlPgo=