看板 DFBSD_bugs 關於我們 聯絡資訊
--===============1341524242== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable New submission from xbit <sgaerner@gmx.net>: Hi, calling 'hammer snaprm /pfs/my.pfs 0x0000000123456789' will remove the syml= ink my.pfs. The symlink can be restored if the PFS number is known. Attached is a patch that fixes this issue. It also ensures that arguments o= f the different 'snaprm' commands cannot be mixed. Sven ---------- files: 0001-fixed-snaprm-command-to-avoid-removing-PFS-symlinks.patch messages: 10029 nosy: xbit priority: bug status: unread title: Command 'hammer snaprm' removes PFS symlink _____________________________________________________ DragonFly issue tracker <bugs@lists.dragonflybsd.org> <http://bugs.dragonflybsd.org/issue2111> _____________________________________________________ --===============1341524242== Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-fixed-snaprm-command-to-avoid-removing-PFS-symlinks.patch" RnJvbSBiYTBjYmNlOGI2ZmRiMmZjYmIwMmUxNGFhZjllN2Q1MzZkZDcyZDU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdmVuIEdhZXJuZXIgPHNnYWVybmVyQGdteC5uZXQ+CkRhdGU6 IFR1ZSwgOSBBdWcgMjAxMSAxNjozOToxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGZpeGVkIHNu YXBybSBjb21tYW5kIHRvIGF2b2lkIHJlbW92aW5nIFBGUyBzeW1saW5rcwoKKiBDYWxsaW5nICdo YW1tZXIgc25hcHJtIC9wZnMvc29tZS5wZnMgMHgwMDAwMDAwMTIzNDU2Nzg5JyByZW1vdmVkCiAg dGhlIFBGUyBsaW5rIC9wZnMvc29tZS5wZnMuIFRoaXMgaGFzIGJlZW4gZml4ZWQuCiogUmUtaW1w bGVtZW50ZWQgZnVuY3Rpb24gdG8gZGV0ZWN0IGlmIGEgc3ltbGluayBwb2ludHMgdG8gYSB0cmFu c2lkIG9yCiAgdG8gYSBQU0YuCiogQWxsb3cgcGFzc2luZyBtb3JlIGFyZ3VtZW50cyB0byBlYWNo IGNhbGwsIHVwZGF0ZWQgdGhlIHVzYWdlIGFzIHdlbGwuCiAgRWFjaCBjYWxsIGNhbiBub3cgcmVt b3ZlIG1vcmUgdGhhbiBvbmUgc25hcHNob3QuCgpTaWduZWQtb2ZmLWJ5OiBTdmVuIEdhZXJuZXIg PHNnYWVybmVyQGdteC5uZXQ+Ci0tLQogc2Jpbi9oYW1tZXIvY21kX3NuYXBzaG90LmMgfCAgMjEx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGVzIGNo YW5nZWQsIDE1MyBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z YmluL2hhbW1lci9jbWRfc25hcHNob3QuYyBiL3NiaW4vaGFtbWVyL2NtZF9zbmFwc2hvdC5jCmlu ZGV4IDc5NmMzOGIuLmNmNjUwNzEgMTAwNjQ0Ci0tLSBhL3NiaW4vaGFtbWVyL2NtZF9zbmFwc2hv dC5jCisrKyBiL3NiaW4vaGFtbWVyL2NtZF9zbmFwc2hvdC5jCkBAIC01Myw2ICs1Myw3IEBAIHN0 YXRpYyB2b2lkIHNuYXBzaG90X2FkZChpbnQgZmQsIGNvbnN0IGNoYXIgKmZzeW0sIGNvbnN0IGNo YXIgKnRzeW0sCiBzdGF0aWMgdm9pZCBzbmFwc2hvdF9scyhjb25zdCBjaGFyICpwYXRoKTsKIHN0 YXRpYyB2b2lkIHNuYXBzaG90X2RlbChpbnQgZnNmZCwgaGFtbWVyX3RpZF90IHRpZCk7CiBzdGF0 aWMgY2hhciAqZGlycGFydChjb25zdCBjaGFyICpwYXRoKTsKK3N0YXRpYyB2b2lkIHNuYXBzaG90 X3NuYXBybV9ieV90aWQoY2hhciAqKmF2LCBpbnQgYWMsIGludCBmc2ZkKTsKIAogLyoKICAqIGhh bW1lciBzbmFwIDxwYXRoPiBbPG5vdGU+XQpAQCAtMjAwLDgyICsyMDEsMTQ0IEBAIGhhbW1lcl9j bWRfc25hcGxzKGNoYXIgKiphdiwgaW50IGFjKQogfQogCiAvKgotICogaGFtbWVyIHNuYXBybSA8 cGF0aD4gLi4uCi0gKiBoYW1tZXIgc25hcHJtIDx0cmFuc2lkPiAuLi4KLSAqIGhhbW1lciBzbmFw cm0gPGZpbGVzeXN0ZW0+IDx0cmFuc2lkPiAuLi4KKyAqIGhhbW1lciBzbmFwcm0gPHNuYXBzaG90 IHBhdGg+IFs8c25hcHNob3QgcGF0aD4gLi4uXQorICogaGFtbWVyIHNuYXBybSA8dHJhbnNpZD4g Wzx0cmFuc2lkPiAuLi5dCisgKiBoYW1tZXIgc25hcHJtIDxmaWxlc3lzdGVtPiA8dHJhbnNpZD4g Wzx0cmFuc2lkPiAuLi5dCiAgKi8KIHZvaWQKIGhhbW1lcl9jbWRfc25hcHJtKGNoYXIgKiphdiwg aW50IGFjKQogewogCXN0cnVjdCBzdGF0IHN0OwotCWNoYXIgbGlua2J1ZlsxMDI0XTsKKwljaGFy IGxpbmtidWZbMTAyNF0gPSB7IDAgfTsKIAlpbnRtYXhfdCB0aWQ7CiAJaW50IGZzZmQgPSAtMTsK LQlpbnQgaTsKKwlpbnQgaSA9IDA7CiAJY2hhciAqZGlycGF0aDsKIAljaGFyICpwdHI7CisJdWlu dDhfdCByZW1vdmVfc3ltbGlua3MgPSAwOwogCi0JZm9yIChpID0gMDsgaSA8IGFjOyArK2kpIHsK LQkJaWYgKGxzdGF0KGF2W2ldLCAmc3QpIDwgMCkgewotCQkJdGlkID0gc3RydG91bGwoYXZbaV0s ICZwdHIsIDE2KTsKLQkJCWlmICgqcHRyKSB7Ci0JCQkJZXJyKDIsICJoYW1tZXIgc25hcHJtOiBu b3QgYSBmaWxlIG9yIHRpZDogJXMiLAotCQkJCSAgICBhdltpXSk7Ci0JCQkJLyogbm90IHJlYWNo ZWQgKi8KKwkvLyBsZWF2ZSBpZiBubyBhcmcKKwlpZihhYyA9PSAwKSB7CisJCWVycihFSU5WQUws ICJoYW1tZXIgc25hcHJtOiBhdCBsZWFzdCBvbmUgYXJndW1lbnQgaXMgIgorCQkJInJlcXVpcmVk Iik7CisJCS8qIG5vdCByZWFjaGVkICovCisJfQorCisJZG8geworCQkvLyBpbnNwZWN0IGFyZ3Vt ZW50cworCQlpZiAobHN0YXQoYXZbaV0sICZzdCkgPT0gMCkgeworCQkJLy8gYXJndW1lbnQgaXMg ZWl0aGVyIGEgbGluayBvciBhIHBhdGgsIGdldAorCQkJLy8gYXNzb2NpYXRlZCBQRlMKKwkJCS8v IENhbGw6IGhhbW1lciBzbmFwcm0gPGZpbGVzeXN0ZW0+IDx0cmFuc2lkPiBbPHRyYW5zaWQ+IC4u Ll0KKwkJCWlmKFNfSVNESVIoc3Quc3RfbW9kZSkpIHsKKwkJCQlpZihyZW1vdmVfc3ltbGlua3Mp IHsKKwkJCQkJZXJyKEVJTlZBTCwKKwkJCQkJCSJoYW1tZXIgc25hcHJtOiBpbnZhbGlkIGFyZ3Vt ZW50ICIKKwkJCQkJCSJwYXNzZWQsIHNuYXBzaG90IHN5bWxpbmsgIgorCQkJCQkJImV4cGVjdGVk Iik7CisJCQkJCS8qIG5vdCByZWFjaGVkICovCisJCQkJfQorCQkJCWFzc2VydChmc2ZkID09IC0x KTsKKwkJCQlhc3NlcnQoaSA9PSAwKTsKKwkJCQlmc2ZkID0gb3BlbihhdlswXSwgT19SRE9OTFkp OworCQkJCWlmKGZzZmQgPj0gMCkgeworCQkJCQkvLyBza2lwIGZpcnN0IGFyZ3VtZW50CisJCQkJ CXNuYXBzaG90X3NuYXBybV9ieV90aWQoYXYgKyAxLCBhYyAtIDEsIGZzZmQpOworCQkJCX0KIAkJ CX0KLQkJCWlmIChmc2ZkIDwgMCkKLQkJCQlmc2ZkID0gb3BlbigiLiIsIE9fUkRPTkxZKTsKLQkJ CXNuYXBzaG90X2RlbChmc2ZkLCB0aWQpOwotCQl9IGVsc2UgaWYgKFNfSVNESVIoc3Quc3RfbW9k ZSkpIHsKLQkJCWlmIChmc2ZkID49IDApCi0JCQkJY2xvc2UoZnNmZCk7Ci0JCQlmc2ZkID0gb3Bl bihhdltpXSwgT19SRE9OTFkpOwotCQkJaWYgKGZzZmQgPCAwKSB7Ci0JCQkJZXJyKDIsICJoYW1t ZXIgc25hcHJtOiBjYW5ub3Qgb3BlbiBkaXIgJXMiLAotCQkJCSAgICBhdltpXSk7Ci0JCQkJLyog bm90IHJlYWNoZWQgKi8KKwkJCWVsc2UgaWYoU19JU0xOSyhzdC5zdF9tb2RlKSkgeworCQkJCS8v IGNoZWNrIGlmIGxpbmsgcG9pbnRzIHRvIGEgdmVyc2lvbiBvciB0byBhIFBGUworCQkJCWlmIChy ZWFkbGluayhhdltpXSwgbGlua2J1Ziwgc2l6ZW9mKGxpbmtidWYpIC0gMSkgPCAwKSB7CisJCQkJ CWVycihFTk9FTlQsICJoYW1tZXIgc25hcHJtOiBjYW5ub3QgcmVhZCBzb2Z0bGluazogIgorCQkJ CQkJIiVzIiwgYXZbaV0pOworCQkJCQkvKiBub3QgcmVhY2hlZCAqLworCQkJCX0KKworCQkJCS8v IHNuYXBzaG90IGxpbmsgbG9va3MgbGlrZSAvcGF0aC90by9wZnMvQEAweDAwMDAwMDAxMjM0NTY3 ODkKKwkJCQkvLyBQRlMgbGluayBsb29rcyBsaWtlIC9wYXRoL3RvL0BALTE6MDAwMDEKKworCQkJ CS8vIENhbGw6IGhhbW1lciBzbmFwcm0gPGZpbGVzeXN0ZW0+IDx0cmFuc2lkPiBbPHRyYW5zaWQ+ IC4uLl0KKwkJCQkvLyBDYWxsOiBoYW1tZXIgc25hcHJtIDxzbmFwc2hvdCBwYXRoPiBbPHNuYXBz aG90IHBhdGg+IC4uLl0KKwkJCQlkaXJwYXRoID0gc3RycmNocihsaW5rYnVmLCAnQCcpOworCQkJ CWlmKChkaXJwYXRoICE9IE5VTEwpICYmCisJCQkJICAgKGRpcnBhdGggPiBsaW5rYnVmKSAmJgor CQkJCSAgICgqKC0tZGlycGF0aCkgPT0gJ0AnKSkgeworCQkJCQkvLyBkaXJwYXRoIHBvaW50cyB0 byBsaW5rIHRhcmdldCB3aXRob3V0IHBhdGgKKwkJCQkJLy8gc2tpcCBsZWFkaW5nIEBACisJCQkJ CWRpcnBhdGggKz0gMjsKKwkJCQkJdGlkID0gc3RydG91bGwoZGlycGF0aCwgJnB0ciwgMTYpOwor CQkJCQlpZigqcHRyKSB7CisJCQkJCQkvLyBDYWxsOiBoYW1tZXIgc25hcHJtIDxmaWxlc3lzdGVt PiA8dHJhbnNpZD4gWy4uLl0KKwkJCQkJCWlmKHJlbW92ZV9zeW1saW5rcykgeworCQkJCQkJCWVy cihFTk9FTlQsCisJCQkJCQkJCSJoYW1tZXIgc25hcHJtOiBpbnZhbGlkIGFyZ3VtZW50IHBhc3Nl ZCwgIgorCQkJCQkJCQkiZXhwZWN0IHNuYXBzaG90IHN5bWxpbmsiKTsKKwkJCQkJCQkvKiBub3Qg cmVhY2hlZCAqLworCQkJCQkJfQorCisJCQkJCQlhc3NlcnQoZnNmZCA9PSAtMSk7CisJCQkJCQlh c3NlcnQoaSA9PSAwKTsKKwkJCQkJCS8vIHJlbW92ZSBzbmFwc2hvdCwgYXQgbGVhc3Qgb25lIHRy YW5zaWQgaXMgcmVxdWlyZWQKKwkJCQkJCWlmKGFjID09IDEpIHsKKwkJCQkJCQllcnIoRUlOVkFM LCAiaGFtbWVyIHNuYXBybTogYXQgbGVhc3Qgb24gIgorCQkJCQkJCQkidHJhbnNpZCBpcyByZXF1 aXJlZCIpOworCQkJCQkJCS8qIG5vdCByZWFjaGVkICovCisJCQkJCQl9CisJCQkJCQlmc2ZkID0g b3BlbihhdlswXSwgT19SRE9OTFkpOworCQkJCQkJaWYoZnNmZCA+PSAwKSB7CisJCQkJCQkJLy8g c2tpcCBmaXJzdCBhcmd1bWVudAorCQkJCQkJCXNuYXBzaG90X3NuYXBybV9ieV90aWQoYXYgKyAx LCBhYyAtIDEsIGZzZmQpOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UgeworCQkJCQkJLy8g Q2FsbDogaGFtbWVyIHNuYXBybSA8c25hcHNob3QgcGF0aD4gWy4uLl0KKwkJCQkJCS8vIHJlbW92 ZSBzeW1saW5rIGFuZCBzbmFwc2hvdAorCQkJCQkJcHJpbnRmKCJEZWxldGluZyBzbmFwc2hvdCAw eCUwMTZqeCAlc1xuIiwKKwkJCQkJCQkgICB0aWQsIGF2W2ldKTsKKwkJCQkJCWZzZmQgPSBvcGVu KGF2W2ldLCBPX1JET05MWSk7CisJCQkJCQlpZihmc2ZkID49IDApIHsKKwkJCQkJCQlzbmFwc2hv dF9kZWwoZnNmZCwgdGlkKTsKKwkJCQkJCQlyZW1vdmUoYXZbMF0pOworCQkJCQkJfQorCQkJCQkJ Ly8gYWRqdXN0IGZsYWcgYW5kIGNvdW50ZXIgdG8gcmVtb3ZlIG1vcmUKKwkJCQkJCS8vIHNuYXBz aG90cyBieSBzeW1saW5rCisJCQkJCQlpZigoYWMgPiAxKSAmJiAoaSA8IChhYyAtIDEpKSkgewor CQkJCQkJCSsraTsKKwkJCQkJCQlyZW1vdmVfc3ltbGlua3MgPSAxOworCQkJCQkJfQorCQkJCQkJ ZWxzZSB7CisJCQkJCQkJcmVtb3ZlX3N5bWxpbmtzID0gMDsKKwkJCQkJCX0KKwkJCQkJfQorCQkJ CX0KIAkJCX0KLQkJfSBlbHNlIGlmIChTX0lTTE5LKHN0LnN0X21vZGUpKSB7Ci0JCQlkaXJwYXRo ID0gZGlycGFydChhdltpXSk7Ci0JCQliemVybyhsaW5rYnVmLCBzaXplb2YobGlua2J1ZikpOwot CQkJaWYgKHJlYWRsaW5rKGF2W2ldLCBsaW5rYnVmLCBzaXplb2YobGlua2J1ZikgLSAxKSA8IDAp IHsKLQkJCQllcnIoMiwgImhhbW1lciBzbmFwcm06IGNhbm5vdCByZWFkIHNvZnRsaW5rOiAiCi0J CQkJICAgICAgICIlcyIsIGF2W2ldKTsKKwkJCWVsc2UgeworCQkJCWVycihFSU5WQUwsICJoYW1t ZXIgc25hcHJtOiBpbnZhbGlkIHBhcmFtZXRlciBwYXNzZWQiKTsKIAkJCQkvKiBub3QgcmVhY2hl ZCAqLwogCQkJfQotCQkJaWYgKGxpbmtidWZbMF0gPT0gJy8nKSB7Ci0JCQkJZnJlZShkaXJwYXRo KTsKLQkJCQlkaXJwYXRoID0gZGlycGFydChsaW5rYnVmKTsKLQkJCX0gZWxzZSB7Ci0JCQkJYXNw cmludGYoJnB0ciwgIiVzLyVzIiwgZGlycGF0aCwgbGlua2J1Zik7Ci0JCQkJZnJlZShkaXJwYXRo KTsKLQkJCQlkaXJwYXRoID0gZGlycGFydChwdHIpOwotCQkJfQorCQl9CisJCWVsc2UgeworCQkJ Ly8gQ2FsbDogaGFtbWVyIHNuYXBybSA8dHJhbnNpZD4gWzx0cmFuc2lkPiAuLi5dCiAKLQkJCWlm IChmc2ZkID49IDApCi0JCQkJY2xvc2UoZnNmZCk7Ci0JCQlmc2ZkID0gb3BlbihkaXJwYXRoLCBP X1JET05MWSk7Ci0JCQlpZiAoZnNmZCA8IDApIHsKLQkJCQllcnIoMiwgImhhbW1lciBzbmFwcm06 IGNhbm5vdCBvcGVuIGRpciAlcyIsCi0JCQkJICAgIGRpcnBhdGgpOworCQkJLy8gaGFuZGxlIGxp c3Qgb2YgdHJhbnNpZHMKKwkJCWlmKHJlbW92ZV9zeW1saW5rcykgeworCQkJCWVycihFSU5WQUws ICJoYW1tZXIgc25hcHJtOiBpbnZhbGlkIGFyZ3VtZW50IHBhc3NlZCwgIgorCQkJCQkiZXhwZWN0 IHNuYXBzaG90IHN5bWxpbmsiKTsKIAkJCQkvKiBub3QgcmVhY2hlZCAqLwogCQkJfQogCi0JCQlp ZiAoKHB0ciA9IHN0cnJjaHIobGlua2J1ZiwgJ0AnKSkgJiYKLQkJCSAgICBwdHIgPiBsaW5rYnVm ICYmIHB0clstMV0gPT0gJ0AnKSB7Ci0JCQkJdGlkID0gc3RydG91bGwocHRyICsgMSwgTlVMTCwg MTYpOwotCQkJCXNuYXBzaG90X2RlbChmc2ZkLCB0aWQpOworCQkJYXNzZXJ0KGZzZmQgPT0gLTEp OworCQkJYXNzZXJ0KGkgPT0gMCk7CisJCQlmc2ZkID0gb3BlbigiLiIsIE9fUkRPTkxZKTsKKwkJ CWlmKGZzZmQgPj0gMCkgeworCQkJCXNuYXBzaG90X3NuYXBybV9ieV90aWQoYXYsIGFjLCBmc2Zk KTsKIAkJCX0KLQkJCXJlbW92ZShhdltpXSk7Ci0JCQlmcmVlKGRpcnBhdGgpOwotCQl9IGVsc2Ug ewotCQkJZXJyKDIsICJoYW1tZXIgc25hcHJtOiBub3QgZGlyZWN0b3J5IG9yIHNuYXBzaG90ICIK LQkJCSAgICAgICAic29mdGxpbms6ICVzIiwgYXZbaV0pOwotCQkJLyogbm90IHJlYWNoZWQgKi8K IAkJfQotCX0KLQlpZiAoZnNmZCA+PSAwKQorCX0gd2hpbGUocmVtb3ZlX3N5bWxpbmtzKTsKKwor CWlmKGZzZmQgPj0gMCkgewogCQljbG9zZShmc2ZkKTsKKwl9CiB9CiAKIC8qCkBAIC01NjUsOSAr NjI4LDkgQEAgc25hcHNob3RfdXNhZ2UoaW50IGV4aXRfY29kZSkKICAgICAiaGFtbWVyIHNuYXBs byA8cGF0aD4gWzxub3RlPl1cdFx0Y3JlYXRlIHNuYXBzaG90ICYgbGluaywgcG9pbnRzIHRvXG4i CiAJCQkJIlx0XHRcdFx0XHR0YXJnZXQgZGlyXG4iCiAgICAgImhhbW1lciBzbmFwcSA8ZGlyPiBb PG5vdGU+XVx0XHRjcmVhdGUgc25hcHNob3QsIG91dHB1dCBwYXRoIHRvIHN0ZG91dFxuIgotICAg ICJoYW1tZXIgc25hcHJtIDxwYXRoPiAuLi5cdFx0ZGVsZXRlIHNuYXBzaG90czsgZmlsZXN5c3Rl bSBpcyBDV0RcbiIKLSAgICAiaGFtbWVyIHNuYXBybSA8dHJhbnNpZD4gLi4uXHRcdGRlbGV0ZSBz bmFwc2hvdHNcbiIKLSAgICAiaGFtbWVyIHNuYXBybSA8ZmlsZXN5c3RlbT4gPHRyYW5zaWQ+IC4u Llx0ZGVsZXRlIHNuYXBzaG90c1xuIgorICAgICJoYW1tZXIgc25hcHJtIDxzeW1saW5rPiAuLi5c dFx0ZGVsZXRlIHNuYXBzaG90cyBieSBzeW1saW5rXG4iCisgICAgImhhbW1lciBzbmFwcm0gPHRy YW5zaWQ+IC4uLlx0XHRkZWxldGUgc25hcHNob3RzIGJ5IElEIGZvciBDV0RcbiIKKyAgICAiaGFt bWVyIHNuYXBybSA8UEZTPiA8dHJhbnNpZD4gLi4uXHRkZWxldGUgc25hcHNob3RzIGJ5IElEIG9u IFBGU1xuIgogICAgICJoYW1tZXIgc25hcGxzIFs8cGF0aD4gLi4uXVx0XHRsaXN0IGF2YWlsYWJs ZSBzbmFwc2hvdHNcbiIKICAgICAiXG4iCiAgICAgIk5PVEU6IFNuYXBzaG90cyBhcmUgY3JlYXRl ZCBpbiBmaWxlc3lzdGVtIG1ldGEtZGF0YSwgYW55IGRpcmVjdG9yeVxuIgpAQCAtNjExLDMgKzY3 NCwzNSBAQCBkaXJwYXJ0KGNvbnN0IGNoYXIgKnBhdGgpCiAJcmVzW3B0ciAtIHBhdGhdID0gMDsK IAlyZXR1cm4ocmVzKTsKIH0KKworLyoqCisgKiBSZW1vdmUgYWxsIHNuYXBzaG90cyB0aGF0IGFy ZSBwYXNzZWQgYXMgYXJndW1lbnRzLgorICoKKyAqIEV4cGVjdCBlYWNoIGFyZ3VtZW50IHRvIGJl IGEgdHJhbnNpZC4KKyAqLworc3RhdGljCit2b2lkCitzbmFwc2hvdF9zbmFwcm1fYnlfdGlkKGNo YXIgKiphdiwgaW50IGFjLCBpbnQgZnNmZCkKK3sKKwlpbnQgaTsKKwlpbnRtYXhfdCB0aWQ7CisJ Y2hhciAqcHRyOworCisJYXNzZXJ0KGZzZmQgPj0gMCk7CisJYXNzZXJ0KGFjID4gMCk7CisKKwlm b3IoaSA9IDA7IGkgPCBhYzsgKytpKSB7CisJCXRpZCA9IHN0cnRvdWxsKGF2W2ldLCAmcHRyLCAx Nik7CisJCWlmKCpwdHIpIHsKKwkJCS8vIGNvbnZlcnNpb24gZmFpbGVkCisJCQlpZihmc2ZkID49 IDApIHsKKwkJCQljbG9zZShmc2ZkKTsKKwkJCX0KKwkJCWVycihFTk9FTlQsICJoYW1tZXIgc25h cHJtOiBub3QgYSBmaWxlIG9yIHRpZDogJXMiLAorCQkJCWF2W2ldKTsKKwkJCS8qIG5vdCByZWFj aGVkICovCisJCX0KKwkJcHJpbnRmKCJEZWxldGluZyBzbmFwc2hvdCAweCUwMTZqeFxuIiwgdGlk KTsKKwkJc25hcHNob3RfZGVsKGZzZmQsIHRpZCk7CisJfQorfQotLSAKMS43LjUuNAoK --===============1341524242==--