From: MIYAMUKO Katsuyuki Date: 2006-07-27T22:32:42+09:00 Subject: [ruby-dev:29158] backport ------=_Part_13266_16113964.1154007157434 Content-Type: text/plain; charset=ISO-2022-JP; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline みやむこです。 リリース間近の報告になって申し訳ないのですが、HP-UX (IA64) 上で 1.8 を コンパイルするとエラーになります。 % uname -srm HP-UX B.11.23 ia64 % gcc -v Using built-in specs. Target: ia64-hp-hpux11.23 Configured with: ../gcc/configure Thread model: posix gcc version 4.1.1 % ../configure CC=/usr/local/bin/gcc CFLAGS="-mlp64 -D_XOPEN_SOURCE_EXTENDED -g0" % gmake : /usr/local/bin/gcc -mlp64 -D_XOPEN_SOURCE_EXTENDED -g0 -DRUBY_EXPORT -DYYMAXDEPTH=300 -I. -I.. -c ../eval.c ../eval.c: In function 'rb_thread_save_context': ../eval.c:10207: error: 'mcontext_t' has no member named 'sc_ar_bsp' gmake: *** [eval.o] Error 1 % というわけで [ruby-dev:28127] のパッチを 1.8 に backport して欲しいのですが いかがでしょうか。 ruby_1_8 に適用できるように修正したパッチを添付します。 以下の環境で make test まで通ることを確認しました。 OS arch compiler ---------- ------- ------------------------ RHEL4 IA64 GCC 3.4.4 HP-UX11.23 IA64 GCC 4.1.1 HP-UX11.23 IA64 HP C Compiler A.05.60 HP-UX11.11 PA-RISC HP C Compiler B.11.11.02 * RHEL4 は make check まで ok です。 * 11.11 はすこし手を入れれば make check が通りそうです。 * 11.23 は LP64 でコンパイルした場合 make test が ok です。 ILP32 だと core を吐きます。 -- みやむこ・かつゆき ------=_Part_13266_16113964.1154007157434 Content-Type: application/octet-stream; name=hpux.ia64.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_eq55vk8p Content-Disposition: attachment; filename="hpux.ia64.patch" SW5kZXg6IGNvbW1vbi5tawo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvc3JjL3J1YnkvY29tbW9uLm1r LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEzLjIuNgpkaWZmIC11IC1yMS4xMy4yLjYgY29tbW9u Lm1rCi0tLSBjb21tb24ubWsJMTMgRmViIDIwMDYgMTQ6MjI6NTYgLTAwMDAJMS4xMy4yLjYKKysr IGNvbW1vbi5tawkyNyBKdWwgMjAwNiAwODozODo1OCAtMDAwMApAQCAtMTg4LDYgKzE4OCw3IEBA CiB4NjguJChPQkpFWFQpOiB7JChWUEFUSCl9eDY4LmMKIG9zMi4kKE9CSkVYVCk6IHskKFZQQVRI KX1vczIuYwogZGxfb3MyLiQoT0JKRVhUKTogeyQoVlBBVEgpfWRsX29zMi5jCitpYTY0LiQoT0JK RVhUKTogeyQoVlBBVEgpfWlhNjQucwogCiAjIHdoZW4gSSB1c2UgLUkuLCB0aGVyZSBpcyBjb25m bGljdGlvbiBhdCAiT3BlbkZpbGUiIAogIyBzbywgc2V0IC4gaW50byBlbnZpcm9ubWVudCB2YXJp YmxlICJpbmNsdWRlIgpJbmRleDogY29uZmlndXJlLmluCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9z cmMvcnVieS9jb25maWd1cmUuaW4sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjEyLjIuNTgKZGlm ZiAtdSAtcjEuMjEyLjIuNTggY29uZmlndXJlLmluCi0tLSBjb25maWd1cmUuaW4JMjYgSnVsIDIw MDYgMTM6Mjg6MTcgLTAwMDAJMS4yMTIuMi41OAorKysgY29uZmlndXJlLmluCTI3IEp1bCAyMDA2 IDA4OjM4OjU4IC0wMDAwCkBAIC01OTUsNiArNTk1LDIwIEBACiBBQ19DX0lOTElORQogQUNfQ19W T0xBVElMRQogCitpZiB0ZXN0IHgiJHRhcmdldF9jcHUiID0geGlhNjQ7IHRoZW4KKyAgICBBQ19M SUJPQkooW2lhNjRdKQorICAgICMgdXNlIElBNjQgaW5zdGVhZCBvZiBfX2lhNjRfXyBiZWNhdXNl CisgICAgIyBIUCBhQysrIGRvZXNuJ3QgZGVmaW5lIGl0LiAgKEhQIGFDKysgZGVmaW5lIF9faWE2 NC4pCisgICAgQUNfREVGSU5FKElBNjQpCisgICAgQUNfVFJZX0xJTksoCisgICAgICBbZXh0ZXJu IHVuc2lnbmVkIGxvbmcgX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFja2luZ19zdG9yZV9iYXNlO10s CisgICAgICBbdW5zaWduZWQgbG9uZyBwID0gX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFja2luZ19z dG9yZV9iYXNlO10sCisgICAgICBbcmJfY3ZfX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFja2luZ19z dG9yZV9iYXNlPXllczsgYnJlYWtdKQorICAgIGlmIHRlc3QgJHJiX2N2X19fbGliY19pYTY0X3Jl Z2lzdGVyX2JhY2tpbmdfc3RvcmVfYmFzZSA9IHllczsgdGhlbgorICAgICAgQUNfREVGSU5FKEhB VkVfX19MSUJDX0lBNjRfUkVHSVNURVJfQkFDS0lOR19TVE9SRV9CQVNFKQorICAgIGZpCitmaQor CiBBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHJpZ2h0IHNoaWZ0IHByZXNlcnZlIHNpZ24gYml0LCBy Yl9jdl9yc2hpZnRfc2lnbiwKICAgICBbQUNfVFJZX1JVTihbCiBpbnQKSW5kZXg6IGRlZmluZXMu aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09ClJDUyBmaWxlOiAvc3JjL3J1YnkvZGVmaW5lcy5oLHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjM3LjIuOApkaWZmIC11IC1yMS4zNy4yLjggZGVmaW5lcy5oCi0tLSBkZWZpbmVz LmgJMjUgT2N0IDIwMDUgMTY6NTk6NTcgLTAwMDAJMS4zNy4yLjgKKysrIGRlZmluZXMuaAkyNyBK dWwgMjAwNiAwODozODo1OCAtMDAwMApAQCAtMjIxLDEzICsyMjEsMTAgQEAKIAk7CiB9CiAjICBk ZWZpbmUgRkxVU0hfUkVHSVNURVJfV0lORE9XUyBmbHVzaF9yZWdpc3Rlcl93aW5kb3dzKCkKLSNl bGlmIGRlZmluZWQoX19pYTY0X18pCi12b2lkIGZsdXNoX3JlZ2lzdGVyX3dpbmRvd3Modm9pZCkK LSMgIGlmIGRlZmluZWQoX19HTlVDX18pICYmICgoIF9fR05VQ19fID09IDMgJiYgX19HTlVDX01J Tk9SX18gPiAwICkgfHwgX19HTlVDX18gPiAzKQotX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkK LSMgIGVuZGlmCi0gIDsKLSMgIGRlZmluZSBGTFVTSF9SRUdJU1RFUl9XSU5ET1dTIGZsdXNoX3Jl Z2lzdGVyX3dpbmRvd3MoKQorI2VsaWYgZGVmaW5lZChJQTY0KQordm9pZCAqcmJfaWE2NF9ic3Ao dm9pZCk7Cit2b2lkIHJiX2lhNjRfZmx1c2hycyh2b2lkKTsKKyMgIGRlZmluZSBGTFVTSF9SRUdJ U1RFUl9XSU5ET1dTIHJiX2lhNjRfZmx1c2hycygpCiAjZWxzZQogIyAgZGVmaW5lIEZMVVNIX1JF R0lTVEVSX1dJTkRPV1MgKCh2b2lkKTApCiAjZW5kaWYKSW5kZXg6IGV2YWwuYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvc3JjL3J1YnkvZXZhbC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjYxNi4y LjE4NQpkaWZmIC11IC1yMS42MTYuMi4xODUgZXZhbC5jCi0tLSBldmFsLmMJMjQgSnVsIDIwMDYg MTM6MDQ6MzkgLTAwMDAJMS42MTYuMi4xODUKKysrIGV2YWwuYwkyNyBKdWwgMjAwNiAwODozODo1 OCAtMDAwMApAQCAtOTY3NCwxOSArOTY3NCw2IEBACiAgICAgcmJfZGVmaW5lX2dsb2JhbF9mdW5j dGlvbigiYmluZGluZyIsIHJiX2ZfYmluZGluZywgMCk7CiB9CiAKLSNpZmRlZiBfX2lhNjRfXwot I2lmIGRlZmluZWQoX19GcmVlQlNEX18pCi0vKgotICogRnJlZUJTRC9pYTY0IGN1cnJlbnRseSBk b2VzIG5vdCBoYXZlIGEgd2F5IGZvciBhIHByb2Nlc3MgdG8gZ2V0IHRoZQotICogYmFzZSBhZGRy ZXNzIGZvciB0aGUgUlNFIGJhY2tpbmcgc3RvcmUsIHNvIGhhcmRjb2RlIGl0LgotICovCi0jZGVm aW5lIF9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdfc3RvcmVfYmFzZSAoNFVMTDw8NjEpCi0j ZWxzZQotI3ByYWdtYSB3ZWFrIF9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdfc3RvcmVfYmFz ZQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFja2luZ19zdG9y ZV9iYXNlOwotI2VuZGlmCi0jZW5kaWYKLQogLyogV2luZG93cyBTRUggcmVmZXJzIGRhdGEgb24g dGhlIHN0YWNrLiAqLwogI3VuZGVmIFNBVkVfV0lOMzJfRVhDRVBUSU9OX0xJU1QKICNpZiBkZWZp bmVkIF9XSU4zMiB8fCBkZWZpbmVkIF9fQ1lHV0lOX18KQEAgLTk3OTAsNyArOTc3Nyw4IEBACiAg ICAgbG9uZyAgIHN0a19tYXg7CiAgICAgVkFMVUUgKnN0a19wdHI7CiAgICAgVkFMVUUgKnN0a19w b3M7Ci0jaWZkZWYgX19pYTY0X18KKyNpZmRlZiBJQTY0CisgICAgVkFMVUUgKmJzdHJfcG9zOwog ICAgIFZBTFVFICpic3RyX3B0cjsKICAgICBsb25nICAgYnN0cl9sZW47CiAjZW5kaWYKQEAgLTEw MDQ1LDcgKzEwMDMzLDcgQEAKICNpZiBkZWZpbmVkKFRISU5LX0MpIHx8IGRlZmluZWQoX19odW1h bjY4a19fKQogCXJiX2djX21hcmtfbG9jYXRpb25zKHRoLT5zdGtfcHRyKzIsIHRoLT5zdGtfcHRy K3RoLT5zdGtfbGVuKzIpOwogI2VuZGlmCi0jaWZkZWYgX19pYTY0X18KKyNpZmRlZiBJQTY0CiAJ aWYgKHRoLT5ic3RyX3B0cikgewogCSAgICByYl9nY19tYXJrX2xvY2F0aW9ucyh0aC0+YnN0cl9w dHIsIHRoLT5ic3RyX3B0cit0aC0+YnN0cl9sZW4pOwogCX0KQEAgLTEwMTMzLDcgKzEwMTIxLDcg QEAKIHsKICAgICBpZiAodGgtPnN0a19wdHIpIGZyZWUodGgtPnN0a19wdHIpOwogICAgIHRoLT5z dGtfcHRyID0gMDsKLSNpZmRlZiBfX2lhNjRfXworI2lmZGVmIElBNjQKICAgICBpZiAodGgtPmJz dHJfcHRyKSBmcmVlKHRoLT5ic3RyX3B0cik7CiAgICAgdGgtPmJzdHJfcHRyID0gMDsKICNlbmRp ZgpAQCAtMTAxNzMsNiArMTAxNjEsOSBAQAogI2RlZmluZSBSRVNUT1JFX0VYSVQJCTcKIAogZXh0 ZXJuIFZBTFVFICpyYl9nY19zdGFja19zdGFydDsKKyNpZmRlZiBJQTY0CitleHRlcm4gVkFMVUUg KnJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0YXJ0OworI2VuZGlmCiAKIHN0YXRpYyB2b2lkCiByYl90 aHJlYWRfc2F2ZV9jb250ZXh0KHRoKQpAQCAtMTAxOTQsMjIgKzEwMTg1LDExIEBACiAgICAgdGgt PnN0a19sZW4gPSBsZW47CiAgICAgRkxVU0hfUkVHSVNURVJfV0lORE9XUzsKICAgICBNRU1DUFko dGgtPnN0a19wdHIsIHRoLT5zdGtfcG9zLCBWQUxVRSwgdGgtPnN0a19sZW4pOwotI2lmZGVmIF9f aWE2NF9fCi0gICAgewotCXVjb250ZXh0X3QgY3R4OwotCVZBTFVFICp0b3AsICpib3Q7Ci0KLQln ZXRjb250ZXh0KCZjdHgpOwotCWJvdCA9IChWQUxVRSopX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFj a2luZ19zdG9yZV9iYXNlOwotI2lmIGRlZmluZWQoX19GcmVlQlNEX18pCi0JdG9wID0gKFZBTFVF KiljdHgudWNfbWNvbnRleHQubWNfc3BlY2lhbC5ic3BzdG9yZTsKLSNlbHNlCi0JdG9wID0gKFZB TFVFKiljdHgudWNfbWNvbnRleHQuc2NfYXJfYnNwOwotI2VuZGlmCi0JdGgtPmJzdHJfbGVuID0g dG9wIC0gYm90OwotCVJFQUxMT0NfTih0aC0+YnN0cl9wdHIsIFZBTFVFLCB0aC0+YnN0cl9sZW4p OwotCU1FTUNQWSh0aC0+YnN0cl9wdHIsIChWQUxVRSopX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFj a2luZ19zdG9yZV9iYXNlLCBWQUxVRSwgdGgtPmJzdHJfbGVuKTsKLSAgICB9CisjaWZkZWYgSUE2 NAorICAgIHRoLT5ic3RyX3BvcyA9IHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0YXJ0OworICAgIHRo LT5ic3RyX2xlbiA9IChWQUxVRSopcmJfaWE2NF9ic3AoKSAtIHRoLT5ic3RyX3BvczsKKyAgICBS RUFMTE9DX04odGgtPmJzdHJfcHRyLCBWQUxVRSwgdGgtPmJzdHJfbGVuKTsKKyAgICBNRU1DUFko dGgtPmJzdHJfcHRyLCB0aC0+YnN0cl9wb3MsIFZBTFVFLCB0aC0+YnN0cl9sZW4pOwogI2VuZGlm CiAjaWZkZWYgU0FWRV9XSU4zMl9FWENFUFRJT05fTElTVAogICAgIHRoLT53aW4zMl9leGNlcHRp b25fbGlzdCA9IHdpbjMyX2dldF9leGNlcHRpb25fbGlzdCgpOwpAQCAtMTAyODYsNDggKzEwMjY2 LDE3IEBACiAgICAgIHJiX3RocmVhZF9zd2l0Y2goKEZMVVNIX1JFR0lTVEVSX1dJTkRPV1MsIHJ1 Ynlfc2V0am1wKCh0aCktPmNvbnRleHQpKSkpCiAKIE5PUkVUVVJOKHN0YXRpYyB2b2lkIHJiX3Ro cmVhZF9yZXN0b3JlX2NvbnRleHQgXygocmJfdGhyZWFkX3QsaW50KSkpOworTk9SRVRVUk4oTk9J TkxJTkUoc3RhdGljIHZvaWQgcmJfdGhyZWFkX3Jlc3RvcmVfY29udGV4dF8wKHJiX3RocmVhZF90 LGludCx2b2lkKikpKTsKK05PUkVUVVJOKE5PSU5MSU5FKHN0YXRpYyB2b2lkIHN0YWNrX2V4dGVu ZChyYl90aHJlYWRfdCwgaW50LCBWQUxVRSAqKSkpOwogCi0jIGlmIF9NU0NfVkVSID49IDEzMDAK LV9fZGVjbHNwZWMobm9pbmxpbmUpIHN0YXRpYyB2b2lkIHN0YWNrX2V4dGVuZChyYl90aHJlYWRf dCwgaW50KTsKLSMgZW5kaWYKIHN0YXRpYyB2b2lkCi1zdGFja19leHRlbmQodGgsIGV4aXQpCi0g ICAgcmJfdGhyZWFkX3QgdGg7Ci0gICAgaW50IGV4aXQ7CityYl90aHJlYWRfcmVzdG9yZV9jb250 ZXh0XzAocmJfdGhyZWFkX3QgdGgsIGludCBleGl0LCB2b2lkICp2cCkKIHsKLSAgICBWQUxVRSBz cGFjZVsxMDI0XTsKLQotICAgIG1lbXNldChzcGFjZSwgMCwgMSk7CS8qIHByZXZlbnQgYXJyYXkg ZnJvbSBvcHRpbWl6YXRpb24gKi8KLSAgICByYl90aHJlYWRfcmVzdG9yZV9jb250ZXh0KHRoLCBl eGl0KTsKLX0KLQotc3RhdGljIHZvaWQKLXJiX3RocmVhZF9yZXN0b3JlX2NvbnRleHQodGgsIGV4 aXQpCi0gICAgcmJfdGhyZWFkX3QgdGg7Ci0gICAgaW50IGV4aXQ7Ci17Ci0gICAgVkFMVUUgdjsK KyAgICAvKiB2cCBwcmV2ZW50cyB0YWlsIGNhbGwgKi8KICAgICBzdGF0aWMgcmJfdGhyZWFkX3Qg dG1wOwogICAgIHN0YXRpYyBpbnQgZXg7CiAgICAgc3RhdGljIFZBTFVFIHR2YWw7CiAKLSAgICBp ZiAoIXRoLT5zdGtfcHRyKSByYl9idWcoInVuc2F2ZWQgY29udGV4dCIpOwotCi0jaWYgU1RBQ0tf R1JPV19ESVJFQ1RJT04gPCAwCi0gICAgaWYgKCZ2ID4gdGgtPnN0a19wb3MpIHN0YWNrX2V4dGVu ZCh0aCwgZXhpdCk7Ci0jZWxpZiBTVEFDS19HUk9XX0RJUkVDVElPTiA+IDAKLSAgICBpZiAoJnYg PCB0aC0+c3RrX3BvcyArIHRoLT5zdGtfbGVuKSBzdGFja19leHRlbmQodGgsIGV4aXQpOwotI2Vs c2UKLSAgICBpZiAoJnYgPCByYl9nY19zdGFja19zdGFydCkgewotCS8qIFN0YWNrIGdyb3dzIGRv d253YXJkICovCi0JaWYgKCZ2ID4gdGgtPnN0a19wb3MpIHN0YWNrX2V4dGVuZCh0aCwgZXhpdCk7 Ci0gICAgfQotICAgIGVsc2UgewotCS8qIFN0YWNrIGdyb3dzIHVwd2FyZCAqLwotCWlmICgmdiA8 IHRoLT5zdGtfcG9zICsgdGgtPnN0a19sZW4pIHN0YWNrX2V4dGVuZCh0aCwgZXhpdCk7Ci0gICAg fQotI2VuZGlmCi0KICAgICByYl90cmFwX2ltbWVkaWF0ZSA9IDA7CS8qIGluaGliaXQgaW50ZXJy dXB0cyBmcm9tIGhlcmUgKi8KICAgICBydWJ5X2ZyYW1lID0gdGgtPmZyYW1lOwogICAgIHJ1Ynlf c2NvcGUgPSB0aC0+c2NvcGU7CkBAIC0xMDM1Myw4ICsxMDMwMiw4IEBACiAgICAgZXggPSBleGl0 OwogICAgIEZMVVNIX1JFR0lTVEVSX1dJTkRPV1M7CiAgICAgTUVNQ1BZKHRtcC0+c3RrX3Bvcywg dG1wLT5zdGtfcHRyLCBWQUxVRSwgdG1wLT5zdGtfbGVuKTsKLSNpZmRlZiBfX2lhNjRfXwotICAg IE1FTUNQWSgoVkFMVUUqKV9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdfc3RvcmVfYmFzZSwg dG1wLT5ic3RyX3B0ciwgVkFMVUUsIHRtcC0+YnN0cl9sZW4pOworI2lmZGVmIElBNjQKKyAgICBN RU1DUFkodG1wLT5ic3RyX3BvcywgdG1wLT5ic3RyX3B0ciwgVkFMVUUsIHRtcC0+YnN0cl9sZW4p OwogI2VuZGlmCiAKICAgICB0dmFsID0gcmJfbGFzdGxpbmVfZ2V0KCk7CkBAIC0xMDM2Nyw2ICsx MDMxNiw3MyBAQAogICAgIHJ1YnlfbG9uZ2ptcCh0bXAtPmNvbnRleHQsIGV4KTsKIH0KIAorI2lm ZGVmIElBNjQKKyNkZWZpbmUgQyhhKSByc2VfIyNhIyMwLCByc2VfIyNhIyMxLCByc2VfIyNhIyMy LCByc2VfIyNhIyMzLCByc2VfIyNhIyM0CisjZGVmaW5lIEUoYSkgcnNlXyMjYSMjMD0gcnNlXyMj YSMjMT0gcnNlXyMjYSMjMj0gcnNlXyMjYSMjMz0gcnNlXyMjYSMjNAorc3RhdGljIHZvbGF0aWxl IGludCBDKGEpLCBDKGIpLCBDKGMpLCBDKGQpLCBDKGUpOworc3RhdGljIHZvbGF0aWxlIGludCBD KGYpLCBDKGcpLCBDKGgpLCBDKGkpLCBDKGopOworc3RhdGljIHZvbGF0aWxlIGludCBDKGspLCBD KGwpLCBDKG0pLCBDKG4pLCBDKG8pOworc3RhdGljIHZvbGF0aWxlIGludCBDKHApLCBDKHEpLCBD KHIpLCBDKHMpLCBDKHQpOworaW50IHJiX2R1bW15X2ZhbHNlID0gMDsKK05PUkVUVVJOKE5PSU5M SU5FKHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3N0YWNrX2V4dGVuZChyYl90aHJlYWRfdCwgaW50LCB2 b2lkICosIFZBTFVFICopKSk7CitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc3RhY2tfZXh0ZW5kKHJi X3RocmVhZF90IHRoLCBpbnQgZXhpdCwgdm9pZCAqdnAsIFZBTFVFICpjdXJyX2JzcCkKK3sKKyAg ICBpZiAocmJfZHVtbXlfZmFsc2UpIHsKKyAgICAgICAgLyogdXNlIHJlZ2lzdGVycyBhcyBtdWNo IGFzIHBvc3NpYmxlICovCisgICAgICAgIEUoYSkgPSBFKGIpID0gRShjKSA9IEUoZCkgPSBFKGUp ID0KKyAgICAgICAgRShmKSA9IEUoZykgPSBFKGgpID0gRShpKSA9IEUoaikgPQorICAgICAgICBF KGspID0gRShsKSA9IEUobSkgPSBFKG4pID0gRShvKSA9CisgICAgICAgIEUocCkgPSBFKHEpID0g RShyKSA9IEUocykgPSBFKHQpID0gMDsKKyAgICAgICAgRShhKSA9IEUoYikgPSBFKGMpID0gRShk KSA9IEUoZSkgPQorICAgICAgICBFKGYpID0gRShnKSA9IEUoaCkgPSBFKGkpID0gRShqKSA9Cisg ICAgICAgIEUoaykgPSBFKGwpID0gRShtKSA9IEUobikgPSBFKG8pID0KKyAgICAgICAgRShwKSA9 IEUocSkgPSBFKHIpID0gRShzKSA9IEUodCkgPSAwOworICAgIH0KKyAgICBpZiAoY3Vycl9ic3Ag PCB0aC0+YnN0cl9wb3MrdGgtPmJzdHJfbGVuKSB7CisgICAgICAgIHJlZ2lzdGVyX3N0YWNrX2V4 dGVuZCh0aCwgZXhpdCwgJmV4aXQsIChWQUxVRSopcmJfaWE2NF9ic3AoKSk7CisgICAgfQorICAg IHJiX3RocmVhZF9yZXN0b3JlX2NvbnRleHRfMCh0aCwgZXhpdCwgJmV4aXQpOworfQorI3VuZGVm IEMKKyN1bmRlZiBFCisjZW5kaWYKKworc3RhdGljIHZvaWQKK3N0YWNrX2V4dGVuZChyYl90aHJl YWRfdCB0aCwgaW50IGV4aXQsIFZBTFVFICphZGRyX2luX3ByZXZfZnJhbWUpCit7CisjZGVmaW5l IFNUQUNLX1BBRF9TSVpFIDEwMjQKKyAgICBWQUxVRSBzcGFjZVtTVEFDS19QQURfU0laRV07CisK KyNpZiBTVEFDS19HUk9XX0RJUkVDVElPTiA8IDAKKyAgICBpZiAoYWRkcl9pbl9wcmV2X2ZyYW1l ID4gdGgtPnN0a19wb3MpIHN0YWNrX2V4dGVuZCh0aCwgZXhpdCwgJnNwYWNlWzBdKTsKKyNlbGlm IFNUQUNLX0dST1dfRElSRUNUSU9OID4gMAorICAgIGlmIChhZGRyX2luX3ByZXZfZnJhbWUgPCB0 aC0+c3RrX3BvcyArIHRoLT5zdGtfbGVuKSBzdGFja19leHRlbmQodGgsIGV4aXQsICZzcGFjZVtT VEFDS19QQURfU0laRS0xXSk7CisjZWxzZQorICAgIGlmIChhZGRyX2luX3ByZXZfZnJhbWUgPCBy Yl9nY19zdGFja19zdGFydCkgeworCS8qIFN0YWNrIGdyb3dzIGRvd253YXJkICovCisJaWYgKGFk ZHJfaW5fcHJldl9mcmFtZSA+IHRoLT5zdGtfcG9zKSBzdGFja19leHRlbmQodGgsIGV4aXQsICZz cGFjZVswXSk7CisgICAgfQorICAgIGVsc2UgeworCS8qIFN0YWNrIGdyb3dzIHVwd2FyZCAqLwor CWlmIChhZGRyX2luX3ByZXZfZnJhbWUgPCB0aC0+c3RrX3BvcyArIHRoLT5zdGtfbGVuKSBzdGFj a19leHRlbmQodGgsIGV4aXQsICZzcGFjZVtTVEFDS19QQURfU0laRS0xXSk7CisgICAgfQorI2Vu ZGlmCisjaWZkZWYgSUE2NAorICAgIHJlZ2lzdGVyX3N0YWNrX2V4dGVuZCh0aCwgZXhpdCwgc3Bh Y2UsIChWQUxVRSopcmJfaWE2NF9ic3AoKSk7CisjZWxzZQorICAgIHJiX3RocmVhZF9yZXN0b3Jl X2NvbnRleHRfMCh0aCwgZXhpdCwgc3BhY2UpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkCity Yl90aHJlYWRfcmVzdG9yZV9jb250ZXh0KHJiX3RocmVhZF90IHRoLCBpbnQgZXhpdCkKK3sKKyAg ICBWQUxVRSB2OworICAgIGlmICghdGgtPnN0a19wdHIpIHJiX2J1ZygidW5zYXZlZCBjb250ZXh0 Iik7CisgICAgc3RhY2tfZXh0ZW5kKHRoLCBleGl0LCAmdik7Cit9CisKIHN0YXRpYyB2b2lkCiBy Yl90aHJlYWRfcmVhZHkodGgpCiAgICAgcmJfdGhyZWFkX3QgdGg7CkBAIC0xMTU3Miw3ICsxMTU4 OCw3IEBACiAgICAgcmV0dXJuIGdyb3VwOwogfQogCi0jaWZkZWYgX19pYTY0X18KKyNpZmRlZiBJ QTY0CiAjIGRlZmluZSBJQTY0X0lOSVQoeCkgeAogI2Vsc2UKICMgZGVmaW5lIElBNjRfSU5JVCh4 KQpAQCAtMTMwNDcsMTMgKzEzMDYzLDMgQEAKICAgICBhcmd2WzFdID0gdmFsOwogICAgIHJiX2Zf dGhyb3coMiwgYXJndik7CiB9Ci0KLS8qIGZsdXNoX3JlZ2lzdGVyX3dpbmRvd3MgbXVzdCBub3Qg YmUgaW5saW5lZCBiZWNhdXNlIGZsdXNocnMgZG9lc24ndCBmbHVzaAotICogY3VycmVudCBmcmFt ZSBpbiByZWdpc3RlciBzdGFjay4gKi8KLSNpZmRlZiBfX2lhNjRfXwotdm9pZCBmbHVzaF9yZWdp c3Rlcl93aW5kb3dzKHZvaWQpCi17Ci0gICAgX19hc21fXyAoImZsdXNocnMiKTsKLX0KLSNlbmRp ZgotCkluZGV4OiBnYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9zcmMvcnVieS9nYy5jLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjE2OC4yLjQzCmRpZmYgLXUgLXIxLjE2OC4yLjQzIGdjLmMKLS0t IGdjLmMJMTQgSnVsIDIwMDYgMTc6MTI6NDcgLTAwMDAJMS4xNjguMi40MworKysgZ2MuYwkyNyBK dWwgMjAwNiAwODozODo1OCAtMDAwMApAQCAtMzAsMjAgKzMwLDYgQEAKICNpbmNsdWRlIDxzeXMv cmVzb3VyY2UuaD4KICNlbmRpZgogCi0jaWZkZWYgX19pYTY0X18KLSNpbmNsdWRlIDx1Y29udGV4 dC5oPgotI2lmIGRlZmluZWQoX19GcmVlQlNEX18pCi0vKgotICogRnJlZUJTRC9pYTY0IGN1cnJl bnRseSBkb2VzIG5vdCBoYXZlIGEgd2F5IGZvciBhIHByb2Nlc3MgdG8gZ2V0IHRoZQotICogYmFz ZSBhZGRyZXNzIGZvciB0aGUgUlNFIGJhY2tpbmcgc3RvcmUsIHNvIGhhcmRjb2RlIGl0LgotICov Ci0jZGVmaW5lIF9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdfc3RvcmVfYmFzZSAoNFVMTDw8 NjEpCi0jZWxzZQotI3ByYWdtYSB3ZWFrIF9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdfc3Rv cmVfYmFzZQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19saWJjX2lhNjRfcmVnaXN0ZXJfYmFja2lu Z19zdG9yZV9iYXNlOwotI2VuZGlmCi0jZW5kaWYKLQogI2lmIGRlZmluZWQgX1dJTjMyIHx8IGRl ZmluZWQgX19DWUdXSU5fXwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNlbmRpZgpAQCAtNDI1LDYg KzQxMSw5IEBACiAKIGV4dGVybiBzdF90YWJsZSAqcmJfY2xhc3NfdGJsOwogVkFMVUUgKnJiX2dj X3N0YWNrX3N0YXJ0ID0gMDsKKyNpZmRlZiBJQTY0CitWQUxVRSAqcmJfZ2NfcmVnaXN0ZXJfc3Rh Y2tfc3RhcnQgPSAwOworI2VuZGlmCiAKICNpZmRlZiBESkdQUAogLyogc2V0IHN0YWNrIHNpemUg KGh0dHA6Ly93d3cuZGVsb3JpZS5jb20vZGpncHAvdjJmYXEvZmFxMTVfOS5odG1sKSAqLwpAQCAt MTM4NywyMyArMTM3NiwxMCBAQAogICAgIGVsc2UKIAlyYl9nY19tYXJrX2xvY2F0aW9ucyhyYl9n Y19zdGFja19zdGFydCwgKFZBTFVFKilTVEFDS19FTkQgKyAxKTsKICNlbmRpZgotI2lmZGVmIF9f aWE2NF9fCi0gICAgLyogbWFyayBiYWNraW5nIHN0b3JlIChmbHVzaGVkIHJlZ2lzdGVyIHdpbmRv dyBvbiB0aGUgc3RhY2spICovCisjaWZkZWYgSUE2NAorICAgIC8qIG1hcmsgYmFja2luZyBzdG9y ZSAoZmx1c2hlZCByZWdpc3RlciBzdGFjaykgKi8KICAgICAvKiB0aGUgYmFzaWMgaWRlYSBmcm9t IGd1aWxlIEdDIGNvZGUgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICB7Ci0JdWNvbnRl eHRfdCBjdHg7Ci0JVkFMVUUgKnRvcCwgKmJvdDsKLQlnZXRjb250ZXh0KCZjdHgpOwotCW1hcmtf bG9jYXRpb25zX2FycmF5KChWQUxVRSopJmN0eC51Y19tY29udGV4dCwKLQkJCSAgICAgKChzaXpl X3QpKHNpemVvZihWQUxVRSktMSArIHNpemVvZiBjdHgudWNfbWNvbnRleHQpL3NpemVvZihWQUxV RSkpKTsKLQlib3QgPSAoVkFMVUUqKV9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdfc3RvcmVf YmFzZTsKLSNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKQotCXRvcCA9IChWQUxVRSopY3R4LnVjX21j b250ZXh0Lm1jX3NwZWNpYWwuYnNwc3RvcmU7Ci0jZWxzZQotCXRvcCA9IChWQUxVRSopY3R4LnVj X21jb250ZXh0LnNjX2FyX2JzcDsKLSNlbmRpZgotCXJiX2djX21hcmtfbG9jYXRpb25zKGJvdCwg dG9wKTsKLSAgICB9CisgICAgcmJfZ2NfbWFya19sb2NhdGlvbnMocmJfZ2NfcmVnaXN0ZXJfc3Rh Y2tfc3RhcnQsIChWQUxVRSopcmJfaWE2NF9ic3AoKSk7CiAjZW5kaWYKICNpZiBkZWZpbmVkKF9f aHVtYW42OGtfXykgfHwgZGVmaW5lZChfX21jNjgwMDBfXykKICAgICByYl9nY19tYXJrX2xvY2F0 aW9ucygoVkFMVUUqKSgoY2hhciopU1RBQ0tfRU5EICsgMiksCkBAIC0xNDc5LDYgKzE0NTUsMjgg QEAKIEluaXRfc3RhY2soYWRkcikKICAgICBWQUxVRSAqYWRkcjsKIHsKKyNpZmRlZiBJQTY0Cisg ICAgaWYgKHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0YXJ0ID09IDApIHsKKyMgaWYgZGVmaW5lZChf X0ZyZWVCU0RfXykKKyAgICAgICAgLyoKKyAgICAgICAgICogRnJlZUJTRC9pYTY0IGN1cnJlbnRs eSBkb2VzIG5vdCBoYXZlIGEgd2F5IGZvciBhIHByb2Nlc3MgdG8gZ2V0IHRoZQorICAgICAgICAg KiBiYXNlIGFkZHJlc3MgZm9yIHRoZSBSU0UgYmFja2luZyBzdG9yZSwgc28gaGFyZGNvZGUgaXQu CisgICAgICAgICAqLworICAgICAgICByYl9nY19yZWdpc3Rlcl9zdGFja19zdGFydCA9ICg0VUxM PDw2MSk7CisjIGVsaWYgZGVmaW5lZChIQVZFX19fTElCQ19JQTY0X1JFR0lTVEVSX0JBQ0tJTkdf U1RPUkVfQkFTRSkKKyMgIHByYWdtYSB3ZWFrIF9fbGliY19pYTY0X3JlZ2lzdGVyX2JhY2tpbmdf c3RvcmVfYmFzZQorICAgICAgICBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2xpYmNfaWE2NF9yZWdp c3Rlcl9iYWNraW5nX3N0b3JlX2Jhc2U7CisgICAgICAgIHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0 YXJ0ID0gKFZBTFVFKilfX2xpYmNfaWE2NF9yZWdpc3Rlcl9iYWNraW5nX3N0b3JlX2Jhc2U7Cisj IGVuZGlmCisgICAgfQorICAgIHsKKyAgICAgICAgVkFMVUUgKmJzcCA9IChWQUxVRSopcmJfaWE2 NF9ic3AoKTsKKyAgICAgICAgaWYgKHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0YXJ0ID09IDAgfHwK KyAgICAgICAgICAgIGJzcCA8IHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0YXJ0KSB7CisgICAgICAg ICAgICByYl9nY19yZWdpc3Rlcl9zdGFja19zdGFydCA9IGJzcDsKKyAgICAgICAgfQorICAgIH0K KyNlbmRpZgogI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pCiAgICAg TUVNT1JZX0JBU0lDX0lORk9STUFUSU9OIG07CiAgICAgbWVtc2V0KCZtLCAwLCBzaXplb2YobSkp OwpAQCAtMTQ4Nyw4ICsxNDg1LDEwIEBACiAJU1RBQ0tfVVBQRVIoKFZBTFVFICopJm0sIChWQUxV RSAqKW0uQmFzZUFkZHJlc3MsCiAJCSAgICAoVkFMVUUgKikoKGNoYXIgKiltLkJhc2VBZGRyZXNz ICsgbS5SZWdpb25TaXplKSAtIDEpOwogI2VsaWYgZGVmaW5lZChTVEFDS19FTkRfQUREUkVTUykK LSAgICBleHRlcm4gdm9pZCAqU1RBQ0tfRU5EX0FERFJFU1M7Ci0gICAgcmJfZ2Nfc3RhY2tfc3Rh cnQgPSBTVEFDS19FTkRfQUREUkVTUzsKKyAgICB7CisgICAgICAgIGV4dGVybiB2b2lkICpTVEFD S19FTkRfQUREUkVTUzsKKyAgICAgICAgcmJfZ2Nfc3RhY2tfc3RhcnQgPSBTVEFDS19FTkRfQURE UkVTUzsKKyAgICB9CiAjZWxzZQogICAgIGlmICghYWRkcikgYWRkciA9IChWQUxVRSAqKSZhZGRy OwogICAgIFNUQUNLX1VQUEVSKCZhZGRyLCBhZGRyLCArK2FkZHIpOwpAQCAtMTUxNSw2ICsxNTE1 LDM3IEBACiAjZW5kaWYKIH0KIAordm9pZCBydWJ5X2luaXRfc3RhY2soVkFMVUUgKmFkZHIKKyNp ZmRlZiBJQTY0CisgICAgLCB2b2lkICpic3AKKyNlbmRpZgorICAgICkKK3sKKyAgICBpZiAoIXJi X2djX3N0YWNrX3N0YXJ0IHx8CisgICAgICAgIFNUQUNLX1VQUEVSKCZhZGRyLAorICAgICAgICAg ICAgICAgICAgICByYl9nY19zdGFja19zdGFydCA+IGFkZHIsCisgICAgICAgICAgICAgICAgICAg IHJiX2djX3N0YWNrX3N0YXJ0IDwgYWRkcikpIHsKKyAgICAgICAgcmJfZ2Nfc3RhY2tfc3RhcnQg PSBhZGRyOworICAgIH0KKyNpZmRlZiBJQTY0CisgICAgaWYgKCFyYl9nY19yZWdpc3Rlcl9zdGFj a19zdGFydCB8fAorICAgICAgICAoVkFMVUUqKWJzcCA8IHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0 YXJ0KSB7CisgICAgICAgIHJiX2djX3JlZ2lzdGVyX3N0YWNrX3N0YXJ0ID0gKFZBTFVFKilic3A7 CisgICAgfQorI2VuZGlmCisjaWZkZWYgSEFWRV9HRVRSTElNSVQKKyAgICB7CisJc3RydWN0IHJs aW1pdCBybGltOworCisJaWYgKGdldHJsaW1pdChSTElNSVRfU1RBQ0ssICZybGltKSA9PSAwKSB7 CisJICAgIHVuc2lnbmVkIGludCBzcGFjZSA9IHJsaW0ucmxpbV9jdXIvNTsKKworCSAgICBpZiAo c3BhY2UgPiAxMDI0KjEwMjQpIHNwYWNlID0gMTAyNCoxMDI0OworCSAgICBTVEFDS19MRVZFTF9N QVggPSAocmxpbS5ybGltX2N1ciAtIHNwYWNlKSAvIHNpemVvZihWQUxVRSk7CisJfQorICAgIH0K KyNlbmRpZgorfQogCiAvKgogICogRG9jdW1lbnQtY2xhc3M6IE9iamVjdFNwYWNlCkluZGV4OiBt YWluLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NyYy9ydWJ5L21haW4uYyx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xMi4yLjEKZGlmZiAtdSAtcjEuMTIuMi4xIG1haW4uYwotLS0gbWFpbi5jCTMx IE9jdCAyMDA0IDE2OjA2OjU3IC0wMDAwCTEuMTIuMi4xCisrKyBtYWluLmMJMjcgSnVsIDIwMDYg MDg6Mzg6NTggLTAwMDAKQEAgLTQxLDggKzQxLDExIEBACiAgICAgYXJnYyA9IGNjb21tYW5kKCZh cmd2KTsKICNlbmRpZgogCi0gICAgcnVieV9pbml0KCk7Ci0gICAgcnVieV9vcHRpb25zKGFyZ2Ms IGFyZ3YpOwotICAgIHJ1YnlfcnVuKCk7CisgICAgeworICAgICAgICBSVUJZX0lOSVRfU1RBQ0sK KyAgICAgICAgcnVieV9pbml0KCk7CisgICAgICAgIHJ1Ynlfb3B0aW9ucyhhcmdjLCBhcmd2KTsK KyAgICAgICAgcnVieV9ydW4oKTsKKyAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkluZGV4OiBudW1l cmljLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NyYy9ydWJ5L251bWVyaWMuYyx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4xMDEuMi4yMwpkaWZmIC11IC1yMS4xMDEuMi4yMyBudW1lcmljLmMKLS0t IG51bWVyaWMuYwkxIE1heSAyMDA2IDAzOjQ2OjQ2IC0wMDAwCTEuMTAxLjIuMjMKKysrIG51bWVy aWMuYwkyNyBKdWwgMjAwNiAwODozOTowNCAtMDAwMApAQCAtMTk3Niw2ICsxOTc2LDEwIEBACiAg ICAgVkFMVUUgeCwgeTsKIHsKICAgICBpZiAoRklYTlVNX1AoeSkpIHsKKyNpZmRlZiBfX0hQX2Nj CisvKiBhdm9pZHMgYW4gb3B0aW1pemF0aW9uIGJ1ZyBvZiBIUCBhQysrL0FOU0kgQyBCMzkxMEIg QS4wNi4wNSBbSnVsIDI1IDIwMDVdICovCisgICAgICAgIHZvbGF0aWxlCisjZW5kaWYKIAlsb25n IGEsIGIsIGM7CiAJVkFMVUUgcjsKIApJbmRleDogcnVieS5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9zcmMvcnVieS9ydWJ5LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOTcuMi4xOQpkaWZmIC11 IC1yMS45Ny4yLjE5IHJ1YnkuaAotLS0gcnVieS5oCTIwIEp1bCAyMDA2IDA3OjA0OjE3IC0wMDAw CTEuOTcuMi4xOQorKysgcnVieS5oCTI3IEp1bCAyMDA2IDA4OjM5OjA0IC0wMDAwCkBAIC02Miw2 ICs2Miw5IEBACiAjaWZuZGVmIE5PUkVUVVJOCiAjIGRlZmluZSBOT1JFVFVSTih4KSB4CiAjZW5k aWYKKyNpZm5kZWYgTk9JTkxJTkUKKyMgZGVmaW5lIE5PSU5MSU5FKHgpIHgKKyNlbmRpZgogCiAj aWYgZGVmaW5lZChIQVZFX0FMTE9DQV9IKQogI2luY2x1ZGUgPGFsbG9jYS5oPgpAQCAtNTY1LDYg KzU2OCwxNyBAQAogCiBWQUxVRSByYl9yZXF1aXJlIF8oKGNvbnN0IGNoYXIqKSk7CiAKKyNpZmRl ZiBJQTY0Cit2b2lkIHJ1YnlfaW5pdF9zdGFjayhWQUxVRSosIHZvaWQqKTsKKyNkZWZpbmUgUlVC WV9JTklUX1NUQUNLIFwKKyAgICBWQUxVRSB2YXJpYWJsZV9pbl90aGlzX3N0YWNrX2ZyYW1lOyBc CisgICAgcnVieV9pbml0X3N0YWNrKCZ2YXJpYWJsZV9pbl90aGlzX3N0YWNrX2ZyYW1lLCByYl9p YTY0X2JzcCgpKTsKKyNlbHNlCit2b2lkIHJ1YnlfaW5pdF9zdGFjayhWQUxVRSopOworI2RlZmlu ZSBSVUJZX0lOSVRfU1RBQ0sgXAorICAgIFZBTFVFIHZhcmlhYmxlX2luX3RoaXNfc3RhY2tfZnJh bWU7IFwKKyAgICBydWJ5X2luaXRfc3RhY2soJnZhcmlhYmxlX2luX3RoaXNfc3RhY2tfZnJhbWUp OworI2VuZGlmCiB2b2lkIHJ1YnlfaW5pdCBfKCh2b2lkKSk7CiB2b2lkIHJ1Ynlfb3B0aW9ucyBf KChpbnQsIGNoYXIqKikpOwogTk9SRVRVUk4odm9pZCBydWJ5X3J1biBfKCh2b2lkKSkpOwo= ------=_Part_13266_16113964.1154007157434 Content-Type: text/plain; name=ia64.s; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_eq55vzp4 Content-Disposition: attachment; filename="ia64.s" Ly8gcmJfaWE2NF9mbHVzaHJzIGFuZCByYl9pYTY0X2JzcCBpcyB3cml0dGVuIGluIElBNjQgYXNz ZW1ibHkgbGFuZ3VhZ2UKLy8gYmVjYXVzZSBJbnRlbCBDb21waWxlciBmb3IgSUE2NCBkb2Vzbid0 IHN1cHBvcnQgaW5saW5lIGFzc2VtYmx5LgovLwovLyBUaGlzIGZpbGUgaXMgYmFzZWQgb24gZm9s bG93aW5nIEMgcHJvZ3JhbSBjb21waWxlZCBieSBnY2MuCi8vCi8vICAgdm9pZCByYl9pYTY0X2Zs dXNocnModm9pZCkgeyBfX2J1aWx0aW5faWE2NF9mbHVzaHJzKCk7IH0KLy8gICB2b2lkICpyYl9p YTY0X2JzcCh2b2lkKSB7IHJldHVybiBfX2J1aWx0aW5faWE2NF9ic3AoKTsgfQovLyAKCS5maWxl CSJpYTY0LmMiCgkudGV4dAoJLmFsaWduIDE2CgkuZ2xvYmFsIHJiX2lhNjRfZmx1c2hycyMKCS5w cm9jIHJiX2lhNjRfZmx1c2hycyMKcmJfaWE2NF9mbHVzaHJzOgoJLnByb2xvZ3VlCgkuYm9keQoJ Zmx1c2hycwoJOzsKCW5vcC5pIDAKCWJyLnJldC5zcHRrLm1hbnkgYjAKCS5lbmRwIHJiX2lhNjRf Zmx1c2hycyMKCS5hbGlnbiAxNgoJLmdsb2JhbCByYl9pYTY0X2JzcCMKCS5wcm9jIHJiX2lhNjRf YnNwIwpyYl9pYTY0X2JzcDoKCS5wcm9sb2d1ZQoJLmJvZHkKCW5vcC5tIDAKCTs7Cgltb3Ygcjgg PSBhci5ic3AKCWJyLnJldC5zcHRrLm1hbnkgYjAKCS5lbmRwIHJiX2lhNjRfYnNwIwoJLmlkZW50 CSJHQ0M6IChHTlUpIDMuMy41IChEZWJpYW4gMTozLjMuNS0xMykiCg== ------=_Part_13266_16113964.1154007157434--