Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:763 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 18200 invoked from network); 7 Apr 2003 16:57:36 -0000 Received: from unknown (HELO mail.sogei.it) (195.223.91.164) by pb1.pair.com with SMTP; 7 Apr 2003 16:57:36 -0000 Received: from mailfilter01.domus.ad.sogei.it (mailfilter01.sogei.it [26.2.193.99]) by mail.sogei.it (8.11.4/8.8.4) with SMTP id h37DSJW26604 for ; Mon, 7 Apr 2003 15:28:19 +0200 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C2FD26.C6E3F0CE" X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 Date: Mon, 7 Apr 2003 18:57:30 +0200 Message-ID: <7410A5117CDC9C4CA07FBC870D65A50D1B4BB1@MAILBOX01.domus.ad.sogei.it> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: [PATCH] OCI8 module - proposed patches (PART 2 of 2) Thread-Index: AcL9FGYKB+1ftQVUTnGHn6fRUqsb3AADaRbwAADyjyAAAC5YYA== To: Subject: [PATCH] OCI8 module - proposed patches (PART 2 of 2) From: msquillace@sogei.it ("SQUILLACE MASSIMO") ------_=_NextPart_001_01C2FD26.C6E3F0CE Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C2FD26.C6E3F0CE" ------_=_NextPart_002_01C2FD26.C6E3F0CE Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Here is the last half of the message, with the second attachment. =20 Massimo ------_=_NextPart_002_01C2FD26.C6E3F0CE Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Messaggio
Here=20 is the last half of the message, with the second=20 attachment.
 
Massimo
=00 ------_=_NextPart_002_01C2FD26.C6E3F0CE-- ------_=_NextPart_001_01C2FD26.C6E3F0CE Content-Type: text/plain; name="fourpatches.txt" Content-Transfer-Encoding: base64 Content-Description: fourpatches.txt Content-Disposition: attachment; filename="fourpatches.txt" PyBmb3VycGF0Y2hlcy5wYXRjaApJbmRleDogb2NpOC5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9y ZXBvc2l0b3J5L3BocDQvZXh0L29jaTgvb2NpOC5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIw NQpkaWZmIC11IC1yMS4yMDUgb2NpOC5jCi0tLSBvY2k4LmMJMTggTWFyIDIwMDMgMTI6MDY6MDAg LTAwMDAJMS4yMDUKKysrIG9jaTguYwk2IEFwciAyMDAzIDE2OjU3OjIxIC0wMDAwCkBAIC01OSw2 ICs1OSw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgInBocC5oIgorI2luY2x1ZGUgInBocF9pbmku aCIKICNpbmNsdWRlICJleHQvc3RhbmRhcmQvaW5mby5oIgogCiAvKiAjZGVmaW5lIEhBVkVfT0NJ OF9URU1QX0xPQiAxICovCkBAIC00MzEsMTAgKzQzMiwxOSBAQAogI2VuZGlmCiAKIC8qIH19fSAq LworCisvKiB7e3sgUEhQX0lOSQorICovCitQSFBfSU5JX0JFR0lOKCkKKwlTVERfUEhQX0lOSV9F TlRSWV9FWCgib2NpOC5jb25uZWN0aW9uX3RpbWVvdXQiLCAiLTEiLCBQSFBfSU5JX1NZU1RFTSwg T25VcGRhdGVJbnQsIGNvbm5lY3Rpb25fdGltZW91dCwgcGhwX29jaV9nbG9iYWxzLCBvY2lfZ2xv YmFscywgZGlzcGxheV9saW5rX251bWJlcnMpCisJU1REX1BIUF9JTklfQk9PTEVBTigib2NpOC5j cmVkZW50aWFsc190b3VwcGVyIiwgIjAiLCBQSFBfSU5JX1NZU1RFTSwgT25VcGRhdGVCb29sLCBj cmVkZW50aWFsc190b3VwcGVyLCBwaHBfb2NpX2dsb2JhbHMsIG9jaV9nbG9iYWxzKQorUEhQX0lO SV9FTkQoKQorLyogfX19ICovCisKIC8qIHt7eyBzdGFydHVwLCBzaHV0ZG93biBhbmQgaW5mbyBm dW5jdGlvbnMgKi8KIAogc3RhdGljIHZvaWQgcGhwX29jaV9pbml0X2dsb2JhbHMocGhwX29jaV9n bG9iYWxzICpvY2lfZ2xvYmFsc19wIFRTUk1MU19EQykKLXsgCit7CiAJT0NJKHNodXRkb3duKQk9 IDA7CiAJT0NJKGluX2NhbGwpCT0gMDsKIApAQCAtNDQyLDE0ICs0NTIsMTQgQEAKIAl6ZW5kX2hh c2hfaW5pdChPQ0kodXNlciksIDEzLCBOVUxMLCBOVUxMLCAxKTsKIAogCU9DSShzZXJ2ZXIpID0g bWFsbG9jKHNpemVvZihIYXNoVGFibGUpKTsKLQl6ZW5kX2hhc2hfaW5pdChPQ0koc2VydmVyKSwg MTMsIE5VTEwsIE5VTEwsIDEpOyAKKwl6ZW5kX2hhc2hfaW5pdChPQ0koc2VydmVyKSwgMTMsIE5V TEwsIE5VTEwsIDEpOwogCiAJQ0FMTF9PQ0koT0NJRW52SW5pdCgKLQkJCQkmT0NJKHBFbnYpLCAK LQkJCQlPQ0lfREVGQVVMVCwgCi0JCQkJMCwgCisJCQkJJk9DSShwRW52KSwKKwkJCQlPQ0lfREVG QVVMVCwKKwkJCQkwLAogCQkJCU5VTEwpKTsKLQkKKwogCUNBTExfT0NJKE9DSUhhbmRsZUFsbG9j KAogCQkJCU9DSShwRW52KSwgCiAJCQkJKGR2b2lkICoqKSZPQ0kocEVycm9yKSwgCkBAIC00OTUs NiArNTA1LDggQEAKIAlwaHBfb2NpX2luaXRfZ2xvYmFscygmb2NpX2dsb2JhbHMgVFNSTUxTX0ND KTsKICNlbmRpZgogCisJUkVHSVNURVJfSU5JX0VOVFJJRVMoKTsKKwogCWxlX3N0bXQgPSB6ZW5k X3JlZ2lzdGVyX2xpc3RfZGVzdHJ1Y3RvcnNfZXgoX29jaV9zdG10X2xpc3RfZHRvciwgTlVMTCwg Im9jaTggc3RhdGVtZW50IiwgbW9kdWxlX251bWJlcik7CiAJbGVfY29ubiA9IHplbmRfcmVnaXN0 ZXJfbGlzdF9kZXN0cnVjdG9yc19leChwaHBfb2NpX2ZyZWVfY29ubl9saXN0LCBOVUxMLCAib2Np OCBjb25uZWN0aW9uIiwgbW9kdWxlX251bWJlcik7CiAJbGVfZGVzYyA9IHplbmRfcmVnaXN0ZXJf bGlzdF9kZXN0cnVjdG9yc19leChfb2NpX2Rlc2NyaXB0b3JfbGlzdF9kdG9yLCBOVUxMLCAib2Np OCBkZXNjcmlwdG9yIiwgbW9kdWxlX251bWJlcik7CkBAIC01NjYsMTAgKzU3OCwyNiBAQAogLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gKi8KIAogCitzdGF0aWMgaW50IF9zZXNzaW9uX3JjbGVhbnVwKG9jaV9zZXNzaW9u ICpzZXNzaW9uIFRTUk1MU19EQykKK3sKKwlpZiAoKE9DSShjdXJyZW50X3RpbWVzdGFtcCkgLSBP Q0koY29ubmVjdGlvbl90aW1lb3V0KSkgPiBzZXNzaW9uLT5zZXJ2ZXItPnRpbWVzdGFtcCkgewor CQlfb2NpX2Nsb3NlX3Nlc3Npb24oc2Vzc2lvbik7CisJfQorCXJldHVybiAwOworfQorCitzdGF0 aWMgaW50IF9zZXJ2ZXJfcmNsZWFudXAob2NpX3NlcnZlciAqc2VydmVyIFRTUk1MU19EQykKK3sK KwlpZiAoKE9DSShjdXJyZW50X3RpbWVzdGFtcCkgLSBPQ0koY29ubmVjdGlvbl90aW1lb3V0KSkg PiBzZXJ2ZXItPnRpbWVzdGFtcCkgeworCQlfb2NpX2Nsb3NlX3NlcnZlcihzZXJ2ZXIpOworCX0K KwlyZXR1cm4gMDsKK30KKwogUEhQX1JJTklUX0ZVTkNUSU9OKG9jaSkKIHsKIAkvKiBYWFggTllJ Ci0JT0NJKG51bV9saW5rcykgPSAKKwlPQ0kobnVtX2xpbmtzKSA9CiAJCU9DSShudW1fcGVyc2lz dGVudCk7CiAJKi8KIApAQCAtNTc4LDYgKzYwNiwxMyBAQAogCiAJb2NpX2RlYnVnKCJwaHBfcmlu aXRfb2NpIik7CiAKKwkvKiBjbG9zZSBhbGwgdGltZWQgb3V0IGNvbm5lY3Rpb25zIChpZiBjaGVj ayBpcyBlbmFibGVkKSAqLworCWlmICgtMSAhPSBPQ0koY29ubmVjdGlvbl90aW1lb3V0KSkgewor CQlPQ0koY3VycmVudF90aW1lc3RhbXApID0gdGltZShOVUxMKTsKKwkJemVuZF9oYXNoX2FwcGx5 KE9DSSh1c2VyKSwgKGFwcGx5X2Z1bmNfdClfc2Vzc2lvbl9yY2xlYW51cCBUU1JNTFNfQ0MpOwor CQl6ZW5kX2hhc2hfYXBwbHkoT0NJKHNlcnZlciksIChhcHBseV9mdW5jX3QpX3NlcnZlcl9yY2xl YW51cCBUU1JNTFNfQ0MpOworCX0KKwogCXJldHVybiBTVUNDRVNTOwogfQogCkBAIC01OTcsNiAr NjMyLDggQEAKIAogUEhQX01TSFVURE9XTl9GVU5DVElPTihvY2kpCiB7CisJVU5SRUdJU1RFUl9J TklfRU5UUklFUygpOworCiAJT0NJKHNodXRkb3duKSA9IDE7CiAKIAlvY2lfZGVidWcoIlNUQVJU IHBocF9tc2h1dGRvd25fb2NpIik7CkBAIC02MTEsNyArNjQ4LDcgQEAKIAlmcmVlKE9DSShzZXJ2 ZXIpKTsKIAogCUNBTExfT0NJKE9DSUhhbmRsZUZyZWUoCi0JCQkJKGR2b2lkICopT0NJKHBFbnYp LCAKKwkJCQkoZHZvaWQgKilPQ0kocEVudiksCiAJCQkJT0NJX0hUWVBFX0VOVikpOwogCiAJb2Np X2RlYnVnKCJFTkQgICBwaHBfbXNodXRkb3duX29jaSIpOwpAQCAtNjQ5LDYgKzY4Niw4IEBACiAj ZW5kaWYKIAlwaHBfaW5mb19wcmludF90YWJsZV9lbmQoKTsKIAorCURJU1BMQVlfSU5JX0VOVFJJ RVMoKTsKKwogfQogCiAvKiB9fX0gKi8KQEAgLTg0NCw3ICs4ODMsNyBAQAogCiAJaWYgKGNvbm5l Y3Rpb24tPnBFcnJvcikgewogCQlDQUxMX09DSShPQ0lIYW5kbGVGcmVlKAotCQkJCQkoZHZvaWQg KikgY29ubmVjdGlvbi0+cEVycm9yLCAKKwkJCQkJKGR2b2lkICopIGNvbm5lY3Rpb24tPnBFcnJv ciwKIAkJCQkJKHViNCkgT0NJX0hUWVBFX0VSUk9SKSk7CiAJfQogCkBAIC0yMTUzLDMwICsyMTky LDMyIEBACiAJb2NpX3Nlc3Npb24gKnNlc3Npb24gPSAwLCAqcHNlc3Npb24gPSAwOwogCU9DSVN2 Y0N0eCAqc3ZjaHAgPSAwOwogCWNoYXIgKmhhc2hlZF9kZXRhaWxzOworCXN0cnVjdCB0aW1ldmFs IHR2OworCWludCBzZWMsIHVzZWM7CiAjaWZkZWYgSEFWRV9PQ0k5CiAJdWIyIGNoYXJzZXRpZDsK ICNlbmRpZgogCVRTUk1MU19GRVRDSCgpOwogCi0JLyogCisJLyoKIAkgICBjaGVjayBpZiB3ZSBh bHJlYWR5IGhhdmUgdGhpcyB1c2VyIGF1dGhlbnRpY2F0ZWQKIAotCSAgIHdlIHdpbGwgcmV1c2Ug YXV0aGVudGljYXRlZCB1c2VycyB3aXRoaW4gYSByZXF1ZXN0IG5vIG1hdHRlciBpZiB0aGUgdXNl ciByZXF1ZXN0ZWQgYSBwZXJzaXN0ZW50IAorCSAgIHdlIHdpbGwgcmV1c2UgYXV0aGVudGljYXRl ZCB1c2VycyB3aXRoaW4gYSByZXF1ZXN0IG5vIG1hdHRlciBpZiB0aGUgdXNlciByZXF1ZXN0ZWQg YSBwZXJzaXN0ZW50CiAJICAgY29ubmVjdGlvbnMgb3Igbm90IQotCSAgIAotCSAgIGJ1dCBvbmx5 IGFzIHBlc2lzdGVudCByZXF1ZXN0ZWQgY29ubmVjdGlvbnMgd2lsbCBiZSBrZXB0IGJldHdlZW4g cmVxdWVzdHMhCi0JKi8KIAotCWhhc2hlZF9kZXRhaWxzID0gKGNoYXIgKikgbWFsbG9jKHN0cmxl bihTQUZFX1NUUklORyh1c2VybmFtZSkpKwotCQkJCQkJCQkJIHN0cmxlbihTQUZFX1NUUklORyhw YXNzd29yZCkpKwotCQkJCQkJCQkJIHN0cmxlbihTQUZFX1NUUklORyhzZXJ2ZXItPmRibmFtZSkp KzEpOwotCQotCXNwcmludGYoaGFzaGVkX2RldGFpbHMsIiVzJXMlcyIsCi0JCQlTQUZFX1NUUklO Ryh1c2VybmFtZSksCi0JCQlTQUZFX1NUUklORyhwYXNzd29yZCksCi0JCQlTQUZFX1NUUklORyhz ZXJ2ZXItPmRibmFtZSkpOworCSAgIGJ1dCBvbmx5IGFzIHBlcnNpc3RlbnQgcmVxdWVzdGVkIGNv bm5lY3Rpb25zIHdpbGwgYmUga2VwdCBiZXR3ZWVuIHJlcXVlc3RzIQorCSovCiAKIAlpZiAoISBl eGNsdXNpdmUpIHsKKwkJaGFzaGVkX2RldGFpbHMgPSAoY2hhciAqKSBtYWxsb2Moc3RybGVuKFNB RkVfU1RSSU5HKHVzZXJuYW1lKSkrCisJCQkJCQkJCQkJIHN0cmxlbihTQUZFX1NUUklORyhwYXNz d29yZCkpKworCQkJCQkJCQkJCSBzdHJsZW4oU0FGRV9TVFJJTkcoc2VydmVyLT5kYm5hbWUpKSsx KTsKKworCQlzcHJpbnRmKGhhc2hlZF9kZXRhaWxzLCIlcyVzJXMiLAorCQkJCVNBRkVfU1RSSU5H KHVzZXJuYW1lKSwKKwkJCQlTQUZFX1NUUklORyhwYXNzd29yZCksCisJCQkJU0FGRV9TVFJJTkco c2VydmVyLT5kYm5hbWUpKTsKKwogCQl6ZW5kX2hhc2hfZmluZChPQ0kodXNlciksIGhhc2hlZF9k ZXRhaWxzLCBzdHJsZW4oaGFzaGVkX2RldGFpbHMpKzEsICh2b2lkICoqKSAmc2Vzc2lvbik7CiAK IAkJaWYgKHNlc3Npb24pIHsKQEAgLTIxOTEsNiArMjIzMiwxNCBAQAogCQkJCS8qIGJyZWFrdGhy dSB0byBvcGVuICovCiAJCQl9CiAJCX0KKwl9IGVsc2UgeworCQlnZXR0aW1lb2ZkYXkoKHN0cnVj dCB0aW1ldmFsICopICZ0diwgKHN0cnVjdCB0aW1lem9uZSAqKSBOVUxMKTsKKwkJc2VjID0gKGlu dCkgdHYudHZfc2VjOworCQl1c2VjID0gKGludCkgKHR2LnR2X3VzZWMgJSAxMDAwMDAwKTsKKwkJ LyogVGhlIG1heCB2YWx1ZSB1c2VjIGNhbiBoYXZlIGlzIDB4RjQyM0YsIHNvIHdlIHVzZSBvbmx5 IGZpdmUgaGV4CisJCSAgIGRpZ2l0cyBmb3IgdXNlYyBhbmQgZWlndGggaGV4IGRpZ2l0cyBmb3Ig c2VjLiAqLworCQloYXNoZWRfZGV0YWlscyA9IChjaGFyICopIG1hbGxvYyg4KzUrMSk7IC8qIGFs d2F5cyBlbm91Z2ggKi8KKwkJc3ByaW50ZihoYXNoZWRfZGV0YWlscywgIiUwOHglMDV4IiwgdHYu dHZfc2VjLCB0di50dl91c2VjKTsKIAl9CiAKIAlzZXNzaW9uID0gY2FsbG9jKDEsc2l6ZW9mKG9j aV9zZXNzaW9uKSk7CkBAIC0yMjE3LDE2ICsyMjY2LDE2IEBACiAJCUNBTExfT0NJX1JFVFVSTihj aGFyc2V0aWQsIE9DSU5sc0NoYXJTZXROYW1lVG9JZCgKIAkJCQkJCQlPQ0kocEVudiksCiAJCQkJ CQkJY2hhcnNldCkpOwotCQkKKwogCQlzZXNzaW9uLT5jaGFyc2V0SWQgPSBjaGFyc2V0aWQ7CiAJ CW9jaV9kZWJ1Zygib2NpX2RvX2Nvbm5lY3Q6IHVzaW5nIGNoYXJzZXQgaWQ9JWQiLGNoYXJzZXRp ZCk7CiAJfQotCQorCiAJLyogY3JlYXRlIGFuIGVudmlyb25tZW50IHVzaW5nIHRoZSBjaGFyYWN0 ZXIgc2V0IGlkLCBPcmFjbGUgOWkrIE9OTFkgKi8KIAlDQUxMX09DSShPQ0lFbnZObHNDcmVhdGUo CiAJCQkJJnNlc3Npb24tPnBFbnYsCi0JCQkJT0NJX0RFRkFVTFQsIAotCQkJCTAsIAorCQkJCU9D SV9ERUZBVUxULAorCQkJCTAsCiAJCQkJTlVMTCwKIAkJCQlOVUxMLAogCQkJCU5VTEwsCkBAIC0y MjQ1LDEyICsyMjk0LDEyIEBACiAKIAkvKiBhbGxvY2F0ZSB0ZW1wb3JhcnkgU2VydmljZSBDb250 ZXh0ICovCiAJQ0FMTF9PQ0lfUkVUVVJOKE9DSShlcnJvciksIE9DSUhhbmRsZUFsbG9jKAotCQkJ CXNlc3Npb24tPnBFbnYsIAotCQkJCShkdm9pZCAqKikmc3ZjaHAsIAotCQkJCU9DSV9IVFlQRV9T VkNDVFgsIAotCQkJCTAsIAorCQkJCXNlc3Npb24tPnBFbnYsCisJCQkJKGR2b2lkICoqKSZzdmNo cCwKKwkJCQlPQ0lfSFRZUEVfU1ZDQ1RYLAorCQkJCTAsCiAJCQkJTlVMTCkpOwotCQorCiAJaWYg KE9DSShlcnJvcikgIT0gT0NJX1NVQ0NFU1MpIHsKIAkJb2NpX2Vycm9yKE9DSShwRXJyb3IpLCAi X29jaV9vcGVuX3Nlc3Npb246IE9DSUhhbmRsZUFsbG9jIE9DSV9IVFlQRV9TVkNDVFgiLCBPQ0ko ZXJyb3IpKTsKIAkJZ290byBDTEVBTlVQOwpAQCAtMjI1OCwxMCArMjMwNywxMCBAQAogCiAJLyog YWxsb2NhdGUgcHJpdmF0ZSBzZXNzaW9uLWhhbmRsZSAqLwogCUNBTExfT0NJX1JFVFVSTihPQ0ko ZXJyb3IpLCBPQ0lIYW5kbGVBbGxvYygKLQkJCQlzZXNzaW9uLT5wRW52LCAKLQkJCQkoZHZvaWQg KiopJnNlc3Npb24tPnBTZXNzaW9uLCAKLQkJCQlPQ0lfSFRZUEVfU0VTU0lPTiwgCi0JCQkJMCwg CisJCQkJc2Vzc2lvbi0+cEVudiwKKwkJCQkoZHZvaWQgKiopJnNlc3Npb24tPnBTZXNzaW9uLAor CQkJCU9DSV9IVFlQRV9TRVNTSU9OLAorCQkJCTAsCiAJCQkJTlVMTCkpOwogCiAJaWYgKE9DSShl cnJvcikgIT0gT0NJX1NVQ0NFU1MpIHsKQEAgLTIyNjksMTEgKzIzMTgsMTEgQEAKIAkJZ290byBD TEVBTlVQOwogCX0KIAotCS8qIFNldCB0aGUgc2VydmVyIGhhbmRsZSBpbiBzZXJ2aWNlIGhhbmRs ZSAqLyAKKwkvKiBTZXQgdGhlIHNlcnZlciBoYW5kbGUgaW4gc2VydmljZSBoYW5kbGUgKi8KIAlD QUxMX09DSV9SRVRVUk4oT0NJKGVycm9yKSwgT0NJQXR0clNldCgKLQkJCQlzdmNocCwgCi0JCQkJ T0NJX0hUWVBFX1NWQ0NUWCwgCi0JCQkJc2VydmVyLT5wU2VydmVyLCAKKwkJCQlzdmNocCwKKwkJ CQlPQ0lfSFRZUEVfU1ZDQ1RYLAorCQkJCXNlcnZlci0+cFNlcnZlciwKIAkJCQkwLAogCQkJCU9D SV9BVFRSX1NFUlZFUiwKIAkJCQlPQ0kocEVycm9yKSkpOwpAQCAtMjI4NSwxMSArMjMzNCwxMSBA QAogCiAJLyogc2V0IHRoZSB1c2VybmFtZSBpbiB1c2VyIGhhbmRsZSAqLwogCUNBTExfT0NJX1JF VFVSTihPQ0koZXJyb3IpLCBPQ0lBdHRyU2V0KAotCQkJCShkdm9pZCAqKSBzZXNzaW9uLT5wU2Vz c2lvbiwgCi0JCQkJKHViNCkgT0NJX0hUWVBFX1NFU1NJT04sIAotCQkJCShkdm9pZCAqKSB1c2Vy bmFtZSwgCi0JCQkJKHViNCkgc3RybGVuKHVzZXJuYW1lKSwgCi0JCQkJKHViNCkgT0NJX0FUVFJf VVNFUk5BTUUsIAorCQkJCShkdm9pZCAqKSBzZXNzaW9uLT5wU2Vzc2lvbiwKKwkJCQkodWI0KSBP Q0lfSFRZUEVfU0VTU0lPTiwKKwkJCQkoZHZvaWQgKikgdXNlcm5hbWUsCisJCQkJKHViNCkgc3Ry bGVuKHVzZXJuYW1lKSwKKwkJCQkodWI0KSBPQ0lfQVRUUl9VU0VSTkFNRSwKIAkJCQlPQ0kocEVy cm9yKSkpOwogCiAJaWYgKE9DSShlcnJvcikgIT0gT0NJX1NVQ0NFU1MpIHsKQEAgLTIyOTksMTEg KzIzNDgsMTEgQEAKIAogCS8qIHNldCB0aGUgcGFzc3dvcmQgaW4gdXNlciBoYW5kbGUgKi8KIAlD QUxMX09DSV9SRVRVUk4oT0NJKGVycm9yKSwgT0NJQXR0clNldCgKLQkJCQkoZHZvaWQgKikgc2Vz c2lvbi0+cFNlc3Npb24sIAotCQkJCSh1YjQpIE9DSV9IVFlQRV9TRVNTSU9OLCAKLQkJCQkoZHZv aWQgKikgcGFzc3dvcmQsIAotCQkJCSh1YjQpIHN0cmxlbihwYXNzd29yZCksIAotCQkJCSh1YjQp IE9DSV9BVFRSX1BBU1NXT1JELCAKKwkJCQkoZHZvaWQgKikgc2Vzc2lvbi0+cFNlc3Npb24sCisJ CQkJKHViNCkgT0NJX0hUWVBFX1NFU1NJT04sCisJCQkJKGR2b2lkICopIHBhc3N3b3JkLAorCQkJ CSh1YjQpIHN0cmxlbihwYXNzd29yZCksCisJCQkJKHViNCkgT0NJX0FUVFJfUEFTU1dPUkQsCiAJ CQkJT0NJKHBFcnJvcikpKTsKIAogCWlmIChPQ0koZXJyb3IpICE9IE9DSV9TVUNDRVNTKSB7CkBA IC0yMzEyLDEwICsyMzYxLDEwIEBACiAJfQogCiAJQ0FMTF9PQ0lfUkVUVVJOKE9DSShlcnJvciks IE9DSVNlc3Npb25CZWdpbigKLQkJCQlzdmNocCwgCi0JCQkJT0NJKHBFcnJvciksIAotCQkJCXNl c3Npb24tPnBTZXNzaW9uLCAKLQkJCQkodWI0KSBPQ0lfQ1JFRF9SREJNUywgCisJCQkJc3ZjaHAs CisJCQkJT0NJKHBFcnJvciksCisJCQkJc2Vzc2lvbi0+cFNlc3Npb24sCisJCQkJKHViNCkgT0NJ X0NSRURfUkRCTVMsCiAJCQkJKHViNCkgT0NJX0RFRkFVTFQpKTsKIAogCWlmIChPQ0koZXJyb3Ip ICE9IE9DSV9TVUNDRVNTKSB7CkBAIC0yMzI1LDcgKzIzNzQsNyBAQAogCiAJLyogRnJlZSBUZW1w b3JhcnkgU2VydmljZSBDb250ZXh0ICovCiAJQ0FMTF9PQ0koT0NJSGFuZGxlRnJlZSgKLQkJCQko ZHZvaWQgKikgc3ZjaHAsIAorCQkJCShkdm9pZCAqKSBzdmNocCwKIAkJCQkodWI0KSBPQ0lfSFRZ UEVfU1ZDQ1RYKSk7CiAKIAlpZiAoZXhjbHVzaXZlKSB7CkBAIC0yMzMzLDcgKzIzODIsNyBAQAog CX0gZWxzZSB7CiAJCXplbmRfaGFzaF91cGRhdGUoT0NJKHVzZXIpLAogCQkJCQkJIHNlc3Npb24t Pmhhc2hlZF9kZXRhaWxzLAotCQkJCQkJIHN0cmxlbihzZXNzaW9uLT5oYXNoZWRfZGV0YWlscykr MSwgCisJCQkJCQkgc3RybGVuKHNlc3Npb24tPmhhc2hlZF9kZXRhaWxzKSsxLAogCQkJCQkJICh2 b2lkICopc2Vzc2lvbiwKIAkJCQkJCSBzaXplb2Yob2NpX3Nlc3Npb24pLAogCQkJCQkJICh2b2lk KiopJnBzZXNzaW9uKTsKQEAgLTI2MjcsNyArMjY3Niw4IEBACiAJb2NpX3NlcnZlciAqc2VydmVy ID0gMDsKIAlvY2lfc2Vzc2lvbiAqc2Vzc2lvbiA9IDA7CiAJb2NpX2Nvbm5lY3Rpb24gKmNvbm5l Y3Rpb24gPSAwOwotCQorCWludCBpLCBsZW47CisKIAkvKiBpZiBhIGZvcnRoIHBhcmFtZXRlciBp cyBoYW5kZWQgb3ZlciwgaXQgaXMgdGhlIGNoYXJzZXQgaWRlbnRpZmllciAoYnV0IGlzIG9ubHkg dXNlZCBpbiBPcmFjbGUgOWkrKSAqLwogCWlmICh6ZW5kX2dldF9wYXJhbWV0ZXJzX2V4KDQsICZ1 c2VyUGFyYW0sICZwYXNzUGFyYW0sICZkYlBhcmFtLCAmY2hhclBhcmFtKSA9PSBTVUNDRVNTKSB7 CiAJCWNvbnZlcnRfdG9fc3RyaW5nX2V4KHVzZXJQYXJhbSk7CkBAIC0yNjY1LDE4ICsyNzE1LDM0 IEBACiAJCWdvdG8gQ0xFQU5VUDsKIAl9CiAKKwkvKiBpZiBlbmFibGVkIGluIHBocC5pbmksIGNv bnZlcnQgY3JlZGVudGlhbHMgdG8gdXBwZXJjYXNlICovCisJaWYgKE9DSShjcmVkZW50aWFsc190 b3VwcGVyKSkgeworCQlmb3IgKGkgPSAwLCBsZW4gPSBzdHJsZW4oU0FGRV9TVFJJTkcodXNlcm5h bWUpKTsgaSA8IGxlbjsgaSsrKSB7CisJCQl1c2VybmFtZVtpXSA9IHRvdXBwZXIodXNlcm5hbWVb aV0pOworCQl9CisJCWZvciAoaSA9IDAsIGxlbiA9IHN0cmxlbihTQUZFX1NUUklORyhwYXNzd29y ZCkpOyBpIDwgbGVuOyBpKyspIHsKKwkJCXBhc3N3b3JkW2ldID0gdG91cHBlcihwYXNzd29yZFtp XSk7CisJCX0KKwkJZm9yIChpID0gMCwgbGVuID0gc3RybGVuKFNBRkVfU1RSSU5HKGRibmFtZSkp OyBpIDwgbGVuOyBpKyspIHsKKwkJCWRibmFtZVtpXSA9IHRvdXBwZXIoZGJuYW1lW2ldKTsKKwkJ fQorCX0KKwogCXNlcnZlciA9IF9vY2lfb3Blbl9zZXJ2ZXIoZGJuYW1lLHBlcnNpc3RlbnQpOwog CiAJaWYgKCEgc2VydmVyKSB7CiAJCWdvdG8gQ0xFQU5VUDsKIAl9CiAKKwkvKiBzZXQvdXBkYXRl IHNlcnZlciBoYW5kbGUgdGltZXN0YW1wICovCisJc2VydmVyLT50aW1lc3RhbXAgPSB0aW1lKE5V TEwpOworCiAJaWYgKGV4Y2x1c2l2ZSkgewogCQkvKiBleGx1c2l2ZSBzZXNzaW9uIGNhbiBuZXZl ciBiZSBwZXJzaXN0ZW50ISovCiAJCXBlcnNpc3RlbnQgPSAwOwogCX0gZWxzZSB7CiAJCS8qIGlm IG91ciBzZXJ2ZXItY29udGV4dCBpcyBub3QgcGVyc2lzdGVudCB3ZSBjYW4ndCAqLwotCQlwZXJz aXN0ZW50ID0gc2VydmVyLT5wZXJzaXN0ZW50OyAKKwkJcGVyc2lzdGVudCA9IChzZXJ2ZXItPnBl cnNpc3RlbnQpID8gcGVyc2lzdGVudCA6IDA7CiAJfQogCiAJc2Vzc2lvbiA9IF9vY2lfb3Blbl9z ZXNzaW9uKHNlcnZlcix1c2VybmFtZSxwYXNzd29yZCxwZXJzaXN0ZW50LGV4Y2x1c2l2ZSxjaGFy c2V0KTsKQEAgLTI2OTAsMTAgKzI3NTYsMTAgQEAKIAogCS8qIGFsbG9jYXRlIG91ciBwcml2YXRl IGVycm9yLWhhbmRsZSAqLwogCUNBTExfT0NJX1JFVFVSTihPQ0koZXJyb3IpLCBPQ0lIYW5kbGVB bGxvYygKLQkJCQljb25uZWN0aW9uLT5zZXNzaW9uLT5wRW52LCAKLQkJCQkoZHZvaWQgKiopJmNv bm5lY3Rpb24tPnBFcnJvciwgCi0JCQkJT0NJX0hUWVBFX0VSUk9SLCAKLQkJCQkwLCAKKwkJCQlj b25uZWN0aW9uLT5zZXNzaW9uLT5wRW52LAorCQkJCShkdm9pZCAqKikmY29ubmVjdGlvbi0+cEVy cm9yLAorCQkJCU9DSV9IVFlQRV9FUlJPUiwKKwkJCQkwLAogCQkJCU5VTEwpKTsKIAogCWlmIChP Q0koZXJyb3IpICE9IE9DSV9TVUNDRVNTKSB7CkluZGV4OiBwaHBfb2NpOC5oCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9yZXBvc2l0b3J5L3BocDQvZXh0L29jaTgvcGhwX29jaTguaCx2CnJldHJpZXZp bmcgcmV2aXNpb24gMS4yOApkaWZmIC11IC1yMS4yOCBwaHBfb2NpOC5oCi0tLSBwaHBfb2NpOC5o CTE4IE1hciAyMDAzIDEyOjA2OjAxIC0wMDAwCTEuMjgKKysrIHBocF9vY2k4LmgJNiBBcHIgMjAw MyAxNjo1NzoyMSAtMDAwMApAQCAtNDAsNyArNDAsNyBAQAogI2RlZmluZSBQSFBfT0NJX0FQSSBf X2RlY2xzcGVjKGRsbGV4cG9ydCkKICNlbHNlCiAjZGVmaW5lIFBIUF9PQ0lfQVBJCi0jZW5kaWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2VuZGlmCiAKICNpZiBkZWZpbmVk KG1pbikKICN1bmRlZiBtaW4KQEAgLTU1LDYgKzU1LDcgQEAKIAlpbnQgbnVtOwogCWludCBwZXJz aXN0ZW50OwogCWludCBpc19vcGVuOworCXRpbWVfdCB0aW1lc3RhbXA7CiAJY2hhciAqZGJuYW1l OwogICAgIE9DSVNlcnZlciAqcFNlcnZlcjsKICNpZiAwCkBAIC0xODIsNyArMTgzLDExIEBACiAg ICAgbG9uZyBudW1fbGlua3M7CiAJKi8KIAotICAgIEhhc2hUYWJsZSAqc2VydmVyOworCWxvbmcg Y29ubmVjdGlvbl90aW1lb3V0OyAgIC8qIGZyb20gcGhwLmluaSAqLworCWludCBjcmVkZW50aWFs c190b3VwcGVyOyAgIC8qIGZyb20gcGhwLmluaSAqLworCXRpbWVfdCBjdXJyZW50X3RpbWVzdGFt cDsgIC8qIHNldCBieSBQSFBfUklOSVRfRlVOQ1RJT04gKi8KKworCUhhc2hUYWJsZSAqc2VydmVy OwogCUhhc2hUYWJsZSAqdXNlcjsKIAogICAgIE9DSUVudiAqcEVudjsK ------_=_NextPart_001_01C2FD26.C6E3F0CE--