xconfig 2.2.[23] patch ...

Andrzej Krzysztofowicz (ankry@green.mif.pg.gda.pl)
Wed, 10 Mar 1999 20:32:19 +0100 (CET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--328796202-1730645311-921094339=:1080
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,
I enclose my newest xconfig patch against 2.2.[23]. It fixes many
of known bugs and introduces submenus. Xconfig users: please test it
and mail me your positive/negative opinions.
Mail me also if you find any new xconfig problems which can be fixed in
next release.
Sorry for sending the patch to the list, but I'm afraid that my ftp
site
(ftp://rudy.mif.pg.gda.pl/pub/People/ankry/linux-patches/2.2/xconfig/)
may be poorly accessible for most subscribers.

Regards
Andrzej

--
=======================================================================
  Andrzej M. Krzysztofowicz               ankry@mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Technical University of Gdansk

--328796202-1730645311-921094339=:1080 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="patch-xconfig-2.2.2" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.3.96.990310203219.1080B@green.mif.pg.gda.pl> Content-Description:

ZGlmZiAtdSAtLXJlY3Vyc2l2ZSBsaW51eC0yLjIuMi1hYzEvc2NyaXB0cy9o ZWFkZXIudGsgbGludXgvc2NyaXB0cy9oZWFkZXIudGsNCi0tLSBsaW51eC0y LjIuMi1hYzEvc2NyaXB0cy9oZWFkZXIudGsJVHVlIEZlYiAyMyAyMzoyMjoz NiAxOTk5DQorKysgbGludXgvc2NyaXB0cy9oZWFkZXIudGsJVHVlIEZlYiAy MyAyMzozMzozOCAxOTk5DQpAQCAtNjcsOSArNjcsMTEgQEANCiANCiBwcm9j IG1lbnVfb3B0aW9uIHsgdyBtZW51X251bSB0ZXh0IH0gew0KIAlnbG9iYWwg bWVudXNfcGVyX2NvbHVtbg0KLQlpZiB7ICRtZW51X251bSA8PSAkbWVudXNf cGVyX2NvbHVtbiB9IHRoZW4gew0KKwlnbG9iYWwgcHJvY2Vzc2VkX3RvcF9s ZXZlbA0KKwlzZXQgcHJvY2Vzc2VkX3RvcF9sZXZlbCBbZXhwciAkcHJvY2Vz c2VkX3RvcF9sZXZlbCArIDFdDQorCWlmIHsgJHByb2Nlc3NlZF90b3BfbGV2 ZWwgPD0gJG1lbnVzX3Blcl9jb2x1bW4gfSB0aGVuIHsNCiAJICAgIHNldCBt eWZyYW1lIGxlZnQNCi0JfSBlbHNlaWYgeyAkbWVudV9udW0gPD0gW2V4cHIg MiAqICRtZW51c19wZXJfY29sdW1uXSB9IHRoZW4gew0KKwl9IGVsc2VpZiB7 ICRwcm9jZXNzZWRfdG9wX2xldmVsIDw9IFtleHByIDIgKiAkbWVudXNfcGVy X2NvbHVtbl0gfSB0aGVuIHsNCiAJICAgIHNldCBteWZyYW1lIG1pZGRsZQ0K IAl9IGVsc2Ugew0KIAkgICAgc2V0IG15ZnJhbWUgcmlnaHQNCkBAIC0yMTEs NyArMjEzLDcgQEANCiAJfQ0KIAljbG9zZSAkZmlsZTENCiAJdXBkYXRlX2No b2ljZXMNCi0JdXBkYXRlX21haW5tZW51IC5yZHVwZA0KKwl1cGRhdGVfbWFp bm1lbnUNCiB9DQogcHJvYyB3cml0ZV9jb21tZW50IHsgZmlsZTEgZmlsZTIg dGV4dCB9IHsNCiAgICAgCXB1dHMgJGZpbGUxICIiDQpAQCAtMjgyLDExICsy ODQsMTEgQEANCiBwcm9jIHRvZ2dsZV9zd2l0Y2gyIHt3IG1udW0gbGluZSB0 ZXh0IHZhcmlhYmxlfSB7DQogCWZyYW1lICR3LngkbGluZSAtcmVsaWVmIHN1 bmtlbg0KIAlyYWRpb2J1dHRvbiAkdy54JGxpbmUueSAtdGV4dCAieSIgLXZh cmlhYmxlICR2YXJpYWJsZSAtdmFsdWUgMSBcDQotCQktcmVsaWVmIGdyb292 ZSAtd2lkdGggMiAtY29tbWFuZCAidXBkYXRlX21lbnUkbW51bSAubWVudSRt bnVtIg0KKwkJLXJlbGllZiBncm9vdmUgLXdpZHRoIDIgLWNvbW1hbmQgInVw ZGF0ZV9hY3RpdmUgLm1lbnUkbW51bSINCiAJcmFkaW9idXR0b24gJHcueCRs aW5lLm0gLXRleHQgIi0iICAtdmFyaWFibGUgJHZhcmlhYmxlIC12YWx1ZSAy IFwNCi0JCS1yZWxpZWYgZ3Jvb3ZlIC13aWR0aCAyIC1jb21tYW5kICJ1cGRh dGVfbWVudSRtbnVtIC5tZW51JG1udW0iDQorCQktcmVsaWVmIGdyb292ZSAt d2lkdGggMiAtY29tbWFuZCAidXBkYXRlX2FjdGl2ZSAubWVudSRtbnVtIg0K IAlyYWRpb2J1dHRvbiAkdy54JGxpbmUubiAtdGV4dCAibiIgIC12YXJpYWJs ZSAkdmFyaWFibGUgLXZhbHVlIDAgXA0KLQkJLXJlbGllZiBncm9vdmUgLXdp ZHRoIDIgLWNvbW1hbmQgInVwZGF0ZV9tZW51JG1udW0gLm1lbnUkbW51bSIN CisJCS1yZWxpZWYgZ3Jvb3ZlIC13aWR0aCAyIC1jb21tYW5kICJ1cGRhdGVf YWN0aXZlIC5tZW51JG1udW0iDQogCQkNCiAJb3B0aW9uX25hbWUgJHcgJG1u dW0gJGxpbmUgJHRleHQgJHZhcmlhYmxlDQogCQkNCkBAIC0yOTYsMTEgKzI5 OCwxMSBAQA0KIHByb2MgdG9nZ2xlX3N3aXRjaDMge3cgbW51bSBsaW5lIHRl eHQgdmFyaWFibGV9IHsNCiAJZnJhbWUgJHcueCRsaW5lIC1yZWxpZWYgc3Vu a2VuDQogCXJhZGlvYnV0dG9uICR3LngkbGluZS55IC10ZXh0ICJ5IiAtdmFy aWFibGUgJHZhcmlhYmxlIC12YWx1ZSAxIFwNCi0JCS1yZWxpZWYgZ3Jvb3Zl IC13aWR0aCAyIC1jb21tYW5kICJ1cGRhdGVfbWVudSRtbnVtIC5tZW51JG1u dW0iDQorCQktcmVsaWVmIGdyb292ZSAtd2lkdGggMiAtY29tbWFuZCAidXBk YXRlX2FjdGl2ZSAubWVudSRtbnVtIg0KIAlyYWRpb2J1dHRvbiAkdy54JGxp bmUubSAtdGV4dCAibSIgIC12YXJpYWJsZSAkdmFyaWFibGUgLXZhbHVlIDIg XA0KLQkJLXJlbGllZiBncm9vdmUgLXdpZHRoIDIgLWNvbW1hbmQgInVwZGF0 ZV9tZW51JG1udW0gLm1lbnUkbW51bSINCisJCS1yZWxpZWYgZ3Jvb3ZlIC13 aWR0aCAyIC1jb21tYW5kICJ1cGRhdGVfYWN0aXZlIC5tZW51JG1udW0iDQog CXJhZGlvYnV0dG9uICR3LngkbGluZS5uIC10ZXh0ICJuIiAgLXZhcmlhYmxl ICR2YXJpYWJsZSAtdmFsdWUgMCBcDQotCQktcmVsaWVmIGdyb292ZSAtd2lk dGggMiAtY29tbWFuZCAidXBkYXRlX21lbnUkbW51bSAubWVudSRtbnVtIg0K KwkJLXJlbGllZiBncm9vdmUgLXdpZHRoIDIgLWNvbW1hbmQgInVwZGF0ZV9h Y3RpdmUgLm1lbnUkbW51bSINCiAJCQ0KIAlvcHRpb25fbmFtZSAkdyAkbW51 bSAkbGluZSAkdGV4dCAkdmFyaWFibGUNCiAJCQ0KQEAgLTM1OCw2ICszNjAs MTggQEANCiAJcGFjayAkdy54JGxpbmUgLWFuY2hvciB3IC1maWxsIGJvdGgg LWV4cGFuZCBvbg0KIH0NCiANCitwcm9jIHN1Ym1lbnUgeyB3IG1udW0gbGlu ZSB0ZXh0IHN1Ym51bSB9IHsNCisJZnJhbWUgJHcueCRsaW5lDQorCWJ1dHRv biAkdy54JGxpbmUubCAtdGV4dCAiIiAtd2lkdGggMTUgLXJlbGllZiBncm9v dmUNCisJJHcueCRsaW5lLmwgY29uZmlndXJlIC1hY3RpdmVmb3JlIFtjZ2V0 ICR3LngkbGluZS5sIC1mZ10gXA0KKwkJLWFjdGl2ZWJhY2sgW2NnZXQgJHcu eCRsaW5lLmwgLWJnXSAtc3RhdGUgZGlzYWJsZWQNCisJYnV0dG9uICR3Lngk bGluZS5tIC10ZXh0ICIkdGV4dCIgLXJlbGllZiByYWlzZWQgLWFuY2hvciB3 IFwNCisJCS1jb21tYW5kICJkZXN0cm95IC5tZW51JHN1Ym51bTsgbWVudSRz dWJudW0gLm1lbnUkc3VibnVtIFwiJHRleHRcIiINCisJcGFjayAkdy54JGxp bmUubCAtc2lkZSBsZWZ0IC1maWxsIGJvdGgNCisJcGFjayAkdy54JGxpbmUu bSAtYW5jaG9yIHcgLXNpZGUgcmlnaHQgLWZpbGwgYm90aCAtZXhwYW5kIG9u DQorCXBhY2sgJHcueCRsaW5lIC1hbmNob3IgdyAtZmlsbCBib3RoIC1leHBh bmQgb24NCit9DQorDQogcHJvYyBjb21tZW50IHt3IGxpbmUgdGV4dCB9IHsN CiAjbm90aGluZyBkb25lIGZvciBjb21tZW50cyBub3cuDQogfQ0KQEAgLTQx Nyw3ICs0MzEsNyBAQA0KIAkjDQogCWZyYW1lICR3LmYyDQogCWJ1dHRvbiAk dy5mMi5vayAtdGV4dCAiT0siIFwNCi0JCS13aWR0aCAxMCAtY29tbWFuZCAi ZGVzdHJveSAkdzsgZm9jdXMgJG9sZEZvY3VzIg0KKwkJLXdpZHRoIDEwIC1j b21tYW5kICJkZXN0cm95ICR3OyBjYXRjaCB7Zm9jdXMgJG9sZEZvY3VzfSIN CiAJcGFjayAkdy5mMi5vayAtc2lkZSBib3R0b20gLXBhZHkgNiAtYW5jaG9y IG4NCiAJcGFjayAkdy5mMiAtc2lkZSBib3R0b20gLXBhZHggMTAgLWFuY2hv ciBzDQogDQpAQCAtNDU4LDYgKzQ3MiwyOCBAQA0KIA0KIH0NCiANCitwcm9j IHVucmVnaXN0ZXJfYWN0aXZlIHt3fSB7DQorCWdsb2JhbCBhY3RpdmVfbWVu dXMNCisJc2V0IGluZGV4IFtsc2VhcmNoIC1leGFjdCAkYWN0aXZlX21lbnVz ICR3XQ0KKwlpZiB7JGluZGV4ICE9IC0xfSB0aGVuIHtzZXQgYWN0aXZlX21l bnVzIFtscmVwbGFjZSAkYWN0aXZlX21lbnVzICRpbmRleCAkaW5kZXhdfQ0K K30NCisNCitwcm9jIHVwZGF0ZV9hY3RpdmUge3d9IHsNCisJZ2xvYmFsIGFj dGl2ZV9tZW51cw0KKwlmb3JlYWNoIGkgJGFjdGl2ZV9tZW51cyB7DQorCQlz ZXQgZXJyb3JfY29kZSBbY2F0Y2ggdXBkYXRlXyRpXQ0KKwkJaWYgeyRlcnJv cl9jb2RlICE9IDB9IHRoZW4ge3VucmVnaXN0ZXJfYWN0aXZlICRpfQ0KKwl9 DQorfQ0KKw0KK3Byb2MgdmFsaWRhdGVfaW50IHtuYW1lIHZhbH0gew0KKwlp ZiB7KFtleGVjIGVjaG8gJHZhbCB8IHNlZCBzL14tLy9nIHwgdHIgLWQgXFs6 ZGlnaXQ6XF0gXSAhPSAiIil9IHRoZW4ge2dsb2JhbCAkbmFtZTsgc2V0ICRu YW1lIDB9DQorfQ0KKw0KK3Byb2MgdmFsaWRhdGVfaGV4IHtuYW1lIHZhbH0g ew0KKwlpZiB7KFtleGVjIGVjaG8gJHZhbCB8IHRyIC1kIFxbOnhkaWdpdDpc XSBdICE9ICIiKX0gdGhlbiB7Z2xvYmFsICRuYW1lOyBzZXQgJG5hbWUgMH0N Cit9DQorDQogIw0KICMgTmV4dCBzZXQgdXAgdGhlIHBhcnRpY3VsYXJzIGZv ciB0aGUgdG9wIGxldmVsIG1lbnUsIGFuZCBkZWZpbmUgYSBmZXcNCiAjIGJ1 dHRvbnMgd2hpY2ggd2Ugd2lsbCBzdGljayBkb3duIGF0IHRoZSBib3R0b20u DQpAQCAtNDY4LDMgKzUwNCw1IEBADQogZnJhbWUgLmYwLm1pZGRsZQ0KIGZy YW1lIC5mMC5yaWdodA0KIA0KK3NldCBhY3RpdmVfbWVudXMgW2xpc3RdDQor c2V0IHByb2Nlc3NlZF90b3BfbGV2ZWwgMA0KZGlmZiAtdSAtLXJlY3Vyc2l2 ZSBsaW51eC0yLjIuMi1hYzEvc2NyaXB0cy90YWlsLnRrIGxpbnV4L3Njcmlw dHMvdGFpbC50aw0KLS0tIGxpbnV4LTIuMi4yLWFjMS9zY3JpcHRzL3RhaWwu dGsJRnJpIEphbiAxNSAyMzozNjoyMCAxOTk5DQorKysgbGludXgvc2NyaXB0 cy90YWlsLnRrCVR1ZSBGZWIgMjMgMjM6MzM6MzggMTk5OQ0KQEAgLTI5LDcg KzI5LDcgQEANCiAJcmVhZF9jb25maWcgJGRlZmF1bHRzDQogfQ0KIA0KLXVw ZGF0ZV9tYWlubWVudSAuZjANCit1cGRhdGVfbWFpbm1lbnUNCiANCiBidXR0 b24gLmYwLnJpZ2h0LnNhdmUgLWFuY2hvciB3IC10ZXh0ICJTYXZlIGFuZCBF eGl0IiBcDQogICAgIC1jb21tYW5kIHsgd3JpdGVjb25maWcgLmNvbmZpZyBp bmNsdWRlL2xpbnV4L2F1dG9jb25mLmg7IHdyYXB1cCAud3JhcCB9DQpkaWZm IC11IC0tcmVjdXJzaXZlIGxpbnV4LTIuMi4yLWFjMS9zY3JpcHRzL3RrY29u ZC5jIGxpbnV4L3NjcmlwdHMvdGtjb25kLmMNCi0tLSBsaW51eC0yLjIuMi1h YzEvc2NyaXB0cy90a2NvbmQuYwlXZWQgSmFuIDIwIDE5OjA1OjQ5IDE5OTkN CisrKyBsaW51eC9zY3JpcHRzL3RrY29uZC5jCVR1ZSBGZWIgMjMgMjM6MzY6 NTMgMTk5OQ0KQEAgLTEwOCwxNCArMTA4LDQyIEBADQogew0KICAgICBzdHJ1 Y3QgY29uZGl0aW9uICogY29uZF9saXN0Ow0KICAgICBzdHJ1Y3QgY29uZGl0 aW9uICogY29uZF9sYXN0Ow0KLSAgICBpbnQgaTsNCisgICAgaW50IGksIGlz X2ZpcnN0ID0gMTsNCiANCiAgICAgY29uZF9saXN0ID0gY29uZF9sYXN0ID0g TlVMTDsNCiAgICAgZm9yICggaSA9IDA7IGkgPCBkZXB0aDsgaSsrICkNCiAg ICAgew0KKwlpZiAoIGNvbmRpdGlvbnNbaV0tPm9wID09IG9wX2ZhbHNlICkN CisJew0KKwkgICAgc3RydWN0IGNvbmRpdGlvbiAqIGNuZXc7DQorDQorCSAg ICAvKiBJdCBpcyBhbHdheXMgZmFsc2UgY29uZGl0aW9uICovDQorCSAgICBj bmV3ID0gbWFsbG9jKCBzaXplb2YoKmNuZXcpICk7DQorCSAgICBtZW1zZXQo IGNuZXcsIDAsIHNpemVvZigqY25ldykgKTsNCisJICAgIGNuZXctPm9wID0g b3BfZmFsc2U7DQorCSAgICBjb25kX2xpc3QgPSBjb25kX2xhc3QgPSBjbmV3 Ow0KKwkgICAgZ290byBqb2luX2RvbmU7DQorCX0NCisgICAgfQ0KKyAgICBm b3IgKCBpID0gMDsgaSA8IGRlcHRoOyBpKysgKQ0KKyAgICB7DQogCXN0cnVj dCBjb25kaXRpb24gKiBjb25kOw0KIAlzdHJ1Y3QgY29uZGl0aW9uICogY25l dzsNCiANCisJLyogb21pdCBhbHdheXMgdHJ1ZSBjb25kaXRpb25zICovDQor CWlmICggY29uZGl0aW9uc1tpXS0+b3AgPT0gb3BfdHJ1ZSApDQorCSAgICBj b250aW51ZTsNCisNCisJLyogaWYgaSBoYXZlIGFub3RoZXIgY29uZGl0aW9u LCBhZGQgYW4gJyYmJyBvcGVyYXRvciAqLw0KKwlpZiAoICFpc19maXJzdCAp DQorCXsNCisJICAgIGNuZXcgPSBtYWxsb2MoIHNpemVvZigqY25ldykgKTsN CisJICAgIG1lbXNldCggY25ldywgMCwgc2l6ZW9mKCpjbmV3KSApOw0KKwkg ICAgY25ldy0+b3AgPSBvcF9hbmQ7DQorCSAgICBjb25kX2xhc3QtPm5leHQg PSBjbmV3Ow0KKwkgICAgY29uZF9sYXN0ID0gY25ldzsNCisJfQ0KKw0KIAkv KiBhZGQgYSAnKCcgKi8NCiAJY25ldyA9IG1hbGxvYyggc2l6ZW9mKCpjbmV3 KSApOw0KIAltZW1zZXQoIGNuZXcsIDAsIHNpemVvZigqY25ldykgKTsNCkBA IC0xNDMsMTYgKzE3MSw3IEBADQogCWNuZXctPm9wID0gb3BfcnBhcmVuOw0K IAljb25kX2xhc3QtPm5leHQgPSBjbmV3Ow0KIAljb25kX2xhc3QgPSBjbmV3 Ow0KLQ0KLQkvKiBpZiBpIGhhdmUgYW5vdGhlciBjb25kaXRpb24sIGFkZCBh biAnJiYnIG9wZXJhdG9yICovDQotCWlmICggaSA8IGRlcHRoIC0gMSApDQot CXsNCi0JICAgIGNuZXcgPSBtYWxsb2MoIHNpemVvZigqY25ldykgKTsNCi0J ICAgIG1lbXNldCggY25ldywgMCwgc2l6ZW9mKCpjbmV3KSApOw0KLQkgICAg Y25ldy0+b3AgPSBvcF9hbmQ7DQotCSAgICBjb25kX2xhc3QtPm5leHQgPSBj bmV3Ow0KLQkgICAgY29uZF9sYXN0ID0gY25ldzsNCi0JfQ0KKwlpc19maXJz dCA9IDA7DQogICAgIH0NCiANCiAgICAgLyoNCkBAIC0yMTksMTAgKzIzOCwx MjUgQEANCiAJfQ0KICAgICB9DQogDQoram9pbl9kb25lOg0KICAgICByZXR1 cm4gY29uZF9saXN0Ow0KIH0NCiANCitzdGF0aWMgY2hhciAqIGN1cnJlbnRf YXJjaCA9IE5VTEw7DQorDQordm9pZCBmcmVlX2NvbmQoIHN0cnVjdCBjb25k aXRpb24gKmNvbmQgKQ0KK3sNCisgICAgc3RydWN0IGNvbmRpdGlvbiAqdG1w LCAqdG1wMTsNCisgICAgZm9yICggdG1wID0gY29uZDsgdG1wOyB0bXAgPSB0 bXAxICkNCisgICAgew0KKwl0bXAxID0gdG1wLT5uZXh0Ow0KKwlpZiAoIHRt cC0+c3RyICkNCisJICAgIGZyZWUoICh2b2lkKil0bXAtPnN0ciApOw0KKwlm cmVlKCAodm9pZCopdG1wICk7DQorICAgIH0NCit9DQorDQorLyoNCisgKiBF bGltaW5hdGluZyBjb25kaXRpb25zIHdpdGggQVJDSD08bm90IGN1cnJlbnQ+ Lg0KKyAqLw0KK3N0cnVjdCBjb25kaXRpb24gKmVsaW1pbmF0ZV9vdGhlcl9h cmNoKCBzdHJ1Y3QgY29uZGl0aW9uICpsaXN0ICkNCit7DQorICAgIHN0cnVj dCBjb25kaXRpb24gKmNvbmQxYSA9IGxpc3QsICpjb25kMWIgPSBOVUxMLCAq Y29uZDFjID0gTlVMTCwgKmNvbmQxZCA9IE5VTEw7DQorDQorICAgIGlmICgg Y3VycmVudF9hcmNoID09IE5VTEwgKQ0KKwljdXJyZW50X2FyY2ggPSBnZXRl bnYoICJBUkNIIiApOw0KKyAgICBpZiAoIGNvbmQxYS0+b3AgPT0gb3BfdmFy aWFibGUgJiYgISBzdHJjbXAoIGNvbmQxYS0+c3RyLCAiQVJDSCIgKSApDQor ICAgIHsNCisJY29uZDFiID0gY29uZDFhLT5uZXh0OyBpZiAoIGNvbmQxYiA9 PSBOVUxMICkgZ290byBkb25lOw0KKwljb25kMWMgPSBjb25kMWItPm5leHQ7 IGlmICggY29uZDFjID09IE5VTEwgKSBnb3RvIGRvbmU7DQorCWNvbmQxZCA9 IGNvbmQxYy0+bmV4dDsNCisNCisJaWYgKCBjb25kMWQgPT0gTlVMTCApDQor CXsNCisJICAgIGlmICggKGNvbmQxYi0+b3AgPT0gb3BfZXEgJiYgc3RyY21w KCBjb25kMWMtPnN0ciwgY3VycmVudF9hcmNoICkpDQorCSAgICB8fCAoY29u ZDFiLT5vcCA9PSBvcF9uZXEgJiYgISBzdHJjbXAoIGNvbmQxYy0+c3RyLCBj dXJyZW50X2FyY2ggKSkgKQ0KKwkgICAgew0KKwkJLyogVGhpcyBpcyBmb3Ig YW5vdGhlciBhcmNoaXRlY3R1cmUgKi8gDQorCQljb25kMWEtPm9wID0gb3Bf ZmFsc2U7DQorCQlmcmVlKCAodm9pZCopY29uZDFhLT5zdHIgKTsNCisJCWNv bmQxYS0+c3RyID0gTlVMTDsNCisJCWZyZWVfY29uZCggY29uZDFiICk7DQor CQlyZXR1cm4gY29uZDFhOw0KKwkgICAgfQ0KKwkgICAgZWxzZSBpZiAoIChj b25kMWItPm9wID09IG9wX25lcSAmJiBzdHJjbXAoIGNvbmQxYy0+c3RyLCBj dXJyZW50X2FyY2ggKSkNCisJCSB8fCAoY29uZDFiLT5vcCA9PSBvcF9lcSAm JiAhIHN0cmNtcCggY29uZDFjLT5zdHIsIGN1cnJlbnRfYXJjaCApKSApDQor CSAgICB7DQorCQkvKiBUaGlzIGlzIGZvciBjdXJyZW50IGFyY2hpdGVjdHVy ZSAqLw0KKwkJY29uZDFhLT5vcCA9IG9wX3RydWU7DQorCQlmcmVlKCAodm9p ZCopY29uZDFhLT5zdHIgKTsNCisJCWNvbmQxYS0+c3RyID0gTlVMTDsNCisJ CWZyZWVfY29uZCggY29uZDFiICk7DQorCQlyZXR1cm4gY29uZDFhOw0KKwkg ICAgfQ0KKwl9DQorCWVsc2UgaWYgKCBjb25kMWQtPm9wID09IG9wX29yICkN CisJew0KKwkgICAgaWYgKCAoY29uZDFiLT5vcCA9PSBvcF9lcSAmJiBzdHJj bXAoIGNvbmQxYy0+c3RyLCBjdXJyZW50X2FyY2ggKSkNCisJICAgIHx8IChj b25kMWItPm9wID09IG9wX25lcSAmJiAhIHN0cmNtcCggY29uZDFjLT5zdHIs IGN1cnJlbnRfYXJjaCApKSApDQorCSAgICB7DQorCQkvKiBUaGlzIGlzIGZv ciBhbm90aGVyIGFyY2hpdGVjdHVyZSAqLyANCisJCWNvbmQxYiA9IGNvbmQx ZC0+bmV4dDsNCisJCWNvbmQxZC0+bmV4dCA9IE5VTEw7DQorCQlmcmVlX2Nv bmQoIGNvbmQxYSApOw0KKwkJcmV0dXJuIGVsaW1pbmF0ZV9vdGhlcl9hcmNo KCBjb25kMWIgKTsNCisJICAgIH0NCisJICAgIGVsc2UgaWYgKCAoY29uZDFi LT5vcCA9PSBvcF9uZXEgJiYgc3RyY21wKCBjb25kMWMtPnN0ciwgY3VycmVu dF9hcmNoICkpDQorCQkgfHwgKGNvbmQxYi0+b3AgPT0gb3BfZXEgJiYgISBz dHJjbXAoIGNvbmQxYy0+c3RyLCBjdXJyZW50X2FyY2ggKSkgKQ0KKwkgICAg ew0KKwkJLyogVGhpcyBpcyBmb3IgY3VycmVudCBhcmNoaXRlY3R1cmUgKi8N CisJCWNvbmQxYS0+b3AgPSBvcF90cnVlOw0KKwkJY29uZDFhLT5uZXh0ID0g TlVMTDsNCisJCWZyZWUoICh2b2lkKiljb25kMWEtPnN0ciApOw0KKwkJY29u ZDFhLT5zdHIgPSBOVUxMOw0KKwkJZnJlZV9jb25kKCBjb25kMWIgKTsNCisJ CXJldHVybiBjb25kMWE7DQorCSAgICB9DQorCX0NCisgICAgfQ0KK2RvbmU6 DQorICAgIHJldHVybiBsaXN0Ow0KK30NCisNCisvKg0KKyAqIEVsaW1pbmF0 aW5nIGt2YXJpYWJsZXMgcG9pbnRpbmcgdG8gcmVtb3ZlZCBvcHRpb25zLg0K KyAqLw0KK3N0YXRpYyB2b2lkIGZpeF9rdmFyaWFibGUoIHN0cnVjdCBrY29u ZmlnICogY2ZnLCBzdHJ1Y3Qga2NvbmZpZyAqIHNjZmcgKQ0KK3sNCisgICAg c3RydWN0IGtjb25maWcgKmNmZzEsICpjZmcyOw0KKyAgICBzdHJ1Y3QgY29u ZGl0aW9uICogY29uZDsNCisgICAgaW50IGZvdW5kID0gMDsNCisNCisgICAg Zm9yICggY2ZnMiA9IHNjZmc7IGNmZzIgIT0gTlVMTDsgY2ZnMiA9IGNmZzIt Pm5leHQgKQ0KKwlpZiAoICggY2ZnMi0+dG9rZW4gPT0gdG9rZW5fYm9vbA0K Kwl8fCAgIGNmZzItPnRva2VuID09IHRva2VuX2Nob2ljZV9pdGVtDQorCXx8 ICAgY2ZnMi0+dG9rZW4gPT0gdG9rZW5fZGVwX3RyaXN0YXRlDQorCXx8ICAg Y2ZnMi0+dG9rZW4gPT0gdG9rZW5faGV4DQorCXx8ICAgY2ZnMi0+dG9rZW4g PT0gdG9rZW5faW50DQorCXx8ICAgY2ZnMi0+dG9rZW4gPT0gdG9rZW5fc3Ry aW5nDQorCXx8ICAgY2ZnMi0+dG9rZW4gPT0gdG9rZW5fdHJpc3RhdGUgKQ0K KwkmJiAgICEgc3RyY21wKCBjZmcyLT5vcHRpb25uYW1lLCBjZmctPm9wdGlv bm5hbWUgKSApDQorCQlicmVhazsNCiANCisgICAgZm9yICggY2ZnMSA9IHNj Zmc7IGNmZzEgIT0gTlVMTDsgY2ZnMSA9IGNmZzEtPm5leHQgKQ0KKwlmb3Ig KCBjb25kID0gY2ZnMS0+Y29uZDsgY29uZCAhPSBOVUxMOyBjb25kID0gY29u ZC0+bmV4dCApDQorCSAgICBpZiAoIGNvbmQtPm9wID09IG9wX2t2YXJpYWJs ZSApDQorCQlpZiAoIGNvbmQtPmNmZyA9PSBjZmcgKQ0KKwkJew0KKwkJICAg IGlmICggY2ZnMiApDQorCQkJY29uZC0+Y2ZnID0gY2ZnMjsNCisJCSAgICBl bHNlDQorCQkgICAgew0KKwkJCWNvbmQtPmNmZyA9IE5VTEw7DQorCQkJY29u ZC0+c3RyID0gc3RyZHVwKCBjZmctPm9wdGlvbm5hbWUgKTsNCisJCQljb25k LT5vcCAgPSBvcF92YXJpYWJsZTsNCisJCSAgICB9DQorCQl9DQorfQ0KIA0K IC8qDQogICogVGhpcyBpcyB0aGUgbWFpbiB0cmFuc2Zvcm1hdGlvbiBmdW5j dGlvbi4NCkBAIC0yOTAsOSArNDI0LDEyIEBADQogICAgIHsNCiAJc3RydWN0 IGNvbmRpdGlvbiAqIGNvbmRfc3RhY2sgWzMyXTsNCiAJaW50IGRlcHRoID0g MDsNCisJc3RydWN0IGtjb25maWcgKiBwcmV2ID0gTlVMTDsNCiANCiAJZm9y ICggY2ZnID0gc2NmZzsgY2ZnICE9IE5VTEw7IGNmZyA9IGNmZy0+bmV4dCAp DQogCXsNCisJICAgIGludCBnb29kID0gMTsNCisNCiAJICAgIHN3aXRjaCAo IGNmZy0+dG9rZW4gKQ0KIAkgICAgew0KIAkgICAgZGVmYXVsdDoNCkBAIC0z MjUsNiArNDYyLDggQEANCiAJCQljYXNlIG9wX29yOiAgY29uZC0+b3AgPSBv cF9hbmQxOyBicmVhazsNCiAJCQljYXNlIG9wX25lcTogY29uZC0+b3AgPSBv cF9lcTsgICBicmVhazsNCiAJCQljYXNlIG9wX2VxOiAgY29uZC0+b3AgPSBv cF9uZXE7ICBicmVhazsNCisJCQljYXNlIG9wX3RydWU6IGNvbmQtPm9wID0g b3BfZmFsc2U7YnJlYWs7DQorCQkJY2FzZSBvcF9mYWxzZTpjb25kLT5vcCA9 IG9wX3RydWU7IGJyZWFrOw0KIAkJCX0NCiAJCSAgICB9DQogCQl9DQpAQCAt MzM2LDYgKzQ3NSw3IEBADQogDQogCSAgICBjYXNlIHRva2VuX2Jvb2w6DQog CSAgICBjYXNlIHRva2VuX2Nob2ljZV9pdGVtOg0KKwkgICAgY2FzZSB0b2tl bl9jaG9pY2VfaGVhZGVyOg0KIAkgICAgY2FzZSB0b2tlbl9jb21tZW50Og0K IAkgICAgY2FzZSB0b2tlbl9kZWZpbmVfYm9vbDoNCiAJICAgIGNhc2UgdG9r ZW5faGV4Og0KQEAgLTM0NCw2ICs0ODQsMTUgQEANCiAJICAgIGNhc2UgdG9r ZW5fc3RyaW5nOg0KIAkgICAgY2FzZSB0b2tlbl90cmlzdGF0ZToNCiAJCWNm Zy0+Y29uZCA9IGpvaW5fY29uZGl0aW9uX3N0YWNrKCBjb25kX3N0YWNrLCBk ZXB0aCApOw0KKwkJaWYgKCBjZmctPmNvbmQgJiYgY2ZnLT5jb25kLT5vcCA9 PSBvcF9mYWxzZSApDQorCQl7DQorCQkgICAgZ29vZCA9IDA7DQorCQkgICAg aWYgKCBwcmV2ICkNCisJCQlwcmV2LT5uZXh0ID0gY2ZnLT5uZXh0Ow0KKwkJ ICAgIGVsc2UNCisJCQlzY2ZnID0gY2ZnLT5uZXh0Ow0KKwkJICAgIGZpeF9r dmFyaWFibGUoIGNmZywgc2NmZyApOw0KKwkJfQ0KIAkJYnJlYWs7DQogDQog CSAgICBjYXNlIHRva2VuX2RlcF90cmlzdGF0ZToNCkBAIC0zNTMsOCArNTAy LDE5IEBADQogCQkgKi8NCiAJCWNvbmRfc3RhY2sgW2RlcHRoXSA9IGNmZy0+ Y29uZDsNCiAJCWNmZy0+Y29uZCA9IGpvaW5fY29uZGl0aW9uX3N0YWNrKCBj b25kX3N0YWNrLCBkZXB0aCsxICk7DQorCQlpZiAoIGNmZy0+Y29uZCAmJiBj ZmctPmNvbmQtPm9wID09IG9wX2ZhbHNlICkNCisJCXsNCisJCSAgICBnb29k ID0gMDsNCisJCSAgICBpZiAoIHByZXYgKQ0KKwkJCXByZXYtPm5leHQgPSBj ZmctPm5leHQ7DQorCQkgICAgZWxzZQ0KKwkJCXNjZmcgPSBjZmctPm5leHQ7 DQorCQkgICAgZml4X2t2YXJpYWJsZSggY2ZnLCBzY2ZnICk7DQorCQl9DQog CQlicmVhazsNCiAJICAgIH0NCisJICAgIGlmICggZ29vZCApDQorCQlwcmV2 ID0gY2ZnOw0KIAl9DQogICAgIH0NCiB9DQpkaWZmIC11IC0tcmVjdXJzaXZl IGxpbnV4LTIuMi4yLWFjMS9zY3JpcHRzL3RrZ2VuLmMgbGludXgvc2NyaXB0 cy90a2dlbi5jDQotLS0gbGludXgtMi4yLjItYWMxL3NjcmlwdHMvdGtnZW4u YwlUdWUgRmViIDIzIDIzOjIyOjM2IDE5OTkNCisrKyBsaW51eC9zY3JpcHRz L3RrZ2VuLmMJVHVlIEZlYiAyMyAyMzozNjowNyAxOTk5DQpAQCAtOTIsOSAr OTIsMjQgQEANCiAgKg0KICAqIDIzIEphbnVhcnkgMTk5OSwgTWljaGFlbCBF bGl6YWJldGggQ2hhc3RhaW4gPG1lY0BzaG91dC5uZXQ+DQogICogLSBSZW1v dmUgYnVnLWNvbXBhdGlibGUgY29kZS4NCisgKg0KKyAqIDMwIEphbnVhcnkg MTk5OSwgQW5kcnplaiBNLiBLcnp5c3p0b2Zvd2ljeiA8YW5rcnlAbWlmLnBn LmdkYS5wbD4NCisgKiBTb21lIGJ1Z2ZpeGVzLCBpbmNsdWRpbmcNCisgKiAt IGRpc2FibGluZyAibSIgb3B0aW9ucyB3aGVuIENPTkZJR19NT0RVTEVTIGlz IHNldCB0byAibiIgYXMgd2VsbCBhcyAieSINCisgKiAgIG9wdGlvbiBpbiBk ZXBfdHJpc3RhdGUgd2hlbiBkZXBlbmRlbmN5IGlzIHNldCB0byAibSIsDQor ICogLSBkZWFjdGl2YXRpbmcgY2hvaWNlcyB3aGljaCBzaG91bGQgbm90IGJl IGF2YWlsYWJsZSwNCisgKiAtIHZhbGlkYXRpb24gZm9yIGludCBhbmQgaGV4 IGludHJvZHVjZWQgYnkgcmVzZXR0aW5nIHZhbHVlIHRvIDAgaWYgdGhlIA0K KyAqICAgZW50ZXJlZCBvbmUgaXMgbm90IHZhbGlkLA0KKyAqIC0gdXBkYXRl cyBvZiBhbGwgb3BlbmVkIG1lbnVzIGluc3RlYWQgb2YgdGhlIGFjdGl2ZSBv bmx5LiBJIHdhcyBhZnJhaWQNCisgKiAgIHRoYXQgaXQgd291bGQgc2xvdyBk b3duIHVwZGF0ZXMsIGJ1dCBJIGRvbid0IGV2ZW4gc2VlIGFueSBzcGVlZCBk aWZmZXJlbmNlDQorICogICBvbiBteSBtYWNoaW5lLiBJZiBpdCBzbG93cyB5 b3UgY2FuIHN0aWxsIHdvcmsgd2l0aCBvbmx5IGEgc2luZ2xlIG1lbnUNCisg KiAgIG9wZW5lZCwNCisgKiAtIGZpeGVkIGVycm9yIHdoZW4gZm9jdXNzaW5n IG5vbi1leGlzdGVudCB3aW5kb3cgKGVzcGVjaWFsbHkgSGVscCB3aW5kb3dz KSwNCisgKiBIaWdoZXIgbGV2ZWwgc3VibWVudXMgaW1wbGVtZW50ZWQuDQog ICovDQogDQogI2luY2x1ZGUgPHN0ZGlvLmg+DQorI2luY2x1ZGUgPHN0ZGxp Yi5oPg0KICNpbmNsdWRlIDx1bmlzdGQuaD4NCiAjaW5jbHVkZSAidGtwYXJz ZS5oIg0KIA0KQEAgLTEwNSwyMCArMTIwLDM0IEBADQogICovDQogc3RhdGlj IGludCB0b3RfbWVudV9udW0gPSAwOw0KIA0KLQ0KKy8qDQorICogUG9pbnRl cnMgdG8gbWFpbm1lbnVfb3B0aW9uIGFuZCBlbmRtZW51IG9mIGVhY2ggbWVu dS4NCisgKi8NCitzdHJ1Y3Qga2NvbmZpZyAqIG1lbnVfZmlyc3QgWzI1Nl07 DQorc3RydWN0IGtjb25maWcgKiBtZW51X2xhc3QgIFsyNTZdOw0KIA0KIC8q DQogICogR2VuZXJhdGUgcG9ydGlvbiBvZiB3aXNoIHNjcmlwdCBmb3IgdGhl IGJlZ2lubmluZyBvZiBhIHN1Ym1lbnUuDQogICogVGhlIGd1dHMgZ2V0IGZp bGxlZCBpbiB3aXRoIHRoZSB2YXJpb3VzIG9wdGlvbnMuDQogICovDQotc3Rh dGljIHZvaWQgc3RhcnRfcHJvYyggY2hhciAqIGxhYmVsLCBpbnQgbWVudV9u dW0sIGludCBmbGFnICkNCitzdGF0aWMgdm9pZCBzdGFydF9wcm9jKCBjaGFy ICogbGFiZWwsIGludCBtZW51X251bSwgaW50IHRvcGxldmVsICkNCiB7DQot ICAgIGlmICggZmxhZyApDQorICAgIGlmICggdG9wbGV2ZWwgKQ0KIAlwcmlu dGYoICJtZW51X29wdGlvbiBtZW51JWQgJWQgXCIlc1wiXG4iLCBtZW51X251 bSwgbWVudV9udW0sIGxhYmVsICk7DQogICAgIHByaW50ZiggInByb2MgbWVu dSVkIHt3IHRpdGxlfSB7XG4iLCBtZW51X251bSApOw0KLSAgICBwcmludGYo ICJcdGNhdGNoIHtkZXN0cm95ICR3fVxuIiApOw0KKyAgICBwcmludGYoICJc dHNldCBvbGRGb2N1cyBbZm9jdXNdXG4iICk7DQorICAgIGlmICggbWVudV9m aXJzdFttZW51X251bV0tPm1lbnVfbnVtYmVyICE9IDAgKQ0KKyAgICB7DQor CXByaW50ZiggIlx0aWYge1tjYXRjaCB7Zm9jdXMgLm1lbnUlZH1dICE9IDB9 IHRoZW4gIiwNCisJCW1lbnVfZmlyc3RbbWVudV9udW1dLT5tZW51X251bWJl ciApOw0KKwlwcmludGYoICJ7bWVudSVkIC5tZW51JWQgXCIlc1wifVxuIiwN CisJCW1lbnVfZmlyc3RbbWVudV9udW1dLT5tZW51X251bWJlciwgbWVudV9m aXJzdFttZW51X251bV0tPm1lbnVfbnVtYmVyLCBtZW51X2ZpcnN0W21lbnVf bnVtXS0+bGFiZWwgKTsNCisgICAgfQ0KKyAgICBwcmludGYoICJcdGNhdGNo IHtkZXN0cm95ICR3OyB1bnJlZ2lzdGVyX2FjdGl2ZSBtZW51JWR9XG4iLCBt ZW51X251bSApOw0KICAgICBwcmludGYoICJcdHRvcGxldmVsICR3IC1jbGFz cyBEaWFsb2dcbiIgKTsNCiAgICAgcHJpbnRmKCAiXHR3bSB3aXRoZHJhdyAk d1xuIiApOw0KKyAgICBwcmludGYoICJcdGdsb2JhbCBhY3RpdmVfbWVudXNc biIgKTsNCisgICAgcHJpbnRmKCAiXHRzZXQgYWN0aXZlX21lbnVzIFtsaW5z ZXJ0ICRhY3RpdmVfbWVudXMgZW5kIG1lbnUlZF1cbiIsIG1lbnVfbnVtICk7 DQogICAgIHByaW50ZiggIlx0bWVzc2FnZSAkdy5tIC13aWR0aCA0MDAgLWFz cGVjdCAzMDAgLXRleHQgXFxcbiIgKTsNCiAgICAgcHJpbnRmKCAiXHRcdFwi JXNcIiAgLXJlbGllZiByYWlzZWRcbiIsIGxhYmVsICk7DQogICAgIHByaW50 ZiggIlx0cGFjayAkdy5tIC1wYWR5IDEwIC1zaWRlIHRvcCAtcGFkeCAxMFxu IiApOw0KQEAgLTEyNywxNiArMTU2LDQ1IEBADQogICAgIC8qDQogICAgICAq IEF0dGFjaCB0aGUgIlByZXYiLCAiTmV4dCIgYW5kICJPSyIgYnV0dG9ucyBh dCB0aGUgZW5kIG9mIHRoZSB3aW5kb3cuDQogICAgICAqLw0KLSAgICBwcmlu dGYoICJcdHNldCBvbGRGb2N1cyBbZm9jdXNdXG4iICk7DQogICAgIHByaW50 ZiggIlx0ZnJhbWUgJHcuZlxuIiApOw0KLSAgICBwcmludGYoICJcdGJ1dHRv biAkdy5mLmJhY2sgLXRleHQgXCJNYWluIE1lbnVcIiBcXFxuIiApOw0KLSAg ICBwcmludGYoICJcdFx0LXdpZHRoIDE1IC1jb21tYW5kIFwiZGVzdHJveSAk dzsgZm9jdXMgJG9sZEZvY3VzOyB1cGRhdGVfbWFpbm1lbnUgJHdcIlxuIiAp Ow0KKyAgICBpZiAoIHRvcGxldmVsICkNCisJcHJpbnRmKCAiXHRidXR0b24g JHcuZi5iYWNrIC10ZXh0IFwiTWFpbiBNZW51XCIgXFxcbiIgKTsNCisgICAg ZWxzZQ0KKwlwcmludGYoICJcdGJ1dHRvbiAkdy5mLmJhY2sgLXRleHQgXCJP S1wiIFxcXG4iICk7DQorICAgIHByaW50ZiggIlx0XHQtd2lkdGggMTUgLWNv bW1hbmQgXCJjYXRjaCB7Zm9jdXMgJG9sZEZvY3VzfTsgZGVzdHJveSAkdzsg dW5yZWdpc3Rlcl9hY3RpdmUgbWVudSVkOyAiLA0KKwltZW51X251bSApOw0K KyAgICBpZiAoIG1lbnVfZmlyc3RbbWVudV9udW1dLT5tZW51X251bWJlciAh PSAwICkNCisJcHJpbnRmKCAidXBkYXRlX2FjdGl2ZSAkd1wiXG4iICk7DQor ICAgIGVsc2UNCisJcHJpbnRmKCAidXBkYXRlX21haW5tZW51XCJcbiIgKTsN CiAgICAgcHJpbnRmKCAiXHRidXR0b24gJHcuZi5uZXh0IC10ZXh0IFwiTmV4 dFwiIFxcXG4iICk7DQotICAgIHByaW50ZiggIlx0XHQtd2lkdGggMTUgLWNv bW1hbmQgXCIgZGVzdHJveSAkdzsgZm9jdXMgJG9sZEZvY3VzOyAgbWVudSVk IC5tZW51JWQgXFxcIiR0aXRsZVxcXCJcIlxuIiwgbWVudV9udW0rMSwgbWVu dV9udW0rMSApOw0KKyAgICBwcmludGYoICJcdFx0LXdpZHRoIDE1IC1jb21t YW5kIFwiY2F0Y2gge2ZvY3VzICRvbGRGb2N1c307ICIgKTsNCisgICAgLyog DQorICAgICAqIFdlIGFyZSBjaGVja2luZyB3aGljaCB3aW5kb3dzIHNob3Vs ZCBiZSBkZXN0cm95ZWQgYW5kIHdoaWNoIGFyZSANCisgICAgICogY29tbW9u IHBhcnJlbnRzIHdpdGggdGhlIG5leHQgb25lLiBSZW1lbWJlciB0aGF0IG1l bnVfbnVtIGZpZWxkDQorICAgICAqIGluIG1haW5tZW51X29wdGlvbiByZWNv cmQgcmVwb3J0cyBudW1iZXIgb2YgaXRzICpwYXJlbnQqIG1lbnUuDQorICAg ICAqLw0KKyAgICBpZiAoIG1lbnVfbnVtIDwgdG90X21lbnVfbnVtDQorICAg ICYmIG1lbnVfZmlyc3RbbWVudV9udW0gKyAxXS0+bWVudV9udW1iZXIgIT0g bWVudV9udW0gKQ0KKyAgICB7DQorCWludCB0b19kZXN0cjsNCisNCisJcHJp bnRmKCAiZGVzdHJveSAkdzsgdW5yZWdpc3Rlcl9hY3RpdmUgbWVudSVkOyAi LCBtZW51X251bSApOw0KKwl0b19kZXN0ciA9IG1lbnVfZmlyc3RbbWVudV9u dW1dLT5tZW51X251bWJlcjsNCisJd2hpbGUgKCB0b19kZXN0ciA+IDAgJiYg bWVudV9maXJzdFttZW51X251bSArIDFdLT5tZW51X251bWJlciAhPSB0b19k ZXN0ciApDQorCXsNCisJICAgIHByaW50ZiggImRlc3Ryb3kgLm1lbnUlZDsg dW5yZWdpc3Rlcl9hY3RpdmUgbWVudSVkOyAiLA0KKwkJdG9fZGVzdHIsIHRv X2Rlc3RyICk7DQorCSAgICB0b19kZXN0ciA9IG1lbnVfZmlyc3RbdG9fZGVz dHJdLT5tZW51X251bWJlcjsNCisJfQ0KKyAgICB9DQorICAgIHByaW50Zigg Im1lbnUlZCAubWVudSVkIFxcXCIkdGl0bGVcXFwiXCJcbiIsDQorCW1lbnVf bnVtKzEsIG1lbnVfbnVtKzEgKTsNCiAgICAgaWYgKCBtZW51X251bSA9PSB0 b3RfbWVudV9udW0gKQ0KIAlwcmludGYoICJcdCR3LmYubmV4dCBjb25maWd1 cmUgLXN0YXRlIGRpc2FibGVkXG4iICk7DQogICAgIHByaW50ZiggIlx0YnV0 dG9uICR3LmYucHJldiAtdGV4dCBcIlByZXZcIiBcXFxuIiApOw0KLSAgICBw cmludGYoICJcdFx0LXdpZHRoIDE1IC1jb21tYW5kIFwiIGRlc3Ryb3kgJHc7 IGZvY3VzICRvbGRGb2N1czsgbWVudSVkIC5tZW51JWQgXFxcIiR0aXRsZVxc XCJcIlxuIiwgbWVudV9udW0tMSwgbWVudV9udW0tMSApOw0KKyAgICBwcmlu dGYoICJcdFx0LXdpZHRoIDE1IC1jb21tYW5kIFwiY2F0Y2gge2ZvY3VzICRv bGRGb2N1c307IGRlc3Ryb3kgJHc7IHVucmVnaXN0ZXJfYWN0aXZlIG1lbnUl ZDsgbWVudSVkIC5tZW51JWQgXFxcIiR0aXRsZVxcXCJcIlxuIiwNCisJbWVu dV9udW0sIG1lbnVfbnVtLTEsIG1lbnVfbnVtLTEgKTsNCiAgICAgaWYgKCBt ZW51X251bSA9PSAxICkNCiAJcHJpbnRmKCAiXHQkdy5mLnByZXYgY29uZmln dXJlIC1zdGF0ZSBkaXNhYmxlZFxuIiApOw0KICAgICBwcmludGYoICJcdHBh Y2sgJHcuZi5iYWNrICR3LmYubmV4dCAkdy5mLnByZXYgLXNpZGUgbGVmdCAt ZXhwYW5kIG9uXG4iICk7DQpAQCAtMzExLDkgKzM2OSwxNiBAQA0KIAlicmVh azsNCiANCiAgICAgY2FzZSB0b2tlbl9jaG9pY2VfaGVhZGVyOg0KLQlmcHJp bnRmKCBzdGRlcnIsICJJbnRlcm5hbCBlcnJvciBvbiB0b2tlbl9jaG9pY2Vf aGVhZGVyXG4iICk7DQotCWV4aXQoIDEgKTsNCi0NCisJcHJpbnRmKCAiLm1l bnUlZC5jb25maWcuZi54JWQueCBjb25maWd1cmUgLXN0YXRlIG5vcm1hbDsi LA0KKwkgICAgbWVudV9udW0sIGxpbmVfbnVtICk7DQorCXByaW50ZiggIi5t ZW51JWQuY29uZmlnLmYueCVkLmwgY29uZmlndXJlIC1zdGF0ZSBub3JtYWw7 IiwNCisJICAgIG1lbnVfbnVtLCBsaW5lX251bSApOw0KKwlwcmludGYoICJ9 IGVsc2UgeyAiICk7DQorCXByaW50ZiggIi5tZW51JWQuY29uZmlnLmYueCVk LnggY29uZmlndXJlIC1zdGF0ZSBkaXNhYmxlZDsiLA0KKwkgICAgbWVudV9u dW0sIGxpbmVfbnVtICk7DQorCXByaW50ZiggIi5tZW51JWQuY29uZmlnLmYu eCVkLmwgY29uZmlndXJlIC1zdGF0ZSBkaXNhYmxlZDt9XG4iLA0KKwkgICAg bWVudV9udW0sIGxpbmVfbnVtICk7DQorCWJyZWFrOw0KICAgICBjYXNlIHRv a2VuX2Nob2ljZV9pdGVtOg0KIAlmcHJpbnRmKCBzdGRlcnIsICJJbnRlcm5h bCBlcnJvciBvbiB0b2tlbl9jaG9pY2VfaXRlbVxuIiApOw0KIAlleGl0KCAx ICk7DQpAQCAtMzI0LDIwICszODksMjQgQEANCiAJYnJlYWs7DQogDQogICAg IGNhc2UgdG9rZW5fZGVwX3RyaXN0YXRlOg0KKwlwcmludGYoICJcbiIgKTsN CisJZ2xvYmFsKCBjZmctPmRlcGVuZCApOw0KKwlwcmludGYoICJcdGlmIHso JCVzICE9IDEpICYmICgkJXMgIT0gMCkgJiYgKCQlcyA9PSAxKX0gdGhlbiB7 c2V0ICVzIDJ9OyIsDQorCSAgICBjZmctPmRlcGVuZCwgY2ZnLT5kZXBlbmQs IGNmZy0+b3B0aW9ubmFtZSwgY2ZnLT5vcHRpb25uYW1lICk7DQorCXByaW50 ZiggImlmIHsgJCVzICE9IDEgJiYgJCVzICE9IDAgfSB0aGVuIHsiLA0KKwkg ICAgY2ZnLT5kZXBlbmQsIGNmZy0+ZGVwZW5kICk7DQorCXByaW50ZiggIi5t ZW51JWQuY29uZmlnLmYueCVkLnkgY29uZmlndXJlIC1zdGF0ZSBkaXNhYmxl ZDsiLA0KKwkgICAgbWVudV9udW0sIGxpbmVfbnVtICk7DQorCXByaW50Zigg In0gZWxzZSB7IiApOw0KKwlwcmludGYoICIubWVudSVkLmNvbmZpZy5mLngl ZC55IGNvbmZpZ3VyZSAtc3RhdGUgbm9ybWFsOyIsDQorCSAgICBtZW51X251 bSwgbGluZV9udW0gKTsNCisJcHJpbnRmKCAifTsgIiApOw0KICAgICBjYXNl IHRva2VuX3RyaXN0YXRlOg0KLQlpZiAoIGNmZy0+dG9rZW4gPT0gdG9rZW5f ZGVwX3RyaXN0YXRlICkNCi0Jew0KLQkgICAgZ2xvYmFsKCBjZmctPmRlcGVu ZCApOw0KLQkgICAgcHJpbnRmKCAiaWYgeyAkJXMgIT0gMSAmJiAkJXMgIT0g MCB9IHRoZW4geyIsDQotCQljZmctPmRlcGVuZCwgY2ZnLT5kZXBlbmQgKTsN Ci0JICAgIHByaW50ZiggIi5tZW51JWQuY29uZmlnLmYueCVkLnkgY29uZmln dXJlIC1zdGF0ZSBkaXNhYmxlZDsiLA0KLQkJbWVudV9udW0sIGxpbmVfbnVt ICk7DQotCSAgICBwcmludGYoICJ9IGVsc2UgeyIgKTsNCi0JICAgIHByaW50 ZiggIi5tZW51JWQuY29uZmlnLmYueCVkLnkgY29uZmlndXJlIC1zdGF0ZSBu b3JtYWw7IiwNCi0JCW1lbnVfbnVtLCBsaW5lX251bSk7DQotCSAgICBwcmlu dGYoICJ9OyAiICk7DQotCX0NCi0JZWxzZQ0KKwlwcmludGYoICJcblx0aWYg eygkQ09ORklHX01PRFVMRVMgPT0gMCkgJiYgKCQlcyA9PSAyKX0gdGhlbiB7 IiwNCisJICAgIGNmZy0+b3B0aW9ubmFtZSApOw0KKwlwcmludGYoICJpZiB7 W2NnZXQgLm1lbnUlZC5jb25maWcuZi54JWQueSAtc3RhdGVdID09IFwibm9y bWFsXCJ9IHRoZW4ge3NldCAlcyAxfSBlbHNlIHtzZXQgJXMgMH07fTsiLA0K KwkgICAgbWVudV9udW0sIGxpbmVfbnVtLCBjZmctPm9wdGlvbm5hbWUsIGNm Zy0+b3B0aW9ubmFtZSApOw0KKwlpZiAoIGNmZy0+dG9rZW4gPT0gdG9rZW5f dHJpc3RhdGUgKQ0KIAl7DQogCSAgICBwcmludGYoICIubWVudSVkLmNvbmZp Zy5mLnglZC55IGNvbmZpZ3VyZSAtc3RhdGUgbm9ybWFsOyIsDQogCQltZW51 X251bSwgbGluZV9udW0gKTsNCkBAIC0zNDUsNyArNDE0LDkgQEANCiANCiAJ cHJpbnRmKCAiLm1lbnUlZC5jb25maWcuZi54JWQubiBjb25maWd1cmUgLXN0 YXRlIG5vcm1hbDsiLA0KIAkgICAgbWVudV9udW0sIGxpbmVfbnVtICk7DQot CXByaW50ZiggImdsb2JhbCBDT05GSUdfTU9EVUxFUzsgaWYgeygkQ09ORklH X01PRFVMRVMgPT0gMSl9IHRoZW4geyAubWVudSVkLmNvbmZpZy5mLnglZC5t IGNvbmZpZ3VyZSAtc3RhdGUgbm9ybWFsIH07IiwNCisJcHJpbnRmKCAiaWYg eygkQ09ORklHX01PRFVMRVMgPT0gMSl9IHRoZW4geyAubWVudSVkLmNvbmZp Zy5mLnglZC5tIGNvbmZpZ3VyZSAtc3RhdGUgbm9ybWFsIH0gZWxzZSB7IiwN CisJICAgIG1lbnVfbnVtLCBsaW5lX251bSApOw0KKwlwcmludGYoICIubWVu dSVkLmNvbmZpZy5mLnglZC5tIGNvbmZpZ3VyZSAtc3RhdGUgZGlzYWJsZWQg fTsiLA0KIAkgICAgbWVudV9udW0sIGxpbmVfbnVtICk7DQogCXByaW50Zigg Ii5tZW51JWQuY29uZmlnLmYueCVkLmwgY29uZmlndXJlIC1zdGF0ZSBub3Jt YWw7IiwNCiAJICAgIG1lbnVfbnVtLCBsaW5lX251bSApOw0KQEAgLTM3NCw3 ICs0NDUsMTIgQEANCiAJYnJlYWs7DQogDQogICAgIGNhc2UgdG9rZW5faGV4 Og0KKwlwcmludGYoICJ2YWxpZGF0ZV9oZXggJXMgXCIkJXNcIjsgIiwNCisJ ICAgIGNmZy0+b3B0aW9ubmFtZSwgY2ZnLT5vcHRpb25uYW1lICk7DQogICAg IGNhc2UgdG9rZW5faW50Og0KKwlpZiAoIGNmZy0+dG9rZW4gPT0gdG9rZW5f aW50ICkNCisJICAgIHByaW50ZiggInZhbGlkYXRlX2ludCAlcyBcIiQlc1wi OyAiLA0KKwkJY2ZnLT5vcHRpb25uYW1lLCBjZmctPm9wdGlvbm5hbWUgKTsN CiAgICAgY2FzZSB0b2tlbl9zdHJpbmc6DQogCXByaW50ZiggIi5tZW51JWQu Y29uZmlnLmYueCVkLnggY29uZmlndXJlIC1zdGF0ZSBub3JtYWwgLWZvcmVn cm91bmQgWyBjZ2V0IC5yZWYgLWZvcmVncm91bmQgXTsgIiwNCiAJICAgIG1l bnVfbnVtLCBsaW5lX251bSk7DQpAQCAtMzg4LDggKzQ2NCwxNyBAQA0KIAli cmVhazsNCiANCiAgICAgY2FzZSB0b2tlbl9tYWlubWVudV9vcHRpb246DQot CXByaW50ZiggIi5mMC54JWQgY29uZmlndXJlIC1zdGF0ZSBub3JtYWwgfSBl bHNlIHsgLmYwLnglZCBjb25maWd1cmUgLXN0YXRlIGRpc2FibGVkIH1cbiIs DQotCSAgICBtZW51X251bSwgbWVudV9udW0gKTsNCisJaWYgKCBsaW5lX251 bSA+PSAwICkNCisJew0KKwkgICAgcHJpbnRmKCAiLm1lbnUlZC5jb25maWcu Zi54JWQubSBjb25maWd1cmUgLXN0YXRlIG5vcm1hbCIsDQorCQltZW51X251 bSwgbGluZV9udW0gKTsNCisJICAgIHByaW50ZiggIn0gZWxzZSB7IiApOw0K KwkgICAgcHJpbnRmKCAiLm1lbnUlZC5jb25maWcuZi54JWQubSBjb25maWd1 cmUgLXN0YXRlIGRpc2FibGVkfVxuIiwNCisJCW1lbnVfbnVtLCBsaW5lX251 bSApOw0KKwl9DQorCWVsc2UNCisJICAgIHByaW50ZiggIi5mMC54JWQgY29u ZmlndXJlIC1zdGF0ZSBub3JtYWwgfSBlbHNlIHsgLmYwLnglZCBjb25maWd1 cmUgLXN0YXRlIGRpc2FibGVkIH1cbiIsDQorCQltZW51X251bSwgbWVudV9u dW0gKTsNCiAJYnJlYWs7DQogICAgIH0NCiB9DQpAQCAtNDQyLDcgKzUyNyw2 IEBADQogICAgIC8qDQogICAgICAqIEdlbmVyYXRlIGluZGVudGF0aW9uLg0K ICAgICAgKi8NCi0gICAgaWYgKCBjZmctPnRva2VuICE9IHRva2VuX2Nob2lj ZV9oZWFkZXIgKQ0KIAlwcmludGYoICJcdCIgKTsNCiANCiAgICAgLyoNCkBA IC01MjAsMTIgKzYwNCwxNSBAQA0KIAkJICBjZmcxICE9IE5VTEwgJiYgY2Zn MS0+dG9rZW4gPT0gdG9rZW5fY2hvaWNlX2l0ZW07DQogCQkgIGNmZzEgID0g Y2ZnMS0+bmV4dCApDQogCSAgICB7DQotCQlwcmludGYoIlx0aWYgeyAkJXMg PT0gXCIlc1wiIH0gdGhlbiB7IHdyaXRlX3RyaXN0YXRlICRjZmcgJGF1dG9j ZmcgJXMgMSAkbm90bW9kIH0gZWxzZSB7IHdyaXRlX3RyaXN0YXRlICRjZmcg JGF1dG9jZmcgJXMgMCAkbm90bW9kIH1cbiIsDQorCQlwcmludGYoIlxuXHRp ZiB7ICQlcyA9PSBcIiVzXCIgfSB0aGVuIHsgd3JpdGVfdHJpc3RhdGUgJGNm ZyAkYXV0b2NmZyAlcyAxICRub3Rtb2QgfSBlbHNlIHsgd3JpdGVfdHJpc3Rh dGUgJGNmZyAkYXV0b2NmZyAlcyAwICRub3Rtb2QgfSIsDQogCQkgICAgY2Zn LT5vcHRpb25uYW1lLCBjZmcxLT5sYWJlbCwNCiAJCSAgICBjZmcxLT5vcHRp b25uYW1lLA0KIAkJICAgIGNmZzEtPm9wdGlvbm5hbWUgKTsNCiAJICAgIH0N CiAJfQ0KKwlpZiAoIGNmZy0+Y29uZCAhPSBOVUxMICkNCisJICAgIHByaW50 ZiggIn0iICk7DQorCXByaW50ZiggIlxuIiApOw0KIAlicmVhazsNCiANCiAg ICAgY2FzZSB0b2tlbl9jaG9pY2VfaXRlbToNCkBAIC02MDYsMTAgKzY5Mywx MyBAQA0KIA0KICAgICBwcmludGYoICJcblxuXG4iICk7DQogICAgIHByaW50 ZiggIlx0Zm9jdXMgJHdcbiIgKTsNCi0gICAgcHJpbnRmKCAiXHR1cGRhdGVf bWVudSVkICR3LmNvbmZpZy5mXG4iLA0KLQltZW51X251bSApOw0KKyAgICBw cmludGYoICJcdHVwZGF0ZV9hY3RpdmUgJHdcbiIgKTsNCiAgICAgcHJpbnRm KCAiXHRnbG9iYWwgd2lueDsgZ2xvYmFsIHdpbnlcbiIgKTsNCi0gICAgcHJp bnRmKCAiXHRzZXQgd2lueCBbZXhwciBbd2luZm8geCAuXSszMF07IHNldCB3 aW55IFtleHByIFt3aW5mbyB5IC5dKzMwXVxuIiApOw0KKyAgICBpZiAoIG1l bnVfZmlyc3RbbWVudV9udW1dLT5tZW51X251bWJlciAhPSAwICkNCisJcHJp bnRmKCAiXHRzZXQgd2lueCBbZXhwciBbd2luZm8geCAubWVudSVkXSszMF07 IHNldCB3aW55IFtleHByIFt3aW5mbyB5IC5tZW51JWRdKzMwXVxuIiwNCisJ CW1lbnVfZmlyc3RbbWVudV9udW1dLT5tZW51X251bWJlciwgbWVudV9maXJz dFttZW51X251bV0tPm1lbnVfbnVtYmVyICk7DQorICAgIGVsc2UNCisJcHJp bnRmKCAiXHRzZXQgd2lueCBbZXhwciBbd2luZm8geCAuXSszMF07IHNldCB3 aW55IFtleHByIFt3aW5mbyB5IC5dKzMwXVxuIiApOw0KICAgICBwcmludGYo ICJcdHdtIGdlb21ldHJ5ICR3ICskd2lueCskd2lueVxuIiApOw0KIA0KICAg ICAvKg0KQEAgLTY2MCw4ICs3NTAsOSBAQA0KICAgICAgKiB3aWRnZXRzLCBh bmQgd2lsbCBiZSBjYWxsZWQgZmlyc3Qgd2hlbiB0aGUgd2luZG93IGlzIG1h cHBlZCwNCiAgICAgICogYW5kIGVhY2ggdGltZSBvbmUgb2YgdGhlIGJ1dHRv bnMgaW4gdGhlIHdpbmRvdyBhcmUgY2xpY2tlZC4NCiAgICAgICovDQotICAg IHByaW50ZiggInByb2MgdXBkYXRlX21lbnUlZCB7d30gIHtcbiIsIG1lbnVf bnVtICk7DQorICAgIHByaW50ZiggInByb2MgdXBkYXRlX21lbnUlZCB7fSAg e1xuIiwgbWVudV9udW0gKTsNCiAgICAgcHJpbnRmKCAiXHR1cGRhdGVfZGVm aW5lXG4iICk7DQorICAgIHByaW50ZigiXHRnbG9iYWwgQ09ORklHX01PRFVM RVNcbiIpOw0KIA0KICAgICAvKg0KICAgICAgKiBDbGVhciBhbGwgb2YgdGhl IGJvb2xlYW5zIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhpcyBtZW51Lg0KQEAg LTY5MSwxOSArNzgyLDQxIEBADQogCQlnZW5lcmF0ZV9pZiggY2ZnLCBjZmct PmNvbmQsIGNmZy0+bWVudV9udW1iZXIsIGNmZy0+bWVudV9saW5lICk7DQog CSAgICBlbHNlDQogCSAgICB7DQorI2lmIDANCiAJCS8qDQogCQkgKiBUcmVh dCB0cmlzdGF0ZSBsaWtlIGNvbmRpdGlvbmFsIGhlcmUuDQogCQkgKi8NCisv Kg0KKyAqIFRoaXMgaXMgZGVhZCBjb2RlIGF0IHRoZSBtb21lbnQsIGFzIGVh Y2ggdG9rZW5fZGVwX3RyaXN0YXRlIGhhcyBmYWtlX2lmDQorICogKGNmZy0+ ZGVwZW5kID09IDEgfHwgY2ZnLT5kZXBlbmQgPT0gMikNCisgKi8NCiAJCWlm ICggY2ZnLT50b2tlbiA9PSB0b2tlbl9kZXBfdHJpc3RhdGUgKQ0KIAkJew0K IAkJICAgIGdsb2JhbCggY2ZnLT5kZXBlbmQgKTsNCisJCSAgICBwcmludGYo Ilx0aWYgeygkJXMgIT0gMSkgJiYgKCQlcyAhPSAwKSAmJiAoJCVzID09IDEp fSB0aGVuIHtzZXQgJXMgMn07IiwNCisJCQljZmctPmRlcGVuZCwgY2ZnLT5k ZXBlbmQsIGNmZy0+b3B0aW9ubmFtZSwgY2ZnLT5vcHRpb25uYW1lKTsNCiAJ CSAgICBwcmludGYoICJcdGlmIHskJXMgIT0gMSAmJiAkJXMgIT0gMCB9IHRo ZW4geyAubWVudSVkLmNvbmZpZy5mLnglZC55IGNvbmZpZ3VyZSAtc3RhdGUg ZGlzYWJsZWQgfSBlbHNlIHsgLm1lbnUlZC5jb25maWcuZi54JWQueSBjb25m aWd1cmUgLXN0YXRlIG5vcm1hbH1cbiIsDQogCQkJY2ZnLT5kZXBlbmQsIGNm Zy0+ZGVwZW5kLA0KIAkJCW1lbnVfbnVtLCBjZmctPm1lbnVfbGluZSwNCiAJ CQltZW51X251bSwgY2ZnLT5tZW51X2xpbmUgKTsNCiAJCX0NCisjZW5kaWYN CisJCWlmICggY2ZnLT50b2tlbiA9PSB0b2tlbl90cmlzdGF0ZSApDQorCQl7 DQorCQkgICAgaWYgKCAhIGNmZy0+Z2xvYmFsX3dyaXR0ZW4gKQ0KKwkJCXBy aW50ZiggIlx0Z2xvYmFsICVzXG4iLCBjZmctPm9wdGlvbm5hbWUgKTsNCisJ CSAgICBwcmludGYoIlxuXHRpZiB7KCRDT05GSUdfTU9EVUxFUyA9PSAwKSAm JiAoJCVzID09IDIpfSB0aGVuIHtzZXQgJXMgMX07IiwNCisJCQljZmctPm9w dGlvbm5hbWUsIGNmZy0+b3B0aW9ubmFtZSk7DQorCQkgICAgcHJpbnRmKCAi aWYgeygkQ09ORklHX01PRFVMRVMgPT0gMSl9IHRoZW4geyAubWVudSVkLmNv bmZpZy5mLnglZC5tIGNvbmZpZ3VyZSAtc3RhdGUgbm9ybWFsIH0gZWxzZSB7 CS5tZW51JWQuY29uZmlnLmYueCVkLm0gY29uZmlndXJlIC1zdGF0ZSBkaXNh YmxlZH1cbiIsDQorCQkJbWVudV9udW0sIGNmZy0+bWVudV9saW5lLA0KKwkJ CW1lbnVfbnVtLCBjZmctPm1lbnVfbGluZSApOw0KKwkJfQ0KIAkgICAgfQ0K IAl9DQorCWVsc2UgaWYgKCBjZmctPnRva2VuID09IHRva2VuX21haW5tZW51 X29wdGlvbg0KKwkJJiYgY2ZnLT5tZW51X251bWJlciA9PSBtZW51X251bQ0K KwkJJiYgY2ZnLT5jb25kICE9IE5VTEwgKQ0KKwkgICAgZ2VuZXJhdGVfaWYo IGNmZywgY2ZnLT5jb25kLCBtZW51X251bSwgY2ZnLT5tZW51X2xpbmUgKTsN CiAgICAgfQ0KIA0KICAgICBwcmludGYoIn1cblxuXG4iKTsNCkBAIC03MTgs MTggKzgzMSwyMCBAQA0KIHsNCiAgICAgaW50IG1lbnVfZGVwdGg7DQogICAg IGludCBtZW51X251bSBbNjRdOw0KLSAgICBzdHJ1Y3Qga2NvbmZpZyAqIG1l bnVfZmlyc3QgWzI1Nl07DQotICAgIHN0cnVjdCBrY29uZmlnICogbWVudV9s YXN0ICBbMjU2XTsNCiAgICAgaW50IGltZW51Ow0KKyAgICBpbnQgdG9wX2xl dmVsX251bSA9IDA7DQogICAgIHN0cnVjdCBrY29uZmlnICogY2ZnOw0KICAg ICBzdHJ1Y3Qga2NvbmZpZyAqIGNmZzEgPSBOVUxMOw0KICAgICBjb25zdCBj aGFyICogbmFtZSA9ICJObyBOYW1lIjsNCiANCiAgICAgLyoNCi0gICAgKiBU aHJlYWQgdGhlIG1lbnUgcG9pbnRlcnMgc28gSSBjYW4gd2FsayBlYWNoIG1l bnUgc2VwYXJhdGVseS4NCi0gICAgKi8NCisgICAgICogTWFyayBiZWdpbiBh bmQgZW5kIG9mIGVhY2ggbWVudSBzbyBJIGNhbiBvbWl0IHN1Ym1lbnVzIHdo ZW4gd2Fsa2luZw0KKyAgICAgKiBvdmVyIGEgcGFyZW50IG1lbnUuDQorICAg ICAqLw0KICAgICB0b3RfbWVudV9udW0gPSAwOw0KICAgICBtZW51X2RlcHRo ICAgPSAwOw0KKyAgICBtZW51X251bSBbMF0gPSAwOw0KKw0KICAgICBmb3Ig KCBjZmcgPSBzY2ZnOyBjZmcgIT0gTlVMTDsgY2ZnID0gY2ZnLT5uZXh0ICkN CiAgICAgew0KIAlzd2l0Y2ggKCBjZmctPnRva2VuICkNCkBAIC03NDksOSAr ODY0LDE3IEBADQogCSAgICBtZW51X251bSAgIFttZW51X2RlcHRoXSAgID0g dG90X21lbnVfbnVtOw0KIAkgICAgbWVudV9maXJzdCBbdG90X21lbnVfbnVt XSA9IGNmZzsNCiAJICAgIG1lbnVfbGFzdCAgW3RvdF9tZW51X251bV0gPSBj Zmc7DQorCSAgICAvKg0KKwkgICAgICogTm90ZSwgdGhhdCBtZW51X251bWJl ciBpcyBzZXQgdG8gdGhlIG51bWJlciBvZiBwYXJlbnQgDQorCSAgICAgKiAo dXBwZXIgbGV2ZWwpIG1lbnUuDQorCSAgICAgKi8NCisJICAgIGNmZy0+bWVu dV9udW1iZXIgPSBtZW51X251bVttZW51X2RlcHRoIC0gMV07DQorCSAgICBp ZiAoIG1lbnVfZGVwdGggPT0gMSApDQorCQkrK3RvcF9sZXZlbF9udW07DQog CSAgICBicmVhazsNCiANCiAJY2FzZSB0b2tlbl9lbmRtZW51Og0KKwkgICAg bWVudV9sYXN0IFttZW51X251bSBbbWVudV9kZXB0aF1dID0gY2ZnOw0KIAkg ICAgLyogZmxhdHRlbiBtZW51cyB3aXRoIHByb3BlciBzY29waW5nICovDQog CSAgICBpZiAoIC0tbWVudV9kZXB0aCA8IDAgKQ0KIAkJeyBmcHJpbnRmKCBz dGRlcnIsICJ1bm1hdGNoZWQgZW5kbWVudVxuIiApOyBleGl0KCAxICk7IH0N CkBAIC03NjUsMTEgKzg4OCw5IEBADQogCWNhc2UgdG9rZW5faW50Og0KIAlj YXNlIHRva2VuX3N0cmluZzoNCiAJY2FzZSB0b2tlbl90cmlzdGF0ZToNCisJ ICAgIGNmZy0+bWVudV9udW1iZXIgPSBtZW51X251bVttZW51X2RlcHRoXTsN CiAJICAgIGlmICggbWVudV9kZXB0aCA9PSAwICkNCiAJCXsgZnByaW50Zigg c3RkZXJyLCAic3RhdGVtZW50IG5vdCBpbiBtZW51XG4iICk7IGV4aXQoIDEg KTsgfQ0KLQkgICAgbWVudV9sYXN0IFttZW51X251bSBbbWVudV9kZXB0aF1d LT5tZW51X25leHQgPSBjZmc7DQotCSAgICBtZW51X2xhc3QgW21lbnVfbnVt IFttZW51X2RlcHRoXV0gICAgICAgICAgICA9IGNmZzsNCi0JICAgIGNmZy0+ bWVudV9uZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gTlVM TDsNCiAJICAgIGJyZWFrOw0KIA0KIAljYXNlIHRva2VuX2RlZmluZV9ib29s Og0KQEAgLTc4NCw3ICs5MDUsNyBAQA0KICAgICAgKiAgIG9uZSBibGFuayBi dXR0b24NCiAgICAgICogICBhZGQgdHdvIHRvIHJvdW5kIHVwIGZvciBkaXZp c2lvbg0KICAgICAgKi8NCi0gICAgcHJpbnRmKCAic2V0IG1lbnVzX3Blcl9j b2x1bW4gJWRcblxuIiwgKHRvdF9tZW51X251bSArIDQgKyAxICsgMikgLyAz ICk7DQorICAgIHByaW50ZiggInNldCBtZW51c19wZXJfY29sdW1uICVkXG5c biIsICh0b3BfbGV2ZWxfbnVtICsgNCArIDEgKyAyKSAvIDMgKTsNCiANCiAg ICAgLyoNCiAgICAgICogR2VuZXJhdGUgdGhlIG1lbnVzLg0KQEAgLTc5Mywx OSArOTE0LDI4IEBADQogICAgIGZvciAoIGltZW51ID0gMTsgaW1lbnUgPD0g dG90X21lbnVfbnVtOyArK2ltZW51ICkNCiAgICAgew0KIAlpbnQgbWVudV9s aW5lID0gMDsNCisJaW50IG5yX3N1Ym1lbnUgPSBpbWVudTsNCiANCiAJY2xl YXJfZ2xvYmFsZmxhZ3MoIHNjZmcgKTsNCi0Jc3RhcnRfcHJvYyggbWVudV9m aXJzdFtpbWVudV0tPmxhYmVsLCBpbWVudSwgMSApOw0KKwlzdGFydF9wcm9j KCBtZW51X2ZpcnN0W2ltZW51XS0+bGFiZWwsIGltZW51LCANCisJCSFtZW51 X2ZpcnN0W2ltZW51XS0+bWVudV9udW1iZXIgKTsNCiANCi0JZm9yICggY2Zn ID0gbWVudV9maXJzdFtpbWVudV07IGNmZyAhPSBOVUxMOyBjZmcgPSBjZmct Pm1lbnVfbmV4dCApDQorCWZvciAoIGNmZyA9IG1lbnVfZmlyc3RbaW1lbnVd LT5uZXh0OyBjZmcgIT0gTlVMTCAmJiBjZmcgIT0gbWVudV9sYXN0W2ltZW51 XTsgY2ZnID0gY2ZnLT5uZXh0ICkNCiAJew0KLQkgICAgY2ZnLT5tZW51X251 bWJlciA9IGltZW51Ow0KLQ0KIAkgICAgc3dpdGNoICggY2ZnLT50b2tlbiAp DQogCSAgICB7DQogCSAgICBkZWZhdWx0Og0KIAkJYnJlYWs7DQogDQorCSAg ICBjYXNlIHRva2VuX21haW5tZW51X29wdGlvbjoNCisJCXdoaWxlICggbWVu dV9maXJzdFsrK25yX3N1Ym1lbnVdLT5tZW51X251bWJlciA+IGltZW51ICkN CisJCSAgICA7DQorCQljZmctPm1lbnVfbGluZSA9IG1lbnVfbGluZSsrOw0K KwkJcHJpbnRmKCAiXHRzdWJtZW51ICR3LmNvbmZpZy5mICVkICVkIFwiJXNc IiAlZFxuIiwNCisJCSAgICBjZmctPm1lbnVfbnVtYmVyLCBjZmctPm1lbnVf bGluZSwgY2ZnLT5sYWJlbCwgbnJfc3VibWVudSApOw0KKwkJY2ZnID0gbWVu dV9sYXN0W25yX3N1Ym1lbnVdOw0KKwkJYnJlYWs7DQorDQogCSAgICBjYXNl IHRva2VuX2Jvb2w6DQogCQljZmctPm1lbnVfbGluZSA9IG1lbnVfbGluZSsr Ow0KIAkJcHJpbnRmKCAiXHRib29sICR3LmNvbmZpZy5mICVkICVkIFwiJXNc IiAlc1xuIiwNCkBAIC04MjksOSArOTU5LDkgQEANCiANCiAJICAgIGNhc2Ug dG9rZW5fY2hvaWNlX2l0ZW06DQogCQkvKiBub3RlOiBubyBtZW51IGxpbmU7 IHVzZXMgY2hvaWNlIGhlYWRlciBtZW51IGxpbmUgKi8NCi0JCXByaW50Zigg Ilx0JHcuY29uZmlnLmYueCVkLngubWVudSBhZGQgcmFkaW9idXR0b24gLWxh YmVsIFwiJXNcIiAtdmFyaWFibGUgJXMgLXZhbHVlIFwiJXNcIiAtY29tbWFu ZCBcInVwZGF0ZV9tZW51JWQgLm1lbnUlZC5jb25maWcuZlwiXG4iLA0KKwkJ cHJpbnRmKCAiXHQkdy5jb25maWcuZi54JWQueC5tZW51IGFkZCByYWRpb2J1 dHRvbiAtbGFiZWwgXCIlc1wiIC12YXJpYWJsZSAlcyAtdmFsdWUgXCIlc1wi IC1jb21tYW5kIFwidXBkYXRlX2FjdGl2ZSAkd1wiXG4iLA0KIAkJICAgIGNm ZzEtPm1lbnVfbGluZSwgY2ZnLT5sYWJlbCwgY2ZnMS0+b3B0aW9ubmFtZSwN Ci0JCSAgICBjZmctPmxhYmVsLCBjZmcxLT5tZW51X251bWJlciwgY2ZnMS0+ bWVudV9udW1iZXIgKTsNCisJCSAgICBjZmctPmxhYmVsICk7DQogCQlicmVh azsNCiANCiAJICAgIGNhc2UgdG9rZW5fZGVwX3RyaXN0YXRlOg0KQEAgLTg4 MSwxMSArMTAxMSwxMSBAQA0KICAgICAgKiBjb3JyZWN0Lg0KICAgICAgKi8N CiAgICAgY2xlYXJfZ2xvYmFsZmxhZ3MoIHNjZmcgKTsNCi0gICAgcHJpbnRm KCAicHJvYyB1cGRhdGVfbWFpbm1lbnUge3d9ICB7XG4iICk7DQotICAgIGZv ciAoIGNmZyA9IHNjZmc7IGNmZyAhPSBOVUxMOyBjZmcgPSBjZmctPm5leHQg KQ0KKyAgICBwcmludGYoICJwcm9jIHVwZGF0ZV9tYWlubWVudSB7fSAge1xu IiApOw0KKyAgICBmb3IgKCBpbWVudSA9IDE7IGltZW51IDw9IHRvdF9tZW51 X251bTsgaW1lbnUrKyApDQogICAgIHsNCi0JaWYgKCBjZmctPnRva2VuID09 IHRva2VuX21haW5tZW51X29wdGlvbiAmJiBjZmctPmNvbmQgIT0gTlVMTCAp DQotCSAgICBnZW5lcmF0ZV9pZiggY2ZnLCBjZmctPmNvbmQsIGNmZy0+bWVu dV9udW1iZXIsIGNmZy0+bWVudV9saW5lICk7DQorCWlmICggbWVudV9maXJz dFtpbWVudV0tPmNvbmQgIT0gTlVMTCAmJiBtZW51X2ZpcnN0W2ltZW51XS0+ bWVudV9udW1iZXIgPT0gMCApDQorCSAgICBnZW5lcmF0ZV9pZiggbWVudV9m aXJzdFtpbWVudV0sIG1lbnVfZmlyc3RbaW1lbnVdLT5jb25kLCBpbWVudSwg LTEgKTsNCiAgICAgfQ0KICAgICBwcmludGYoICJ9XG5cblxuIiApOw0KIA0K QEAgLTkwMyw3ICsxMDMzLDcgQEANCiAJCXByaW50ZiggIlx0d3JpdGVfZGVm aW5lICVzICVzXG4iLCBjZmctPm9wdGlvbm5hbWUsIGNmZy0+dmFsdWUgKTsN CiAJfQ0KICAgICB9DQotICAgICNlbmRpZg0KKyNlbmRpZg0KIA0KICAgICAv Kg0KICAgICAgKiBHZW5lcmF0ZSBjb2RlIHRvIGxvYWQgdGhlIGRlZmF1bHQg c2V0dGluZ3MgaW50byB0aGUgdmFyaWFibGVzLg0KQEAgLTEwMDUsNiArMTEz NSw3IEBADQogCWlmICggY2ZnLT50b2tlbiA9PSB0b2tlbl9jaG9pY2VfaGVh ZGVyICkNCiAJew0KIAkgICAgcHJpbnRmKCAiXHRnbG9iYWwgJXNcbiIsIGNm Zy0+b3B0aW9ubmFtZSApOw0KKwkgICAgcHJpbnRmKCJcdHNldCAlcyBcIiVz XCJcbiIsIGNmZy0+b3B0aW9ubmFtZSwgY2ZnLT52YWx1ZSk7DQogCSAgICBm b3IgKCBjZmcxICA9IGNmZy0+bmV4dDsgDQogCQkgIGNmZzEgIT0gTlVMTCAm JiBjZmcxLT50b2tlbiA9PSB0b2tlbl9jaG9pY2VfaXRlbTsNCiAJCSAgY2Zn MSAgPSBjZmcxLT5uZXh0ICkNCmRpZmYgLXUgLS1yZWN1cnNpdmUgbGludXgt Mi4yLjItYWMxL3NjcmlwdHMvdGtwYXJzZS5jIGxpbnV4L3NjcmlwdHMvdGtw YXJzZS5jDQotLS0gbGludXgtMi4yLjItYWMxL3NjcmlwdHMvdGtwYXJzZS5j CVR1ZSBGZWIgMjMgMjM6MjI6MzYgMTk5OQ0KKysrIGxpbnV4L3NjcmlwdHMv dGtwYXJzZS5jCVR1ZSBGZWIgMjMgMjM6MzY6NTMgMTk5OQ0KQEAgLTE2NCw3 ICsxNjQsNyBAQA0KIAlpZiAoICpwbnQgPT0gJ1wwJyApDQogCSAgICBzeW50 YXhfZXJyb3IoICJ1bnRlcm1pbmF0ZWQgJ2lmJyBjb25kaXRpb24iICk7DQog CWlmICggKnBudCA9PSAnXScgKQ0KLQkgICAgcmV0dXJuIGxpc3Q7DQorCSAg ICByZXR1cm4gZWxpbWluYXRlX290aGVyX2FyY2goIGxpc3QgKTsNCiANCiAJ LyogYWxsb2NhdGUgYSBuZXcgdG9rZW4gKi8NCiAJY29uZCA9IG1hbGxvYygg c2l6ZW9mKCpjb25kKSApOw0KZGlmZiAtdSAtLXJlY3Vyc2l2ZSBsaW51eC0y LjIuMi1hYzEvc2NyaXB0cy90a3BhcnNlLmggbGludXgvc2NyaXB0cy90a3Bh cnNlLmgNCi0tLSBsaW51eC0yLjIuMi1hYzEvc2NyaXB0cy90a3BhcnNlLmgJ VHVlIEZlYiAyMyAyMzoyMjozNiAxOTk5DQorKysgbGludXgvc2NyaXB0cy90 a3BhcnNlLmgJVHVlIEZlYiAyMyAyMzozNjo1MyAxOTk5DQpAQCAtNDcsNiAr NDcsOCBAQA0KICAgICBvcF9jb25zdGFudCwNCiAgICAgb3BfdmFyaWFibGUs DQogICAgIG9wX2t2YXJpYWJsZSwNCisgICAgb3BfdHJ1ZSwNCisgICAgb3Bf ZmFsc2UsDQogICAgIG9wX251a2VkDQogfTsNCiANCkBAIC0xMDAsNSArMTAy LDYgQEANCiAgKiBQcm90b3R5cGVzDQogICovDQogDQorZXh0ZXJuIHN0cnVj dCBjb25kaXRpb24gKiBlbGltaW5hdGVfb3RoZXJfYXJjaCAoIHN0cnVjdCBj b25kaXRpb24gKiBzY2ZnICk7IC8qIHRrY29uZC5jICovDQogZXh0ZXJuIHZv aWQgZml4X2NvbmRpdGlvbmFscyAoIHN0cnVjdCBrY29uZmlnICogc2NmZyAp OwkJLyogdGtjb25kLmMgKi8NCiBleHRlcm4gdm9pZCBkdW1wX3RrX3Njcmlw dCAgICggc3RydWN0IGtjb25maWcgKiBzY2ZnICk7CQkvKiB0a2dlbi5jICAq Lw0K --328796202-1730645311-921094339=:1080--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/