[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
53 messages
2022/10/15
[ruby-core:110253] [Ruby master Feature#19024] Proposal: Import Modules
From:
"shioyama (Chris Salzberg)" <noreply@...>
Date:
2022-10-11 02:51:26 UTC
List:
ruby-core #110253
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2hpb3lhbWEgKENocmlzIFNhbHpiZXJn KS4KCgpAamVyZW15ZXZhbnMwCgpUaGFua3MgZm9yIHlvdXIgdGhvdWdodGZ1bCByZXNwb25zZSEK Cj4gRm9yIHNpbWlsYXIgcmVhc29ucywgbWFraW5nIHJlcXVpcmUgaW1wbGljaXRseSBzdXBwb3J0 IHRoZSBjdXJyZW50bHkgd3JhcHBpbmcgbW9kdWxlIHdvdWxkIGJyZWFrIGlkZW1wb3RlbmN5IGFu ZCB0aGVyZWZvcmUgSSBkbyBub3QgdGhpbmsgaXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQuCgpJIGFn cmVlLCBhbmQgZnJvbSB0aGUgYmVnaW5uaW5nIEkgaGF2ZSBub3QgYWR2b2NhdGVkIGFsbG93aW5n IHBhc3NpbmcgZXh0cmEgcGFyYW1ldGVycyB0byBgcmVxdWlyZWAuIEl0IHNlZW1zIHRoYXQgZXZl cnlvbmUgaGVyZSBhZ3JlZXMgdGhhdCBjaGFuZ2luZyBgcmVxdWlyZWAgaW4gYWxtb3N0IGFueSB3 YXkgdGhhdCBhbHRlcnMgaXRzIGJhc2ljIHByZW1pc2VzIGlzIGZ1bmRhbWVudGFsbHkgYSBuby1n by4KCkdpdmVuIHRoYXQsIHdvdWxkbid0IGl0IG1ha2Ugc2Vuc2UgdG8gY2xvc2UgWyMxMDMyMF0o aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzEwMzIwKSwgaWRlYWxseSB3aXRoIGEg bm90ZSBleHBsYWluaW5nIHdoeSB0aGUgcHJvcG9zYWwgdGhlcmUgaXMgbm90IGZlYXNpYmxlPyBB bHRob3VnaCBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGlzIGlzc3VlLCB0aGF0IG9uZSBlbnRpcmVs eSBjZW50ZXJzIG9uIGNoYW5naW5nIGByZXF1aXJlYCBpbiBzdWNoIGEgd2F5IHRoYXQsIGFzIEkg cmVhZCBpdCwgaXQgaXMgbm8gbG9uZ2VyIGV4Y2x1c2l2ZWx5IGlkZW1wb3RlbnQuCgpJIGFzayBi ZWNhdXNlIGxlYXZpbmcgdGhhdCBpc3N1ZSBvcGVuIGludml0ZXMgdGhlIGludGVycHJldGF0aW9u IChwZXJoYXBzIG1pc3Rha2VuKSB0aGF0IHRoZSBwcm9wb3NhbCB0aGVyZSBpcyBmZWFzaWJsZSBn aXZlbiB0aGUgcmlnaHQgaW1wbGVtZW50YXRpb24sIHdoZXJlYXMgYXMgSSBzZWUgaXQgZnJvbSBk aXNjdXNzaW9ucyBoZXJlIGl0IHNlZW1zIGFsbW9zdCBlbnRpcmVseSBfaW5mZWFzaWJsZV8gdW5k ZXIgYW55IGNpcmN1bXN0YW5jZXMuCgo+IFdoaWxlIEkgdW5kZXJzdGFuZCB0aGUgZ29hbCBvZiBy ZWR1Y2luZyBuYW1lc3BhY2UgImJvaWxlcnBsYXRlIiwgSSB0aGluayBpdCBpcyBpbXBvcnRhbnQg dG8gdW5kZXJzdGFuZCB0aGF0IHJlbW92aW5nIGV4cGxpY2l0IG5hbWVzcGFjZXMgaXMgYSB0cmFk ZW9mZi4gSWYgeW91IGRvIG5vdCBsZWF2ZSB0aGUgbmFtZXNwYWNlcyBpbiB0aGUgZmlsZSwgYnV0 IGluc3RlYWQgbGV0IHRoZW0gYmUgaW1wbGljaXQsIHRoZSBjb2RlIGxpa2VseSBiZWNvbWVzIG1v cmUgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQuIFlvdSBzdGF0ZSB0aGF0IHByb2dyYW1tZXJzIHdv dWxkIG5hdHVyYWxseSBwcmVmZXIgaW1wbGljaXQgbmFtZXNwYWNlcyBvdmVyIGV4cGxpY2l0IG5h bWVzcGFjZXMsIGJ1dCBJJ20gbm90IHN1cmUgdGhhdCBpcyB0cnVlLiBJbXBsaWNpdCBjb2RlIGlz IG5vdCBuZWNlc3NhcmlseSBiZXR0ZXIgdGhhbiBleHBsaWNpdCBjb2RlLiBXaGF0IHlvdSBjb25z aWRlciAiaXJyZWxldmFudCIgbWF5IGJlIHZlcnkgcmVsZXZhbnQgdG8gc29tZW9uZSB3aG8gaXNu J3QgZmFtaWxpYXIgd2l0aCB0aGUgY29kZSBhbiBhbGwgb2YgdGhlIGltcGxpY2l0IG5hbWVzcGFj ZXMgYmVpbmcgZGVhbHQgd2l0aC4KCkkgYWdyZWUgdGhhdCB0aGVyZSBpcyBhIHRyYWRlb2ZmLCBh cyBAZnhuIGVhcmxpZXIgY29tbWVudGVkIHdoZW4gaGUgd3JvdGUgdGhhdCB0aGUgaWRlYSBicmVh a3MgdGhlIGZ1bmRhbWVudGFsIGFzc3VtcHRpb24gdGhhdCAiYnkgbG9va2luZyBhdCB5b3VyIHNv dXJjZSBjb2RlLCB5b3Uga25vdyB0aGUgbmVzdGluZy4iIAoKQnV0IHRoaXMgaXMgYWJvdXQgbXVj aCBtb3JlIHRoYW4gcmVkdWNpbmcgYm9pbGVycGxhdGUuIEl0IGlzIGFib3V0IGEgZnVuZGFtZW50 YWwgc2hpZnQgaW4gcGVyc3BlY3RpdmUsIGZyb20gb25lIHdoZXJlIGV2ZXJ5dGhpbmcgaXMgdmlz aWJsZSBldmVyeXdoZXJlLCB0byBvbmUgd2hlcmUgdGhlICJwZXJzcGVjdGl2ZSIgaXMgaXRzZWxm IHNvbWV0aGluZyB0aGF0IGNhbiBiZSBjcmVhdGVkLCBuZXN0ZWQgYW5kIGlzb2xhdGVkLgoKWW91 IHdyaXRlICJpbXBsaWNpdCBjb2RlIGlzIG5vdCBuZWNlc3NhcmlseSBiZXR0ZXIgdGhhbiBleHBs aWNpdCBjb2RlIi4gSSBhZ3JlZS4gQXV0b2xvYWRpbmcsIGZvciBleGFtcGxlLCBtYWtlcyBhIHNp bWlsYXIgdHJhZGVvZmYgb2YgaW1wbGljaXQgb3ZlciBleHBsaWNpdCwgYW5kIHRoYXQgdHJhZGVv ZmYgbGlrZXdpc2UgaGFzIG5vbi10cml2aWFsIGRvd25zaWRlcy4gQXV0b2xvYWRpbmcgY2FuIGFs c28gYmUgc2VlbiBhcyByZWR1Y2luZyBib2lsZXJwbGF0ZSAoYWxsIHRob3NlIGByZXF1aXJlYHMg d2Ugbm8gbG9uZ2VyIG5lZWQpLCBidXQgY2xlYXJseSBpdCBpcyBhYm91dCBtb3JlIHRoYW4gdGhh dC4KClJ1YnkgaGFzIG1hbnkgc2hhcnAga25pdmVzIGxpa2UgdGhpcywgYW5kIHRoZSB3YXkgd2Ug aGFuZGxlIHRob3NlIGtuaXZlcyBpcyBieSBjcmVhdGluZyBjb252ZW50aW9ucyBhcm91bmQgdGhl aXIgdXNhZ2UuIE11Y2ggdGhlIHdheSBaZWl0d2VyayAoYW5kIFJhaWxzKSBwcm92aWRlZCBmaWxl IG9yZ2FuaXphdGlvbiBjb252ZW50aW9ucyBhcm91bmQgYXV0b2xvYWRpbmcsIGFueSBtZWNoYW5p c20gaW4gUnVieSB0aGF0IHdvdWxkIGFsbG93IGNvZGUgdG8gYmUgaW1wb3J0ZWQgaW4gdGhlIHdh eSBJJ20gZGVzY3JpYmluZyB3b3VsZCBhbHNvIGludml0ZSBzb21lIGtpbmQgb2YgY29udmVudGlv bnMgYXJvdW5kIGl0cyB1c2FnZSB0byBtYWtlIGl0IG1vcmUgdXNlZnVsLgoKSSBhZG1pdCB0aGF0 IHRoaXMgaXMgdmVyeSBoYW5kLXdhdnksIGFuZCBJIG5lZWQgdG8gcHJvdmlkZSBhIGNsZWFyZXIg ZGVtb25zdHJhdGlvbiBvZiB3aGF0IHRob3NlIGNvbnZlbnRpb25zIG1pZ2h0IGxvb2sgbGlrZS4g VGhpcyBpcyBzb21ldGhpbmcgdGhhdCBpcyBsYWNraW5nIGZyb20gdGhpcyBwcm9wb3NhbCwgYW5k IHNvbWV0aGluZyBJIGFtIHRoaW5raW5nIGEgbG90IGFib3V0LiBJIHdpbGwgY29tZSBiYWNrIHRv IHRoaXMgcG9pbnQuCgo+IFlvdSBkZXNjcmliZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBhZmZhaXJz IGFzIGEgInRlcnJpYmxlIHRyYWRlb2ZmIiwgYnV0IHRoYXQgc2VlbXMgaHlwZXJib2xpYyB0byBt ZS4gQXQgbW9zdCwgaGF2aW5nIHRvIHVzZSBleHBsaWNpdCBuYW1lc3BhY2VzIHNob3VsZCBiZSBt aWxkbHkgYW5ub3lpbmcsIGV2ZW4gaWYgeW91IGhhdmUgZnVsbCB1bmRlcnN0YW5kaW5nIG9mIHRo ZSBjb2RlIGFuZCBjYW4gZGVhbCB3aXRoIGltcGxpY2l0IG5hbWVzcGFjZXMuCgpJIGNhbiBzZWUg aG93IHlvdSBzZWUgdGhhdCBzdGF0ZW1lbnQgYXMgaHlwZXJib2xpYywgYnV0IEkgZG9uJ3Qgc2Vl IGl0IHRoYXQgd2F5LiBNYXliZSBJIHNob3VsZCBoYXZlIHF1YWxpZmllZCB0aGUgInRlcnJpYmxl Ii1uZXNzIG9mIHRoZSB0cmFkZW9mZiBhcyBiZWluZyByZWxhdGl2ZSB0byB0aGUgc2l6ZSBvZiB0 aGUgY29kZSBzcGFjZSBpbnZvbHZlZDsgaW4gYSBjb2RlYmFzZSBvZiBhIGRvemVuIGZpbGVzIHRo aXMgaXMgbm90IHRlcnJpYmxlLgoKT1RPSCBzb2x2aW5nIGEgIm1pbGRseSBhbm5veWluZyIgcHJv YmxlbSBpcyBub3QgdG8gbWUgYW4gYXBwcm9wcmlhdGUgY2hhcmFjdGVyaXphdGlvbiBvZiB3aGF0 IEkgYW0gZGVzY3JpYmluZy4gTWF5YmUgdGhhdCdzIGJlY2F1c2UgZWFjaCB0aW1lIEkgcHJlc2Vu dCBvbmUgYXNwZWN0IG9mIHdoYXQgSSBzZWUgYXMgYSBiaWdnZXIgcGljdHVyZSBjaGFuZ2UuCgpJ bXBvcnRzIGFzIGEgY29uY2VwdCB0YWNrbGVzIHNldmVyYWwgaGFyZCBwcm9ibGVtcyBhdCBvbmNl LCBpbmNsdWRpbmc6CgotIGxpdGVyYWwgbmFtZXNwYWNlcyBhbmQgY29kZSBncm91cGluZywgYW5k IHRoZSBtaXNhbGlnbm1lbnQgb2YgaW5jZW50aXZlcyBpbnZvbHZlZCAoYXMgZGVzY3JpYmVkKQot IGVuY2Fwc3VsYXRpb24vaXNvbGF0aW9uIChpLmUuIFBhY2t3ZXJrLCBwYWNrYWdlcyBldGMuKQot IG5hbWVzcGFjZSBjb2xsaXNpb25zL2NvbmZsaWN0cyAoSSB3YW50IGEgc2VtYW50aWNhbGx5LW1l YW5pbmdmdWwgYFBsYXRmb3JtYCBpbiBteSBhcHBsaWNhdGlvbiBidXQgaXQgY29uZmxpY3RzIHdp dGggdGhlIGBwbGF0Zm9ybWAgZ2VtKQoKVGhlIGxhc3Qgb25lIGhlcmUsIHdoaWNoIEkgaGF2ZSBi YXJlbHkgdG91Y2hlZCBvbiwgaXMgYSBwcm9ibGVtIHdlIGp1c3QgbGl2ZSB3aXRoIGFzIFJ1Ynlp c3RzLCBhbmQgdG8gc29tZSBkZWdyZWUgSSB0aGluayBzaW1wbHkgaW50ZXJuYWxpemUgYXMgInRo ZSB3YXkgdGhpbmdzIHdvcmsiLiBCdXQgdGhpcyBpcyBhIHJlYWwgcHJvYmxlbSB0aGF0IGRlc2Vy dmVzIGEgcHJvcGVyIHNvbHV0aW9uLgoKPiBOb3RlIHRoYXQgeW91IGNhbiBjdXJyZW50bHkgc3Vw cG9ydCBtdWx0aXBsZSBuYW1lc3BhY2VzIHVzaW5nIGBldmFsYC4gCgpJdCdzIGludGVyZXN0aW5n IHlvdSBicm91Z2h0IHVwIHRoaXMgZXhhbXBsZSwgYmVjYXVzZSBJIGhhdmUgY29uc2lkZXJlZCBp bXBsZW1lbnRhdGlvbnMgZm9yIGBpbXBvcnRgIHVzaW5nIGBldmFsYCBhdCBsZWFzdCBhcyBhIHBy b29mLW9mLWNvbmNlcHQsIGJ1dCBpdCBkb2Vzbid0IHdvcmsgZm9yIHRoZSB2ZXJ5IGltcG9ydGFu dCBjYXNlIHdoZXJlIEkgd2FudCB0byBldmFsdWF0ZSB1bmRlciBhbiBhbm9ueW1vdXMgbW9kdWxl IG5hbWVzcGFjZTsgaW4geW91ciBleGFtcGxlLCB5b3UgbmVlZCB0byBzdXBwbHkgYSBkZWRpY2F0 ZWQgbmFtZWQgY29udGV4dCAoYFBheW1lbnRzOjpOZXN0ZWRgKSB0byBsb2FkIHRoZSBjb2RlIGlu dG8uIFRoaXMgbWF5IHNlZW0gbGlrZSBhIG1pbm9yIHBvaW50IGJ1dCBJIGRvbid0IGJlbGlldmUg aXQgaXMuCgpPbmx5IHdpdGggYW4gYW5vbnltb3VzLXJvb3RlZCBuYW1lc3BhY2UgY2FuIHdlIGF2 b2lkIHBvbGx1dGluZyB0aGUgcGFyZW50IGxvYWQgY29udGV4dCdzIG5hbWVzcGFjZSwgYW5kIGF2 b2lkIHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBvdGhlciBsb2FkZWQgY29uc3RhbnRzIGluIHRo YXQgc2FtZSBuYW1lc3BhY2UuCgppLmUuIEkgd2FudCB0aGlzOgoKYGBgcnVieQptb2R1bGUgUGF5 bWVudHMKICBmb29fY2xpZW50ID0gTW9kdWxlLm5ldyBkbwogICAgZm9vX3BhdGggPSBGaWxlLmV4 cGFuZF9wYXRoKCJhcGlfY2xpZW50cy9mb29fY2xpZW50LnJiIiwgX19kaXJfXykpCiAgICBldmFs IEZpbGUucmVhZChmb29fcGF0aCksIGJpbmRpbmcsIGZvb19wYXRoCiAgZW5kCgogICMgZG8gc29t ZXRoaW5nIHdpdGggZm9vX2NsaWVudDo6Rm9vQ2xpZW50CmVuZApgYGAKCmJ1dCB0aGlzIGFjdHVh bGx5IHRyYW5zbGF0ZXMgdG8gdGhpczoKCmBgYHJ1YnkKbW9kdWxlIFBheW1lbnRzCiAgZm9vX2Ns aWVudCA9IE1vZHVsZS5uZXcgZG8KICAgIGNsYXNzIEZvb0NsaWVudCA8IE15Q2xpZW50R2VtOjpB cGlDbGllbnQKICAgICAgIyAuLi4KICAgIGVuZAogIGVuZAplbmQKYGBgCgpUaGlzIGRvZXMgbm90 IGRlZmluZSBgZm9vX2NsaWVudDo6Rm9vQ2xpZW50YCwgYnV0IHJhdGhlciBgOjpQYXltZW50czo6 Rm9vQ2xpZW50YCwgYmVjYXVzZSBhbnkgY2FsbCB0byBgbW9kdWxlYCBvciBgY2xhc3NgIGluIHRo ZSBldmFsdWF0ZWQgZmlsZSB3aWxsIHJlc29sdmUgYmFjayB0byB0aGUgY2xvc2VzdCBfbmFtZWRf IGNvbnRleHQsIGluIHRoaXMgY2FzZSBgUGF5bWVudHNgLgoKYGxvYWRgIHdpdGggdGhlIHdyYXAg bW9kdWxlIGlzIGRpZmZlcmVudCBiZWNhdXNlIGl0IHJlc29sdmVzIGBtb2R1bGVgIGFuZCBgY2xh c3NgIGRlZmluaXRpb25zIHRvIHRoZSB3cmFwIG1vZHVsZSwgX3JlZ2FyZGxlc3Mgb2Ygd2hldGhl ciB0aGF0IG1vZHVsZSBpcyBhbm9ueW1vdXNfLiBBcyBmYXIgYXMgSSBjYW4gdGVsbCB0aGVyZSBp cyBubyBvdGhlciB3YXkgKGluY2x1ZGluZyAidWdseSIgaGFja3MgbGlrZSBgZXZhbGAgb24gZmls ZSBjb250ZW50cykgaW4gUnVieSB0byBkbyB0aGlzLiBJdCBpcyB0aGlzICh1bmludGVuZGVkPykg ImZlYXR1cmUiIHRoYXQgSSBhbSBhdHRlcG10aW5nIHRvIGxldmVyYWdlIGhlcmUsIHRvIG1ha2Ug aXQgbW9yZSBwb3dlcmZ1bC4KCkkgbG92ZSB0aGF0IHRoaXMgY29uY2VwdCBvZiBhbiAidW5yb290 ZWQiIG5lc3RlZCBuYW1lc3BhY2UgKHdoYXQgSSBhbSBsb29zZWx5IHJlZmVycmluZyB0byBhcyBh biAiaW1wb3J0IiBoZXJlKSBpcyBhY3R1YWxseSBzb21ldGhpbmcgdGhhdCBhbHJlYWR5IGV4aXN0 cyBpbiBSdWJ5LiBJdCBkb2VzIG5vdCBuZWVkIHRvIGJlIGFkZGVkLCBpdCBzaW1wbHkgbmVlZHMg dG8gYmUgdHdlYWtlZCB0byBtYWtlIGl0IGlzb2xhdGVkIGZyb20gaXRzIHBhcmVudC4KCj4gSSB0 aGluayBpdCB3b3VsZCBiZSBoZWxwZnVsIGlmLCBmb3IgZWFjaCBvZiB0aGUgcGF0Y2hlcyB5b3Ug YXJlIHByb3Bvc2luZywgeW91IGluY2x1ZGUgdGVzdHMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc2Vl IHdoYXQgZWFjaCBwYXRjaCBhbGxvd3MgYW5kIGhvdyB0aGUgYmVoYXZpb3IgY2hhbmdlcy4gCgpU aGFua3MsIEkgd2lsbCBkbyB0aGlzLiBUaGVyZSBhcmUgbm90IG1hbnkgb2YgdGhlc2U7IHRoZXJl IG1heSBpbiBmYWN0IG9ubHkgYmUgb25lIG9yIHR3by4KCkp1c3QgdG8gY2xhcmlmeSB0aG91Z2g6 IEkgaGFkIG9yaWdpbmFsbHkgaW50ZW5kZWQgdG8gYWN0dWFsbHkgZG8ganVzdCB0aGlzLiBCdXQg YWZ0ZXIgZGlzY3Vzc2lvbiBhdCB0aGUgRGV2ZWxvcGVycyBNZWV0aW5nIGl0IHdhcyByZWNvbW1l bmRlZCB0aGF0IEkgbGF5IG91dCB0aGUgYmlnZ2VyIHBpY3R1cmUgaW4gYSBuZXcgaXNzdWUgc2Vw YXJhdGUgZnJvbSBbIzEwMzIwXShodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTAz MjApLCB0byBtb3RpdmF0ZSBpbmRpdmlkdWFsIGNoYW5nZXMsIHNvIHRoYXQgaXMgd2hhdCBJIGhh dmUgZG9uZS4gQW5kIGluZGVlZCwgSSBub3cgdGhpbmsgdGhhdCBoYXZpbmcgdGhlIGJpZyBwaWN0 dXJlIGlzIHZlcnkgaW1wb3J0YW50IGluIHVuZGVyc3RhbmRpbmcgdGhlIGluZGl2aWR1YWwgY2hh bmdlcywgc28gSSB3aWxsIGxpbmsgYmFjayBoZXJlIHRvIGNvbnRleHR1YWxpemUgYW5kIG1vdGl2 YXRlIGVhY2ggb2YgdGhlbS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KRmVhdHVyZSAjMTkwMjQ6IFByb3Bvc2FsOiBJbXBvcnQgTW9kdWxlcwpodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTkwMjQjY2hhbmdlLTk5NTQyCgoqIEF1dGhvcjogc2hpb3lh bWEgKENocmlzIFNhbHpiZXJnKQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGVyZSBpcyBubyBnZW5lcmFs IHdheSBpbiBSdWJ5IHRvIGxvYWQgY29kZSBvdXRzaWRlIG9mIHRoZSBnbG9iYWxseS1zaGFyZWQg bmFtZXNwYWNlLiBUaGlzIG1ha2VzIGl0IGhhcmQgdG8gaXNvbGF0ZSBjb21wb25lbnRzIG9mIGFu IGFwcGxpY2F0aW9uIGZyb20gZWFjaCBvdGhlciBhbmQgZnJvbSB0aGUgYXBwbGljYXRpb24gaXRz ZWxmLCBsZWFkaW5nIHRvIGNvbXBsaWNhdGVkIHJlbGF0aW9uc2hpcHMgdGhhdCBjYW4gYmVjb21l IGludHJhY3RhYmxlIGFzIGFwcGxpY2F0aW9ucyBncm93IGluIHNpemUuCgpUaGUgZ3Jvd2luZyBw b3B1bGFyaXR5IG9mIGEgZ2VtIGxpa2UgW1BhY2t3ZXJrXShodHRwczovL2dpdGh1Yi5jb20vc2hv cGlmeS9wYWNrd2VyayksIHdoaWNoIHByb3ZpZGVzIGEgbmV3IGNvbmNlcHQgb2YgInBhY2thZ2Ui IHRvIGVuZm9jZSBib3VuZGFyaWVzIHN0YXRpY2FsbHkgaW4gQ0ksIGlzIGV2aWRlbmNlIHRoYXQg dGhpcyBpcyBhIHJlYWwgcHJvYmxlbS4gQnV0IGludHJvZHVjaW5nIGEgbmV3IHBhY2thZ2luZyBj b25jZXB0IGFuZCBDSSBzdGVwIGlzIGF0IGJlc3Qgb25seSBhIHBhcnRpYWwgc29sdXRpb24sIHdp dGggZG93bnNpZGVzOiBpdCBhZGRzIGNvbXBsZXhpdHkgYW5kIGNvZ25pdGl2ZSBvdmVyaGVhZCB0 aGF0IHdvdWxkbid0IGJlIG5lY2Vzc2FyeSBpZiBSdWJ5IHByb3ZpZGVkIGJldHRlciBwYWNrYWdp bmcgaXRzZWxmIChhcyBNYXR6IGhhcyBzdWdnZXN0ZWQgW2l0IHNob3VsZF0oaHR0cHM6Ly95b3V0 dS5iZS9EcDEyYTNLR05Gdz90PTI5NTYpKS4KClRoZXJlIGlzIF9vbmVfIGxpbWl0ZWQgd2F5IGlu IFJ1YnkgY3VycmVudGx5IHRvIGxvYWQgY29kZSB3aXRob3V0IHBvbGx1dGluZyB0aGUgZ2xvYmFs IG5hbWVzcGFjZTogYGxvYWRgIHdpdGggdGhlIGB3cmFwYCBwYXJhbWV0ZXIsIHdoaWNoIGFzIG9m IGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy82MjEwIGNhbiBub3cgYmUgYSBtb2R1 bGUuIEhvd2V2ZXIsIHRoaXMgb3B0aW9uIGRvZXMgbm90IGFwcGx5IHRyYW5zaXRpdmVseSB0byBg cmVxdWlyZWAgY2FsbHMgd2l0aGluIHRoZSBsb2FkZWQgZmlsZSwgc28gaXRzIHVzZWZ1bG5lc3Mg aXMgbGltaXRlZC4KCk15IHByb3Bvc2FsIGhlcmUgaXMgdG8gZW5hYmxlIG1vZHVsZSBpbXBvcnRz IGJ5IGRvaW5nIHRoZSBmb2xsb3dpbmc6CgoxLiBhcHBseSB0aGUgYHdyYXBgIG1vZHVsZSBuYW1l c3BhY2UgdHJhbnNpdGl2ZWx5IHRvIGByZXF1aXJlYHMgaW5zaWRlIHRoZSBsb2FkZWQgY29kZSwg aW5jbHVkaW5nIG5hdGl2ZSBleHRlbnNpb25zIChvciBwcm92aWRlIGEgbmV3IGZsYWcgb3IgbWV0 aG9kIHRoYXQgd291bGQgZG8gdGhpcyksCjIuIG1ha2UgdGhlIGB3cmFwYCBtb2R1bGUgdGhlIHRv cGxldmVsIGNvbnRleHQgZm9yIGNvZGUgbG9hZGVkIHVuZGVyIGl0LCBzbyBgOjpGb29gIHJlc29s dmVzIHRvIGA8dG9wX3dyYXBwZXI+OjpGb29gIGluIGxvYWRlZCBjb2RlIChvciwgYWdhaW4sIHBy b3ZpZGUgYSBuZXcgZmxhZyBvciBtZXRob2QgdGhhdCB3b3VsZCBkbyB0aGlzKS4gX0Fsc28gbWFr ZSB0aGlzIGFwcGx5IHdoZW4gY29kZSB1bmRlciB0aGUgd3JhcHBlciBtb2R1bGUgaXMgY2FsbGVk IG91dHNpZGUgb2YgdGhlIGxvYWQgcHJvY2VzcyAod2hlbiBgdG9wX3dyYXBwZXJgIGlzIG5vIGxv bmdlciBzZXQpICZtZGFzaDsgdGhpcyBtYXkgYmUgcXVpdGUgaGFyZCB0byBkb18uCjMuIHJlc29s dmUgYG5hbWVgIG9uIGFub255bW91cyBtb2R1bGVzIHVuZGVyIHRoZSB3cmFwcGVkIG1vZHVsZSB0 byB0aGVpciBuYW1lcyB3aXRob3V0IHRoZSB0b3Agd3JhcHBlciBtb2R1bGUsIHNvIGA8dG9wX3dy YXBwZXI+OjpGb28ubmFtZWAgZXZhbHVhdGVzIHRvIGAiRm9vImAuIFRoZXJlIG1heSBiZSBvdGhl ciB3YXlzIHRvIGhhbmRsZSB0aGlzIHByb2JsZW0sIGJ1dCBhIGdlbSBsaWtlIFJhaWxzIHVzZXMg YG5hbWVgIHRvIHJlc29sdmUgZmlsZW5hbWVzIGFuZCBmYWlscyB3aGVuIGFub255bW91cyBtb2R1 bGVzIHJldHVybiBzb21ldGhpbmcgbGlrZSBgIzxNb2R1bGU6IC4uLj46OkFjdGl2ZVJlY29yZGAg aW5zdGVhZCBvZiBqdXN0IGBBY3RpdmVSZWNvcmRgLgoKSSBoYXZlIHJvdWdobHkgaW1wbGVtZW50 ZWQgdGhlc2UgdGhyZWUgdGhpbmdzIGluIFt0aGlzIHBhdGNoXShodHRwczovL2dpdGh1Yi5jb20v cnVieS9ydWJ5L2NvbXBhcmUvbWFzdGVyLi4uc2hpb3lhbWE6cnVieTppbXBvcnRfbW9kdWxlcyku IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgaW5jb21wbGV0ZSAoaXQgZG9lcyBub3QgY292ZXIgdGhl IGxhc3QgaGlnaGxpZ2h0ZWQgcGFydCBvZiAyKSBidXQgcHJvdmlkZXMgZW5vdWdoIG9mIGEgYmFz aXMgdG8gaW1wbGVtZW50IGFuIGBpbXBvcnRgIG1ldGhvZCwgd2hpY2ggSSBoYXZlIGRvbmUgaW4g YSBnZW0gY2FsbGVkIFtJbV0oaHR0cHM6Ly9naXRodWIuY29tL3NoaW95YW1hL2ltKS4KCkltIHBy b3ZpZGVzIGFuIGBpbXBvcnRgIG1ldGhvZCB3aGljaCBjYW4gYmUgdXNlZCB0byBpbXBvcnQgZ2Vt IGNvZGUgdW5kZXIgYSBuYW1lc3BhY2U6CgpgYGBydWJ5CnJlcXVpcmUgImltIgpleHRlbmQgSW0K CmFjdGl2ZV9tb2RlbCA9IGltcG9ydCAiYWN0aXZlX21vZGVsIgojPT4gPCNJbTo6SW1wb3J0IHJv b3Q6IGFjdGl2ZV9tb2RlbD4KCkFjdGl2ZU1vZGVsCiM9PiBOYW1lRXJyb3IKCmFjdGl2ZV9tb2Rl bDo6QWN0aXZlTW9kZWwKIz0+IEFjdGl2ZU1vZGVsCgphY3RpdmVfcmVjb3JkID0gaW1wb3J0ICJh Y3RpdmVfcmVjb3JkIgojPT4gPCNJbTo6SW1wb3J0IHJvb3Q6IGFjdGl2ZV9yZWNvcmQ+CgojIENv bnN0YW50cyBkZWZpbmVkIGluIHRoZSBzYW1lIGZpbGUgdW5kZXIgZGlmZmVyZW50IGltcG9ydHMg cG9pbnQgdG8gdGhlIHNhbWUgb2JqZWN0cwphY3RpdmVfcmVjb3JkOjpBY3RpdmVNb2RlbCA9PSBh Y3RpdmVfbW9kZWw6OkFjdGl2ZU1vZGVsCiM9PiB0cnVlCmBgYAoKV2l0aCB0aGUgY29uc3RhbnRz IGFsbCBsb2FkZWQgdW5kZXIgYW4gYW5vbnltb3VzIG5hbWVzcGFjZSwgYW55IGNvZGUgaW1wb3J0 aW5nIHRoZSBnZW0gY2FuIG5hbWUgY29uc3RhbnRzIGhvd2V2ZXIgaXQgbGlrZXM6CgpgYGBydWJ5 CmNsYXNzIFBvc3QgPCBhY3RpdmVfcmVjb3JkOjpBY3RpdmVSZWNvcmQ6OkJhc2UKZW5kCgpBUiA9 IGFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZVJlY29yZAoKUG9zdC5zdXBlcmNsYXNzCiM9PiBBUjo6QmFz ZQpgYGAKCk5vdGUgdGhhdCB0aGlzIGVuYWJsZXMgdGhlIGltcG9ydGVyIHRvIGNvbXBsZXRlbHkg ZGV0ZXJtaW5lIHRoZSBuYW1pbmcgZm9yIGV2ZXJ5IGNvbnN0YW50IGl0IGltcG9ydHMuIFNvIGdl bXMgY2FuIG9wdCB0byBoaWRlIHRoZWlyIGRlcGVuZGVuY2llcyBieSAiYW5jaG9yaW5nIiB0aGVt IGluc2lkZSB0aGVpciBvd24gbmFtZXNwYWNlLCBsaWtlIHRoaXM6CgpgYGBydWJ5CiMgaW4gbGli L215X2dlbS5yYgptb2R1bGUgTXlHZW0KICBkZXAgPSBpbXBvcnQgIm15X2dlbV9kZXBlbmRlbmN5 IgoKICAjIG15X2dlbV9kZXBlbmRlbmN5IGlzICJhbmNob3JlZCIgdW5kZXIgdGhlIE15R2VtIG5h bWVzcGFjZSwgc28gbm90IGV4cG9zZWQgdG8gdXNlcnMKICAjIG9mIHRoZSBnZW0gdW5sZXNzIHRo ZXkgYWxzbyByZXF1aXJlIGl0LgogIE15R2VtRGVwZW5kZW5jeSA9IGRlcAoKICAjLi4uCmVuZApg YGAKClRoZXJlIGFyZSBhIGNvdXBsZSBpbXBvcnRhbnQgaW1wbGVtZW50YXRpb24gZGVjaXNpb25z IGluIHRoZSBnZW06CgoxLiBfT25seSBsb2FkIGNvZGUgb25jZS5fIFdoZW4gdGhlIHNhbWUgZmls ZSBpcyBpbXBvcnRlZCBhZ2FpbiAoZWl0aGVyIGRpcmVjdGx5IG9yIHRyYW5zaXRpdmVseSksICJj b3B5IiBjb25zdGFudHMgZnJvbSBwcmV2aW91c2x5IGltcG9ydGVkIG5hbWVzcGFjZSB0byB0aGUg bmV3IG5hbWVzcGFjZSB1c2luZyBhIHJlZ2lzdHJ5IHdoaWNoIG1hcHMgd2hpY2ggbmFtZXNwYWNl IChpbXBvcnQpIHdhcyB1c2VkIHRvIGxvYWQgd2hpY2ggZmlsZSAoYXMgc2hvd24gYWJvdmUgd2l0 aCBhY3RpdmVyZWNvcmQvYWN0aXZlbW9kZWwpLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUg dGhhdCBkaWZmZXJlbnQgaW1wb3J0cyBjYW4gInNlZSIgc2hhcmVkIGZpbGVzLiBBIHNpbWlsYXIg cmVnaXN0cnkgaXMgdXNlZCB0byB0cmFjayBhdXRvbG9hZHMgc28gdGhhdCB0aGV5IHdvcmsgY29y cmVjdGx5IHdoZW4gdXNlZCBmcm9tIGltcG9ydGVkIGNvZGUuCjIuIFRvcGxldmVsIGNvcmUgdHlw ZXMgKGBOaWxDbGFzc2AsIGBUcnVlQ2xhc3NgLCBgRmFsc2VDbGFzc2AsIGBTdHJpbmdgLCBldGMp IGFyZSAiYWxpYXNlZCIgdG8gY29uc3RhbnRzIHVuZGVyIGVhY2ggaW1wb3J0IG1vZHVsZSB0byBt YWtlIHRoZW0gYXZhaWxhYmxlLiBUaHVzIHRoZXJlIGNhbiBiZSBzaWRlLWVmZmVjdHMgb2YgaW1w b3J0aW5nIGNvZGUsIGJ1dCB0aGlzIGFsbG93cyBhIGdlbSBsaWtlIFJhaWxzIHRvIG1vbmtleXBh dGNoIGNvcmUgY2xhc3NlcyB3aGljaCBpdCBuZWVkcyB0byBkbyBmb3IgaXQgdG8gd29yay4KMy4g YE9iamVjdC5jb25zdF9taXNzaW5nYCBpcyBwYXRjaGVkIHRvIGNoZWNrIHRoZSBjYWxsZXIgbG9j YXRpb24gYW5kIHJlc29sdmUgdG8gdGhlIGNvbnN0YW50IGRlZmluZWQgdW5kZXIgYW4gaW1wb3J0 LCBpZiB0aGVyZSBpcyBhbiBpbXBvcnQgZGVmaW5lZCBmb3IgdGhhdCBmaWxlLgoKVG8gYmUgY2xl YXI6ICoqSSB0aGluayAxKSBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4gUnVieSwgYnV0IG5vdCAy KSBhbmQgMykuKiogVGhlIGxhc3Qgb25lIChgT2JqZWN0LmNvbnN0X21pc3NpbmdgKSBpcyBhIGhh Y2sgdG8gc3VwcG9ydCB0aGUgY2FzZSB3aGVyZSBhIHRvcGxldmVsIGNvbnN0YW50IGlzIHJlZmVy ZW5jZWQgZnJvbSBhIG1ldGhvZCBjYWxsZWQgaW4gaW1wb3J0ZWQgY29kZSAoYXQgd2hpY2ggcG9p bnQgdGhlIGB0b3Bfd3JhcHBlcmAgaXMgbm90IGFjdGl2ZS4pCgpJIGtub3cgdGhpcyBpcyBhIGJp ZyBwcm9wb3NhbCwgYW5kIHRoZXJlIGFyZSBzdHJvbmcgb3BpbmlvbnMgaGVsZC4gSSB3b3VsZCBy ZWFsbHkgYXBwcmVjaWF0ZSBjb25zdHJ1Y3RpdmUgZmVlZGJhY2sgb24gdGhpcyBnZW5lcmFsIGlk ZWEuCgpTZWUgYWxzbyBzaW1pbGFyIGRpc2N1c3Npb24gaW46IGh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnL2lzc3Vlcy8xMDMyMAoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpV bnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1Ympl Y3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxt YW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==