svn: /gd/trunk/libgd/ src/CMakeLists.txt src/Makefile.am src/gd.h src/gd_filter.c tests/CMakeLists.txt tests/Makefile.am tests/gdimagescatterex/CMakeLists.txt tests/gdimagescatterex/Makefile.am tests/gdimagescatterex/bug00208.png tests/gdimagescatterex/bug00208_1.c tests/gdimagescatterex/bug00208_1.png tests/gdimagescatterex/bug00208_2.c tests/gdimagescatterex/bug00208_2.png
[email protected] (Takeshi Abe) Thu, 06 Aug 2009 04:40:15 +0000
| Newsgroups | php.gd.cvs |
|---|---|
| Message-ID | <[email protected]> |
--c688bf1250cad8e8762290069365f6abb18988ed
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
tabe Thu, 06 Aug 2009 04:40:15 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=286866
Log:
adapted Kalle's scatter filter. see FS#208
Bug: http://bugs.php.net/208 (Closed) type error in libs
Changed paths:
U gd/trunk/libgd/src/CMakeLists.txt
U gd/trunk/libgd/src/Makefile.am
U gd/trunk/libgd/src/gd.h
A gd/trunk/libgd/src/gd_filter.c
U gd/trunk/libgd/tests/CMakeLists.txt
U gd/trunk/libgd/tests/Makefile.am
A gd/trunk/libgd/tests/gdimagescatterex/
A gd/trunk/libgd/tests/gdimagescatterex/CMakeLists.txt
A gd/trunk/libgd/tests/gdimagescatterex/Makefile.am
A gd/trunk/libgd/tests/gdimagescatterex/bug00208.png
A gd/trunk/libgd/tests/gdimagescatterex/bug00208_1.c
A gd/trunk/libgd/tests/gdimagescatterex/bug00208_1.png
A gd/trunk/libgd/tests/gdimagescatterex/bug00208_2.c
A gd/trunk/libgd/tests/gdimagescatterex/bug00208_2.png
--c688bf1250cad8e8762290069365f6abb18988ed
Content-Type: text/x-diff; charset="utf-8"
Content-Disposition: attachment; filename="svn-diffs-286866.txt"
Content-Transfer-Encoding: base64
TW9kaWZpZWQ6IGdkL3RydW5rL2xpYmdkL3NyYy9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90
cnVuay9saWJnZC9zcmMvQ01ha2VMaXN0cy50eHQJMjAwOS0wOC0wNiAwNDozNzowNyBVVEMgKHJldiAy
ODY4NjUpCisrKyBnZC90cnVuay9saWJnZC9zcmMvQ01ha2VMaXN0cy50eHQJMjAwOS0wOC0wNiAwNDo0
MDoxNSBVVEMgKHJldiAyODY4NjYpCkBAIC0xNCw2ICsxNCw3IEBACiAJZ2RwcC5oCiAJZ2RfYm1wLmMK
IAlibXAuaAorCWdkX2ZpbHRlci5jCiAJZ2RfZ2QuYwogCWdkX2dkMi5jCiAJZ2RfaW8uYwoKTW9kaWZp
ZWQ6IGdkL3RydW5rL2xpYmdkL3NyYy9NYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90cnVuay9saWJn
ZC9zcmMvTWFrZWZpbGUuYW0JMjAwOS0wOC0wNiAwNDozNzowNyBVVEMgKHJldiAyODY4NjUpCisrKyBn
ZC90cnVuay9saWJnZC9zcmMvTWFrZWZpbGUuYW0JMjAwOS0wOC0wNiAwNDo0MDoxNSBVVEMgKHJldiAy
ODY4NjYpCkBAIC0xMyw3ICsxMyw3IEBACgogbGliX0xUTElCUkFSSUVTID0gbGliZ2QubGEKCi1saWJn
ZF9sYV9TT1VSQ0VTID0gZ2QuYyBnZF9jb2xvci5jIGdkX2NvbG9yX21hcC5jIGdkX3RyYW5zZm9ybS5j
IGdkZnguYyBnZF9zZWN1cml0eS5jIGdkX2dkLmMgZ2RfZ2QyLmMgZ2RfaW8uYyBnZF9pb19kcC5jIGdk
X2dpZl9pbi5jIGdkX2dpZl9vdXQuYyBnZF9pb19maWxlLmMgZ2RfaW9fc3MuYyBnZF9qcGVnLmMgZ2Rf
cG5nLmMgZ2Rfc3MuYyBnZF90b3BhbC5jIGdkX3dibXAuYyBnZGNhY2hlLmMgZ2Rmb250Zy5jIGdkZm9u
dGwuYyBnZGZvbnRtYi5jIGdkZm9udHMuYyBnZGZvbnR0LmMgZ2RmdC5jIGdkaGVscGVycy5jIGdkaGVs
cGVycy5oIGdka2FuamkuYyBnZHRhYmxlcy5jIGdkeHBtLmMgamlzeDAyMDguaCB3Ym1wLmMgd2JtcC5o
IGdkX3BpeGVsYXRlLmMKK2xpYmdkX2xhX1NPVVJDRVMgPSBnZC5jIGdkX2NvbG9yLmMgZ2RfY29sb3Jf
bWFwLmMgZ2RfdHJhbnNmb3JtLmMgZ2RmeC5jIGdkX3NlY3VyaXR5LmMgZ2RfZ2QuYyBnZF9nZDIuYyBn
ZF9pby5jIGdkX2lvX2RwLmMgZ2RfZ2lmX2luLmMgZ2RfZ2lmX291dC5jIGdkX2lvX2ZpbGUuYyBnZF9p
b19zcy5jIGdkX2pwZWcuYyBnZF9wbmcuYyBnZF9zcy5jIGdkX3RvcGFsLmMgZ2Rfd2JtcC5jIGdkY2Fj
aGUuYyBnZGZvbnRnLmMgZ2Rmb250bC5jIGdkZm9udG1iLmMgZ2Rmb250cy5jIGdkZm9udHQuYyBnZGZ0
LmMgZ2RoZWxwZXJzLmMgZ2RoZWxwZXJzLmggZ2RrYW5qaS5jIGdkdGFibGVzLmMgZ2R4cG0uYyBqaXN4
MDIwOC5oIHdibXAuYyB3Ym1wLmggZ2RfcGl4ZWxhdGUuYyBnZF9maWx0ZXIuYwoKIGxpYmdkX2xhX0xE
RkxBR1MgPSAtdmVyc2lvbi1pbmZvIDI6MDowICQoWFRSQV9MREZMQUdTKQoKCk1vZGlmaWVkOiBnZC90
cnVuay9saWJnZC9zcmMvZ2QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90cnVuay9saWJnZC9zcmMvZ2QuaAkyMDA5
LTA4LTA2IDA0OjM3OjA3IFVUQyAocmV2IDI4Njg2NSkKKysrIGdkL3RydW5rL2xpYmdkL3NyYy9nZC5o
CTIwMDktMDgtMDYgMDQ6NDA6MTUgVVRDIChyZXYgMjg2ODY2KQpAQCAtNzg0LDYgKzc4NCwxOCBAQAoK
IEJHRF9ERUNMQVJFKGludCkgZ2RJbWFnZVBpeGVsYXRlKGdkSW1hZ2VQdHIgaW0sIGludCBibG9ja19z
aXplLCBjb25zdCB1bnNpZ25lZCBpbnQgbW9kZSk7CgordHlwZWRlZiBzdHJ1Y3QgeworCWludCBzdWI7
CisJaW50IHBsdXM7CisJdW5zaWduZWQgaW50IG51bV9jb2xvcnM7CisJaW50ICpjb2xvcnM7CisJdW5z
aWduZWQgaW50IHNlZWQ7Cit9IGdkU2NhdHRlciwgKmdkU2NhdHRlclB0cjsKKworQkdEX0RFQ0xBUkUo
aW50KSBnZEltYWdlU2NhdHRlcihnZEltYWdlUHRyIGltLCBpbnQgc3ViLCBpbnQgcGx1cyk7CitCR0Rf
REVDTEFSRShpbnQpIGdkSW1hZ2VTY2F0dGVyQ29sb3IoZ2RJbWFnZVB0ciBpbSwgaW50IHN1YiwgaW50
IHBsdXMsIGludCBjb2xvcnNbXSwgdW5zaWduZWQgaW50IG51bV9jb2xvcnMpOworQkdEX0RFQ0xBUkUo
aW50KSBnZEltYWdlU2NhdHRlckV4KGdkSW1hZ2VQdHIgaW0sIGdkU2NhdHRlclB0ciBzKTsKKwogLyog
TWFjcm9zIHRvIGFjY2VzcyBpbmZvcm1hdGlvbiBhYm91dCBpbWFnZXMuICovCgogLyogUmV0dXJucyBu
b256ZXJvIGlmIHRoZSBpbWFnZSBpcyBhIHRydWVjb2xvciBpbWFnZSwKCkFkZGVkOiBnZC90cnVuay9s
aWJnZC9zcmMvZ2RfZmlsdGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2QvdHJ1bmsvbGliZ2Qvc3JjL2dkX2ZpbHRl
ci5jCSAgICAgICAgICAgICAgICAgICAgICAgIChyZXYgMCkKKysrIGdkL3RydW5rL2xpYmdkL3NyYy9n
ZF9maWx0ZXIuYwkyMDA5LTA4LTA2IDA0OjQwOjE1IFVUQyAocmV2IDI4Njg2NikKQEAgLTAsMCArMSw5
OSBAQAorI2luY2x1ZGUgImdkLmgiCisKKyNpZmRlZiBXSU4zMgorIyBpbmNsdWRlIDx3aW5kb3dzLmg+
CisjZWxzZQorIyBpbmNsdWRlIDx1bmlzdGQuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0ZGxpYi5oPgor
I2luY2x1ZGUgPHRpbWUuaD4KKworI2RlZmluZSBQSVhFTF9GVU5DVElPTl9ERUNMQVJFKGYpIGludCAo
KmYpKGdkSW1hZ2VQdHIsIGludCwgaW50KQorCisjZGVmaW5lIEdFVF9QSVhFTF9GVU5DVElPTihzcmMp
KHNyYy0+dHJ1ZUNvbG9yID8gZ2RJbWFnZUdldFRydWVDb2xvclBpeGVsIDogZ2RJbWFnZUdldFBpeGVs
KQorCisjaWZkZWYgV0lOMzIKKyMgZGVmaW5lIEdEX1NDQVRURVJfU0VFRCgpICh1bnNpZ25lZCBpbnQp
KHRpbWUoMCkgKiBHZXRDdXJyZW50UHJvY2Vzc0lkKCkpCisjZWxzZQorIyBkZWZpbmUgR0RfU0NBVFRF
Ul9TRUVEKCkgKHVuc2lnbmVkIGludCkodGltZSgwKSAqIGdldHBpZCgpKQorI2VuZGlmCisKK2ludCBn
ZEltYWdlU2NhdHRlcihnZEltYWdlUHRyIGltLCBpbnQgc3ViLCBpbnQgcGx1cykKK3sKKwlnZFNjYXR0
ZXIgczsKKworCXMuc3ViICA9IHN1YjsKKwlzLnBsdXMgPSBwbHVzOworCXMubnVtX2NvbG9ycyA9IDA7
CisJcy5zZWVkID0gR0RfU0NBVFRFUl9TRUVEKCk7CisJcmV0dXJuIGdkSW1hZ2VTY2F0dGVyRXgoaW0s
ICZzKTsKK30KKworaW50IGdkSW1hZ2VTY2F0dGVyQ29sb3IoZ2RJbWFnZVB0ciBpbSwgaW50IHN1Yiwg
aW50IHBsdXMsIGludCBjb2xvcnNbXSwgdW5zaWduZWQgaW50IG51bV9jb2xvcnMpCit7CisJZ2RTY2F0
dGVyIHM7CisKKwlzLnN1YiAgPSBzdWI7CisJcy5wbHVzID0gcGx1czsKKwlzLmNvbG9ycyA9IGNvbG9y
czsKKwlzLm51bV9jb2xvcnMgPSBudW1fY29sb3JzOworCXMuc2VlZCA9IEdEX1NDQVRURVJfU0VFRCgp
OworCXJldHVybiBnZEltYWdlU2NhdHRlckV4KGltLCAmcyk7Cit9CisKKyNkZWZpbmUgR0RfU0NBVFRF
Ul9NQUlOKCkgZG8gewkJCQkJCQkJCVwKKwkJZGVzdF94ID0gKGludCkgKHggKyAoKHJhbmQoKSAlIChw
bHVzIC0gc3ViKSkgKyBzdWIpKTsJXAorCQlkZXN0X3kgPSAoaW50KSAoeSArICgocmFuZCgpICUgKHBs
dXMgLSBzdWIpKSArIHN1YikpOwlcCisJCQkJCQkJCQkJCQkJCQkJXAorCQlpZiAoIWdkSW1hZ2VCb3Vu
ZHNTYWZlKGltLCBkZXN0X3gsIGRlc3RfeSkpIHsJCQlcCisJCQljb250aW51ZTsJCQkJCQkJCQkJCVwK
KwkJfQkJCQkJCQkJCQkJCQkJXAorCQkJCQkJCQkJCQkJCQkJCVwKKwkJcHhsID0gZihpbSwgeCwgeSk7
CQkJCQkJCQkJCVwKKwkJbmV3X3B4bCA9IGYoaW0sIGRlc3RfeCwgZGVzdF95KTsJCQkJCQlcCisJfSB3
aGlsZSAoMCkKKworaW50IGdkSW1hZ2VTY2F0dGVyRXgoZ2RJbWFnZVB0ciBpbSwgZ2RTY2F0dGVyUHRy
IHNjYXR0ZXIpCit7CisJcmVnaXN0ZXIgaW50IHgsIHk7CisJaW50IGRlc3RfeCwgZGVzdF95OworCWlu
dCBweGwsIG5ld19weGw7CisJdW5zaWduZWQgaW50IG47CisJaW50IHN1YiA9IHNjYXR0ZXItPnN1Yiwg
cGx1cyA9IHNjYXR0ZXItPnBsdXM7CisJUElYRUxfRlVOQ1RJT05fREVDTEFSRShmKTsKKworCWlmIChw
bHVzID09IDAgJiYgc3ViID09IDApIHsKKwkJcmV0dXJuIDE7CisJfSBlbHNlIGlmIChzdWIgPj0gcGx1
cykgeworCQlyZXR1cm4gMDsKKwl9CisKKwlmID0gR0VUX1BJWEVMX0ZVTkNUSU9OKGltKTsKKwkodm9p
ZClzcmFuZChzY2F0dGVyLT5zZWVkKTsKKworCWlmIChzY2F0dGVyLT5udW1fY29sb3JzKSB7CisJCWZv
ciAoeSA9IDA7IHkgPCBpbS0+c3k7IHkrKykgeworCQkJZm9yICh4ID0gMDsgeCA8IGltLT5zeDsgeCsr
KSB7CisJCQkJR0RfU0NBVFRFUl9NQUlOKCk7CisKKwkJCQlmb3IgKG4gPSAwOyBuIDwgc2NhdHRlci0+
bnVtX2NvbG9yczsgbisrKSB7CisJCQkJCWlmIChweGwgPT0gc2NhdHRlci0+Y29sb3JzW25dKSB7CisJ
CQkJCQlnZEltYWdlU2V0UGl4ZWwoaW0sIGRlc3RfeCwgZGVzdF95LCBweGwpOworCQkJCQkJZ2RJbWFn
ZVNldFBpeGVsKGltLCB4LCB5LCBuZXdfcHhsKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJfQorCX0g
ZWxzZSB7CisJCWZvciAoeSA9IDA7IHkgPCBpbS0+c3k7IHkrKykgeworCQkJZm9yICh4ID0gMDsgeCA8
IGltLT5zeDsgeCsrKSB7CisJCQkJR0RfU0NBVFRFUl9NQUlOKCk7CisKKwkJCQlnZEltYWdlU2V0UGl4
ZWwoaW0sIGRlc3RfeCwgZGVzdF95LCBweGwpOworCQkJCWdkSW1hZ2VTZXRQaXhlbChpbSwgeCwgeSwg
bmV3X3B4bCk7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gMTsKK30KCk1vZGlmaWVkOiBnZC90cnVu
ay9saWJnZC90ZXN0cy9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90cnVuay9saWJnZC90ZXN0
cy9DTWFrZUxpc3RzLnR4dAkyMDA5LTA4LTA2IDA0OjM3OjA3IFVUQyAocmV2IDI4Njg2NSkKKysrIGdk
L3RydW5rL2xpYmdkL3Rlc3RzL0NNYWtlTGlzdHMudHh0CTIwMDktMDgtMDYgMDQ6NDA6MTUgVVRDIChy
ZXYgMjg2ODY2KQpAQCAtNDMsNiArNDMsNyBAQAogCQlnZGltYWdlbGluZQogCQlnZGltYWdlcGl4ZWxh
dGUKIAkJZ2RpbWFnZXJlY3RhbmdsZQorCQlnZGltYWdlc2NhdHRlcmV4CiAJCWdkaW1hZ2VzZXRwaXhl
bAogCQlnZGltYWdlc3RyaW5nZnQKIAkJZ2RpbWFnZXN0cmluZ2Z0ZXgKCk1vZGlmaWVkOiBnZC90cnVu
ay9saWJnZC90ZXN0cy9NYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90cnVuay9saWJnZC90ZXN0cy9N
YWtlZmlsZS5hbQkyMDA5LTA4LTA2IDA0OjM3OjA3IFVUQyAocmV2IDI4Njg2NSkKKysrIGdkL3RydW5r
L2xpYmdkL3Rlc3RzL01ha2VmaWxlLmFtCTIwMDktMDgtMDYgMDQ6NDA6MTUgVVRDIChyZXYgMjg2ODY2
KQpAQCAtMjIsNiArMjIsNyBAQAogCQlnZGltYWdlbGluZSBcCiAJCWdkaW1hZ2VwaXhlbGF0ZSBcCiAJ
CWdkaW1hZ2VyZWN0YW5nbGUgXAorCQlnZGltYWdlc2NhdHRlcmV4IFwKIAkJZ2RpbWFnZXNldHBpeGVs
IFwKIAkJZ2RpbWFnZXN0cmluZ2Z0IFwKIAkJZ2RpbWFnZXN0cmluZ2Z0ZXggXAoKQWRkZWQ6IGdkL3Ry
dW5rL2xpYmdkL3Rlc3RzL2dkaW1hZ2VzY2F0dGVyZXgvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
Z2QvdHJ1bmsvbGliZ2QvdGVzdHMvZ2RpbWFnZXNjYXR0ZXJleC9DTWFrZUxpc3RzLnR4dAkgICAgICAg
ICAgICAgICAgICAgICAgICAocmV2IDApCisrKyBnZC90cnVuay9saWJnZC90ZXN0cy9nZGltYWdlc2Nh
dHRlcmV4L0NNYWtlTGlzdHMudHh0CTIwMDktMDgtMDYgMDQ6NDA6MTUgVVRDIChyZXYgMjg2ODY2KQpA
QCAtMCwwICsxLDExIEBACitTRVQoVEVTVFNfRklMRVMKKwlidWcwMDIwOF8xCisJYnVnMDAyMDhfMgor
KQorCitGT1JFQUNIKHRlc3RfbmFtZSAke1RFU1RTX0ZJTEVTfSkKKwlhZGRfZXhlY3V0YWJsZSgke3Rl
c3RfbmFtZX0gIiR7dGVzdF9uYW1lfS5jIikKKwl0YXJnZXRfbGlua19saWJyYXJpZXMgKCR7dGVzdF9u
YW1lfSAke0dEVEVTVFNfVEFSR0VUX0xJTkt9KQorCWdldF90YXJnZXRfcHJvcGVydHkodGVzdF9wYXRo
ICR7dGVzdF9uYW1lfSBMT0NBVElPTikKKwlBRERfVEVTVCgke3Rlc3RfbmFtZX0gJHt0ZXN0X3BhdGh9
KQorRU5ERk9SRUFDSCh0ZXN0X25hbWUpCgpBZGRlZDogZ2QvdHJ1bmsvbGliZ2QvdGVzdHMvZ2RpbWFn
ZXNjYXR0ZXJleC9NYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90cnVuay9saWJnZC90ZXN0cy9nZGlt
YWdlc2NhdHRlcmV4L01ha2VmaWxlLmFtCSAgICAgICAgICAgICAgICAgICAgICAgIChyZXYgMCkKKysr
IGdkL3RydW5rL2xpYmdkL3Rlc3RzL2dkaW1hZ2VzY2F0dGVyZXgvTWFrZWZpbGUuYW0JMjAwOS0wOC0w
NiAwNDo0MDoxNSBVVEMgKHJldiAyODY4NjYpCkBAIC0wLDAgKzEsMyBAQAorIyMgUHJvY2VzcyB0aGlz
IGZpbGUgd2l0aCBhdXRvbWFrZSB0byBwcm9kdWNlIE1ha2VmaWxlLmluIC0qLU1ha2VmaWxlLSotCisK
K0VYVFJBX0RJU1QgPSBDTWFrZUxpc3RzLnR4dCBidWcwMDIwOF8xLmMgYnVnMDAyMDhfMi5jIGJ1ZzAw
MjA4LnBuZyBidWcwMDIwOF8xLnBuZyBidWcwMDIwOF8yLnBuZwoKQWRkZWQ6IGdkL3RydW5rL2xpYmdk
L3Rlc3RzL2dkaW1hZ2VzY2F0dGVyZXgvYnVnMDAyMDgucG5nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKEJpbmFyeSBmaWxlcyBk
aWZmZXIpCgoKUHJvcGVydHkgY2hhbmdlcyBvbjogZ2QvdHJ1bmsvbGliZ2QvdGVzdHMvZ2RpbWFnZXNj
YXR0ZXJleC9idWcwMDIwOC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGltYWdl
L3BuZwoKQWRkZWQ6IGdkL3RydW5rL2xpYmdkL3Rlc3RzL2dkaW1hZ2VzY2F0dGVyZXgvYnVnMDAyMDhf
MS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGdkL3RydW5rL2xpYmdkL3Rlc3RzL2dkaW1hZ2VzY2F0dGVyZXgvYnVnMDAy
MDhfMS5jCSAgICAgICAgICAgICAgICAgICAgICAgIChyZXYgMCkKKysrIGdkL3RydW5rL2xpYmdkL3Rl
c3RzL2dkaW1hZ2VzY2F0dGVyZXgvYnVnMDAyMDhfMS5jCTIwMDktMDgtMDYgMDQ6NDA6MTUgVVRDIChy
ZXYgMjg2ODY2KQpAQCAtMCwwICsxLDM3IEBACisjaW5jbHVkZSAiZ2QuaCIKKyNpbmNsdWRlICJnZHRl
c3QuaCIKKworaW50IG1haW4oKQoreworCWdkSW1hZ2VQdHIgaW07CisJRklMRSAqZnA7CisJZ2RTY2F0
dGVyIHM7CisKKwlmcCA9IGZvcGVuKEdEVEVTVF9UT1BfRElSICIvZ2RpbWFnZXNjYXR0ZXJleC9idWcw
MDIwOC5wbmciLCAicmIiKTsKKwlpZiAoIWZwKSB7CisJCWZwcmludGYoc3RkZXJyLCAiY291bGQgbm90
IG9wZW4gZmlsZSIpOworCQlyZXR1cm4gMTsKKwl9CisJaW0gPSBnZEltYWdlQ3JlYXRlRnJvbVBuZyhm
cCk7CisJZmNsb3NlKGZwKTsKKwlpZiAoIWltKSB7CisJCWZwcmludGYoc3RkZXJyLCAiY291bGQgbm90
IGNyZWF0ZSBpbWFnZSIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlzLnN1YiAgPSAxOworCXMucGx1cyA9
IDM7CisJcy5zZWVkID0gMDsKKwlzLm51bV9jb2xvcnMgPSAwOworCWlmICghZ2RJbWFnZVNjYXR0ZXJF
eChpbSwgJnMpKSB7CisJCWdkSW1hZ2VEZXN0cm95KGltKTsKKwkJZnByaW50ZihzdGRlcnIsICJjb3Vs
ZCBub3Qgc2NhdHRlciIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoIWdkQXNzZXJ0SW1hZ2VFcXVh
bHNUb0ZpbGUoR0RURVNUX1RPUF9ESVIgIi9nZGltYWdlc2NhdHRlcmV4L2J1ZzAwMjA4XzEucG5nIiwg
aW0pKSB7CisJCWdkSW1hZ2VEZXN0cm95KGltKTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOwor
fQoKQWRkZWQ6IGdkL3RydW5rL2xpYmdkL3Rlc3RzL2dkaW1hZ2VzY2F0dGVyZXgvYnVnMDAyMDhfMS5w
bmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQooQmluYXJ5IGZpbGVzIGRpZmZlcikKCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBnZC90
cnVuay9saWJnZC90ZXN0cy9nZGltYWdlc2NhdHRlcmV4L2J1ZzAwMjA4XzEucG5nCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCkFkZGVkOiBnZC90cnVuay9saWJnZC90ZXN0
cy9nZGltYWdlc2NhdHRlcmV4L2J1ZzAwMjA4XzIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnZC90cnVuay9saWJnZC90
ZXN0cy9nZGltYWdlc2NhdHRlcmV4L2J1ZzAwMjA4XzIuYwkgICAgICAgICAgICAgICAgICAgICAgICAo
cmV2IDApCisrKyBnZC90cnVuay9saWJnZC90ZXN0cy9nZGltYWdlc2NhdHRlcmV4L2J1ZzAwMjA4XzIu
YwkyMDA5LTA4LTA2IDA0OjQwOjE1IFVUQyAocmV2IDI4Njg2NikKQEAgLTAsMCArMSwzOSBAQAorI2lu
Y2x1ZGUgImdkLmgiCisjaW5jbHVkZSAiZ2R0ZXN0LmgiCisKK2ludCBtYWluKCkKK3sKKwlnZEltYWdl
UHRyIGltOworCUZJTEUgKmZwOworCWdkU2NhdHRlciBzOworCWludCBjb2xvcnNbXSA9IHsweEZGMDAw
MCwgMHgwMEZGMDB9OworCisJZnAgPSBmb3BlbihHRFRFU1RfVE9QX0RJUiAiL2dkaW1hZ2VzY2F0dGVy
ZXgvYnVnMDAyMDgucG5nIiwgInJiIik7CisJaWYgKCFmcCkgeworCQlmcHJpbnRmKHN0ZGVyciwgImNv
dWxkIG5vdCBvcGVuIGZpbGUiKTsKKwkJcmV0dXJuIDE7CisJfQorCWltID0gZ2RJbWFnZUNyZWF0ZUZy
b21QbmcoZnApOworCWZjbG9zZShmcCk7CisJaWYgKCFpbSkgeworCQlmcHJpbnRmKHN0ZGVyciwgImNv
dWxkIG5vdCBjcmVhdGUgaW1hZ2UiKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcy5zdWIgID0gMTsKKwlz
LnBsdXMgPSAzOworCXMuc2VlZCA9IDA7CisJcy5udW1fY29sb3JzID0gMjsKKwlzLmNvbG9ycyA9IGNv
bG9yczsKKwlpZiAoIWdkSW1hZ2VTY2F0dGVyRXgoaW0sICZzKSkgeworCQlnZEltYWdlRGVzdHJveShp
bSk7CisJCWZwcmludGYoc3RkZXJyLCAiY291bGQgbm90IHNjYXR0ZXIiKTsKKwkJcmV0dXJuIDE7CisJ
fQorCisJaWYgKCFnZEFzc2VydEltYWdlRXF1YWxzVG9GaWxlKEdEVEVTVF9UT1BfRElSICIvZ2RpbWFn
ZXNjYXR0ZXJleC9idWcwMDIwOF8yLnBuZyIsIGltKSkgeworCQlnZEltYWdlRGVzdHJveShpbSk7CisJ
CXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KCkFkZGVkOiBnZC90cnVuay9saWJnZC90ZXN0cy9n
ZGltYWdlc2NhdHRlcmV4L2J1ZzAwMjA4XzIucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKEJpbmFyeSBmaWxlcyBkaWZmZXIp
CgoKUHJvcGVydHkgY2hhbmdlcyBvbjogZ2QvdHJ1bmsvbGliZ2QvdGVzdHMvZ2RpbWFnZXNjYXR0ZXJl
eC9idWcwMDIwOF8yLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiAgICsgaW1hZ2UvcG5n
Cg==
--c688bf1250cad8e8762290069365f6abb18988ed--