except for some contributed ksh code ast does not use strcat() from way back ast had strcopy() which is basically stpcpy() if sizes are know we use strcopy() or memcpy() otherwise the typical paradigm is to use stk*() or sfstr*()
no patches to ksh93u+ code base "even the seemingly simplest change can wreak unforseen havoc" we are only fixing dire ksh93u+ regressions at this point and we are down to one of those on freebsd for ksh93v- code base I will change strcopy() to use stpcpy() and ast will provide stpcpy() if its not there ast will also provide stpncpy() with an iffe for strnlen() that will fall back to memchr() On Tue, 24 Jul 2012 16:13:46 +0200 Roland Mainz wrote: > --f46d042f9bf07f40ca04c593f8e6 > Content-Type: text/plain; charset=ISO-8859-1 > Hi! > ---- > Attached (as "astksh_stpcpy.diff") is a small patch which adds > |stpcpy()| and |stpncpy()| to libast (if the system doesn't provide > them). > IMO it would be nice to put this _both_ into the ksh93u+ and ksh93v- > trees... risk should be very small (except there is a platform which > doesn't have |strnlen()|). > ---- > Bye, > Roland > P.S.: ast-open needs a purge of cases where |strcat()| is used > multiple times in sequence, cases of |sprintf(buf, "%s%s", ...)| etc. > etc. and have these abdominations all replaced by |stpcpy()| (because > it's faster&&more efficient, e.g. |strcat(buf, "aaa"); strcat(buf, > "bbb");| can be replaced with |char *s=buf; s=stpcpy(s, "aaa"); > s=stpcpy(s, "bbb");| ... this will be faster because |strcat()| always > starts from the beginning of the buffer and then searches for the end > while |stpcpy()| allows an application to always continue immediately > where the old string ended). > -- > __ . . __ > (o.\ \/ /.o) roland.ma...@nrubsig.org > \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer > /O /==\ O\ TEL +49 641 3992797 > (;O/ \/ \O;) > --f46d042f9bf07f40ca04c593f8e6 > Content-Type: text/x-patch; charset=US-ASCII; name="astksh_stpcpy.diff" > Content-Disposition: attachment; filename="astksh_stpcpy.diff" > Content-Transfer-Encoding: base64 > X-Attachment-Id: f_h51271q10 > ZGlmZiAtciAtdSAtTiBvcmlnaW5hbC9zcmMvY21kL2tzaDkzL2VkaXQvZW1hY3MuYyBidWlsZF9z > dHBjcHkvL3NyYy9jbWQva3NoOTMvZWRpdC9lbWFjcy5jCi0tLSBzcmMvY21kL2tzaDkzL2VkaXQv > ZW1hY3MuYwkyMDEyLTA2LTE5IDIyOjAxOjQzLjAwMDAwMDAwMCArMDIwMAorKysgc3JjL2NtZC9r > c2g5My9lZGl0L2VtYWNzLmMJMjAxMi0wNy0yNCAxNDoyMTo1Mi40NDUzNTExNDMgKzAyMDAKQEAg > LTExNzQsMjUgKzExNzQsMjYgQEAKIAkJY2FzZSBjbnRsKCdIJyk6CQkvKiBeWF5IIHNob3cgaGlz > dG9yeSBpbmZvICovCiAJCQl7CiAJCQkJY2hhciBoYnVmW01BWExJTkVdOworCQkJCWNoYXIgKmhi > bj1oYnVmOyAvKiBoYnVmX25leHQgKi8KIAotCQkJCXN0cmNweShoYnVmLCAiQ3VycmVudCBjb21t > YW5kICIpOwotCQkJCXN0cmNhdChoYnVmLCBpdG9zKGhsaW5lKSk7CisJCQkJaGJuPXN0cGNweSho > Ym4sICJDdXJyZW50IGNvbW1hbmQgIik7CisJCQkJaGJuPXN0cGNweShoYm4sIGl0b3MoaGxpbmUp > KTsKIAkJCQlpZiAoaGxvZmYpCiAJCQkJewotCQkJCQlzdHJjYXQoaGJ1ZiwgIiAobGluZSAiKTsK > LQkJCQkJc3RyY2F0KGhidWYsIGl0b3MoaGxvZmYrMSkpOwotCQkJCQlzdHJjYXQoaGJ1ZiwgIiki > KTsKKwkJCQkJaGJuPXN0cGNweShoYm4sICIgKGxpbmUgIik7CisJCQkJCWhibj1zdHBjcHkoaGJu > LCBpdG9zKGhsb2ZmKzEpKTsKKwkJCQkJaGJuPXN0cGNweShoYm4sICIpIik7CiAJCQkJfQogCQkJ > CWlmICgoaGxpbmUgIT0gbG9jYXRpb24uaGlzdF9jb21tYW5kKSB8fAogCQkJCSAgICAoaGxvZmYg > IT0gbG9jYXRpb24uaGlzdF9saW5lKSkKIAkJCQl7Ci0JCQkJCXN0cmNhdChoYnVmLCAiOyBQcmV2 > aW91cyBjb21tYW5kICIpOwotCQkJCQlzdHJjYXQoaGJ1ZiwgaXRvcyhsb2NhdGlvbi5oaXN0X2Nv > bW1hbmQpKTsKKwkJCQkJaGJuPXN0cGNweShoYm4sICI7IFByZXZpb3VzIGNvbW1hbmQgIik7CisJ > CQkJCWhibj1zdHBjcHkoaGJuLCBpdG9zKGxvY2F0aW9uLmhpc3RfY29tbWFuZCkpOwogCQkJCQlp > ZiAobG9jYXRpb24uaGlzdF9saW5lKQogCQkJCQl7Ci0JCQkJCQlzdHJjYXQoaGJ1ZiwgIiAobGlu > ZSAiKTsKLQkJCQkJCXN0cmNhdChoYnVmLCBpdG9zKGxvY2F0aW9uLmhpc3RfbGluZSsxKSk7Ci0J > CQkJCQlzdHJjYXQoaGJ1ZiwgIikiKTsKKwkJCQkJCWhibj1zdHBjcHkoaGJuLCAiIChsaW5lICIp > OworCQkJCQkJaGJuPXN0cGNweShoYm4sIGl0b3MobG9jYXRpb24uaGlzdF9saW5lKzEpKTsKKwkJ > CQkJCWhibj1zdHBjcHkoaGJuLCAiKSIpOwogCQkJCQl9CiAJCQkJfQogCQkJCXNob3dfaW5mbyhl > cCxoYnVmKTsKQEAgLTEyMDIsMTkgKzEyMDMsMjAgQEAKIAkJY2FzZSBjbnRsKCdEJyk6CQkvKiBe > WF5EIHNob3cgZGVidWdnaW5nIGluZm8gKi8KIAkJCXsKIAkJCQljaGFyIGRlYnVnYnVmW01BWExJ > TkVdOworCQkJCWNoYXIgKmRiYm4gPSBkZWJ1Z2J1ZjsgLyogZGVidWdidWZfbmV4dCAqLwogCi0J > CQkJc3RyY3B5KGRlYnVnYnVmLCAiY291bnQ9Iik7Ci0JCQkJc3RyY2F0KGRlYnVnYnVmLCBpdG9z > KGNvdW50KSk7Ci0JCQkJc3RyY2F0KGRlYnVnYnVmLCAiIGVvbD0iKTsKLQkJCQlzdHJjYXQoZGVi > dWdidWYsIGl0b3MoZW9sKSk7Ci0JCQkJc3RyY2F0KGRlYnVnYnVmLCAiIGN1cj0iKTsKLQkJCQlz > dHJjYXQoZGVidWdidWYsIGl0b3MoY3VyKSk7Ci0JCQkJc3RyY2F0KGRlYnVnYnVmLCAiIGNyYWxs > b3dlZD0iKTsKLQkJCQlzdHJjYXQoZGVidWdidWYsIGl0b3MoY3JhbGxvd2VkKSk7Ci0JCQkJc3Ry > Y2F0KGRlYnVnYnVmLCAiIHBsZW49Iik7Ci0JCQkJc3RyY2F0KGRlYnVnYnVmLCBpdG9zKHBsZW4p > KTsKLQkJCQlzdHJjYXQoZGVidWdidWYsICIgd19zaXplPSIpOwotCQkJCXN0cmNhdChkZWJ1Z2J1 > ZiwgaXRvcyh3X3NpemUpKTsKKwkJCQlkYmJuPXN0cGNweShkYmJuLCAiY291bnQ9Iik7CisJCQkJ > ZGJibj1zdHBjcHkoZGJibiwgaXRvcyhjb3VudCkpOworCQkJCWRiYm49c3RwY3B5KGRiYm4sICIg > ZW9sPSIpOworCQkJCWRiYm49c3RwY3B5KGRiYm4sIGl0b3MoZW9sKSk7CisJCQkJZGJibj1zdHBj > cHkoZGJibiwgIiBjdXI9Iik7CisJCQkJZGJibj1zdHBjcHkoZGJibiwgaXRvcyhjdXIpKTsKKwkJ > CQlkYmJuPXN0cGNweShkYmJuLCAiIGNyYWxsb3dlZD0iKTsKKwkJCQlkYmJuPXN0cGNweShkYmJu > LCBpdG9zKGNyYWxsb3dlZCkpOworCQkJCWRiYm49c3RwY3B5KGRiYm4sICIgcGxlbj0iKTsKKwkJ > CQlkYmJuPXN0cGNweShkYmJuLCBpdG9zKHBsZW4pKTsKKwkJCQlkYmJuPXN0cGNweShkYmJuLCAi > IHdfc2l6ZT0iKTsKKwkJCQlkYmJuPXN0cGNweShkYmJuLCBpdG9zKHdfc2l6ZSkpOwogCiAJCQkJ > c2hvd19pbmZvKGVwLGRlYnVnYnVmKTsKIAkJCQlyZXR1cm47CmRpZmYgLXIgLXUgLU4gb3JpZ2lu > YWwvc3JjL2xpYi9saWJhc3QvZmVhdHVyZXMvbWFwLmMgYnVpbGRfc3RwY3B5Ly9zcmMvbGliL2xp > YmFzdC9mZWF0dXJlcy9tYXAuYwotLS0gc3JjL2xpYi9saWJhc3QvZmVhdHVyZXMvbWFwLmMJMjAx > MC0wNi0yNSAxODo1OTowOC4wMDAwMDAwMDAgKzAyMDAKKysrIHNyYy9saWIvbGliYXN0L2ZlYXR1 > cmVzL21hcC5jCTIwMTItMDctMjQgMTQ6NDQ6MzUuMzUyNDA4NTM1ICswMjAwCkBAIC0yOTYsNiAr > Mjk2LDEyIEBACiAJcHJpbnRmKCIjZGVmaW5lIHNpZ25hbCAgICAgIAlfYXN0X3NpZ25hbFxuIik7 > CiAJcHJpbnRmKCIjdW5kZWYJc2lndW5ibG9ja1xuIik7CiAJcHJpbnRmKCIjZGVmaW5lIHNpZ3Vu > YmxvY2sgICAgICBfYXN0X3NpZ3VuYmxvY2tcbiIpOworCXByaW50ZigiI3VuZGVmCXN0cGNweVxu > Iik7CisJcHJpbnRmKCIjZGVmaW5lIHN0cGNweQkJX2FzdF9zdHBjcHlcbiIpOworCXByaW50Zigi > ZXh0ZXJuIGNoYXIgKgkJc3RwY3B5KGNoYXIgKiwgY29uc3QgY2hhciAqKTtcbiIpOworCXByaW50 > ZigiI3VuZGVmCXN0cG5jcHlcbiIpOworCXByaW50ZigiI2RlZmluZSBzdHBuY3B5CQlfYXN0X3N0 > cG5jcHlcbiIpOworCXByaW50ZigiZXh0ZXJuIGNoYXIgKgkJc3RwbmNweShjaGFyICosIGNvbnN0 > IGNoYXIgKiwgc2l6ZV90KTtcbiIpOwogCXByaW50ZigiI3VuZGVmCXN0cmFjbXBcbiIpOwogCXBy > aW50ZigiI2RlZmluZSBzdHJhY21wCQlfYXN0X3N0cmFjbXBcbiIpOwogCXByaW50ZigiI3VuZGVm > CXN0cmNvcHlcbiIpOwpkaWZmIC1yIC11IC1OIG9yaWdpbmFsL3NyYy9saWIvbGliYXN0L2ZlYXR1 > cmVzL3N5cyBidWlsZF9zdHBjcHkvL3NyYy9saWIvbGliYXN0L2ZlYXR1cmVzL3N5cwotLS0gc3Jj > L2xpYi9saWJhc3QvZmVhdHVyZXMvc3lzCTIwMTItMDYtMTUgMDQ6MTE6MjYuMDAwMDAwMDAwICsw > MjAwCisrKyBzcmMvbGliL2xpYmFzdC9mZWF0dXJlcy9zeXMJMjAxMi0wNy0yNCAxNDo0MzoyMy4w > ODUxMjkyODQgKzAyMDAKQEAgLTI0NCw2ICsyNDQsOCBAQAogZXh0ZXJuCXN0cmNocgkJY2hhcioJ > CShjb25zdCBjaGFyKiwgaW50KQogZXh0ZXJuCXN0cmNtcAkJaW50CQkoY29uc3QgY2hhciosIGNv > bnN0IGNoYXIqKQogZXh0ZXJuCXN0cmNvbGwJCWludAkJKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFy > KikKK2V4dGVybglzdHBjcHkJCWNoYXIqCQkoY2hhciosIGNvbnN0IGNoYXIqKQorZXh0ZXJuCXN0 > cG5jcHkJCWNoYXIqCQkoY2hhciosIGNvbnN0IGNoYXIqLCBzaXplX3QpCiBleHRlcm4Jc3RyY3B5 > CQljaGFyKgkJKGNoYXIqLCBjb25zdCBjaGFyKikKIGV4dGVybglzdHJjc3BuCQlzaXplX3QJCShj > b25zdCBjaGFyKiwgY29uc3QgY2hhciopCiBleHRlcm4Jc3RyZHVwCQljaGFyKgkJKGNvbnN0IGNo > YXIqKQpkaWZmIC1yIC11IC1OIG9yaWdpbmFsL3NyYy9saWIvbGliYXN0L01ha2VmaWxlIGJ1aWxk > X3N0cGNweS8vc3JjL2xpYi9saWJhc3QvTWFrZWZpbGUKLS0tIHNyYy9saWIvbGliYXN0L01ha2Vm > aWxlCTIwMTItMDUtMzEgMjI6NDI6NTYuMDAwMDAwMDAwICswMjAwCisrKyBzcmMvbGliL2xpYmFz > dC9NYWtlZmlsZQkyMDEyLTA3LTI0IDE0OjQ1OjUxLjQ1MjI1NjUxMCArMDIwMApAQCAtNzEsNyAr > NzEsNyBAQAogCXN0cmFjbXAuYyBzdHJuYWNtcC5jIFwKIAljY21hcC5jIGNjbWFwaWQuYyBjY25h > dGl2ZS5jIFwKIAljaHJlc2MuYyBjaHJ0b2kuYyBzdHJldmFsLmMgc3RyZXhwci5jIHN0cm1hdGNo > LmMgc3RyY29weS5jIFwKLQltb2RlbGliLmggbW9kZWkuYyBtb2RleC5jIHN0cm1vZGUuYyBcCisJ > bW9kZWxpYi5oIG1vZGVpLmMgbW9kZXguYyBzdHBjcHkuYyBzdHBuY3B5LmMgc3RybW9kZS5jIFwK > IAlzdHJsY2F0LmMgc3RybGNweS5jIHN0cmxvb2suYyBzdHJuY29weS5jIHN0cnNlYXJjaC5jIHN0 > cnBzZWFyY2guYyBcCiAJc3RyZXNjLmMgc3Ryb3B0LmMgc3RydGFwZS5jIHN0cnBjbXAuYyBzdHJu > cGNtcC5jIHN0cnZjbXAuYyBzdHJudmNtcC5jIFwKIAl0b2suYyB0b2tsaW5lLmMgdG9rc2Nhbi5j > IFwKZGlmZiAtciAtdSAtTiBvcmlnaW5hbC9zcmMvbGliL2xpYmFzdC9NYW1maWxlIGJ1aWxkX3N0 > cGNweS8vc3JjL2xpYi9saWJhc3QvTWFtZmlsZQotLS0gc3JjL2xpYi9saWJhc3QvTWFtZmlsZQky > MDEyLTA2LTMwIDAxOjU1OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3JjL2xpYi9saWJhc3QvTWFt > ZmlsZQkyMDEyLTA3LTI0IDE0OjQ2OjIzLjYwMTc5MDIwMiArMDIwMApAQCAtNzMxLDYgKzczMSwy > NCBAQAogcHJldiBzdHJpbmcvY2hydG9pLmMKIGV4ZWMgLSAke0NDfSAke21hbV9jY19GTEFHU30g > JHtDQ0ZMQUdTfSAtSS4gLUljb21wIC1JaW5jbHVkZSAtSXN0ZCAtRF9QQUNLQUdFX2FzdCAtYyBz > dHJpbmcvY2hydG9pLmMKIGRvbmUgY2hydG9pLm8gZ2VuZXJhdGVkCittYWtlIHN0cGNweS5vCitt > YWtlIHN0cmluZy9zdHBjcHkuYworcHJldiBhc3RfbWFwLmggaW1wbGljaXQKK3ByZXYgaW5jbHVk > ZS9hc3QuaCBpbXBsaWNpdAorZG9uZSBzdHJpbmcvc3RwY3B5LmMKK21ldGEgc3RwY3B5Lm8gJS5j > PiUubyBzdHJpbmcvc3RwY3B5LmMgc3RwY3B5CitwcmV2IHN0cmluZy9zdHBjcHkuYworZXhlYyAt > ICR7Q0N9ICR7bWFtX2NjX0ZMQUdTfSAke0NDRkxBR1N9IC1JLiAtSWNvbXAgLUlpbmNsdWRlIC1J > c3RkIC1EX1BBQ0tBR0VfYXN0IC1jIHN0cmluZy9zdHBjcHkuYworZG9uZSBzdHBjcHkubyBnZW5l > cmF0ZWQKK21ha2Ugc3RwbmNweS5vCittYWtlIHN0cmluZy9zdHBuY3B5LmMKK3ByZXYgYXN0X21h > cC5oIGltcGxpY2l0CitwcmV2IGluY2x1ZGUvYXN0LmggaW1wbGljaXQKK2RvbmUgc3RyaW5nL3N0 > cG5jcHkuYworbWV0YSBzdHBuY3B5Lm8gJS5jPiUubyBzdHJpbmcvc3RwbmNweS5jIHN0cG5jcHkK > K3ByZXYgc3RyaW5nL3N0cG5jcHkuYworZXhlYyAtICR7Q0N9ICR7bWFtX2NjX0ZMQUdTfSAke0ND > RkxBR1N9IC1JLiAtSWNvbXAgLUlpbmNsdWRlIC1Jc3RkIC1EX1BBQ0tBR0VfYXN0IC1jIHN0cmlu > Zy9zdHBuY3B5LmMKK2RvbmUgc3RwbmNweS5vIGdlbmVyYXRlZAogbWFrZSBzdHJldmFsLm8KIG1h > a2Ugc3RyaW5nL3N0cmV2YWwuYwogcHJldiBpbmNsdWRlL2FzdC5oIGltcGxpY2l0CkBAIC04MDQs > NiArODIyLDcgQEAKIHByZXYgc3RyaW5nL3N0cmxjYXQuYwogZXhlYyAtICR7Q0N9ICR7bWFtX2Nj > X0ZMQUdTfSAke0NDRkxBR1N9IC1JLiAtSWNvbXAgLUlpbmNsdWRlIC1Jc3RkIC1EX1BBQ0tBR0Vf > YXN0IC1jIHN0cmluZy9zdHJsY2F0LmMKIGRvbmUgc3RybGNhdC5vIGdlbmVyYXRlZAorCiBtYWtl > IHN0cmxjcHkubwogbWFrZSBzdHJpbmcvc3RybGNweS5jCiBwcmV2IGFzdF9tYXAuaCBpbXBsaWNp > dApAQCAtODEzLDYgKzgzMiw3IEBACiBwcmV2IHN0cmluZy9zdHJsY3B5LmMKIGV4ZWMgLSAke0ND > fSAke21hbV9jY19GTEFHU30gJHtDQ0ZMQUdTfSAtSS4gLUljb21wIC1JaW5jbHVkZSAtSXN0ZCAt > RF9QQUNLQUdFX2FzdCAtYyBzdHJpbmcvc3RybGNweS5jCiBkb25lIHN0cmxjcHkubyBnZW5lcmF0 > ZWQKKwogbWFrZSBzdHJsb29rLm8KIG1ha2Ugc3RyaW5nL3N0cmxvb2suYwogcHJldiBpbmNsdWRl > L2FzdC5oIGltcGxpY2l0CkBAIC02MDk4LDcgKzYxMTgsNyBAQAogZXhlYyAtICR7Q0N9ICR7bWFt > X2NjX0ZMQUdTfSAke0NDRkxBR1N9IC1JLiAtSWNvbXAgLUlpbmNsdWRlIC1Jc3RkIC1EX1BBQ0tB > R0VfYXN0IC1jIG9ic29sZXRlL3NwYXduLmMKIGRvbmUgc3Bhd24ubyBnZW5lcmF0ZWQKIGV4ZWMg > LSAke0FSfSByYyBsaWJhc3QuYSBzdGF0ZS5vIHRyYW5zaXRpb24ubyBvcGVuZGlyLm8gcmVhZGRp > ci5vIHJld2luZGRpci5vIHNlZWtkaXIubyB0ZWxsZGlyLm8gZ2V0Y3dkLm8gZmFzdGZpbmQubyBo > YXNoYWxsb2MubyBoYXNoZHVtcC5vIGhhc2hmcmVlLm8gaGFzaGxhc3QubyBoYXNobG9vay5vIGhh > c2hzY2FuLm8gaGFzaHNpemUubyBoYXNodmlldy5vIGhhc2h3YWxrLm8gbWVtaGFzaC5vIG1lbXN1 > bS5vIHN0cmhhc2gubyBzdHJrZXkubyBzdHJzdW0ubyBzdHJhY21wLm8gc3RybmFjbXAubyBjY21h > cC5vIGNjbWFwaWQubyBjY25hdGl2ZS5vIGNocmVzYy5vIGNocnRvaS5vCi1leGVjIC0gJHtBUn0g > cmMgbGliYXN0LmEgc3RyZXZhbC5vIHN0cmV4cHIubyBzdHJtYXRjaC5vIHN0cmNvcHkubyBtb2Rl > aS5vIG1vZGV4Lm8gc3RybW9kZS5vIHN0cmxjYXQubyBzdHJsY3B5Lm8gc3RybG9vay5vIHN0cm5j > b3B5Lm8gc3Ryc2VhcmNoLm8gc3RycHNlYXJjaC5vIHN0cmVzYy5vIHN0cm9wdC5vIHN0cnRhcGUu > byBzdHJwY21wLm8gc3RybnBjbXAubyBzdHJ2Y21wLm8gc3RybnZjbXAubyB0b2subyB0b2tsaW5l > Lm8gdG9rc2Nhbi5vIHBhdGhhY2Nlc3MubyBwYXRoY2F0Lm8gcGF0aGNhbm9uLm8gcGF0aGNoZWNr > Lm8gcGF0aHBhdGgubyBwYXRoZXhpc3RzLm8gcGF0aGZpbmQubyBwYXRoa2V5Lm8gcGF0aHByb2Jl > Lm8gcGF0aHJlcGwubyBwYXRobmF0aXZlLm8gcGF0aHBvc2l4Lm8gcGF0aHRlbXAubyBwYXRodG1w > Lm8gcGF0aHN0YXQubyBwYXRoZ2V0bGluay5vIHBhdGhzZXRsaW5rLm8gcGF0aGJpbi5vIHBhdGhz > aGVsbC5vIHBhdGhjZC5vIHBhdGhwcm9nLm8gZnMzZC5vIGZ0d2Fsay5vIGZ0d2ZsYWdzLm8gZnRz > Lm8gYXN0aW50ZXJjZXB0Lm8gY29uZm9ybWFuY2UubyBnZXRlbnYubyBzZXRlbnZpcm9uLm8gb3B0 > Z2V0Lm8gb3B0am9pbi5vIG9wdGVzYy5vIG9wdGN0eC5vIHN0cnNvcnQubyBzdHJ1bmlxLm8gbWFn > aWMubyBtaW1lLm8gbWltZXR5cGUubyBzaWduYWwubyBzaWdmbGFnLm8gc3lzdHJhY2UubyBlcnJv > ci5vIGVycm9yZi5vIGVycm9ybXNnLm8gZXJyb3J4Lm8gbG9jYWxlY29udi5vIHNldGxvY2FsZS5v > IHRyYW5zbGF0ZS5vIGNhdG9wZW4ubyBpY29udi5vIGxjLm8gbGN0YWIubyBtYy5vIGJhc2U2NC5v > IHJlY2ZtdC5vIHJlY3N0ci5vIHJlY2xlbi5vIGZtdHJlYy5vIGZtdGJhc2UubyBmbXRidWYubyBm > bXRjbG9jay5vIGZtdGRldi5vIGZtdGVsYXBzZWQubyBmbXRlcnJvci5vIGZtdGVzYy5vIGZtdGZt > dC5vIGZtdGZzLm8gZm10aWRlbnQubyBmbXRpbnQubyBmbXRpcDQubyBmbXRpcDYubyBmbXRscy5v > IGZtdG1hdGNoLm8gZm10bW9kZS5vIGZtdG51bS5vIGZtdHBlcm0ubyBmbXRyZS5vIGZtdHRpbWUu > bworZXhlYyAtICR7QVJ9IHJjIGxpYmFzdC5hIHN0cmV2YWwubyBzdHJleHByLm8gc3RybWF0Y2gu > byBzdHJjb3B5Lm8gbW9kZWkubyBtb2RleC5vIHN0cGNweS5vIHN0cm1vZGUubyBzdHJsY2F0Lm8g > c3RybGNweS5vIHN0cmxvb2subyBzdHJuY29weS5vIHN0cnNlYXJjaC5vIHN0cnBzZWFyY2gubyBz > dHJlc2MubyBzdHJvcHQubyBzdHJ0YXBlLm8gc3RycGNtcC5vIHN0cm5wY21wLm8gc3RydmNtcC5v > IHN0cm52Y21wLm8gdG9rLm8gdG9rbGluZS5vIHRva3NjYW4ubyBwYXRoYWNjZXNzLm8gcGF0aGNh > dC5vIHBhdGhjYW5vbi5vIHBhdGhjaGVjay5vIHBhdGhwYXRoLm8gcGF0aGV4aXN0cy5vIHBhdGhm > aW5kLm8gcGF0aGtleS5vIHBhdGhwcm9iZS5vIHBhdGhyZXBsLm8gcGF0aG5hdGl2ZS5vIHBhdGhw > b3NpeC5vIHBhdGh0ZW1wLm8gcGF0aHRtcC5vIHBhdGhzdGF0Lm8gcGF0aGdldGxpbmsubyBwYXRo > c2V0bGluay5vIHBhdGhiaW4ubyBwYXRoc2hlbGwubyBwYXRoY2QubyBwYXRocHJvZy5vIGZzM2Qu > byBmdHdhbGsubyBmdHdmbGFncy5vIGZ0cy5vIGFzdGludGVyY2VwdC5vIGNvbmZvcm1hbmNlLm8g > Z2V0ZW52Lm8gc2V0ZW52aXJvbi5vIG9wdGdldC5vIG9wdGpvaW4ubyBvcHRlc2MubyBvcHRjdHgu > byBzdHJzb3J0Lm8gc3RydW5pcS5vIG1hZ2ljLm8gbWltZS5vIG1pbWV0eXBlLm8gc2lnbmFsLm8g > c2lnZmxhZy5vIHN5c3RyYWNlLm8gZXJyb3IubyBlcnJvcmYubyBlcnJvcm1zZy5vIGVycm9yeC5v > IGxvY2FsZWNvbnYubyBzZXRsb2NhbGUubyB0cmFuc2xhdGUubyBjYXRvcGVuLm8gaWNvbnYubyBs > Yy5vIGxjdGFiLm8gbWMubyBiYXNlNjQubyByZWNmbXQubyByZWNzdHIubyByZWNsZW4ubyBmbXRy > ZWMubyBmbXRiYXNlLm8gZm10YnVmLm8gZm10Y2xvY2subyBmbXRkZXYubyBmbXRlbGFwc2VkLm8g > Zm10ZXJyb3IubyBmbXRlc2MubyBmbXRmbXQubyBmbXRmcy5vIGZtdGlkZW50Lm8gZm10aW50Lm8g > Zm10aXA0Lm8gZm10aXA2Lm8gZm10bHMubyBmbXRtYXRjaC5vIGZtdG1vZGUubyBmbXRudW0ubyBm > bXRwZXJtLm8gZm10cmUubyBmbXR0aW1lLm8KIGV4ZWMgLSAke0FSfSByYyBsaWJhc3QuYSBmbXR1 > aWQubyBmbXRnaWQubyBmbXRzaWduYWwubyBmbXRzY2FsZS5vIGZtdHRteC5vIGZtdHR2Lm8gZm10 > dmVyc2lvbi5vIHN0cmVsYXBzZWQubyBzdHJwZXJtLm8gc3RydWlkLm8gc3RyZ2lkLm8gc3RydG9p > cDQubyBzdHJ0b2lwNi5vIHN0YWNrLm8gc3RrLm8gc3dhcGdldC5vIHN3YXBtZW0ubyBzd2Fwb3Au > byBzd2FwcHV0Lm8gc2lnZGF0YS5vIHNpZ2NyaXQubyBzaWd1bmJsb2NrLm8gcHJvY29wZW4ubyBw > cm9jY2xvc2UubyBwcm9jcnVuLm8gcHJvY2ZyZWUubyB0bWRhdGUubyB0bWVxdWl2Lm8gdG1maXgu > byB0bWZtdC5vIHRtZm9ybS5vIHRtZ29mZi5vIHRtaW5pdC5vIHRtbGVhcC5vIHRtbGV4Lm8gdG1s > b2NhbGUubyB0bW1ha2UubyB0bXBvZmYubyB0bXNjYW4ubyB0bXNsZWVwLm8gdG10aW1lLm8gdG10 > eXBlLm8gdG13ZWVrLm8gdG13b3JkLm8gdG16b25lLm8gdG14ZGF0ZS5vIHRteGR1cmF0aW9uLm8g > dG14Zm10Lm8gdG14Z2V0dGltZS5vIHRteGxlYXAubyB0bXhtYWtlLm8gdG14c2Nhbi5vIHRteHNl > dHRpbWUubyB0bXhzbGVlcC5vIHRteHRpbWUubyB0bXh0b3VjaC5vIHR2Y21wLm8gdHZnZXR0aW1l > Lm8gdHZzZXR0aW1lLm8gdHZzbGVlcC5vIHR2dG91Y2gubyBjbWRhcmcubyB2ZWNhcmdzLm8gdmVj > ZmlsZS5vIHZlY2ZyZWUubyB2ZWNsb2FkLm8gdmVjc3RyaW5nLm8gdW5pdmRhdGEubyB0b3VjaC5v > IG1udC5vIGRlYnVnLm8gbWVtY2NweS5vIG1lbWNoci5vIG1lbWNtcC5vIG1lbWNweS5vIG1lbWR1 > cC5vIG1lbW1vdmUubyBtZW1zZXQubyBta2Rpci5vIG1rZmlmby5vIG1rbm9kLm8gcm1kaXIubyBy > ZW1vdmUubyByZW5hbWUubyBsaW5rLm8gdW5saW5rLm8gc3RyZHVwLm8gc3RyY2hyLm8gc3RycmNo > ci5vIHN0cnN0ci5vIHN0cnRvZC5vIHN0cnRvbGQubyBzdHJ0b2wubyBzdHJ0b2xsLm8gc3RydG91 > bC5vIHN0cnRvdWxsLm8gc3RydG9uLm8gc3RydG9ubGwubyBzdHJudG9kLm8gc3RybnRvbGQubyBz > dHJudG9uLm8KIGV4ZWMgLSAke0FSfSByYyBsaWJhc3QuYSBzdHJudG9ubGwubyBzdHJudG9sLm8g > c3RybnRvbGwubyBzdHJudG91bC5vIHN0cm50b3VsbC5vIHN0cmNhc2VjbXAubyBzdHJuY2FzZWNt > cC5vIHN0cmVycm9yLm8gbWt0ZW1wLm8gdG1wbmFtLm8gZnN5bmMubyBleGVjbHAubyBleGVjdmUu > byBleGVjdnAubyBleGVjdnBlLm8gc3Bhd252ZWcubyB2Zm9yay5vIGtpbGxwZy5vIGhzZWFyY2gu > byB0c2VhcmNoLm8gZ2V0bG9naW4ubyBwdXRlbnYubyBzZXRlbnYubyB1bnNldGVudi5vIGxzdGF0 > Lm8gc3RhdHZmcy5vIGVhY2Nlc3MubyBncm9zcy5vIG9taXR0ZWQubyByZWFkbGluay5vIHN5bWxp > bmsubyBnZXRwZ3JwLm8gc2V0cGdpZC5vIHNldHNpZC5vIHdhaXRwaWQubyBjcmVhdDY0Lm8gZmNu > dGwubyBvcGVuLm8gYXRleGl0Lm8gZ2V0ZGVudHMubyBnZXR3ZC5vIGR1cDIubyBlcnJuby5vIGdl > dHByZXJvb3QubyBpc3ByZXJvb3QubyByZWFsb3Blbi5vIHNldHByZXJvb3QubyBnZXRncm91cHMu > byBtb3VudC5vIHN5c3RlbS5vIGlibG9ja3MubyBtb2RlZGF0YS5vIHRtZGF0YS5vIG1lbWZhdGFs > Lm8gc2ZrZXlwcmludGYubyBzZmRjZGlvLm8gc2ZkY2Rvcy5vIHNmZGNmaWx0ZXIubyBzZmRjc2Vl > a2FibGUubyBzZmRjc2xvdy5vIHNmZGNzdWJzdHIubyBzZmRjdGVlLm8gc2ZkY3VuaW9uLm8gc2Zk > Y21vcmUubyBzZmRjcHJlZml4Lm8gd2MubyB3YzJ1dGY4Lm8gYmFzZW5hbWUubyBjbG9zZWxvZy5v > IGRpcm5hbWUubyBmbXRtc2dsaWIubyBmbm1hdGNoLm8gZnR3Lm8gZ2V0ZGF0ZS5vIGdldHN1Ym9w > dC5vIGdsb2IubyBuZnR3Lm8gb3BlbmxvZy5vIHJlX2NvbXAubyByZXNvbHZlcGF0aC5vIHJlYWxw > YXRoLm8gcmVnY21wLm8gcmVnZXhwLm8gc2V0bG9nbWFzay5vIHN0cmZ0aW1lLm8gc3RycHRpbWUu > byBzd2FiLm8gc3lzbG9nLm8gdGVtcG5hbS5vIHdvcmRleHAubyBta3RpbWUubyByZWdhbGxvYy5v > IHJlZ2NsYXNzLm8gcmVnY29sbC5vIHJlZ2NvbXAubyByZWdjYWNoZS5vIHJlZ2RlY29tcC5vIHJl > Z2Vycm9yLm8gcmVnZXhlYy5vIHJlZ2ZhdGFsLm8gcmVnaW5pdC5vCiBleGVjIC0gJHtBUn0gcmMg > bGliYXN0LmEgcmVnbmV4ZWMubyByZWdzdWJjb21wLm8gcmVnc3ViZXhlYy5vIHJlZ3N1Yi5vIHJl > Z3JlY29yZC5vIHJlZ3JleGVjLm8gcmVnc3RhdC5vIGR0Y2xvc2UubyBkdGRpc2MubyBkdGhhc2gu > byBkdGxpc3QubyBkdG1ldGhvZC5vIGR0b3Blbi5vIGR0c3RyaGFzaC5vIGR0dHJlZS5vIGR0dmll > dy5vIGR0d2Fsay5vIGR0bmV3Lm8gZHRjb21wLm8gc2ZjbG9zZS5vIHNmY2xybG9jay5vIHNmZGlz > Yy5vIHNmZGxlbi5vIHNmZXhjZXB0Lm8gc2ZnZXRsLm8gc2ZnZXR1Lm8gc2ZjdnQubyBzZmVjdnQu > byBzZmZjdnQubyBzZmV4dGVybi5vIHNmZmlsYnVmLm8gc2ZmbHNidWYubyBzZnByaW50cy5vIHNm > Z2V0ZC5vIHNmZ2V0ci5vIHNmbGxlbi5vIHNmbW9kZS5vIHNmbW92ZS5vIHNmbmV3Lm8gc2Zwa3Jk > Lm8gc2Zub3RpZnkubyBzZm5wdXRjLm8gc2ZvcGVuLm8gc2ZwZWVrLm8gc2Zwb2xsLm8gc2Zwb29s > Lm8gc2Zwb3Blbi5vIHNmcHJpbnRmLm8gc2ZwdXRkLm8gc2ZwdXRsLm8gc2ZwdXRyLm8gc2ZwdXR1 > Lm8gc2ZyZC5vIHNmcmVhZC5vIHNmcmVzZXJ2ZS5vIHNmc2NhbmYubyBzZnNlZWsubyBzZnNldC5v > IHNmc2V0YnVmLm8gc2ZzZXRmZC5vIHNmc2l6ZS5vIHNmc2subyBzZnN0YWNrLm8gc2ZzdHJ0b2Qu > byBzZnN5bmMubyBzZnN3YXAubyBzZnRhYmxlLm8gc2Z0ZWxsLm8gc2Z0bXAubyBzZnVuZ2V0Yy5v > IHNmdnByaW50Zi5vIHNmdnNjYW5mLm8gc2Z3ci5vIHNmd3JpdGUubyBzZnB1cmdlLm8gc2ZyYWlz > ZS5vIHNmd2Fsay5vIHNmZ2V0bS5vIHNmbXV0ZXgubyBzZnB1dG0ubyBzZnJlc2l6ZS5vIF9zZmNs > cmVyci5vIF9zZmVvZi5vIF9zZmVycm9yLm8gX3NmZmlsZW5vLm8gX3Nmb3Blbi5vIF9zZnN0YWNr > ZWQubyBfc2Z2YWx1ZS5vIF9zZmdldGMubyBfc2ZnZXRsLm8gX3NmZ2V0bDIubyBfc2ZnZXR1Lm8g > X3NmZ2V0dTIubyBfc2ZkbGVuLm8gX3NmbGxlbi5vIF9zZnNsZW4ubyBfc2Z1bGVuLm8gX3NmcHV0 > Yy5vIF9zZnB1dGQubyBfc2ZwdXRsLm8gX3NmcHV0bS5vCmRpZmYgLXIgLXUgLU4gb3JpZ2luYWwv > c3JjL2xpYi9saWJhc3Qvc3RyaW5nL3N0cGNweS5jIGJ1aWxkX3N0cGNweS8vc3JjL2xpYi9saWJh > c3Qvc3RyaW5nL3N0cGNweS5jCi0tLSBzcmMvbGliL2xpYmFzdC9zdHJpbmcvc3RwY3B5LmMJMTk3 > MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIHNyYy9saWIvbGliYXN0L3N0cmlu > Zy9zdHBjcHkuYwkyMDEyLTA3LTI0IDE0OjIzOjE5LjIzODU5Nzg3NyArMDIwMApAQCAtMCwwICsx > LDU5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq > KioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAg > IFRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgYXN0IHBhY2thZ2UgICAgICAgICAgICAgICAq > CisqICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAxMiBBVCZUIEludGVsbGVjdHVhbCBQcm9w > ZXJ0eSAgICAgICAgICAgICoKKyogICAgICAgICAgICAgICAgICAgICAgYW5kIGlzIGxpY2Vuc2Vk > IHVuZGVyIHRoZSAgICAgICAgICAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAgICAgRWNs > aXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgICAgICAgICAgICAgICAgICAqCisqICAg > ICAgICAgICAgICAgICAgICBieSBBVCZUIEludGVsbGVjdHVhbCBQcm9wZXJ0eSAgICAgICAgICAg > ICAgICAgICAgICoKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAgICBBIGNvcHkgb2Yg > dGhlIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0ICAgICAgICAgICAgICAgICAqCisqICAgICAgICAg > IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLmh0bWwgICAgICAg > ICAgICoKKyogICAgICAgICAod2l0aCBtZDUgY2hlY2tzdW0gYjM1YWRiNTIxM2NhOTY1N2U5MTFl > OWJlZmIxODA4NDIpICAgICAgICAgKgorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqICAgICAgICAgICAgICBJ > bmZvcm1hdGlvbiBhbmQgU29mdHdhcmUgU3lzdGVtcyBSZXNlYXJjaCAgICAgICAgICAgICAgICoK > KyogICAgICAgICAgICAgICAgICAgICAgICAgICAgQVQmVCBSZXNlYXJjaCAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb3JoYW0gUGFy > ayBOSiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyogICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgKgorKiAgICAgICAgICAgICAgICAgUm9sYW5kIE1haW56IDxyb2xhbmQubWFpbnpA > bnJ1YnNpZy5vcmc+ICAgICAgICAgICAgICAqCisqICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyoqKioqKioqKioq > KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq > KioqLworI3ByYWdtYSBwcm90b3R5cGVkCisvKgorICogc3RwY3B5IGltcGxlbWVudGF0aW9uCisg > Ki8KKworI2RlZmluZSBzdHBjcHkJCV9fX19fX3N0cGNweQorCisjaW5jbHVkZSA8YXN0Lmg+CisK > KyN1bmRlZglzdHBjcHkKKworI3VuZGVmCV9kZWZfbWFwX2FzdAorI2luY2x1ZGUgPGFzdF9tYXAu > aD4KKworI2lmIF9saWJfc3RwY3B5CisKK05vTihzdHBjcHkpCisKKyNlbHNlCisKKyNpZiBkZWZp > bmVkKF9fRVhQT1JUX18pCisjZGVmaW5lIGV4dGVybglfX0VYUE9SVF9fCisjZW5kaWYKKworLyoK > KyAqIHxzdHBjcHl8IC0gbGlrZSB8c3RyY3B5KCl8IGJ1dCByZXR1cm5zIHRoZSBlbmQgb2YgdGhl > IGJ1ZmZlcgorICoKKyAqIENvcHkgc3RyaW5nIHMyIHRvIHMxLiAgczEgbXVzdCBiZSBsYXJnZSBl > bm91Z2guCisgKiByZXR1cm4gczEtMSAocG9zaXRpb24gb2Ygc3RyaW5nIHRlcm1pbmF0b3IgKCdc > MCcpIGluCisgKiBkZXN0aW5hdGlvbiBidWZmZXIpLgorICovCitjaGFyICpzdHBjcHkoY2hhciAq > czEsIGNvbnN0IGNoYXIgKnMyKQoreworCXdoaWxlICgqczErKyA9ICpzMisrKQorCQk7CisJcmV0 > dXJuIChzMS0xKTsKK30KKworI2VuZGlmCmRpZmYgLXIgLXUgLU4gb3JpZ2luYWwvc3JjL2xpYi9s > aWJhc3Qvc3RyaW5nL3N0cG5jcHkuYyBidWlsZF9zdHBjcHkvL3NyYy9saWIvbGliYXN0L3N0cmlu > Zy9zdHBuY3B5LmMKLS0tIHNyYy9saWIvbGliYXN0L3N0cmluZy9zdHBuY3B5LmMJMTk3MC0wMS0w > MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIHNyYy9saWIvbGliYXN0L3N0cmluZy9zdHBu > Y3B5LmMJMjAxMi0wNy0yNCAxNDo0ODoxMC40Mzc3MjAyNTMgKzAyMDAKQEAgLTAsMCArMSw2NSBA > QAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq > KioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyogICAgICAgICAgICAgICBUaGlz > IHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIGFzdCBwYWNrYWdlICAgICAgICAgICAgICAgKgorKiAg > ICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkg > ICAgICAgICAgICAqCisqICAgICAgICAgICAgICAgICAgICAgIGFuZCBpcyBsaWNlbnNlZCB1bmRl > ciB0aGUgICAgICAgICAgICAgICAgICAgICAgICoKKyogICAgICAgICAgICAgICAgIEVjbGlwc2Ug > UHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICAgICAgICAgICAgICAgICAgKgorKiAgICAgICAg > ICAgICAgICAgICAgYnkgQVQmVCBJbnRlbGxlY3R1YWwgUHJvcGVydHkgICAgICAgICAgICAgICAg > ICAgICAqCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICoKKyogICAgICAgICAgICAgICAgQSBjb3B5IG9mIHRoZSBM > aWNlbnNlIGlzIGF2YWlsYWJsZSBhdCAgICAgICAgICAgICAgICAgKgorKiAgICAgICAgICBodHRw > Oi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5odG1sICAgICAgICAgICAq > CisqICAgICAgICAgKHdpdGggbWQ1IGNoZWNrc3VtIGIzNWFkYjUyMTNjYTk2NTdlOTExZTliZWZi > MTgwODQyKSAgICAgICAgICoKKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAgSW5mb3Jt > YXRpb24gYW5kIFNvZnR3YXJlIFN5c3RlbXMgUmVzZWFyY2ggICAgICAgICAgICAgICAqCisqICAg > ICAgICAgICAgICAgICAgICAgICAgICAgIEFUJlQgUmVzZWFyY2ggICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICoKKyogICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9yaGFtIFBhcmsgTkog > ICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICoKKyogICAgICAgICAgICAgICAgIFJvbGFuZCBNYWlueiA8cm9sYW5kLm1haW56QG5ydWJz > aWcub3JnPiAgICAgICAgICAgICAgKgorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg > ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioq > KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K > KyNwcmFnbWEgcHJvdG90eXBlZAorLyoKKyAqIHN0cG5jcHkgaW1wbGVtZW50YXRpb24KKyAqLwor > CisjZGVmaW5lIHN0cG5jcHkJCV9fX19fX3N0cG5jcHkKKworI2luY2x1ZGUgPGFzdC5oPgorCisj > dW5kZWYJc3RwbmNweQorCisjdW5kZWYJX2RlZl9tYXBfYXN0CisjaW5jbHVkZSA8YXN0X21hcC5o > PgorCisjaWYgX2xpYl9zdHBuY3B5CisKK05vTihzdHBuY3B5KQorCisjZWxzZQorCisjaWYgZGVm > aW5lZChfX0VYUE9SVF9fKQorI2RlZmluZSBleHRlcm4JX19FWFBPUlRfXworI2VuZGlmCisKKwor > LyoKKyAqIHxzdHBuY3B5fCAtIGxpa2UgfHN0cm5jcHkoKXwgYnV0IHJldHVybnMgdGhlIGVuZCBv > ZiB0aGUgYnVmZmVyCisgKgorICogQ29weSBzMiB0byBzMSwgdHJ1bmNhdGluZyBvciAnXDAnLXBh > ZGRpbmcgdG8gYWx3YXlzIGNvcHkgbgorICogYnl0ZXMsIHJldHVybiBwb3NpdGlvbiBvZiBzdHJp > bmcgdGVybWluYXRvciAoJ1wwJykgaW4KKyAqIGRlc3RpbmF0aW9uIGJ1ZmZlciBvciBpZiBzMSBp > cyBub3QgJ1wwJy10ZXJtaW5hdGVkLCBzMStuLgorICoKKyAqIFNlZSBodHRwOi8vcHVicy5vcGVu > Z3JvdXAub3JnL29ubGluZXB1YnMvOTY5OTkxOTc5OS9mdW5jdGlvbnMvc3RybmNweS5odG1sCisg > Ki8KK2NoYXIgKgorc3RwbmNweShjaGFyICpzMSwgY29uc3QgY2hhciAqczIsIHNpemVfdCBuKQor > eworCXJlZ2lzdGVyIHNpemVfdCBzdHJuX2xlbiA9IHN0cm5sZW4oczIsIG4pOworCisJc3RybmNw > eShzMSwgczIsIG4pOworCisJcmV0dXJuIChzdHJuX2xlbiA8IG4pPyhzMSArIHN0cm5fbGVuKToo > czErbik7Cit9CisKKyNlbmRpZgo= > --f46d042f9bf07f40ca04c593f8e6-- _______________________________________________ ast-developers mailing list ast-developers@research.att.com https://mailman.research.att.com/mailman/listinfo/ast-developers