--0-1756774879-11524649941951
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Content-Id: 
Content-Disposition: inline

--- nobu / ruby-lang.org wrote:

> Hi,
> 
> At Sun, 9 Jul 2006 03:11:44 +0900,
> Daniel Berger wrote in [ruby-core:08177]:
> > Attached is an rdoc patch for what I believe are
> the
> > most used methods of mkmf.  They include docs for:
> 
> Thank you for the great job.
> 
> > check_sizeof
> 
> I guess checking exact size of a type is less
> necessary in
> common.  Checking trueness of an expression might be
> enough in
> most cases, I guess.
> 
> E.g.:
> 
>   def check_iftrue(expr, headers  il, &b)
>     checking_for("if #{expr}") do
>       try_static_assert(expr, headers, &b)
>     end
>   end
> 
>   check_iftrue("sizeof(long) sizeof(void*)")
> 
> than:
> 
>   check_sizeof("void*") check_sizeof("long")

Probably.  What would it return for a preprocessor
constant, if any?  Well, I leave it up to you.

> 
> > check_sizeof
> > have_library
> > have_struct_member
> > have_type
> 
> And these 4 methods accepts a name or a list for
> headers.

Ok, I've updated the docs to reflect this and modified
the source a tiny bit to use the word 'headers'
instead of 'header' to indicate to programmers that it
can take more than one.

> 
> > Also, I was wondering if we could get the
> have_const
> > method added in, as per Nobu's patch in
> > ruby-core:4426.
> 
> It worked for integral constants only.  Now I guess
> have_macro
> and have_var would do the role instead.  Any idea?

Neither of those work for checking the presence of an
enum typedef member in my experiments.  See
ruby-core:4422.  Perhaps I've made a mistake, though.

What is the purpose of allowing a block to methods
like have_header?  I can see within create_tmpsrc that
it does 'src  ield(src) if block_given?'.  How would
one use a block in practice?  Or is it an artifact of
some sort?

Also, should we tag the methods that aren't meant for
public use with :no-doc: tags?  Or perhaps move all of
these methods into Kernel, and designate private
methods?

Attached is the updated diff.

Regards,

Dan

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
--0-1756774879-11524649941951
Content-Type: application/octet-stream; name="mkmf.diff"
Content-Transfer-Encoding: base64
Content-Description: 1792896259-mkmf.diff
Content-Disposition: attachment; filename="mkmf.diff"

LS0tIG1rbWYub3JpZwlGcmkgSnVuIDAyIDAyOjE2OjQ0IDIwMDYNCisrKyBt
a21mLnJiCVN1biBKdWwgMDkgMTE6MDE6NDEgMjAwNg0KQEAgLTU0Nyw2ICs1
NDcsMTEgQEANCiAgIHINCiBlbmQNCiANCisjIFJldHVybnMgd2hldGhlciBv
ciBub3QgK21hY3JvKyBpcyBkZWZpbmVkIGVpdGhlciBpbiB0aGUgY29tbW9u
IGhlYWRlcg0KKyMgZmlsZXMgb3Igd2l0aGluIGFueSAraGVhZGVycysgeW91
IHByb3ZpZGUuDQorIw0KKyMgQW55IG9wdGlvbnMgeW91IHBhc3MgdG8gK29w
dCsgYXJlIHBhc3NlZCBhbG9uZyB0byB0aGUgY29tcGlsZXIuDQorIw0KIGRl
ZiBoYXZlX21hY3JvKG1hY3JvLCBoZWFkZXJzID0gbmlsLCBvcHQgPSAiIiwg
JmIpDQogICBtID0gIiN7bWFjcm99Ig0KICAgbSA8PCAiIGluICN7aGVhZGVy
cy5pbnNwZWN0fSIgaWYgaGVhZGVycw0KQEAgLTU1NSw3ICs1NjAsMTUgQEAN
CiAgIGVuZA0KIGVuZA0KIA0KLWRlZiBoYXZlX2xpYnJhcnkobGliLCBmdW5j
ID0gbmlsLCBoZWFkZXI9bmlsLCAmYikNCisjIFJldHVybnMgd2hldGhlciBv
ciBub3QgdGhlIGdpdmVuIGVudHJ5IHBvaW50ICtmdW5jKyBjYW4gYmUgZm91
bmQgd2l0aGluDQorIyArbGliKy4gIElmICtmdW5jKyBpcyBuaWwsIHRoZSAn
bWFpbigpJyBlbnRyeSBwb2ludCBpcyB1c2VkIGJ5IGRlZmF1bHQuDQorIyBJ
ZiBmb3VuZCwgaXQgYWRkcyB0aGUgbGlicmFyeSB0byBsaXN0IG9mIGxpYnJh
cmllcyB0byBiZSB1c2VkIHdoZW4gbGlua2luZw0KKyMgeW91ciBleHRlbnNp
b24uDQorIw0KKyMgSWYgK2hlYWRlcnMrIGFyZSBwcm92aWRlZCwgaXQgd2ls
bCBpbmNsdWRlIHRob3NlIGhlYWRlciBmaWxlcyBhcyB0aGUNCisjIGhlYWRl
ciBmaWxlcyBpdCBsb29rcyBpbiB3aGVuIHNlYXJjaGluZyBmb3IgK2Z1bmMr
Lg0KKyMNCitkZWYgaGF2ZV9saWJyYXJ5KGxpYiwgZnVuYyA9IG5pbCwgaGVh
ZGVycz1uaWwsICZiKQ0KICAgZnVuYyA9ICJtYWluIiBpZiAhZnVuYyBvciBm
dW5jLmVtcHR5Pw0KICAgbGliID0gd2l0aF9jb25maWcobGliKydsaWInLCBs
aWIpDQogICBjaGVja2luZ19mb3IgIiN7ZnVuY30oKSBpbiAje0xJQkFSRyVs
aWJ9IiBkbw0KQEAgLTU2Myw3ICs1NzYsNyBAQA0KICAgICAgIHRydWUNCiAg
ICAgZWxzZQ0KICAgICAgIGxpYnMgPSBhcHBlbmRfbGlicmFyeSgkbGlicywg
bGliKQ0KLSAgICAgIGlmIHRyeV9mdW5jKGZ1bmMsIGxpYnMsIGhlYWRlciwg
JmIpDQorICAgICAgaWYgdHJ5X2Z1bmMoZnVuYywgbGlicywgaGVhZGVycywg
JmIpDQogICAgICAgICAkbGlicyA9IGxpYnMNCiAgICAgICAgIHRydWUNCiAg
ICAgICBlbHNlDQpAQCAtNTczLDYgKzU4NiwxMyBAQA0KICAgZW5kDQogZW5k
DQogDQorIyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBlbnRyeSBwb2lu
dCArZnVuYysgY2FuIGJlIGZvdW5kIHdpdGhpbiB0aGUgbGlicmFyeQ0KKyMg
K2xpYisgaW4gb25lIG9mIHRoZSArcGF0aHMrIHNwZWNpZmllZCwgd2hlcmUg
K3BhdGhzKyBpcyBhbiBhcnJheSBvZiBzdHJpbmdzLg0KKyMgSWYgK2Z1bmMr
IGlzIG5pbCAsIHRoZW4gdGhlIG1haW4oKSBmdW5jdGlvbiBpcyB1c2VkIGFz
IHRoZSBlbnRyeSBwb2ludC4NCisjDQorIyBJZiArbGliKyBpcyBmb3VuZCwg
dGhlbiB0aGUgcGF0aCBpdCB3YXMgZm91bmQgb24gaXMgYWRkZWQgdG8gdGhl
IGxpc3Qgb2YNCisjIGxpYnJhcnkgcGF0aHMgc2VhcmNoZWQgYW5kIGxpbmtl
ZCBhZ2FpbnN0Lg0KKyMNCiBkZWYgZmluZF9saWJyYXJ5KGxpYiwgZnVuYywg
KnBhdGhzLCAmYikNCiAgIGZ1bmMgPSAibWFpbiIgaWYgIWZ1bmMgb3IgZnVu
Yy5lbXB0eT8NCiAgIGxpYiA9IHdpdGhfY29uZmlnKGxpYisnbGliJywgbGli
KQ0KQEAgLTU5NSw2ICs2MTUsMTQgQEANCiAgIGVuZA0KIGVuZA0KIA0KKyMg
UmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgZnVuY3Rpb24gK2Z1bmMrIGNh
biBiZSBmb3VuZCBpbiB0aGUgY29tbW9uDQorIyBoZWFkZXIgZmlsZXMsIG9y
IHdpdGhpbiBhbnkgK2hlYWRlcnMrIHRoYXQgeW91IHByb3ZpZGUuICBJZiBm
b3VuZCwgYQ0KKyMgbWFjcm8gaXMgcGFzc2VkIGFzIGEgcHJlcHJvY2Vzc29y
IGNvbnN0YW50IHRvIHRoZSBjb21waWxlciB1c2luZyB0aGUNCisjIGZ1bmN0
aW9uIG5hbWUsIGluIHVwcGVyY2FzZSwgcHJlcGVuZGVkIHdpdGggJ0hBVkVf
Jy4NCisjDQorIyBGb3IgZXhhbXBsZSwgaWYgaGF2ZV9mdW5jKCdmb28nKSBy
ZXR1cm5lZCB0cnVlLCB0aGVuIHRoZSBIQVZFX0ZPTw0KKyMgcHJlcHJvY2Vz
c29yIG1hY3JvIHdvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcGlsZXIuDQor
Iw0KIGRlZiBoYXZlX2Z1bmMoZnVuYywgaGVhZGVycyA9IG5pbCwgJmIpDQog
ICBjaGVja2luZ19mb3IgIiN7ZnVuY30oKSIgZG8NCiAgICAgaWYgdHJ5X2Z1
bmMoZnVuYywgJGxpYnMsIGhlYWRlcnMsICZiKQ0KQEAgLTYwNiw2ICs2MzQs
MTQgQEANCiAgIGVuZA0KIGVuZA0KIA0KKyMgUmV0dXJucyB3aGV0aGVyIG9y
IG5vdCB0aGUgdmFyaWFibGUgK3ZhcisgY2FuIGJlIGZvdW5kIGluIHRoZSBj
b21tb24NCisjIGhlYWRlciBmaWxlcywgb3Igd2l0aGluIGFueSAraGVhZGVy
cysgdGhhdCB5b3UgcHJvdmlkZS4gIElmIGZvdW5kLCBhDQorIyBtYWNybyBp
cyBwYXNzZWQgYXMgYSBwcmVwcm9jZXNzb3IgY29uc3RhbnQgdG8gdGhlIGNv
bXBpbGVyIHVzaW5nIHRoZQ0KKyMgdmFyaWFibGUgbmFtZSwgaW4gdXBwZXJj
YXNlLCBwcmVwZW5kZWQgd2l0aCAnSEFWRV8nLg0KKyMNCisjIEZvciBleGFt
cGxlLCBpZiBoYXZlX3ZhcignZm9vJykgcmV0dXJuZWQgdHJ1ZSwgdGhlbiB0
aGUgSEFWRV9GT08NCisjIHByZXByb2Nlc3NvciBtYWNybyB3b3VsZCBiZSBw
YXNzZWQgdG8gdGhlIGNvbXBpbGVyLg0KKyMNCiBkZWYgaGF2ZV92YXIodmFy
LCBoZWFkZXJzID0gbmlsLCAmYikNCiAgIGNoZWNraW5nX2ZvciAiI3t2YXJ9
IiBkbw0KICAgICBpZiB0cnlfdmFyKHZhciwgaGVhZGVycywgJmIpDQpAQCAt
NjE3LDYgKzY1MywxMyBAQA0KICAgZW5kDQogZW5kDQogDQorIyBSZXR1cm5z
IHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiAraGVhZGVyKyBmaWxlIGNhbiBi
ZSBmb3VuZCBvbiB5b3VyIHN5c3RlbS4NCisjIElmIGZvdW5kLCBhIG1hY3Jv
IGlzIHBhc3NlZCBhcyBhIHByZXByb2Nlc3NvciBjb25zdGFudCB0byB0aGUg
Y29tcGlsZXIgdXNpbmcNCisjIHRoZSBoZWFkZXIgZmlsZSBuYW1lLCBpbiB1
cHBlcmNhc2UsIHByZXBlbmRlZCB3aXRoICdIQVZFXycuDQorIw0KKyMgRm9y
IGV4YW1wbGUsIGlmIGhhdmVfaGVhZGVyKCdmb28uaCcpIHJldHVybmVkIHRy
dWUsIHRoZW4gdGhlIEhBVkVfRk9PX0gNCisjIHByZXByb2Nlc3NvciBtYWNy
byB3b3VsZCBiZSBwYXNzZWQgdG8gdGhlIGNvbXBpbGVyLg0KKyMNCiBkZWYg
aGF2ZV9oZWFkZXIoaGVhZGVyLCAmYikNCiAgIGNoZWNraW5nX2ZvciBoZWFk
ZXIgZG8NCiAgICAgaWYgdHJ5X2NwcChjcHBfaW5jbHVkZShoZWFkZXIpLCAm
YikNCkBAIC02MjgsNiArNjcxLDEyIEBADQogICBlbmQNCiBlbmQNCiANCisj
IEluc3RydWN0cyBta21mIHRvIHNlYXJjaCBmb3IgdGhlIGdpdmVuICtoZWFk
ZXIrIGluIGFueSBvZiB0aGUgK3BhdGhzKw0KKyMgcHJvdmlkZWQsIGFuZCBy
ZXR1cm5zIHdoZXRoZXIgb3Igbm90IGl0IHdhcyBmb3VuZCBpbiB0aG9zZSBw
YXRocy4NCisjDQorIyBJZiB0aGUgaGVhZGVyIGlzIGZvdW5kIHRoZW4gdGhl
IHBhdGggaXQgd2FzIGZvdW5kIG9uIGlzIGFkZGVkIHRvIHRoZSBsaXN0DQor
IyBvZiBpbmNsdWRlZCBkaXJlY3RvcmllcyB0aGF0IGFyZSBzZW50IHRvIHRo
ZSBjb21waWxlciAodmlhIHRoZSAtSSBzd2l0Y2gpLg0KKyMNCiBkZWYgZmlu
ZF9oZWFkZXIoaGVhZGVyLCAqcGF0aHMpDQogICBjaGVja2luZ19mb3IgaGVh
ZGVyIGRvDQogICAgIGlmIHRyeV9jcHAoY3BwX2luY2x1ZGUoaGVhZGVyKSkN
CkBAIC02NDcsMTEgKzY5NiwyMiBAQA0KICAgZW5kDQogZW5kDQogDQotZGVm
IGhhdmVfc3RydWN0X21lbWJlcih0eXBlLCBtZW1iZXIsIGhlYWRlciA9IG5p
bCwgJmIpDQorIyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJ1Y3Qg
b2YgdHlwZSArdHlwZSsgY29udGFpbnMgK21lbWJlcisuICBJZg0KKyMgaXQg
ZG9lcyBub3QsIG9yIHRoZSBzdHJ1Y3QgdHlwZSBjYW4ndCBiZSBmb3VuZCwg
dGhlbiBmYWxzZSBpcyByZXR1cm5lZC4gIFlvdQ0KKyMgbWF5IG9wdGlvbmFs
bHkgc3BlY2lmeSBhZGRpdGlvbmFsICtoZWFkZXJzKyBpbiB3aGljaCB0byBs
b29rIGZvciB0aGUgc3RydWN0DQorIyAoaW4gYWRkaXRpb24gdG8gdGhlIGNv
bW1vbiBoZWFkZXIgZmlsZXMpLg0KKyMNCisjIElmIGZvdW5kLCBhIG1hY3Jv
IGlzIHBhc3NlZCBhcyBhIHByZXByb2Nlc3NvciBjb25zdGFudCB0byB0aGUg
Y29tcGlsZXIgdXNpbmcNCisjIHRoZSBtZW1iZXIgbmFtZSwgaW4gdXBwZXJj
YXNlLCBwcmVwZW5kZWQgd2l0aCAnSEFWRV9TVF8nLg0KKyMNCisjIEZvciBl
eGFtcGxlLCBpZiBoYXZlX3N0cnVjdF9tZW1iZXIoJ2ZvbycsICdiYXInKSBy
ZXR1cm5lZCB0cnVlLCB0aGVuIHRoZQ0KKyMgSEFWRV9TVF9CQVIgcHJlcHJv
Y2Vzc29yIG1hY3JvIHdvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcGlsZXIu
DQorIyANCitkZWYgaGF2ZV9zdHJ1Y3RfbWVtYmVyKHR5cGUsIG1lbWJlciwg
aGVhZGVycyA9IG5pbCwgJmIpDQogICBjaGVja2luZ19mb3IgIiN7dHlwZX0u
I3ttZW1iZXJ9IiBkbw0KICAgICBpZiB0cnlfY29tcGlsZSg8PCJTUkMiLCAm
YikNCiAje0NPTU1PTl9IRUFERVJTfQ0KLSN7Y3BwX2luY2x1ZGUoaGVhZGVy
KX0NCisje2NwcF9pbmNsdWRlKGhlYWRlcnMpfQ0KIC8qdG9wKi8NCiBpbnQg
bWFpbigpIHsgcmV0dXJuIDA7IH0NCiBpbnQgcyA9IChjaGFyICopJigoI3t0
eXBlfSopMCktPiN7bWVtYmVyfSAtIChjaGFyICopMDsNCkBAIC02NjQsMTcg
KzcyNCwzMCBAQA0KICAgZW5kDQogZW5kDQogDQotZGVmIGhhdmVfdHlwZSh0
eXBlLCBoZWFkZXIgPSBuaWwsIG9wdCA9ICIiLCAmYikNCisjIFJldHVybnMg
d2hldGhlciBvciBub3QgdGhlIHN0YXRpYyB0eXBlICt0eXBlKyBpcyBkZWZp
bmVkLiAgWW91IG1heQ0KKyMgb3B0aW9uYWxseSBwYXNzIGFkZGl0aW9uYWwg
K2hlYWRlcnMrIHRvIGNoZWNrIGFnYWluc3QgaW4gYWRkaXRpb24gdG8gdGhl
DQorIyBjb21tb24gaGVhZGVyIGZpbGVzLg0KKyMNCisjIFlvdSBtYXkgYWxz
byBwYXNzIGFkZGl0aW9uYWwgZmxhZ3MgdG8gK29wdCsgd2hpY2ggYXJlIHRo
ZW4gcGFzc2VkIGFsb25nIHRvDQorIyB0aGUgY29tcGlsZXIuDQorIw0KKyMg
SWYgZm91bmQsIGEgbWFjcm8gaXMgcGFzc2VkIGFzIGEgcHJlcHJvY2Vzc29y
IGNvbnN0YW50IHRvIHRoZSBjb21waWxlciB1c2luZw0KKyMgdGhlIHR5cGUg
bmFtZSwgaW4gdXBwZXJjYXNlLCBwcmVwZW5kZWQgd2l0aCAnSEFWRV9UWVBF
XycuDQorIw0KKyMgRm9yIGV4YW1wbGUsIGlmIGhhdmVfdHlwZSgnZm9vJykg
cmV0dXJuZWQgdHJ1ZSwgdGhlbiB0aGUgSEFWRV9UWVBFX0ZPTw0KKyMgcHJl
cHJvY2Vzc29yIG1hY3JvIHdvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcGls
ZXIuDQorIw0KK2RlZiBoYXZlX3R5cGUodHlwZSwgaGVhZGVycyA9IG5pbCwg
b3B0ID0gIiIsICZiKQ0KICAgY2hlY2tpbmdfZm9yIHR5cGUgZG8NCi0gICAg
aGVhZGVyID0gY3BwX2luY2x1ZGUoaGVhZGVyKQ0KKyAgICBoZWFkZXJzID0g
Y3BwX2luY2x1ZGUoaGVhZGVycykNCiAgICAgaWYgdHJ5X2NvbXBpbGUoPDwi
U1JDIiwgb3B0LCAmYikgb3IgKC9cQVx3K1x6L24gPX4gdHlwZSAmJiB0cnlf
Y29tcGlsZSg8PCJTUkMiLCBvcHQsICZiKSkNCiAje0NPTU1PTl9IRUFERVJT
fQ0KLSN7aGVhZGVyfQ0KKyN7aGVhZGVyc30NCiAvKnRvcCovDQogc3RhdGlj
ICN7dHlwZX0gdDsNCiBTUkMNCiAje0NPTU1PTl9IRUFERVJTfQ0KLSN7aGVh
ZGVyfQ0KKyN7aGVhZGVyc30NCiAvKnRvcCovDQogc3RhdGljICN7dHlwZX0g
KnQ7DQogU1JDDQpAQCAtNjg2LDEzICs3NTksMjMgQEANCiAgIGVuZA0KIGVu
ZA0KIA0KLWRlZiBjaGVja19zaXplb2YodHlwZSwgaGVhZGVyID0gbmlsLCAm
YikNCisjIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIGdpdmVuICt0eXBlKy4g
IFlvdSBtYXkgb3B0aW9uYWxseSBzcGVjaWZ5IGFkZGl0aW9uYWwNCisjICto
ZWFkZXJzKyB0byBzZWFyY2ggaW4gZm9yIHRoZSArdHlwZSsuDQorIw0KKyMg
SWYgZm91bmQsIGEgbWFjcm8gaXMgcGFzc2VkIGFzIGEgcHJlcHJvY2Vzc29y
IGNvbnN0YW50IHRvIHRoZSBjb21waWxlciB1c2luZw0KKyMgdGhlIHR5cGUg
bmFtZSwgaW4gdXBwZXJjYXNlLCBwcmVwZW5kZWQgd2l0aCAnU0laRU9GXycs
IGZvbGxvd2VkIGJ5IHRoZSB0eXBlDQorIyBuYW1lLCBmb2xsb3dlZCBieSAn
PVgnIHdoZXJlICdYJyBpcyB0aGUgYWN0dWFsIHNpemUuDQorIw0KKyMgRm9y
IGV4YW1wbGUsIGlmIGNoZWNrX3NpemVvZignbXlzdHJ1Y3QnKSByZXR1cm5l
ZCAxMiwgdGhlbiB0aGUNCisjIFNJWkVPRl9NWVNUUlVDVD0xMiBwcmVwcm9j
ZXNzb3IgbWFjcm8gd291bGQgYmUgcGFzc2VkIHRvIHRoZSBjb21waWxlci4N
CisjDQorZGVmIGNoZWNrX3NpemVvZih0eXBlLCBoZWFkZXJzID0gbmlsLCAm
YikNCiAgIGV4cHIgPSAic2l6ZW9mKCN7dHlwZX0pIg0KICAgbSA9ICJjaGVj
a2luZyBzaXplIG9mICN7dHlwZX0uLi4gIg0KICAgbWVzc2FnZSAiJXMiLCBt
DQogICBhID0gc2l6ZSA9IG5pbA0KICAgTG9nZ2luZzo6cG9zdHBvbmUgZG8N
Ci0gICAgaWYgc2l6ZSA9IHRyeV9jb25zdGFudChleHByLCBoZWFkZXIsICZi
KQ0KKyAgICBpZiBzaXplID0gdHJ5X2NvbnN0YW50KGV4cHIsIGhlYWRlcnMs
ICZiKQ0KICAgICAgICRkZWZzLnB1c2goZm9ybWF0KCItRFNJWkVPRl8lcz0l
ZCIsIHR5cGUudXBjYXNlLnRyX3MoIl5BLVowLTlfIiwgIl8iKSwgc2l6ZSkp
DQogICAgICAgYSA9ICIje3NpemV9XG4iDQogICAgIGVsc2UNCkBAIC04NDcs
NiArOTMwLDE3IEBADQogICAkZXh0Y29uZl9oID0gaGVhZGVyDQogZW5kDQog
DQorIyBTZXRzIGEgK3RhcmdldCsgbmFtZSB0aGF0IHRoZSB1c2VyIGNhbiB0
aGVuIHVzZSB0byBjb25maWd1cmUgdmFyaW91cyAnd2l0aCcNCisjIG9wdGlv
bnMgd2l0aCBvbiB0aGUgY29tbWFuZCBsaW5lIGJ5IHVzaW5nIHRoYXQgbmFt
ZS4gIEZvciBleGFtcGxlLCBpZiB0aGUNCisjIHRhcmdldCBpcyBzZXQgdG8g
ImZvbyIsIHRoZW4gdGhlIHVzZXIgY291bGQgdXNlIHRoZSAtLXdpdGgtZm9v
LWRpciBjb21tYW5kDQorIyBsaW5lIG9wdGlvbi4NCisjDQorIyBZb3UgbWF5
IHBhc3MgYWxvbmcgYWRkaXRpb25hbCAnaW5jbHVkZScgb3IgJ2xpYicgZGVm
YXVsdHMgdmlhIHRoZSAraWRlZmF1bHQrDQorIyBhbmQgK2xkZWZhdWx0KyBw
YXJhbWV0ZXJzLCByZXNwZWN0aXZlbHkuDQorIw0KKyMgTm90ZSB0aGF0IGRp
cl9jb25maWcgb25seSBhZGRzIHRvIHRoZSBsaXN0IG9mIHBsYWNlcyB0byBz
ZWFyY2ggZm9yIGxpYnJhcmllcw0KKyMgYW5kIGluY2x1ZGUgZmlsZXMuICBJ
dCBkb2VzIG5vdCBsaW5rIHRoZSBsaWJyYXJpZXMgaW50byB5b3VyIGFwcGxp
Y2F0aW9uLg0KKyMNCiBkZWYgZGlyX2NvbmZpZyh0YXJnZXQsIGlkZWZhdWx0
PW5pbCwgbGRlZmF1bHQ9bmlsKQ0KICAgaWYgZGlyID0gd2l0aF9jb25maWco
dGFyZ2V0ICsgIi1kaXIiLCAoaWRlZmF1bHQgdW5sZXNzIGxkZWZhdWx0KSkN
CiAgICAgZGVmYXVsdHMgPSBBcnJheSA9PT0gZGlyID8gZGlyIDogZGlyLnNw
bGl0KEZpbGU6OlBBVEhfU0VQQVJBVE9SKQ0KQEAgLTEwMjEsNiArMTExNSwy
NCBAQA0KIFJVTEVTDQogZW5kDQogDQorIyBHZW5lcmF0ZXMgdGhlIE1ha2Vm
aWxlIGZvciB5b3VyIGV4dGVuc2lvbiwgcGFzc2luZyBhbG9uZyBhbnkgb3B0
aW9ucyBhbmQNCisjIHByZXByb2Nlc3NvciBjb25zdGFudHMgdGhhdCB5b3Ug
bWF5IGhhdmUgZ2VuZXJhdGVkIHRocm91Z2ggb3RoZXIgbWV0aG9kcy4NCisj
DQorIyBUaGUgK3RhcmdldCsgbmFtZSBzaG91bGQgY29ycmVzcG9uZCB0aGUg
bmFtZSBvZiB0aGUgZ2xvYmFsIGZ1bmN0aW9uIG5hbWUNCisjIGRlZmluZWQg
d2l0aGluIHlvdXIgQyBleHRlbnNpb24sIG1pbnVzIHRoZSAnSW5pdF8nLiAg
Rm9yIGV4YW1wbGUsIGlmIHlvdXINCisjIEMgZXh0ZW5zaW9uIGlzIGRlZmlu
ZWQgYXMgJ0luaXRfZm9vJywgdGhlbiB5b3VyIHRhcmdldCB3b3VsZCBzaW1w
bHkgYmUgJ2ZvbycuDQorIw0KKyMgSWYgYW55ICcvJyBjaGFyYWN0ZXJzIGFy
ZSBwcmVzZW50IGluIHRoZSB0YXJnZXQgbmFtZSwgb25seSB0aGUgbGFzdCBu
YW1lDQorIyBpcyBpbnRlcnByZXRlZCBhcyB0aGUgdGFyZ2V0IG5hbWUsIGFu
ZCB0aGUgcmVzdCBhcmUgY29uc2lkZXJlZCB0b3BsZXZlbA0KKyMgZGlyZWN0
b3J5IG5hbWVzLCBhbmQgdGhlIGdlbmVyYXRlZCBNYWtlZmlsZSB3aWxsIGJl
IGFsdGVyZWQgYWNjb3JkaW5nbHkgdG8NCisjIGZvbGxvdyB0aGF0IGRpcmVj
dG9yeSBzdHJ1Y3R1cmUuDQorIw0KKyMgRm9yIGV4YW1wbGUsIGlmIHlvdSBw
YXNzICd0ZXN0L2ZvbycgYXMgYSB0YXJnZXQgbmFtZSwgeW91ciBleHRlbnNp
b24gd2lsbA0KKyMgYmUgaW5zdGFsbGVkIHVuZGVyIHRoZSAndGVzdCcgZGly
ZWN0b3J5LiAgVGhpcyBtZWFucyB0aGF0IGluIG9yZGVyIHRvDQorIyBsb2Fk
IHRoZSBmaWxlIHdpdGhpbiBhIFJ1YnkgcHJvZ3JhbSBsYXRlciwgdGhhdCBk
aXJlY3Rvcnkgc3RydWN0dXJlIHdpbGwNCisjIGhhdmUgdG8gYmUgZm9sbG93
ZWQsIGUuZy4gInJlcXVpcmUgJ3Rlc3QvZm9vJyIuDQorIyANCisjDQogZGVm
IGNyZWF0ZV9tYWtlZmlsZSh0YXJnZXQsIHNyY3ByZWZpeCA9IG5pbCkNCiAg
ICR0YXJnZXQgPSB0YXJnZXQNCiAgIGxpYnBhdGggPSAkTElCUEFUSA0K

--0-1756774879-11524649941951--