Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:38098 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 70637 invoked from network); 7 Jun 2008 06:25:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Jun 2008 06:25:24 -0000 Authentication-Results: pb1.pair.com header.from=h.n.angelo@gmail.com; sender-id=pass; domainkeys=bad Authentication-Results: pb1.pair.com smtp.mail=h.n.angelo@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.146.178 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: h.n.angelo@gmail.com X-Host-Fingerprint: 209.85.146.178 wa-out-1112.google.com Received: from [209.85.146.178] ([209.85.146.178:36265] helo=wa-out-1112.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 49/C1-53374-2D92A484 for ; Sat, 07 Jun 2008 02:25:23 -0400 Received: by wa-out-1112.google.com with SMTP id v27so1176988wah.17 for ; Fri, 06 Jun 2008 23:25:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=MjnL9Y2KxGDZyvi81FZSb2Z4ZhOT8kHc2WLpi0BjJj4=; b=EwvP828BqFHJnkLuylww33Bfqk+7n5/MgRT5DM92J44KCWPGxD19OpKM2XoN1u3KSw W+Y9f6Jlmi6xoH71Q07SVtQbcdSLk0+a6w2zodDkb/d9eaMWbKU4la+mqUYF/7RFgeGE BXe/nP56uiBM5VrLkVFBzozxLP+kxFkMQFiFg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=DINxO0xQ5/oWEw7MuYtbc1kbz1blMT/Qf3AnZd732kgqvPmPwY+kj3cDq5c2fMx9Jh PYZ8aLs/0qreKChjIbxfasCrcjQeD5KtdhgbMHbVCW2jy5UQax/3JSDxvcVXotBi6uWZ /2rx8nCwlM4odmeF3+/GGbJpj3vlX/0oiOr0Y= Received: by 10.114.157.3 with SMTP id f3mr1156871wae.40.1212819920071; Fri, 06 Jun 2008 23:25:20 -0700 (PDT) Received: by 10.115.46.5 with HTTP; Fri, 6 Jun 2008 23:25:19 -0700 (PDT) Message-ID: <995e11c50806062325h565720edt1fdb288af72da07@mail.gmail.com> Date: Sat, 7 Jun 2008 03:25:19 -0300 To: internals@lists.php.net MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_9956_3542540.1212819920055" Subject: Introduction and patches From: h.n.angelo@gmail.com ("Henrique do N. Angelo") ------=_Part_9956_3542540.1212819920055 Content-Type: multipart/alternative; boundary="----=_Part_9957_3501632.1212819920056" ------=_Part_9957_3501632.1212819920056 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, My name is Henrique do N. Angelo and I'm currently working on the implementation of Unicode into PHP 6 as a Google Summer of Code 2008 project, mentored by Scott MacVicar. Scott has been helping me for the past few weeks and, so far, I've got a couple patches done. Following Philip's advice, I'm sending here some of the patches I've written so far and soon I will be requesting a cvs account. If you want to contact me directly, feel free to send me an email or talk to me at #php.pecl at efnet, I'm hnangelo. Cheers Henrique ------=_Part_9957_3501632.1212819920056 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi,

My name is Henrique do N. Angelo and I'm currently working on the implementation of Unicode into PHP 6 as a Google Summer of Code 2008 project, mentored by Scott MacVicar. Scott has been helping me for the past few weeks and, so far, I've got a couple patches done.

Following Philip's advice, I'm sending here some of the patches I've written so far and soon I will be requesting a cvs account.

If you want to contact me directly, feel free to send me an email or talk to me at #php.pecl at efnet, I'm hnangelo.

Cheers
Henrique
------=_Part_9957_3501632.1212819920056-- ------=_Part_9956_3542540.1212819920055 Content-Type: text/plain; name=php_date.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fh5ce6gl0 Content-Disposition: attachment; filename=php_date.patch.txt SW5kZXg6IGV4dC9kYXRlL3BocF9kYXRlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRv cnkvcGhwLXNyYy9leHQvZGF0ZS9waHBfZGF0ZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE4 NwpkaWZmIC11IC1yMS4xODcgcGhwX2RhdGUuYwotLS0gZXh0L2RhdGUvcGhwX2RhdGUuYwkyMCBN YXkgMjAwOCAxMjowNzoxMyAtMDAwMAkxLjE4NworKysgZXh0L2RhdGUvcGhwX2RhdGUuYwkzMSBN YXkgMjAwOCAwMzozNjoxNyAtMDAwMApAQCAtMTIxNCw3ICsxMjE0LDcgQEAKIH0KIC8qIH19fSAq LwogCi0vKiB7e3sgcHJvdG8gc3RyaW5nIGRhdGUoc3RyaW5nIGZvcm1hdCBbLCBsb25nIHRpbWVz dGFtcF0pCisvKiB7e3sgcHJvdG8gc3RyaW5nIGRhdGUoc3RyaW5nIGZvcm1hdCBbLCBsb25nIHRp bWVzdGFtcF0pIFUKICAgIEZvcm1hdCBhIGxvY2FsIGRhdGUvdGltZSAqLwogUEhQX0ZVTkNUSU9O KGRhdGUpCiB7CkBAIC0xMjIyLDcgKzEyMjIsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBw cm90byBzdHJpbmcgZ21kYXRlKHN0cmluZyBmb3JtYXQgWywgbG9uZyB0aW1lc3RhbXBdKQorLyog e3t7IHByb3RvIHN0cmluZyBnbWRhdGUoc3RyaW5nIGZvcm1hdCBbLCBsb25nIHRpbWVzdGFtcF0p IFUKICAgIEZvcm1hdCBhIEdNVCBkYXRlL3RpbWUgKi8KIFBIUF9GVU5DVElPTihnbWRhdGUpCiB7 CkBAIC0xMjMwLDcgKzEyMzAsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byBpbnQg aWRhdGUoc3RyaW5nIGZvcm1hdCBbLCBpbnQgdGltZXN0YW1wXSkKKy8qIHt7eyBwcm90byBpbnQg aWRhdGUoc3RyaW5nIGZvcm1hdCBbLCBpbnQgdGltZXN0YW1wXSkgVQogICAgRm9ybWF0IGEgbG9j YWwgdGltZS9kYXRlIGFzIGludGVnZXIgKi8KIFBIUF9GVU5DVElPTihpZGF0ZSkKIHsKQEAgLTEy OTIsNyArMTI5Miw3IEBACiAvKiB9fX0gKi8KIAogCi0vKiB7e3sgcHJvdG8gaW50IHN0cnRvdGlt ZShzdHJpbmcgdGltZSBbLCBpbnQgbm93IF0pCisvKiB7e3sgcHJvdG8gaW50IHN0cnRvdGltZShz dHJpbmcgdGltZSBbLCBpbnQgbm93IF0pIFUKICAgIENvbnZlcnQgc3RyaW5nIHJlcHJlc2VudGF0 aW9uIG9mIGRhdGUgYW5kIHRpbWUgdG8gYSB0aW1lc3RhbXAgKi8KIFBIUF9GVU5DVElPTihzdHJ0 b3RpbWUpCiB7CkBAIC0xNDUzLDcgKzE0NTMsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBw cm90byBpbnQgbWt0aW1lKFtpbnQgaG91ciBbLCBpbnQgbWluIFssIGludCBzZWMgWywgaW50IG1v biBbLCBpbnQgZGF5IFssIGludCB5ZWFyXV1dXV1dKQorLyoge3t7IHByb3RvIGludCBta3RpbWUo W2ludCBob3VyIFssIGludCBtaW4gWywgaW50IHNlYyBbLCBpbnQgbW9uIFssIGludCBkYXkgWywg aW50IHllYXJdXV1dXV0pIFUKICAgIEdldCBVTklYIHRpbWVzdGFtcCBmb3IgYSBkYXRlICovCiBQ SFBfRlVOQ1RJT04obWt0aW1lKQogewpAQCAtMTQ2MSw3ICsxNDYxLDcgQEAKIH0KIC8qIH19fSAq LwogCi0vKiB7e3sgcHJvdG8gaW50IGdtbWt0aW1lKFtpbnQgaG91ciBbLCBpbnQgbWluIFssIGlu dCBzZWMgWywgaW50IG1vbiBbLCBpbnQgZGF5IFssIGludCB5ZWFyXV1dXV1dKQorLyoge3t7IHBy b3RvIGludCBnbW1rdGltZShbaW50IGhvdXIgWywgaW50IG1pbiBbLCBpbnQgc2VjIFssIGludCBt b24gWywgaW50IGRheSBbLCBpbnQgeWVhcl1dXV1dXSkgVQogICAgR2V0IFVOSVggdGltZXN0YW1w IGZvciBhIEdNVCBkYXRlICovCiBQSFBfRlVOQ1RJT04oZ21ta3RpbWUpCiB7CkBAIC0xNDcwLDcg KzE0NzAsNyBAQAogLyogfX19ICovCiAKIAotLyoge3t7IHByb3RvIGJvb2wgY2hlY2tkYXRlKGlu dCBtb250aCwgaW50IGRheSwgaW50IHllYXIpCisvKiB7e3sgcHJvdG8gYm9vbCBjaGVja2RhdGUo aW50IG1vbnRoLCBpbnQgZGF5LCBpbnQgeWVhcikgVQogICAgUmV0dXJucyB0cnVlKDEpIGlmIGl0 IGlzIGEgdmFsaWQgZGF0ZSBpbiBncmVnb3JpYW4gY2FsZW5kYXIgKi8KIFBIUF9GVU5DVElPTihj aGVja2RhdGUpCiB7CkBAIC0xNTc4LDcgKzE1NzgsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7 eyBwcm90byBzdHJpbmcgc3RyZnRpbWUoc3RyaW5nIGZvcm1hdCBbLCBpbnQgdGltZXN0YW1wXSkK Ky8qIHt7eyBwcm90byBzdHJpbmcgc3RyZnRpbWUoc3RyaW5nIGZvcm1hdCBbLCBpbnQgdGltZXN0 YW1wXSkgVQogICAgRm9ybWF0IGEgbG9jYWwgdGltZS9kYXRlIGFjY29yZGluZyB0byBsb2NhbGUg c2V0dGluZ3MgKi8KIFBIUF9GVU5DVElPTihzdHJmdGltZSkKIHsKQEAgLTE1ODYsNyArMTU4Niw3 IEBACiB9CiAvKiB9fX0gKi8KIAotLyoge3t7IHByb3RvIHN0cmluZyBnbXN0cmZ0aW1lKHN0cmlu ZyBmb3JtYXQgWywgaW50IHRpbWVzdGFtcF0pCisvKiB7e3sgcHJvdG8gc3RyaW5nIGdtc3RyZnRp bWUoc3RyaW5nIGZvcm1hdCBbLCBpbnQgdGltZXN0YW1wXSkgVQogICAgRm9ybWF0IGEgR01UL1VD VCB0aW1lL2RhdGUgYWNjb3JkaW5nIHRvIGxvY2FsZSBzZXR0aW5ncyAqLwogUEhQX0ZVTkNUSU9O KGdtc3RyZnRpbWUpCiB7CkBAIC0xNTk1LDcgKzE1OTUsNyBAQAogLyogfX19ICovCiAjZW5kaWYK IAotLyoge3t7IHByb3RvIGludCB0aW1lKHZvaWQpCisvKiB7e3sgcHJvdG8gaW50IHRpbWUodm9p ZCkgVQogICAgUmV0dXJuIGN1cnJlbnQgVU5JWCB0aW1lc3RhbXAgKi8KIFBIUF9GVU5DVElPTih0 aW1lKQogewpAQCAtMTYwMyw3ICsxNjAzLDcgQEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJv dG8gYXJyYXkgbG9jYWx0aW1lKFtpbnQgdGltZXN0YW1wIFssIGJvb2wgYXNzb2NpYXRpdmVfYXJy YXldXSkKKy8qIHt7eyBwcm90byBhcnJheSBsb2NhbHRpbWUoW2ludCB0aW1lc3RhbXAgWywgYm9v bCBhc3NvY2lhdGl2ZV9hcnJheV1dKSBVCiAgICBSZXR1cm5zIHRoZSByZXN1bHRzIG9mIHRoZSBD IHN5c3RlbSBjYWxsIGxvY2FsdGltZSBhcyBhbiBhc3NvY2lhdGl2ZSBhcnJheSBpZiB0aGUgYXNz b2NpYXRpdmVfYXJyYXkgYXJndW1lbnQgaXMgc2V0IHRvIDEgb3RoZXIgd2lzZSBpdCBpcyBhIHJl Z3VsYXIgYXJyYXkgKi8KIFBIUF9GVU5DVElPTihsb2NhbHRpbWUpCiB7CkBAIC0xNjUwLDcgKzE2 NTAsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byBhcnJheSBnZXRkYXRlKFtpbnQg dGltZXN0YW1wXSkKKy8qIHt7eyBwcm90byBhcnJheSBnZXRkYXRlKFtpbnQgdGltZXN0YW1wXSkg VQogICAgR2V0IGRhdGUvdGltZSBpbmZvcm1hdGlvbiAqLwogUEhQX0ZVTkNUSU9OKGdldGRhdGUp CiB7CkBAIC0xNjc4LDggKzE2NzgsOCBAQAogCWFkZF9hc2NpaV9hc3NvY19sb25nKHJldHVybl92 YWx1ZSwgIm1vbiIsIHRzLT5tKTsKIAlhZGRfYXNjaWlfYXNzb2NfbG9uZyhyZXR1cm5fdmFsdWUs ICJ5ZWFyIiwgdHMtPnkpOwogCWFkZF9hc2NpaV9hc3NvY19sb25nKHJldHVybl92YWx1ZSwgInlk YXkiLCB0aW1lbGliX2RheV9vZl95ZWFyKHRzLT55LCB0cy0+bSwgdHMtPmQpKTsKLQlhZGRfYXNj aWlfYXNzb2Nfc3RyaW5nKHJldHVybl92YWx1ZSwgIndlZWtkYXkiLCBwaHBfZGF0ZV9mdWxsX2Rh eV9uYW1lKHRzLT55LCB0cy0+bSwgdHMtPmQpLCAxKTsKLQlhZGRfYXNjaWlfYXNzb2Nfc3RyaW5n KHJldHVybl92YWx1ZSwgIm1vbnRoIiwgbW9uX2Z1bGxfbmFtZXNbdHMtPm0gLSAxXSwgMSk7CisJ YWRkX2FzY2lpX2Fzc29jX2FzY2lpX3N0cmluZyhyZXR1cm5fdmFsdWUsICJ3ZWVrZGF5IiwgcGhw X2RhdGVfZnVsbF9kYXlfbmFtZSh0cy0+eSwgdHMtPm0sIHRzLT5kKSwgMSk7CisJYWRkX2FzY2lp X2Fzc29jX2FzY2lpX3N0cmluZyhyZXR1cm5fdmFsdWUsICJtb250aCIsIG1vbl9mdWxsX25hbWVz W3RzLT5tIC0gMV0sIDEpOwogCWFkZF9pbmRleF9sb25nKHJldHVybl92YWx1ZSwgMCwgdGltZXN0 YW1wKTsKIAogCXRpbWVsaWJfdGltZV9kdG9yKHRzKTsKQEAgLTIwMjgsNyArMjAyOCw3IEBACiAJ CU1BS0VfU1REX1pWQUwoenYpOwogCQlzd2l0Y2ggKGRhdGVvYmotPnRpbWUtPnpvbmVfdHlwZSkg ewogCQkJY2FzZSBUSU1FTElCX1pPTkVUWVBFX0lEOgotCQkJCVpWQUxfU1RSSU5HKHp2LCBkYXRl b2JqLT50aW1lLT50el9pbmZvLT5uYW1lLCAxKTsKKwkJCQlaVkFMX0FTQ0lJX1NUUklORyh6diwg ZGF0ZW9iai0+dGltZS0+dHpfaW5mby0+bmFtZSwgMSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFRJ TUVMSUJfWk9ORVRZUEVfT0ZGU0VUOiB7CiAJCQkJY2hhciAqdG1wc3RyID0gZW1hbGxvYyhzaXpl b2YoIlVUQyswNTowMCIpKTsKQEAgLTIwMzksMTEgKzIwMzksMTEgQEAKIAkJCQkJYWJzKHV0Y19v ZmZzZXQgLyA2MCksCiAJCQkJCWFicygodXRjX29mZnNldCAlIDYwKSkpOwogCi0JCQkJWlZBTF9T VFJJTkcoenYsIHRtcHN0ciwgMCk7CisJCQkJWlZBTF9BU0NJSV9TVFJJTkcoenYsIHRtcHN0ciwg MCk7CiAJCQkJfQogCQkJCWJyZWFrOwogCQkJY2FzZSBUSU1FTElCX1pPTkVUWVBFX0FCQlI6Ci0J CQkJWlZBTF9TVFJJTkcoenYsIGRhdGVvYmotPnRpbWUtPnR6X2FiYnIsIDEpOworCQkJCVpWQUxf QVNDSUlfU1RSSU5HKHp2LCBkYXRlb2JqLT50aW1lLT50el9hYmJyLCAxKTsKIAkJCQlicmVhazsK IAkJfQogCQl6ZW5kX2hhc2hfdXBkYXRlKHByb3BzLCAidGltZXpvbmUiLCA5LCAmenYsIHNpemVv Zih6dmFsKSwgTlVMTCk7CkBAIC0yMzU2LDcgKzIzNTYsNyBAQAogCXJldHVybiAxOwogfQogCi0v KiB7e3sgcHJvdG8gRGF0ZVRpbWUgZGF0ZV9jcmVhdGUoW3N0cmluZyB0aW1lWywgRGF0ZVRpbWVa b25lIG9iamVjdF1dKQorLyoge3t7IHByb3RvIERhdGVUaW1lIGRhdGVfY3JlYXRlKFtzdHJpbmcg dGltZVssIERhdGVUaW1lWm9uZSBvYmplY3RdXSkgVQogICAgUmV0dXJucyBuZXcgRGF0ZVRpbWUg b2JqZWN0CiAqLwogUEhQX0ZVTkNUSU9OKGRhdGVfY3JlYXRlKQpAQCAtMjM3Niw3ICsyMzc2LDcg QEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gRGF0ZVRpbWUgZGF0ZV9jcmVhdGVfZnJv bV9mb3JtYXQoc3RyaW5nIGZvcm1hdCwgc3RyaW5nIHRpbWVbLCBEYXRlVGltZVpvbmUgb2JqZWN0 XSkKKy8qIHt7eyBwcm90byBEYXRlVGltZSBkYXRlX2NyZWF0ZV9mcm9tX2Zvcm1hdChzdHJpbmcg Zm9ybWF0LCBzdHJpbmcgdGltZVssIERhdGVUaW1lWm9uZSBvYmplY3RdKSAKICAgIFJldHVybnMg bmV3IERhdGVUaW1lIG9iamVjdCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQg Zm9ybWF0CiAqLwogUEhQX0ZVTkNUSU9OKGRhdGVfY3JlYXRlX2Zyb21fZm9ybWF0KQpAQCAtMjUw NCw3ICsyNTA0LDcgQEAKIAlNQUtFX1NURF9aVkFMKGVsZW1lbnQpOwogCWFycmF5X2luaXQoZWxl bWVudCk7CiAJZm9yIChpID0gMDsgaSA8IGVycm9yLT53YXJuaW5nX2NvdW50OyBpKyspIHsKLQkJ YWRkX2luZGV4X3N0cmluZyhlbGVtZW50LCBlcnJvci0+d2FybmluZ19tZXNzYWdlc1tpXS5wb3Np dGlvbiwgZXJyb3ItPndhcm5pbmdfbWVzc2FnZXNbaV0ubWVzc2FnZSwgMSk7CisJCWFkZF9pbmRl eF9hc2NpaV9zdHJpbmcoZWxlbWVudCwgZXJyb3ItPndhcm5pbmdfbWVzc2FnZXNbaV0ucG9zaXRp b24sIGVycm9yLT53YXJuaW5nX21lc3NhZ2VzW2ldLm1lc3NhZ2UsIDEpOwogCX0KIAlhZGRfYXNj aWlfYXNzb2NfenZhbCh6LCAid2FybmluZ3MiLCBlbGVtZW50KTsKIApAQCAtMjUxMiwxMiArMjUx MiwxMiBAQAogCU1BS0VfU1REX1pWQUwoZWxlbWVudCk7CiAJYXJyYXlfaW5pdChlbGVtZW50KTsK IAlmb3IgKGkgPSAwOyBpIDwgZXJyb3ItPmVycm9yX2NvdW50OyBpKyspIHsKLQkJYWRkX2luZGV4 X3N0cmluZyhlbGVtZW50LCBlcnJvci0+ZXJyb3JfbWVzc2FnZXNbaV0ucG9zaXRpb24sIGVycm9y LT5lcnJvcl9tZXNzYWdlc1tpXS5tZXNzYWdlLCAxKTsKKwkJYWRkX2luZGV4X2FzY2lpX3N0cmlu ZyhlbGVtZW50LCBlcnJvci0+ZXJyb3JfbWVzc2FnZXNbaV0ucG9zaXRpb24sIGVycm9yLT5lcnJv cl9tZXNzYWdlc1tpXS5tZXNzYWdlLCAxKTsKIAl9CiAJYWRkX2FzY2lpX2Fzc29jX3p2YWwoeiwg ImVycm9ycyIsIGVsZW1lbnQpOwogfQogCi0vKiB7e3sgcHJvdG8gYXJyYXkgZGF0ZV9nZXRfbGFz dF9lcnJvcnNlKCkKKy8qIHt7eyBwcm90byBhcnJheSBkYXRlX2dldF9sYXN0X2Vycm9yc2UoKSBV CiAgICBSZXR1cm5zIHRoZSB3YXJuaW5ncyBhbmQgZXJyb3JzIGZvdW5kIHdoaWxlIHBhcnNpbmcg YSBkYXRlL3RpbWUgc3RyaW5nLgogKi8KIFBIUF9GVU5DVElPTihkYXRlX2dldF9sYXN0X2Vycm9y cykKQEAgLTI2MDYsNyArMjYwNiw3IEBACiAJdGltZWxpYl90aW1lX2R0b3IocGFyc2VkX3RpbWUp OwogfQogCi0vKiB7e3sgcHJvdG8gYXJyYXkgZGF0ZV9wYXJzZShzdHJpbmcgZGF0ZSkKKy8qIHt7 eyBwcm90byBhcnJheSBkYXRlX3BhcnNlKHN0cmluZyBkYXRlKSBVCiAgICBSZXR1cm5zIGFzc29j aWF0aXZlIGFycmF5IHdpdGggZGV0YWlsZWQgaW5mbyBhYm91dCBnaXZlbiBkYXRlCiAqLwogUEhQ X0ZVTkNUSU9OKGRhdGVfcGFyc2UpCkBAIC0yNjI1LDcgKzI2MjUsNyBAQAogfQogLyogfX19ICov CiAKLS8qIHt7eyBwcm90byBhcnJheSBkYXRlX3BhcnNlKHN0cmluZyBkYXRlKQorLyoge3t7IHBy b3RvIGFycmF5IGRhdGVfcGFyc2VfZnJvbV9mb3JtYXQoc3RyaW5nIGZvcm1hdCwgc3RyaW5nIGRh dGUpIFUKICAgIFJldHVybnMgYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCBkZXRhaWxlZCBpbmZvIGFi b3V0IGdpdmVuIGRhdGUKICovCiBQSFBfRlVOQ1RJT04oZGF0ZV9wYXJzZV9mcm9tX2Zvcm1hdCkK QEAgLTI2NDQsNyArMjY0NCw3IEBACiB9CiAvKiB9fX0gKi8KIAotLyoge3t7IHByb3RvIHN0cmlu ZyBkYXRlX2Zvcm1hdChEYXRlVGltZSBvYmplY3QsIHN0cmluZyBmb3JtYXQpCisvKiB7e3sgcHJv dG8gc3RyaW5nIGRhdGVfZm9ybWF0KERhdGVUaW1lIG9iamVjdCwgc3RyaW5nIGZvcm1hdCkgVQog ICAgUmV0dXJucyBkYXRlIGZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gZ2l2ZW4gZm9ybWF0CiAqLwog UEhQX0ZVTkNUSU9OKGRhdGVfZm9ybWF0KQpAQCAtMjY2OCw3ICsyNjY4LDcgQEAKIH0KIC8qIH19 fSAqLwogCi0vKiB7e3sgcHJvdG8gc3RyaW5nIGRhdGVfZm9ybWF0X2xvY2FsZShEYXRlVGltZSBv YmplY3QsIHN0cmluZyBmb3JtYXQpCisvKiB7e3sgcHJvdG8gc3RyaW5nIGRhdGVfZm9ybWF0X2xv Y2FsZShEYXRlVGltZSBvYmplY3QsIHN0cmluZyBmb3JtYXQpIFUKICovCiBQSFBfRlVOQ1RJT04o ZGF0ZV9mb3JtYXRfbG9jYWxlKQogewpAQCAtMjY5MSw3ICsyNjkxLDcgQEAKIH0KIC8qIH19fSAq LwogCi0vKiB7e3sgcHJvdG8gdm9pZCBkYXRlX21vZGlmeShEYXRlVGltZSBvYmplY3QsIHN0cmlu ZyBtb2RpZnkpCisvKiB7e3sgcHJvdG8gdm9pZCBkYXRlX21vZGlmeShEYXRlVGltZSBvYmplY3Qs IHN0cmluZyBtb2RpZnkpIFUKICAgIEFsdGVycyB0aGUgdGltZXN0YW1wLgogKi8KIFBIUF9GVU5D VElPTihkYXRlX21vZGlmeSkKQEAgLTI3MjYsNyArMjcyNiw3IEBACiB9CiAvKiB9fX0gKi8KIAot Lyoge3t7IHByb3RvIHZvaWQgZGF0ZV9hZGQoRGF0ZVRpbWUgb2JqZWN0LCBEYXRlSW50ZXJ2YWwg aW50ZXJ2YWwpCisvKiB7e3sgcHJvdG8gdm9pZCBkYXRlX2FkZChEYXRlVGltZSBvYmplY3QsIERh dGVJbnRlcnZhbCBpbnRlcnZhbCkgVQogICAgQWRkcyBhbiBpbnRlcnZhbCB0byB0aGUgY3VycmVu dCBkYXRlIGluIG9iamVjdC4KICovCiBQSFBfRlVOQ1RJT04oZGF0ZV9hZGQpCkBAIC0yNzY0LDcg KzI3NjQsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byB2b2lkIGRhdGVfc3ViKERh dGVUaW1lIG9iamVjdCwgRGF0ZUludGVydmFsIGludGVydmFsKQorLyoge3t7IHByb3RvIHZvaWQg ZGF0ZV9zdWIoRGF0ZVRpbWUgb2JqZWN0LCBEYXRlSW50ZXJ2YWwgaW50ZXJ2YWwpIFUKICAgIFN1 YnRyYWN0cyBhbiBpbnRlcnZhbCB0byB0aGUgY3VycmVudCBkYXRlIGluIG9iamVjdC4KICovCiBQ SFBfRlVOQ1RJT04oZGF0ZV9zdWIpCkBAIC0yODAyLDcgKzI4MDIsNyBAQAogfQogLyogfX19ICov CiAKLS8qIHt7eyBwcm90byBEYXRlVGltZVpvbmUgZGF0ZV90aW1lem9uZV9nZXQoRGF0ZVRpbWUg b2JqZWN0KQorLyoge3t7IHByb3RvIERhdGVUaW1lWm9uZSBkYXRlX3RpbWV6b25lX2dldChEYXRl VGltZSBvYmplY3QpIFUKICAgIFJldHVybiBuZXcgRGF0ZVRpbWVab25lIG9iamVjdCByZWxhdGl2 ZSB0byBnaXZlIERhdGVUaW1lCiAqLwogUEhQX0ZVTkNUSU9OKGRhdGVfdGltZXpvbmVfZ2V0KQpA QCAtMjg2Nyw3ICsyODY3LDcgQEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gbG9uZyBk YXRlX29mZnNldF9nZXQoRGF0ZVRpbWUgb2JqZWN0KQorLyoge3t7IHByb3RvIGxvbmcgZGF0ZV9v ZmZzZXRfZ2V0KERhdGVUaW1lIG9iamVjdCkgVQogICAgUmV0dXJucyB0aGUgRFNUIG9mZnNldC4K ICovCiBQSFBfRlVOQ1RJT04oZGF0ZV9vZmZzZXRfZ2V0KQpAQCAtMjkwMiw3ICsyOTAyLDcgQEAK IH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gdm9pZCBkYXRlX3RpbWVfc2V0KERhdGVUaW1l IG9iamVjdCwgbG9uZyBob3VyLCBsb25nIG1pbnV0ZVssIGxvbmcgc2Vjb25kXSkKKy8qIHt7eyBw cm90byB2b2lkIGRhdGVfdGltZV9zZXQoRGF0ZVRpbWUgb2JqZWN0LCBsb25nIGhvdXIsIGxvbmcg bWludXRlWywgbG9uZyBzZWNvbmRdKSBVCiAgICBTZXRzIHRoZSB0aW1lLgogKi8KIFBIUF9GVU5D VElPTihkYXRlX3RpbWVfc2V0KQpAQCAtMjkyMyw3ICsyOTIzLDcgQEAKIH0KIC8qIH19fSAqLwog Ci0vKiB7e3sgcHJvdG8gdm9pZCBkYXRlX2RhdGVfc2V0KERhdGVUaW1lIG9iamVjdCwgbG9uZyB5 ZWFyLCBsb25nIG1vbnRoLCBsb25nIGRheSkKKy8qIHt7eyBwcm90byB2b2lkIGRhdGVfZGF0ZV9z ZXQoRGF0ZVRpbWUgb2JqZWN0LCBsb25nIHllYXIsIGxvbmcgbW9udGgsIGxvbmcgZGF5KSBVCiAg ICBTZXRzIHRoZSBkYXRlLgogKi8KIFBIUF9GVU5DVElPTihkYXRlX2RhdGVfc2V0KQpAQCAtMjk0 NCw3ICsyOTQ0LDcgQEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gdm9pZCBkYXRlX2lz b2RhdGVfc2V0KERhdGVUaW1lIG9iamVjdCwgbG9uZyB5ZWFyLCBsb25nIHdlZWtbLCBsb25nIGRh eV0pCisvKiB7e3sgcHJvdG8gdm9pZCBkYXRlX2lzb2RhdGVfc2V0KERhdGVUaW1lIG9iamVjdCwg bG9uZyB5ZWFyLCBsb25nIHdlZWtbLCBsb25nIGRheV0pIFUKICAgIFNldHMgdGhlIElTTyBkYXRl LgogKi8KIFBIUF9GVU5DVElPTihkYXRlX2lzb2RhdGVfc2V0KQpAQCAtMjk2OCw3ICsyOTY4LDcg QEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gdm9pZCBkYXRlX3RpbWVzdGFtcF9zZXQo RGF0ZVRpbWUgb2JqZWN0LCBsb25nIHVuaXhUaW1lc3RhbXApCisvKiB7e3sgcHJvdG8gdm9pZCBk YXRlX3RpbWVzdGFtcF9zZXQoRGF0ZVRpbWUgb2JqZWN0LCBsb25nIHVuaXhUaW1lc3RhbXApIFUK ICAgIFNldHMgdGhlIGRhdGUgYW5kIHRpbWUgYmFzZWQgb24gYW4gVW5peCB0aW1lc3RhbXAuCiAq LwogUEhQX0ZVTkNUSU9OKGRhdGVfdGltZXN0YW1wX3NldCkKQEAgLTI5ODcsNyArMjk4Nyw3IEBA CiB9CiAvKiB9fX0gKi8KIAotLyoge3t7IHByb3RvIGxvbmcgZGF0ZV90aW1lc3RhbXBfZ2V0KERh dGVUaW1lIG9iamVjdCkKKy8qIHt7eyBwcm90byBsb25nIGRhdGVfdGltZXN0YW1wX2dldChEYXRl VGltZSBvYmplY3QpIFUKICAgIEdldHMgdGhlIFVuaXggdGltZXN0YW1wLgogKi8KIFBIUF9GVU5D VElPTihkYXRlX3RpbWVzdGFtcF9nZXQpCkBAIC0zMDEzLDcgKzMwMTMsNyBAQAogfQogLyogfX19 ICovCiAKLS8qIHt7eyBwcm90byBEYXRlSW50ZXJ2YWwgZGF0ZV9kaWZmKERhdGVUaW1lIG9iamVj dCBbLCBib29sIGFic29sdXRlXSkKKy8qIHt7eyBwcm90byBEYXRlSW50ZXJ2YWwgZGF0ZV9kaWZm KERhdGVUaW1lIG9iamVjdCBbLCBib29sIGFic29sdXRlXSkgVQogICAgUmV0dXJucyB0aGUgZGlm ZmVyZW5jZSBiZXR3ZWVuIHR3byBEYXRlVGltZSBvYmplY3RzLgogKi8KIFBIUF9GVU5DVElPTihk YXRlX2RpZmYpCkBAIC0zMDYzLDcgKzMwNjMsNyBAQAogCX0KIH0KIAotLyoge3t7IHByb3RvIERh dGVUaW1lWm9uZSB0aW1lem9uZV9vcGVuKHN0cmluZyB0aW1lem9uZSkKKy8qIHt7eyBwcm90byBE YXRlVGltZVpvbmUgdGltZXpvbmVfb3BlbihzdHJpbmcgdGltZXpvbmUpIFUKICAgIFJldHVybnMg bmV3IERhdGVUaW1lWm9uZSBvYmplY3QKICovCiBQSFBfRlVOQ1RJT04odGltZXpvbmVfb3BlbikK QEAgLTMxMTEsNyArMzExMSw3IEBACiB9CiAvKiB9fX0gKi8KIAotLyoge3t7IHByb3RvIHN0cmlu ZyB0aW1lem9uZV9uYW1lX2dldChEYXRlVGltZVpvbmUgb2JqZWN0KQorLyoge3t7IHByb3RvIHN0 cmluZyB0aW1lem9uZV9uYW1lX2dldChEYXRlVGltZVpvbmUgb2JqZWN0KSBVCiAgICBSZXR1cm5z IHRoZSBuYW1lIG9mIHRoZSB0aW1lem9uZS4KICovCiBQSFBfRlVOQ1RJT04odGltZXpvbmVfbmFt ZV9nZXQpCkBAIC0zMTM4LDcgKzMxMzgsNyBAQAogCQkJCWFicyh1dGNfb2Zmc2V0IC8gNjApLAog CQkJCWFicygodXRjX29mZnNldCAlIDYwKSkpOwogCi0JCQlSRVRVUk5fQVNDSUlfU1RSSU5HKHRt cHN0ciwgMCk7CisJCQlSRVRVUk5fQVNDSUlfU1RSSU5HKHRtcHN0ciwgWlNUUl9BVVRPRlJFRSk7 CiAJCQl9CiAJCQlicmVhazsKIAkJY2FzZSBUSU1FTElCX1pPTkVUWVBFX0FCQlI6CkBAIC0zMTQ4 LDcgKzMxNDgsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byBzdHJpbmcgdGltZXpv bmVfbmFtZV9mcm9tX2FiYnIoc3RyaW5nIGFiYnJbLCBsb25nIGdtdE9mZnNldFssIGxvbmcgaXNk c3RdXSkKKy8qIHt7eyBwcm90byBzdHJpbmcgdGltZXpvbmVfbmFtZV9mcm9tX2FiYnIoc3RyaW5n IGFiYnJbLCBsb25nIGdtdE9mZnNldFssIGxvbmcgaXNkc3RdXSkgVQogICAgUmV0dXJucyB0aGUg dGltZXpvbmUgbmFtZSBmcm9tIGFiYnJldmF0aW9uCiAqLwogUEhQX0ZVTkNUSU9OKHRpbWV6b25l X25hbWVfZnJvbV9hYmJyKQpAQCAtMzE2NSwxNCArMzE2NSwxNCBAQAogCXR6aWQgPSB0aW1lbGli X3RpbWV6b25lX2lkX2Zyb21fYWJicihhYmJyLCBnbXRvZmZzZXQsIGlzZHN0KTsKIAogCWlmICh0 emlkKSB7Ci0JCVJFVFVSTl9TVFJJTkcodHppZCwgMSk7CisJCVJFVFVSTl9BU0NJSV9TVFJJTkco dHppZCwgMSk7CiAJfSBlbHNlIHsKIAkJUkVUVVJOX0ZBTFNFOwogCX0KIH0KIC8qIH19fSAqLwog Ci0vKiB7e3sgcHJvdG8gbG9uZyB0aW1lem9uZV9vZmZzZXRfZ2V0KERhdGVUaW1lWm9uZSBvYmpl Y3QsIERhdGVUaW1lIG9iamVjdCkKKy8qIHt7eyBwcm90byBsb25nIHRpbWV6b25lX29mZnNldF9n ZXQoRGF0ZVRpbWVab25lIG9iamVjdCwgRGF0ZVRpbWUgb2JqZWN0KSBVCiAgICBSZXR1cm5zIHRo ZSB0aW1lem9uZSBvZmZzZXQuCiAqLwogUEhQX0ZVTkNUSU9OKHRpbWV6b25lX29mZnNldF9nZXQp CkBAIC0zMjA2LDcgKzMyMDYsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byBhcnJh eSB0aW1lem9uZV90cmFuc2l0aW9uc19nZXQoRGF0ZVRpbWVab25lIG9iamVjdCBbLCBsb25nIHRp bWVzdGFtcF9iZWdpbiBbLCBsb25nIHRpbWVzdGFtcF9lbmQgXV0pCisvKiB7e3sgcHJvdG8gYXJy YXkgdGltZXpvbmVfdHJhbnNpdGlvbnNfZ2V0KERhdGVUaW1lWm9uZSBvYmplY3QgWywgbG9uZyB0 aW1lc3RhbXBfYmVnaW4gWywgbG9uZyB0aW1lc3RhbXBfZW5kIF1dKSBVCiAgICBSZXR1cm5zIG51 bWVyaWNhbGx5IGluZGV4ZWQgYXJyYXkgY29udGFpbmluZyBhc3NvY2lhdGl2ZSBhcnJheSBmb3Ig YWxsIHRyYW5zaXRpb25zIGluIHRoZSBzcGVjaWZpZWQgcmFuZ2UgZm9yIHRoZSB0aW1lem9uZS4K ICovCiBQSFBfRlVOQ1RJT04odGltZXpvbmVfdHJhbnNpdGlvbnNfZ2V0KQpAQCAtMzIzNiw3ICsz MjM2LDcgQEAKIAkJfSBcCiAJCWFkZF9hc2NpaV9hc3NvY19sb25nKGVsZW1lbnQsICJvZmZzZXQi LCB0em9iai0+dHppLnR6LT50eXBlWzBdLm9mZnNldCk7IFwKIAkJYWRkX2FzY2lpX2Fzc29jX2Jv b2woZWxlbWVudCwgImlzZHN0IiwgIHR6b2JqLT50emkudHotPnR5cGVbMF0uaXNkc3QpOyBcCi0J CWFkZF9hc2NpaV9hc3NvY19zdHJpbmcoZWxlbWVudCwgImFiYnIiLCAmdHpvYmotPnR6aS50ei0+ dGltZXpvbmVfYWJiclt0em9iai0+dHppLnR6LT50eXBlWzBdLmFiYnJfaWR4XSwgMSk7IFwKKwkJ YWRkX2FzY2lpX2Fzc29jX2FzY2lpX3N0cmluZyhlbGVtZW50LCAiYWJiciIsICZ0em9iai0+dHpp LnR6LT50aW1lem9uZV9hYmJyW3R6b2JqLT50emkudHotPnR5cGVbMF0uYWJicl9pZHhdLCAxKTsg XAogCQlhZGRfbmV4dF9pbmRleF96dmFsKHJldHVybl92YWx1ZSwgZWxlbWVudCk7CiAKICNkZWZp bmUgYWRkKGksdHMpIFwKQEAgLTMyNTAsNyArMzI1MCw3IEBACiAJCX0gXAogCQlhZGRfYXNjaWlf YXNzb2NfbG9uZyhlbGVtZW50LCAib2Zmc2V0IiwgdHpvYmotPnR6aS50ei0+dHlwZVt0em9iai0+ dHppLnR6LT50cmFuc19pZHhbaV1dLm9mZnNldCk7IFwKIAkJYWRkX2FzY2lpX2Fzc29jX2Jvb2wo ZWxlbWVudCwgImlzZHN0IiwgIHR6b2JqLT50emkudHotPnR5cGVbdHpvYmotPnR6aS50ei0+dHJh bnNfaWR4W2ldXS5pc2RzdCk7IFwKLQkJYWRkX2FzY2lpX2Fzc29jX3N0cmluZyhlbGVtZW50LCAi YWJiciIsICZ0em9iai0+dHppLnR6LT50aW1lem9uZV9hYmJyW3R6b2JqLT50emkudHotPnR5cGVb dHpvYmotPnR6aS50ei0+dHJhbnNfaWR4W2ldXS5hYmJyX2lkeF0sIDEpOyBcCisJCWFkZF9hc2Np aV9hc3NvY19hc2NpaV9zdHJpbmcoZWxlbWVudCwgImFiYnIiLCAmdHpvYmotPnR6aS50ei0+dGlt ZXpvbmVfYWJiclt0em9iai0+dHppLnR6LT50eXBlW3R6b2JqLT50emkudHotPnRyYW5zX2lkeFtp XV0uYWJicl9pZHhdLCAxKTsgXAogCQlhZGRfbmV4dF9pbmRleF96dmFsKHJldHVybl92YWx1ZSwg ZWxlbWVudCk7CiAKICNkZWZpbmUgYWRkX2xhc3QoKSBhZGQodHpvYmotPnR6aS50ei0+dGltZWNu dCAtIDEsIHRpbWVzdGFtcF9iZWdpbikKQEAgLTM1MTQsNyArMzUxNCw3IEBACiB9CiAvKiB9fX0g Ki8KIAotLyoge3t7IHByb3RvIHN0cmluZyBkYXRlX2ludGVydmFsX2Zvcm1hdChEYXRlSW50ZXJ2 YWwgb2JqZWN0KQorLyoge3t7IHByb3RvIHN0cmluZyBkYXRlX2ludGVydmFsX2Zvcm1hdChEYXRl SW50ZXJ2YWwgb2JqZWN0LCBzdHJpbmcgZm9ybWF0KSBVCiAgICBGb3JtYXRzIHRoZSBpbnRlcnZh bC4KICovCiBQSFBfRlVOQ1RJT04oZGF0ZV9pbnRlcnZhbF9mb3JtYXQpCkBAIC0zNTMwLDcgKzM1 MzAsNyBAQAogCWRpb2JqID0gKHBocF9pbnRlcnZhbF9vYmogKikgemVuZF9vYmplY3Rfc3RvcmVf Z2V0X29iamVjdChvYmplY3QgVFNSTUxTX0NDKTsKIAlEQVRFX0NIRUNLX0lOSVRJQUxJWkVEKGRp b2JqLT5pbml0aWFsaXplZCwgRGF0ZUludGVydmFsKTsKIAotCVJFVFVSTl9TVFJJTkcoZGF0ZV9p bnRlcnZhbF9mb3JtYXQoZm9ybWF0LCBmb3JtYXRfbGVuLCBkaW9iai0+ZGlmZiksIDApOworCVJF VFVSTl9BU0NJSV9TVFJJTkcoZGF0ZV9pbnRlcnZhbF9mb3JtYXQoZm9ybWF0LCBmb3JtYXRfbGVu LCBkaW9iai0+ZGlmZiksIFpTVFJfQVVUT0ZSRUUpOwogfQogLyogfX19ICovCiAKQEAgLTM2NjEs NyArMzY2MSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qIHt7eyBwcm90byBhcnJheSB0aW1lem9u ZV9pZGVudGlmaWVyc19saXN0KFtsb25nIHdoYXRdKQorLyoge3t7IHByb3RvIGFycmF5IHRpbWV6 b25lX2lkZW50aWZpZXJzX2xpc3QoW2xvbmcgd2hhdF0pIFUKICAgIFJldHVybnMgbnVtZXJpY2Fs bHkgaW5kZXggYXJyYXkgd2l0aCBhbGwgdGltZXpvbmUgaWRlbnRpZmllcnMuCiAqLwogUEhQX0ZV TkNUSU9OKHRpbWV6b25lX2lkZW50aWZpZXJzX2xpc3QpCkBAIC0zNjgzLDEzICszNjgzLDEzIEBA CiAKIAlmb3IgKGkgPSAwOyBpIDwgaXRlbV9jb3VudDsgKytpKSB7CiAJCWlmICh3aGF0ID09IFBI UF9EQVRFX1RJTUVaT05FX0dST1VQX0FMTF9XX0JDIHx8IGNoZWNrX2lkX2FsbG93ZWQodGFibGVb aV0uaWQsIHdoYXQpKSB7Ci0JCQlhZGRfbmV4dF9pbmRleF9zdHJpbmcocmV0dXJuX3ZhbHVlLCB0 YWJsZVtpXS5pZCwgMSk7CisJCQlhZGRfbmV4dF9pbmRleF9hc2NpaV9zdHJpbmcocmV0dXJuX3Zh bHVlLCB0YWJsZVtpXS5pZCwgMSk7CiAJCX0KIAl9OwogfQogLyogfX19ICovCiAKLS8qIHt7eyBw cm90byBhcnJheSB0aW1lem9uZV9hYmJyZXZpYXRpb25zX2xpc3QoKQorLyoge3t7IHByb3RvIGFy cmF5IHRpbWV6b25lX2FiYnJldmlhdGlvbnNfbGlzdCgpIFUKICAgIFJldHVybnMgYXNzb2NpYXRp dmUgYXJyYXkgY29udGFpbmluZyBkc3QsIG9mZnNldCBhbmQgdGhlIHRpbWV6b25lIG5hbWUKICov CiBQSFBfRlVOQ1RJT04odGltZXpvbmVfYWJicmV2aWF0aW9uc19saXN0KQpAQCAtMzcyNSw3ICsz NzI1LDcgQEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gYm9vbCBkYXRlX2RlZmF1bHRf dGltZXpvbmVfc2V0KHN0cmluZyB0aW1lem9uZV9pZGVudGlmaWVyKQorLyoge3t7IHByb3RvIGJv b2wgZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldChzdHJpbmcgdGltZXpvbmVfaWRlbnRpZmllcikg VQogICAgU2V0cyB0aGUgZGVmYXVsdCB0aW1lem9uZSB1c2VkIGJ5IGFsbCBkYXRlL3RpbWUgZnVu Y3Rpb25zIGluIGEgc2NyaXB0ICovCiBQSFBfRlVOQ1RJT04oZGF0ZV9kZWZhdWx0X3RpbWV6b25l X3NldCkKIHsKQEAgLTM3NDgsNyArMzc0OCw3IEBACiB9CiAvKiB9fX0gKi8KIAotLyoge3t7IHBy b3RvIHN0cmluZyBkYXRlX2RlZmF1bHRfdGltZXpvbmVfZ2V0KCkKKy8qIHt7eyBwcm90byBzdHJp bmcgZGF0ZV9kZWZhdWx0X3RpbWV6b25lX2dldCgpIFUKICAgIEdldHMgdGhlIGRlZmF1bHQgdGlt ZXpvbmUgdXNlZCBieSBhbGwgZGF0ZS90aW1lIGZ1bmN0aW9ucyBpbiBhIHNjcmlwdCAqLwogUEhQ X0ZVTkNUSU9OKGRhdGVfZGVmYXVsdF90aW1lem9uZV9nZXQpCiB7CkBAIC0zODQ2LDcgKzM4NDYs NyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byBtaXhlZCBkYXRlX3N1bnJpc2UobWl4 ZWQgdGltZSBbLCBpbnQgZm9ybWF0IFssIGZsb2F0IGxhdGl0dWRlIFssIGZsb2F0IGxvbmdpdHVk ZSBbLCBmbG9hdCB6ZW5pdGggWywgZmxvYXQgZ210X29mZnNldF1dXV1dKQorLyoge3t7IHByb3Rv IG1peGVkIGRhdGVfc3VucmlzZShtaXhlZCB0aW1lIFssIGludCBmb3JtYXQgWywgZmxvYXQgbGF0 aXR1ZGUgWywgZmxvYXQgbG9uZ2l0dWRlIFssIGZsb2F0IHplbml0aCBbLCBmbG9hdCBnbXRfb2Zm c2V0XV1dXV0pIFUKICAgIFJldHVybnMgdGltZSBvZiBzdW5yaXNlIGZvciBhIGdpdmVuIGRheSBh bmQgbG9jYXRpb24gKi8KIFBIUF9GVU5DVElPTihkYXRlX3N1bnJpc2UpCiB7CkBAIC0zODU0LDcg KzM4NTQsNyBAQAogfQogLyogfX19ICovCiAKLS8qIHt7eyBwcm90byBtaXhlZCBkYXRlX3N1bnNl dChtaXhlZCB0aW1lIFssIGludCBmb3JtYXQgWywgZmxvYXQgbGF0aXR1ZGUgWywgZmxvYXQgbG9u Z2l0dWRlIFssIGZsb2F0IHplbml0aCBbLCBmbG9hdCBnbXRfb2Zmc2V0XV1dXV0pCisvKiB7e3sg cHJvdG8gbWl4ZWQgZGF0ZV9zdW5zZXQobWl4ZWQgdGltZSBbLCBpbnQgZm9ybWF0IFssIGZsb2F0 IGxhdGl0dWRlIFssIGZsb2F0IGxvbmdpdHVkZSBbLCBmbG9hdCB6ZW5pdGggWywgZmxvYXQgZ210 X29mZnNldF1dXV1dKSBVCiAgICBSZXR1cm5zIHRpbWUgb2Ygc3Vuc2V0IGZvciBhIGdpdmVuIGRh eSBhbmQgbG9jYXRpb24gKi8KIFBIUF9GVU5DVElPTihkYXRlX3N1bnNldCkKIHsKQEAgLTM4NjIs NyArMzg2Miw3IEBACiB9CiAvKiB9fX0gKi8KIAotLyoge3t7IHByb3RvIGFycmF5IGRhdGVfc3Vu X2luZm8obG9uZyB0aW1lLCBmbG9hdCBsYXRpdHVkZSwgZmxvYXQgbG9uZ2l0dWRlKQorLyoge3t7 IHByb3RvIGFycmF5IGRhdGVfc3VuX2luZm8obG9uZyB0aW1lLCBmbG9hdCBsYXRpdHVkZSwgZmxv YXQgbG9uZ2l0dWRlKSBVCiAgICBSZXR1cm5zIGFuIGFycmF5IHdpdGggaW5mb3JtYXRpb24gYWJv dXQgc3VuIHNldC9yaXNlIGFuZCB0d2lsaWdodCBiZWdpbi9lbmQgKi8KIFBIUF9GVU5DVElPTihk YXRlX3N1bl9pbmZvKQogewo= ------=_Part_9956_3542540.1212819920055 Content-Type: text/plain; name=exif-2008-05-29.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fh5cf04s3 Content-Disposition: attachment; filename=exif-2008-05-29.patch.txt SW5kZXg6IGV4dC9leGlmL2V4aWYuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9w aHAtc3JjL2V4dC9leGlmL2V4aWYuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMDEKZGlmZiAt dSAtcjEuMjAxIGV4aWYuYwotLS0gZXh0L2V4aWYvZXhpZi5jCTEyIE1hciAyMDA4IDE3OjMyOjI2 IC0wMDAwCTEuMjAxCisrKyBleHQvZXhpZi9leGlmLmMJMzAgTWF5IDIwMDggMjI6NDQ6MDQgLTAw MDAKQEAgLTE5NzAsNyArMTk3MCw3IEBACiAvKgkJcGhwX2Vycm9yX2RvY3JlZihOVUxMIFRTUk1M U19DQywgRV9OT1RJQ0UsICJBZGRpbmcgaW5mb3M6IHRhZygweCUwNFgsJTEycyxMPTB4JTA0WCk6 ICVzIiwgaW5mb190YWcsIGV4aWZfZ2V0X3RhZ25hbWUoaW5mb190YWcsIGJ1ZmZlciwgLTEyLCBl eGlmX2dldF90YWdfdGFibGUoc2VjdGlvbl9pbmRleCkgVFNSTUxTX0NDKSwgaW5mb19kYXRhLT5s ZW5ndGgsIGluZm9fZGF0YS0+Zm9ybWF0PT1UQUdfRk1UX1NUUklORz8oaW5mb192YWx1ZSYmaW5m b192YWx1ZS0+cz9pbmZvX3ZhbHVlLT5zOiI8bm8gZGF0YT4iKTpleGlmX2dldF90YWdmb3JtYXQo aW5mb19kYXRhLT5mb3JtYXQpKTsqLwogI2VuZGlmCiAJCQlpZiAoaW5mb19kYXRhLT5sZW5ndGg9 PTApIHsKLQkJCQlhZGRfYXNzb2NfbnVsbCh0bXBpLCBuYW1lKTsKKwkJCQlhZGRfYXNjaWlfYXNz b2NfbnVsbCh0bXBpLCBuYW1lKTsKIAkJCX0gZWxzZSB7CiAJCQkJc3dpdGNoIChpbmZvX2RhdGEt PmZvcm1hdCkgewogCQkJCQlkZWZhdWx0OgpAQCAtMTk4Myw5ICsxOTgzLDkgQEAKIAkJCQkJY2Fz ZSBUQUdfRk1UX1NCWVRFOgogCQkJCQljYXNlIFRBR19GTVRfVU5ERUZJTkVEOgogCQkJCQkJaWYg KCFpbmZvX3ZhbHVlLT5zKSB7Ci0JCQkJCQkJYWRkX2Fzc29jX3N0cmluZ2wodG1waSwgbmFtZSwg IiIsIDAsIDEpOworCQkJCQkJCWFkZF9hc2NpaV9hc3NvY19hc2NpaV9zdHJpbmdsKHRtcGksIG5h bWUsICIiLCAwLCAxKTsKIAkJCQkJCX0gZWxzZSB7Ci0JCQkJCQkJYWRkX2Fzc29jX3N0cmluZ2wo dG1waSwgbmFtZSwgaW5mb192YWx1ZS0+cywgaW5mb19kYXRhLT5sZW5ndGgsIDEpOworCQkJCQkJ CWFkZF9hc2NpaV9hc3NvY19hc2NpaV9zdHJpbmdsKHRtcGksIG5hbWUsIGluZm9fdmFsdWUtPnMs IGluZm9fZGF0YS0+bGVuZ3RoLCAxKTsKIAkJCQkJCX0KIAkJCQkJCWJyZWFrOwogCkBAIC0xOTk0 LDkgKzE5OTQsOSBAQAogCQkJCQkJCXZhbCA9ICIiOwogCQkJCQkJfQogCQkJCQkJaWYgKHNlY3Rp b25faW5kZXg9PVNFQ1RJT05fQ09NTUVOVCkgewotCQkJCQkJCWFkZF9pbmRleF9zdHJpbmcodG1w aSwgaWR4KyssIHZhbCwgMSk7CisJCQkJCQkJYWRkX2luZGV4X2FzY2lpX3N0cmluZyh0bXBpLCBp ZHgrKywgdmFsLCAxKTsKIAkJCQkJCX0gZWxzZSB7Ci0JCQkJCQkJYWRkX2Fzc29jX3N0cmluZyh0 bXBpLCBuYW1lLCB2YWwsIDEpOworCQkJCQkJCWFkZF9hc2NpaV9hc3NvY19hc2NpaV9zdHJpbmco dG1waSwgbmFtZSwgdmFsLCAxKTsKIAkJCQkJCX0KIAkJCQkJCWJyZWFrOwogCkBAIC0yMDMyLDcg KzIwMzIsNyBAQAogCQkJCQkJCQljYXNlIFRBR19GTVRfVVNIT1JUOgogCQkJCQkJCQljYXNlIFRB R19GTVRfVUxPTkc6CiAJCQkJCQkJCQlpZiAobD09MSkgewotCQkJCQkJCQkJCWFkZF9hc3NvY19s b25nKHRtcGksIG5hbWUsIChpbnQpaW5mb192YWx1ZS0+dSk7CisJCQkJCQkJCQkJYWRkX2FzY2lp X2Fzc29jX2xvbmcodG1waSwgbmFtZSwgKGludClpbmZvX3ZhbHVlLT51KTsKIAkJCQkJCQkJCX0g ZWxzZSB7CiAJCQkJCQkJCQkJYWRkX2luZGV4X2xvbmcoYXJyYXksIGFwLCAoaW50KWluZm9fdmFs dWUtPnUpOwogCQkJCQkJCQkJfQpAQCAtMjA0MSw5ICsyMDQxLDkgQEAKIAkJCQkJCQkJY2FzZSBU QUdfRk1UX1VSQVRJT05BTDoKIAkJCQkJCQkJCXNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZl ciksICIlaS8laSIsIGluZm9fdmFsdWUtPnVyLm51bSwgaW5mb192YWx1ZS0+dXIuZGVuKTsKIAkJ CQkJCQkJCWlmIChsPT0xKSB7Ci0JCQkJCQkJCQkJYWRkX2Fzc29jX3N0cmluZyh0bXBpLCBuYW1l LCBidWZmZXIsIDEpOworCQkJCQkJCQkJCWFkZF9hc2NpaV9hc3NvY19hc2NpaV9zdHJpbmcodG1w aSwgbmFtZSwgYnVmZmVyLCAxKTsKIAkJCQkJCQkJCX0gZWxzZSB7Ci0JCQkJCQkJCQkJYWRkX2lu ZGV4X3N0cmluZyhhcnJheSwgYXAsIGJ1ZmZlciwgMSk7CisJCQkJCQkJCQkJYWRkX2luZGV4X2Fz Y2lpX3N0cmluZyhhcnJheSwgYXAsIGJ1ZmZlciwgMSk7CiAJCQkJCQkJCQl9CiAJCQkJCQkJCQli cmVhazsKIApAQCAtMjA1OCw3ICsyMDU4LDcgQEAKIAkJCQkJCQkJY2FzZSBUQUdfRk1UX1NTSE9S VDoKIAkJCQkJCQkJY2FzZSBUQUdfRk1UX1NMT05HOgogCQkJCQkJCQkJaWYgKGw9PTEpIHsKLQkJ CQkJCQkJCQlhZGRfYXNzb2NfbG9uZyh0bXBpLCBuYW1lLCBpbmZvX3ZhbHVlLT5pKTsKKwkJCQkJ CQkJCQlhZGRfYXNjaWlfYXNzb2NfbG9uZyh0bXBpLCBuYW1lLCBpbmZvX3ZhbHVlLT5pKTsKIAkJ CQkJCQkJCX0gZWxzZSB7CiAJCQkJCQkJCQkJYWRkX2luZGV4X2xvbmcoYXJyYXksIGFwLCBpbmZv X3ZhbHVlLT5pKTsKIAkJCQkJCQkJCX0KQEAgLTIwNjcsMTUgKzIwNjcsMTUgQEAKIAkJCQkJCQkJ Y2FzZSBUQUdfRk1UX1NSQVRJT05BTDoKIAkJCQkJCQkJCXNucHJpbnRmKGJ1ZmZlciwgc2l6ZW9m KGJ1ZmZlciksICIlaS8laSIsIGluZm9fdmFsdWUtPnNyLm51bSwgaW5mb192YWx1ZS0+c3IuZGVu KTsKIAkJCQkJCQkJCWlmIChsPT0xKSB7Ci0JCQkJCQkJCQkJYWRkX2Fzc29jX3N0cmluZyh0bXBp LCBuYW1lLCBidWZmZXIsIDEpOworCQkJCQkJCQkJCWFkZF9hc2NpaV9hc3NvY19hc2NpaV9zdHJp bmcodG1waSwgbmFtZSwgYnVmZmVyLCAxKTsKIAkJCQkJCQkJCX0gZWxzZSB7Ci0JCQkJCQkJCQkJ YWRkX2luZGV4X3N0cmluZyhhcnJheSwgYXAsIGJ1ZmZlciwgMSk7CisJCQkJCQkJCQkJYWRkX2lu ZGV4X2FzY2lpX3N0cmluZyhhcnJheSwgYXAsIGJ1ZmZlciwgMSk7CiAJCQkJCQkJCQl9CiAJCQkJ CQkJCQlicmVhazsKIAogCQkJCQkJCQljYXNlIFRBR19GTVRfU0lOR0xFOgogCQkJCQkJCQkJaWYg KGw9PTEpIHsKLQkJCQkJCQkJCQlhZGRfYXNzb2NfZG91YmxlKHRtcGksIG5hbWUsIGluZm9fdmFs dWUtPmYpOworCQkJCQkJCQkJCWFkZF9hc2NpaV9hc3NvY19kb3VibGUodG1waSwgbmFtZSwgaW5m b192YWx1ZS0+Zik7CiAJCQkJCQkJCQl9IGVsc2UgewogCQkJCQkJCQkJCWFkZF9pbmRleF9kb3Vi bGUoYXJyYXksIGFwLCBpbmZvX3ZhbHVlLT5mKTsKIAkJCQkJCQkJCX0KQEAgLTIwODMsNyArMjA4 Myw3IEBACiAKIAkJCQkJCQkJY2FzZSBUQUdfRk1UX0RPVUJMRToKIAkJCQkJCQkJCWlmIChsPT0x KSB7Ci0JCQkJCQkJCQkJYWRkX2Fzc29jX2RvdWJsZSh0bXBpLCBuYW1lLCBpbmZvX3ZhbHVlLT5k KTsKKwkJCQkJCQkJCQlhZGRfYXNjaWlfYXNzb2NfZG91YmxlKHRtcGksIG5hbWUsIGluZm9fdmFs dWUtPmQpOwogCQkJCQkJCQkJfSBlbHNlIHsKIAkJCQkJCQkJCQlhZGRfaW5kZXhfZG91YmxlKGFy cmF5LCBhcCwgaW5mb192YWx1ZS0+ZCk7CiAJCQkJCQkJCQl9CkBAIC0yMDkyLDE0ICsyMDkyLDE0 IEBACiAJCQkJCQkJaW5mb192YWx1ZSA9ICZpbmZvX2RhdGEtPnZhbHVlLmxpc3RbYXBdOwogCQkJ CQkJfQogCQkJCQkJaWYgKGw+MSkgewotCQkJCQkJCWFkZF9hc3NvY196dmFsKHRtcGksIG5hbWUs IGFycmF5KTsKKwkJCQkJCQlhZGRfYXNjaWlfYXNzb2NfenZhbCh0bXBpLCBuYW1lLCBhcnJheSk7 CiAJCQkJCQl9CiAJCQkJCQlicmVhazsKIAkJCQl9CiAJCQl9CiAJCX0KIAkJaWYgKHN1Yl9hcnJh eSkgewotCQkJYWRkX2Fzc29jX3p2YWwodmFsdWUsIGV4aWZfZ2V0X3NlY3Rpb25uYW1lKHNlY3Rp b25faW5kZXgpLCB0bXBpKTsKKwkJCWFkZF9hc2NpaV9hc3NvY196dmFsKHZhbHVlLCBleGlmX2dl dF9zZWN0aW9ubmFtZShzZWN0aW9uX2luZGV4KSwgdG1waSk7CiAJCX0KIAl9CiB9CkBAIC0yMzM1 LDI1ICsyMzM1LDIyIEBACiAjZW5kaWYKIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gc3RyaW5n IGV4aWZfdGFnbmFtZShpbmRleCkKKy8qIHt7eyBwcm90byBzdHJpbmcgZXhpZl90YWduYW1lKGxv bmcgaW5kZXgpIFUKIAlHZXQgaGVhZGVybmFtZSBmb3IgaW5kZXggb3IgZmFsc2UgaWYgbm90IGRl ZmluZWQgKi8KIFBIUF9GVU5DVElPTihleGlmX3RhZ25hbWUpCiB7Ci0JenZhbCAqKnBfbnVtOwot CWludCB0YWcsIGFjID0gWkVORF9OVU1fQVJHUygpOworCWxvbmcgIHRhZzsKIAljaGFyICpzelRl bXA7CiAKLQlpZiAoKGFjIDwgMSB8fCBhYyA+IDEpIHx8IHplbmRfZ2V0X3BhcmFtZXRlcnNfZXgo YWMsICZwX251bSkgPT0gRkFJTFVSRSkgewotCQlXUk9OR19QQVJBTV9DT1VOVDsKKwlpZiAoemVu ZF9wYXJzZV9tZXRob2RfcGFyYW1ldGVycyhaRU5EX05VTV9BUkdTKCkgVFNSTUxTX0NDLCBnZXRU aGlzKCksICJsIiwgJnRhZykgPT0gRkFJTFVSRSkgeworCQlyZXR1cm47CiAJfQogCi0JY29udmVy dF90b19sb25nX2V4KHBfbnVtKTsKLQl0YWcgPSBaX0xWQUxfUFAocF9udW0pOwogCXN6VGVtcCA9 IGV4aWZfZ2V0X3RhZ25hbWUodGFnLCBOVUxMLCAwLCB0YWdfdGFibGVfSUZEIFRTUk1MU19DQyk7 CiAJaWYgKHRhZzwwIHx8ICFzelRlbXAgfHwgIXN6VGVtcFswXSkgewogCQlSRVRVUk5fQk9PTChG QUxTRSk7CiAJfSBlbHNlIHsKLQkJUkVUVVJOX1NUUklORyhzelRlbXAsIDEpCisJCVJFVFVSTl9B U0NJSV9TVFJJTkcoc3pUZW1wLCAxKQogCX0KIH0KIC8qIH19fSAqLwpAQCAtMzg5MywyMiArMzg5 MCwyNCBAQAogICAgUmVhZHMgaGVhZGVyIGRhdGEgZnJvbSB0aGUgSlBFRy9USUZGIGltYWdlIGZp bGVuYW1lIGFuZCBvcHRpb25hbGx5IHJlYWRzIHRoZSBpbnRlcm5hbCB0aHVtYm5haWxzICovCiBQ SFBfRlVOQ1RJT04oZXhpZl9yZWFkX2RhdGEpCiB7Ci0JenZhbCAqKnBfbmFtZSwgKipwX3NlY3Rp b25zX25lZWRlZCwgKipwX3N1Yl9hcnJheXMsICoqcF9yZWFkX3RodW1ibmFpbCwgKipwX3JlYWRf YWxsOworCXp2YWwgKipwX25hbWUsICoqcF9yZWFkX2FsbDsKIAlpbnQgaSwgYWMgPSBaRU5EX05V TV9BUkdTKCksIHJldCwgc2VjdGlvbnNfbmVlZGVkPTAsIHN1Yl9hcnJheXM9MCwgcmVhZF90aHVt Ym5haWw9MCwgcmVhZF9hbGw9MDsKIAlpbWFnZV9pbmZvX3R5cGUgSW1hZ2VJbmZvOwotCWNoYXIg dG1wWzY0XSwgKnNlY3Rpb25zX3N0ciwgKnM7CisJY2hhciB0bXBbNjRdLCAqc2VjdGlvbnNfc3Ry PTAsICpzOworCWNoYXIgKmZpbGVuYW1lOworCWludCBmaWxlbmFtZV9sZW4sIHNlY3Rpb25zX3N0 cl9sZW47CiAKIAltZW1zZXQoJkltYWdlSW5mbywgMCwgc2l6ZW9mKEltYWdlSW5mbykpOwogCi0J aWYgKChhYyA8IDEgfHwgYWMgPiA0KSB8fCB6ZW5kX2dldF9wYXJhbWV0ZXJzX2V4KGFjLCAmcF9u YW1lLCAmcF9zZWN0aW9uc19uZWVkZWQsICZwX3N1Yl9hcnJheXMsICZwX3JlYWRfdGh1bWJuYWls LCAmcF9yZWFkX2FsbCkgPT0gRkFJTFVSRSkgewotCQlXUk9OR19QQVJBTV9DT1VOVDsKKwlpZiAo emVuZF9wYXJzZV9wYXJhbWV0ZXJzKFpFTkRfTlVNX0FSR1MoKSBUU1JNTFNfQ0MsICJafHNiYiIs ICZwX25hbWUsICZzZWN0aW9uc19zdHIsICZzZWN0aW9uc19zdHJfbGVuLCAmc3ViX2FycmF5cywg JnJlYWRfdGh1bWJuYWlsKSA9PSBGQUlMVVJFKSB7CisJCXJldHVybjsKIAl9CiAKLQljb252ZXJ0 X3RvX3N0cmluZ19leChwX25hbWUpOworCWlmIChwaHBfc3RyZWFtX3BhdGhfcGFyYW1fZW5jb2Rl KHBfbmFtZSwgJmZpbGVuYW1lLCAmZmlsZW5hbWVfbGVuLCBSRVBPUlRfRVJST1JTLCBGRyhkZWZh dWx0X2NvbnRleHQpKSA9PSBGQUlMVVJFKSB7CisJCXJldHVybjsKKwl9CiAKLQlpZihhYyA+PSAy KSB7Ci0JCWNvbnZlcnRfdG9fc3RyaW5nX2V4KHBfc2VjdGlvbnNfbmVlZGVkKTsKLQkJc3Bwcmlu dGYoJnNlY3Rpb25zX3N0ciwgMCwgIiwlcywiLCBaX1NUUlZBTF9QUChwX3NlY3Rpb25zX25lZWRl ZCkpOworCWlmIChzZWN0aW9uc19uZWVkZWQpIHsKIAkJLyogc2VjdGlvbnNfc3RyIERPRVMgc3Rh cnQgd2l0aCAsIGFuZCBTUEFDRVMgYXJlIE5PVCBhbGxvd2VkIGluIG5hbWVzICovCiAJCXMgPSBz ZWN0aW9uc19zdHI7CiAJCXdoaWxlKCorK3MpIHsKQEAgLTM5MzMsMTQgKzM5MzIsNyBAQAogCQlF RlJFRV9JRihzZWN0aW9uc19zdHIpOwogI2VuZGlmCiAJfQotCWlmKGFjID49IDMpIHsKLQkJY29u dmVydF90b19sb25nX2V4KHBfc3ViX2FycmF5cyk7Ci0JCXN1Yl9hcnJheXMgPSBaX0xWQUxfUFAo cF9zdWJfYXJyYXlzKTsKLQl9Ci0JaWYoYWMgPj0gNCkgewotCQljb252ZXJ0X3RvX2xvbmdfZXgo cF9yZWFkX3RodW1ibmFpbCk7Ci0JCXJlYWRfdGh1bWJuYWlsID0gWl9MVkFMX1BQKHBfcmVhZF90 aHVtYm5haWwpOwotCX0KKwogCWlmKGFjID49IDUpIHsKIAkJY29udmVydF90b19sb25nX2V4KHBf cmVhZF9hbGwpOwogCQlyZWFkX2FsbCA9IFpfTFZBTF9QUChwX3JlYWRfYWxsKTsKQEAgLTM5NDgs NyArMzk0MCw3IEBACiAJLyogcGFyYW1ldGVycyAzLDQgd2lsbCBiZSB3b3JraW5nIGluIGxhdGVy IHZlcnNpb25zLi4uLiAqLwogCXJlYWRfYWxsID0gMDsgICAgICAgLyoganVzdCB0byBtYWtlIGZ1 bmN0aW9uIHdvcmsgZm9yIDQuMiB0cmVlICovCiAKLQlyZXQgPSBleGlmX3JlYWRfZmlsZSgmSW1h Z2VJbmZvLCBaX1NUUlZBTF9QUChwX25hbWUpLCByZWFkX3RodW1ibmFpbCwgcmVhZF9hbGwgVFNS TUxTX0NDKTsKKwlyZXQgPSBleGlmX3JlYWRfZmlsZSgmSW1hZ2VJbmZvLCBmaWxlbmFtZSwgcmVh ZF90aHVtYm5haWwsIHJlYWRfYWxsIFRTUk1MU19DQyk7CiAKICAgIAlzZWN0aW9uc19zdHIgPSBl eGlmX2dldF9zZWN0aW9ubGlzdChJbWFnZUluZm8uc2VjdGlvbnNfZm91bmQgVFNSTUxTX0NDKTsK IApAQCAtNDA3NiwxOCArNDA2OCwxOSBAQAogCWV4aWZfZGlzY2FyZF9pbWFnZWluZm8oJkltYWdl SW5mbyk7CiAKICNpZmRlZiBFWElGX0RFQlVHCi0JcGhwX2Vycm9yX2RvY3JlZjEoTlVMTCBUU1JN TFNfQ0MsIFpfU1RSVkFMX1BQKHBfbmFtZSksIEVfTk9USUNFLCAiZG9uZSIpOworCXBocF9lcnJv cl9kb2NyZWYxKE5VTEwgVFNSTUxTX0NDLCBmaWxlbmFtZSwgRV9OT1RJQ0UsICJkb25lIik7CiAj ZW5kaWYKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gc3RyaW5nIGV4aWZfdGh1bWJuYWls KHN0cmluZyBmaWxlbmFtZSBbLCAmd2lkdGgsICZoZWlnaHQgWywgJmltYWdldHlwZV1dKQorLyog e3t7IHByb3RvIHN0cmluZyBleGlmX3RodW1ibmFpbChzdHJpbmcgZmlsZW5hbWUgWywgJndpZHRo LCAmaGVpZ2h0IFssICZpbWFnZXR5cGVdXSkgVQogICAgUmVhZHMgdGhlIGVtYmVkZGVkIHRodW1i bmFpbCAqLwogUEhQX0ZVTkNUSU9OKGV4aWZfdGh1bWJuYWlsKQogewogCXp2YWwgKnBfd2lkdGgg PSAwLCAqcF9oZWlnaHQgPSAwLCAqcF9pbWFnZXR5cGUgPSAwOwotCWNoYXIgKnBfbmFtZTsKLQlp bnQgcF9uYW1lX2xlbiwgcmV0LCBhcmdfYyA9IFpFTkRfTlVNX0FSR1MoKTsKKwl6dmFsICoqcF9u YW1lOworCWNoYXIgKmZpbGVuYW1lOworCWludCBmaWxlbmFtZV9sZW4sIHJldCwgYXJnX2MgPSBa RU5EX05VTV9BUkdTKCk7CiAJaW1hZ2VfaW5mb190eXBlIEltYWdlSW5mbzsKIAogCW1lbXNldCgm SW1hZ2VJbmZvLCAwLCBzaXplb2YoSW1hZ2VJbmZvKSk7CkBAIC00MDk2LDExICs0MDg5LDE1IEBA CiAJCVdST05HX1BBUkFNX0NPVU5UOwogCX0KIAotCWlmICh6ZW5kX3BhcnNlX3BhcmFtZXRlcnMo YXJnX2MgVFNSTUxTX0NDLCAic3x6L3ovei8iLCAmcF9uYW1lLCAmcF9uYW1lX2xlbiwgJnBfd2lk dGgsICZwX2hlaWdodCwgJnBfaW1hZ2V0eXBlKSA9PSBGQUlMVVJFKSB7CisJaWYgKHplbmRfcGFy c2VfcGFyYW1ldGVycyhhcmdfYyBUU1JNTFNfQ0MsICJafHovei96LyIsICZwX25hbWUsICZwX3dp ZHRoLCAmcF9oZWlnaHQsICZwX2ltYWdldHlwZSkgPT0gRkFJTFVSRSkgewogCQlyZXR1cm47CiAJ fQogCi0JcmV0ID0gZXhpZl9yZWFkX2ZpbGUoJkltYWdlSW5mbywgcF9uYW1lLCAxLCAwIFRTUk1M U19DQyk7CisJaWYgKHBocF9zdHJlYW1fcGF0aF9wYXJhbV9lbmNvZGUocF9uYW1lLCAmZmlsZW5h bWUsICZmaWxlbmFtZV9sZW4sIFJFUE9SVF9FUlJPUlMsIEZHKGRlZmF1bHRfY29udGV4dCkpID09 IEZBSUxVUkUpIHsKKwkJcmV0dXJuOworCX0KKworCXJldCA9IGV4aWZfcmVhZF9maWxlKCZJbWFn ZUluZm8sIGZpbGVuYW1lLCAxLCAwIFRTUk1MU19DQyk7CiAJaWYgKHJldD09RkFMU0UpIHsKIAkJ ZXhpZl9kaXNjYXJkX2ltYWdlaW5mbygmSW1hZ2VJbmZvKTsKIAkJUkVUVVJOX0ZBTFNFOwpAQCAt NDE0MCwyNyArNDEzNywzMCBAQAogCWV4aWZfZGlzY2FyZF9pbWFnZWluZm8oJkltYWdlSW5mbyk7 CiAKICNpZmRlZiBFWElGX0RFQlVHCi0JcGhwX2Vycm9yX2RvY3JlZjEoTlVMTCBUU1JNTFNfQ0Ms IHBfbmFtZSwgRV9OT1RJQ0UsICJEb25lIik7CisJcGhwX2Vycm9yX2RvY3JlZjEoTlVMTCBUU1JN TFNfQ0MsIGZpbGVuYW1lLCBFX05PVElDRSwgIkRvbmUiKTsKICNlbmRpZgogfQogLyogfX19ICov CiAKLS8qIHt7eyBwcm90byBpbnQgZXhpZl9pbWFnZXR5cGUoc3RyaW5nIGltYWdlZmlsZSkKKy8q IHt7eyBwcm90byBpbnQgZXhpZl9pbWFnZXR5cGUoc3RyaW5nIGltYWdlZmlsZSkgVQogICAgR2V0 IHRoZSB0eXBlIG9mIGFuIGltYWdlICovCiBQSFBfRlVOQ1RJT04oZXhpZl9pbWFnZXR5cGUpCiB7 CiAJenZhbCAqKmFyZzE7CisJY2hhciAqZmlsZW5hbWU7CisJaW50IGZpbGVuYW1lX2xlbjsKIAlw aHBfc3RyZWFtICogc3RyZWFtOwogIAlpbnQgaXR5cGUgPSAwOwogCi0JaWYgKFpFTkRfTlVNX0FS R1MoKSAhPSAxKQotCQlXUk9OR19QQVJBTV9DT1VOVDsKKwlpZiAoemVuZF9wYXJzZV9wYXJhbWV0 ZXJzKFpFTkRfTlVNX0FSR1MoKSBUU1JNTFNfQ0MsICJaIiwgJmFyZzEpID09IEZBSUxVUkUpIHsK KwkJcmV0dXJuOworCX0KIAotCWlmICh6ZW5kX2dldF9wYXJhbWV0ZXJzX2V4KDEsICZhcmcxKSA9 PSBGQUlMVVJFKQotCQlXUk9OR19QQVJBTV9DT1VOVDsKKwlpZiAocGhwX3N0cmVhbV9wYXRoX3Bh cmFtX2VuY29kZShhcmcxLCAmZmlsZW5hbWUsICZmaWxlbmFtZV9sZW4sIFJFUE9SVF9FUlJPUlMs IEZHKGRlZmF1bHRfY29udGV4dCkpID09IEZBSUxVUkUpIHsKKwkJcmV0dXJuOworCX0KIAotCWNv bnZlcnRfdG9fc3RyaW5nX2V4KGFyZzEpOwotCXN0cmVhbSA9IHBocF9zdHJlYW1fb3Blbl93cmFw cGVyKFpfU1RSVkFMX1BQKGFyZzEpLCAicmIiLCBJR05PUkVfUEFUSHxSRVBPUlRfRVJST1JTLCBO VUxMKTsKKwlzdHJlYW0gPSBwaHBfc3RyZWFtX29wZW5fd3JhcHBlcihmaWxlbmFtZSwgInJiIiwg SUdOT1JFX1BBVEh8UkVQT1JUX0VSUk9SUywgTlVMTCk7CiAKIAlpZiAoc3RyZWFtID09IE5VTEwp IHsKIAkJUkVUVVJOX0ZBTFNFOwo= ------=_Part_9956_3542540.1212819920055 Content-Type: text/plain; name=date_tests.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fh5lmfbi2 Content-Disposition: attachment; filename=date_tests.patch.txt SW5kZXg6IDAwOC5waHB0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9yZXBvc2l0b3J5L3BocC1zcmMv ZXh0L2RhdGUvdGVzdHMvMDA4LnBocHQsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZmIC11 IC1yMS4yIDAwOC5waHB0Ci0tLSAwMDgucGhwdAkyNyBNYXkgMjAwOCAxODoxNjowMCAtMDAwMAkx LjIKKysrIDAwOC5waHB0CTYgSnVuIDIwMDggMjI6MjQ6MTIgLTAwMDAKQEAgLTM0LDkgKzM0LDkg QEAKICAgW3UieWRheSJdPT4KICAgaW50KDE3NykKICAgW3Uid2Vla2RheSJdPT4KLSAgc3RyaW5n KDcpICJUdWVzZGF5IgorICB1bmljb2RlKDcpICJUdWVzZGF5IgogICBbdSJtb250aCJdPT4KLSAg c3RyaW5nKDQpICJKdW5lIgorICB1bmljb2RlKDQpICJKdW5lIgogICBbMF09PgogICBpbnQoMTE1 MTM2NjQwMCkKIH0KQEAgLTU4LDkgKzU4LDkgQEAKICAgW3UieWRheSJdPT4KICAgaW50KCVkKQog ICBbdSJ3ZWVrZGF5Il09PgotICBzdHJpbmcoJWQpICIlcyIKKyAgdW5pY29kZSglZCkgIiVzIgog ICBbdSJtb250aCJdPT4KLSAgc3RyaW5nKCVkKSAiJXMiCisgIHVuaWNvZGUoJWQpICIlcyIKICAg WzBdPT4KICAgaW50KCVkKQogfQpJbmRleDogMDExLnBocHQKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L3JlcG9zaXRvcnkvcGhwLXNyYy9leHQvZGF0ZS90ZXN0cy8wMTEucGhwdCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xCmRpZmYgLXUgLXIxLjEgMDExLnBocHQKLS0tIDAxMS5waHB0CTIyIERlYyAy MDA2IDEzOjA3OjI2IC0wMDAwCTEuMQorKysgMDExLnBocHQJNiBKdW4gMjAwOCAyMjoyNDoxMiAt MDAwMApAQCAtMTYsOCArMTYsOCBAQAogLS1FWFBFQ1RGLS0KIFdhcm5pbmc6IHRpbWV6b25lX25h bWVfZnJvbV9hYmJyKCkgZXhwZWN0cyBhdCBsZWFzdCAxIHBhcmFtZXRlciwgMCBnaXZlbiBpbiAl cyBvbiBsaW5lIDMKIGJvb2woZmFsc2UpCi1zdHJpbmcoMTMpICJFdXJvcGUvQmVybGluIgordW5p Y29kZSgxMykgIkV1cm9wZS9CZXJsaW4iCiBib29sKGZhbHNlKQogYm9vbChmYWxzZSkKLXN0cmlu ZygxMikgIkV1cm9wZS9QYXJpcyIKK3VuaWNvZGUoMTIpICJFdXJvcGUvUGFyaXMiCiBEb25lCklu ZGV4OiAwMTMucGhwdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcmVwb3NpdG9yeS9waHAtc3JjL2V4 dC9kYXRlL3Rlc3RzLzAxMy5waHB0LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAtdSAt cjEuMyAwMTMucGhwdAotLS0gMDEzLnBocHQJMjcgTWF5IDIwMDggMTg6MTY6MDAgLTAwMDAJMS4z CisrKyAwMTMucGhwdAk2IEp1biAyMDA4IDIyOjI0OjEyIC0wMDAwCkBAIC0yNiw3ICsyNiw3IEBA CiAgIFt1InRpbWV6b25lX3R5cGUiXT0+CiAgIGludCgzKQogICBbdSJ0aW1lem9uZSJdPT4KLSAg c3RyaW5nKDMpICJVVEMiCisgIHVuaWNvZGUoMykgIlVUQyIKIH0KIHVuaWNvZGUoMTkpICIyMDA2 LjEyLjEyIDAwOjAwOjAwIgogCkluZGV4OiAwMTQucGhwdAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv cmVwb3NpdG9yeS9waHAtc3JjL2V4dC9kYXRlL3Rlc3RzLzAxNC5waHB0LHYKcmV0cmlldmluZyBy ZXZpc2lvbiAxLjMKZGlmZiAtdSAtcjEuMyAwMTQucGhwdAotLS0gMDE0LnBocHQJMjcgTWF5IDIw MDggMTg6MTY6MDAgLTAwMDAJMS4zCisrKyAwMTQucGhwdAk2IEp1biAyMDA4IDIyOjI0OjEyIC0w MDAwCkBAIC0yNSw3ICsyNSw3IEBACiAgIFt1InRpbWV6b25lX3R5cGUiXT0+CiAgIGludCgzKQog ICBbdSJ0aW1lem9uZSJdPT4KLSAgc3RyaW5nKDMpICJVVEMiCisgIHVuaWNvZGUoMykgIlVUQyIK IH0KIG9iamVjdChEYXRlVGltZVpvbmUpIyVkICgwKSB7CiB9CkluZGV4OiBidWc0MTUyMy02NGJp dC5waHB0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9yZXBvc2l0b3J5L3BocC1zcmMvZXh0L2RhdGUv dGVzdHMvYnVnNDE1MjMtNjRiaXQucGhwdCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYg LXUgLXIxLjMgYnVnNDE1MjMtNjRiaXQucGhwdAotLS0gYnVnNDE1MjMtNjRiaXQucGhwdAkyNyBN YXkgMjAwOCAxODoxNjowMCAtMDAwMAkxLjMKKysrIGJ1ZzQxNTIzLTY0Yml0LnBocHQJNiBKdW4g MjAwOCAyMjoyNDoxMiAtMDAwMApAQCAtNDgsNiArNDgsNiBAQAogICBbdSJ0aW1lem9uZV90eXBl Il09PgogICBpbnQoMykKICAgW3UidGltZXpvbmUiXT0+Ci0gIHN0cmluZygzKSAiVVRDIgorICB1 bmljb2RlKDMpICJVVEMiCiB9CiAtMDAwMS0xMS0zMFQwMDowMDowMCswMDAwCkluZGV4OiBidWc0 MTUyMy5waHB0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9yZXBvc2l0b3J5L3BocC1zcmMvZXh0L2Rh dGUvdGVzdHMvYnVnNDE1MjMucGhwdCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41CmRpZmYgLXUg LXIxLjUgYnVnNDE1MjMucGhwdAotLS0gYnVnNDE1MjMucGhwdAkyNyBNYXkgMjAwOCAxODoxNjow MCAtMDAwMAkxLjUKKysrIGJ1ZzQxNTIzLnBocHQJNiBKdW4gMjAwOCAyMjoyNDoxMiAtMDAwMApA QCAtNDgsNiArNDgsNiBAQAogICBbdSJ0aW1lem9uZV90eXBlIl09PgogICBpbnQoMykKICAgW3Ui dGltZXpvbmUiXT0+Ci0gIHN0cmluZygzKSAiVVRDIgorICB1bmljb2RlKDMpICJVVEMiCiB9CiAt MDAwMS0xMS0zMFQwMDowMDowMCswMDAwCkluZGV4OiBidWc0MzgwOC5waHB0Cj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9yZXBvc2l0b3J5L3BocC1zcmMvZXh0L2RhdGUvdGVzdHMvYnVnNDM4MDgucGhw dCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yCmRpZmYgLXUgLXIxLjIgYnVnNDM4MDgucGhwdAot LS0gYnVnNDM4MDgucGhwdAkyNyBNYXkgMjAwOCAxODoxNjowMCAtMDAwMAkxLjIKKysrIGJ1ZzQz ODA4LnBocHQJNiBKdW4gMjAwOCAyMjoyNDoxMiAtMDAwMApAQCAtMjAsMTQgKzIwLDE0IEBACiAg IFt1Indhcm5pbmdzIl09PgogICBhcnJheSgxKSB7CiAgICAgWzZdPT4KLSAgICBzdHJpbmcoMjkp ICJEb3VibGUgdGltZXpvbmUgc3BlY2lmaWNhdGlvbiIKKyAgICB1bmljb2RlKDI5KSAiRG91Ymxl IHRpbWV6b25lIHNwZWNpZmljYXRpb24iCiAgIH0KICAgW3UiZXJyb3JfY291bnQiXT0+CiAgIGlu dCgxKQogICBbdSJlcnJvcnMiXT0+CiAgIGFycmF5KDEpIHsKICAgICBbMF09PgotICAgIHN0cmlu Zyg0NykgIlRoZSB0aW1lem9uZSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlIgor ICAgIHVuaWNvZGUoNDcpICJUaGUgdGltZXpvbmUgY291bGQgbm90IGJlIGZvdW5kIGluIHRoZSBk YXRhYmFzZSIKICAgfQogfQogYXJyYXkoNCkgewpAQCAtMzYsMTMgKzM2LDEzIEBACiAgIFt1Indh cm5pbmdzIl09PgogICBhcnJheSgxKSB7CiAgICAgWzZdPT4KLSAgICBzdHJpbmcoMjkpICJEb3Vi bGUgdGltZXpvbmUgc3BlY2lmaWNhdGlvbiIKKyAgICB1bmljb2RlKDI5KSAiRG91YmxlIHRpbWV6 b25lIHNwZWNpZmljYXRpb24iCiAgIH0KICAgW3UiZXJyb3JfY291bnQiXT0+CiAgIGludCgxKQog ICBbdSJlcnJvcnMiXT0+CiAgIGFycmF5KDEpIHsKICAgICBbMF09PgotICAgIHN0cmluZyg0Nykg IlRoZSB0aW1lem9uZSBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIGRhdGFiYXNlIgorICAgIHVu aWNvZGUoNDcpICJUaGUgdGltZXpvbmUgY291bGQgbm90IGJlIGZvdW5kIGluIHRoZSBkYXRhYmFz ZSIKICAgfQogfQpJbmRleDogZGF0ZV9wYXJzZV8wMDEucGhwdAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl OiAvcmVwb3NpdG9yeS9waHAtc3JjL2V4dC9kYXRlL3Rlc3RzL2RhdGVfcGFyc2VfMDAxLnBocHQs dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC11IC1yMS4zIGRhdGVfcGFyc2VfMDAxLnBo cHQKLS0tIGRhdGVfcGFyc2VfMDAxLnBocHQJMjcgTWF5IDIwMDggMTg6MTY6MDAgLTAwMDAJMS4z CisrKyBkYXRlX3BhcnNlXzAwMS5waHB0CTYgSnVuIDIwMDggMjI6MjQ6MTIgLTAwMDAKQEAgLTk4 LDcgKzk4LDcgQEAKICAgW3UiZXJyb3JzIl09PgogICBhcnJheSgxKSB7CiAgICAgWzddPT4KLSAg ICBzdHJpbmcoMjApICJVbmV4cGVjdGVkIGNoYXJhY3RlciIKKyAgICB1bmljb2RlKDIwKSAiVW5l eHBlY3RlZCBjaGFyYWN0ZXIiCiAgIH0KICAgW3UiaXNfbG9jYWx0aW1lIl09PgogICBib29sKHRy dWUpCkBAIC0yMTgsOSArMjE4LDkgQEAKICAgW3UiZXJyb3JzIl09PgogICBhcnJheSgyKSB7CiAg ICAgWzBdPT4KLSAgICBzdHJpbmcoMjApICJVbmV4cGVjdGVkIGNoYXJhY3RlciIKKyAgICB1bmlj b2RlKDIwKSAiVW5leHBlY3RlZCBjaGFyYWN0ZXIiCiAgICAgWzFdPT4KLSAgICBzdHJpbmcoMjAp ICJVbmV4cGVjdGVkIGNoYXJhY3RlciIKKyAgICB1bmljb2RlKDIwKSAiVW5leHBlY3RlZCBjaGFy YWN0ZXIiCiAgIH0KICAgW3UiaXNfbG9jYWx0aW1lIl09PgogICBib29sKHRydWUpCkBAIC0yNTYs NyArMjU2LDcgQEAKICAgW3UiZXJyb3JzIl09PgogICBhcnJheSgxKSB7CiAgICAgWzBdPT4KLSAg ICBzdHJpbmcoMjApICJVbmV4cGVjdGVkIGNoYXJhY3RlciIKKyAgICB1bmljb2RlKDIwKSAiVW5l eHBlY3RlZCBjaGFyYWN0ZXIiCiAgIH0KICAgW3UiaXNfbG9jYWx0aW1lIl09PgogICBib29sKHRy dWUpCkBAIC0yOTIsNyArMjkyLDcgQEAKICAgW3UiZXJyb3JzIl09PgogICBhcnJheSgxKSB7CiAg ICAgWzBdPT4KLSAgICBzdHJpbmcoMTIpICJFbXB0eSBzdHJpbmciCisgICAgdW5pY29kZSgxMikg IkVtcHR5IHN0cmluZyIKICAgfQogICBbdSJpc19sb2NhbHRpbWUiXT0+CiAgIGJvb2woZmFsc2Up Cg== ------=_Part_9956_3542540.1212819920055 Content-Type: text/plain; name=exif_tests.patch.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fh5lmttb3 Content-Disposition: attachment; filename=exif_tests.patch.txt SW5kZXg6IGJ1ZzM0NzA0LnBocHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvcGhw LXNyYy9leHQvZXhpZi90ZXN0cy9idWczNDcwNC5waHB0LHYKcmV0cmlldmluZyByZXZpc2lvbiAx LjUKZGlmZiAtdSAtcjEuNSBidWczNDcwNC5waHB0Ci0tLSBidWczNDcwNC5waHB0CTIgSnVuIDIw MDYgMjI6MjI6NDIgLTAwMDAJMS41CisrKyBidWczNDcwNC5waHB0CTcgSnVuIDIwMDggMDI6MzE6 MTQgLTAwMDAKQEAgLTEzLDUxICsxMywyMiBAQAogPT09RE9ORT09PQogLS1FWFBFQ1RGLS0KIGFy cmF5KDcpIHsKLSAgWyJGaWxlTmFtZSJdPT4KLSAgc3RyaW5nKDEyKSAiYnVnMzQ3MDQuanBnIgot ICBbIkZpbGVEYXRlVGltZSJdPT4KLSAgaW50KCVkKQotICBbIkZpbGVTaXplIl09PgotICBpbnQo OTk3NikKLSAgWyJGaWxlVHlwZSJdPT4KLSAgaW50KDIpCi0gIFsiTWltZVR5cGUiXT0+Ci0gIHN0 cmluZygxMCkgImltYWdlL2pwZWciCi0gIFsiU2VjdGlvbnNGb3VuZCJdPT4KLSAgc3RyaW5nKDQp ICJJRkQwIgotICBbIkNPTVBVVEVEIl09PgotICBhcnJheSg1KSB7Ci0gICAgWyJodG1sIl09Pgot ICAgIHN0cmluZygyNCkgIndpZHRoPSIzODYiIGhlaWdodD0iNDg4IiIKLSAgICBbIkhlaWdodCJd PT4KLSAgICBpbnQoNDg4KQotICAgIFsiV2lkdGgiXT0+Ci0gICAgaW50KDM4NikKLSAgICBbIklz Q29sb3IiXT0+Ci0gICAgaW50KDEpCi0gICAgWyJCeXRlT3JkZXJNb3Rvcm9sYSJdPT4KLSAgICBp bnQoMCkKLSAgfQotfQotPT09RE9ORT09PQotLS1VRVhQRUNURi0tCi1hcnJheSg3KSB7CiAgIFt1 IkZpbGVOYW1lIl09PgotICBzdHJpbmcoMTIpICJidWczNDcwNC5qcGciCisgIHVuaWNvZGUoMTIp ICJidWczNDcwNC5qcGciCiAgIFt1IkZpbGVEYXRlVGltZSJdPT4KLSAgaW50KDExMjg4NjcxMDQp CisgIGludCglZCkKICAgW3UiRmlsZVNpemUiXT0+CiAgIGludCg5OTc2KQogICBbdSJGaWxlVHlw ZSJdPT4KICAgaW50KDIpCiAgIFt1Ik1pbWVUeXBlIl09PgotICBzdHJpbmcoMTApICJpbWFnZS9q cGVnIgorICB1bmljb2RlKDEwKSAiaW1hZ2UvanBlZyIKICAgW3UiU2VjdGlvbnNGb3VuZCJdPT4K LSAgc3RyaW5nKDQpICJJRkQwIgorICB1bmljb2RlKDQpICJJRkQwIgogICBbdSJDT01QVVRFRCJd PT4KICAgYXJyYXkoNSkgewogICAgIFt1Imh0bWwiXT0+Ci0gICAgc3RyaW5nKDI0KSAid2lkdGg9 IjM4NiIgaGVpZ2h0PSI0ODgiIgorICAgIHVuaWNvZGUoMjQpICJ3aWR0aD0iMzg2IiBoZWlnaHQ9 IjQ4OCIiCiAgICAgW3UiSGVpZ2h0Il09PgogICAgIGludCg0ODgpCiAgICAgW3UiV2lkdGgiXT0+ CkluZGV4OiBleGlmMDAxLnBocHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9zaXRvcnkvcGhw LXNyYy9leHQvZXhpZi90ZXN0cy9leGlmMDAxLnBocHQsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu NgpkaWZmIC11IC1yMS42IGV4aWYwMDEucGhwdAotLS0gZXhpZjAwMS5waHB0CTI3IE1heSAyMDA4 IDE4OjE2OjAwIC0wMDAwCTEuNgorKysgZXhpZjAwMS5waHB0CTcgSnVuIDIwMDggMDI6MzE6MTQg LTAwMDAKQEAgLTE5LDcgKzE5LDcgQEAKICAgW3UiRklMRSJdPT4KICAgYXJyYXkoNikgewogICAg IFt1IkZpbGVOYW1lIl09PgotICAgIHN0cmluZyg5KSAidGVzdDIuanBnIgorICAgIHVuaWNvZGUo OSkgInRlc3QyLmpwZyIKICAgICBbdSJGaWxlRGF0ZVRpbWUiXT0+CiAgICAgaW50KCVkKQogICAg IFt1IkZpbGVTaXplIl09PgpAQCAtMjcsMTQgKzI3LDE0IEBACiAgICAgW3UiRmlsZVR5cGUiXT0+ CiAgICAgaW50KDIpCiAgICAgW3UiTWltZVR5cGUiXT0+Ci0gICAgc3RyaW5nKDEwKSAiaW1hZ2Uv anBlZyIKKyAgICB1bmljb2RlKDEwKSAiaW1hZ2UvanBlZyIKICAgICBbdSJTZWN0aW9uc0ZvdW5k Il09PgotICAgIHN0cmluZygzMykgIkFOWV9UQUcsIElGRDAsIFRIVU1CTkFJTCwgQ09NTUVOVCIK KyAgICB1bmljb2RlKDMzKSAiQU5ZX1RBRywgSUZEMCwgVEhVTUJOQUlMLCBDT01NRU5UIgogICB9 CiAgIFt1IkNPTVBVVEVEIl09PgogICBhcnJheSgxMikgewogICAgIFt1Imh0bWwiXT0+Ci0gICAg c3RyaW5nKDIwKSAid2lkdGg9IjEiIGhlaWdodD0iMSIiCisgICAgdW5pY29kZSgyMCkgIndpZHRo PSIxIiBoZWlnaHQ9IjEiIgogICAgIFt1IkhlaWdodCJdPT4KICAgICBpbnQoMSkKICAgICBbdSJX aWR0aCJdPT4KQEAgLTQ0LDI2ICs0NCwyNiBAQAogICAgIFt1IkJ5dGVPcmRlck1vdG9yb2xhIl09 PgogICAgIGludCgxKQogICAgIFt1IlVzZXJDb21tZW50Il09PgotICAgIHN0cmluZygxNikgIkV4 aWYgdGVzdCBpbWFnZS4iCisgICAgdW5pY29kZSgxNikgIkV4aWYgdGVzdCBpbWFnZS4iCiAgICAg W3UiVXNlckNvbW1lbnRFbmNvZGluZyJdPT4KLSAgICBzdHJpbmcoNSkgIkFTQ0lJIgorICAgIHVu aWNvZGUoNSkgIkFTQ0lJIgogICAgIFt1IkNvcHlyaWdodCJdPT4KLSAgICBzdHJpbmcoNDEpICJQ aG90byAoYykgTS5Cb2VyZ2VyLCBFZGl0ZWQgYnkgTS5Cb2VyZ2VyLiIKKyAgICB1bmljb2RlKDQx KSAiUGhvdG8gKGMpIE0uQm9lcmdlciwgRWRpdGVkIGJ5IE0uQm9lcmdlci4iCiAgICAgW3UiQ29w eXJpZ2h0LlBob3RvZ3JhcGhlciJdPT4KLSAgICBzdHJpbmcoMTkpICJQaG90byAoYykgTS5Cb2Vy Z2VyIgorICAgIHVuaWNvZGUoMTkpICJQaG90byAoYykgTS5Cb2VyZ2VyIgogICAgIFt1IkNvcHly aWdodC5FZGl0b3IiXT0+Ci0gICAgc3RyaW5nKDIwKSAiRWRpdGVkIGJ5IE0uQm9lcmdlci4iCisg ICAgdW5pY29kZSgyMCkgIkVkaXRlZCBieSBNLkJvZXJnZXIuIgogICAgIFt1IlRodW1ibmFpbC5G aWxlVHlwZSJdPT4KICAgICBpbnQoMikKICAgICBbdSJUaHVtYm5haWwuTWltZVR5cGUiXT0+Ci0g ICAgc3RyaW5nKDEwKSAiaW1hZ2UvanBlZyIKKyAgICB1bmljb2RlKDEwKSAiaW1hZ2UvanBlZyIK ICAgfQogICBbdSJJRkQwIl09PgogICBhcnJheSgyKSB7CiAgICAgW3UiQ29weXJpZ2h0Il09Pgot ICAgIHN0cmluZygxOSkgIlBob3RvIChjKSBNLkJvZXJnZXIiCisgICAgdW5pY29kZSgxOSkgIlBo b3RvIChjKSBNLkJvZXJnZXIiCiAgICAgW3UiVXNlckNvbW1lbnQiXT0+Ci0gICAgc3RyaW5nKDUp ICJBU0NJSSIKKyAgICB1bmljb2RlKDUpICJBU0NJSSIKICAgfQogICBbdSJUSFVNQk5BSUwiXT0+ CiAgIGFycmF5KDIpIHsKQEAgLTc1LDEwICs3NSwxMCBAQAogICBbdSJDT01NRU5UIl09PgogICBh cnJheSgzKSB7CiAgICAgWzBdPT4KLSAgICBzdHJpbmcoMTEpICJDb21tZW50ICMxLiIKKyAgICB1 bmljb2RlKDExKSAiQ29tbWVudCAjMS4iCiAgICAgWzFdPT4KLSAgICBzdHJpbmcoMTEpICJDb21t ZW50ICMyLiIKKyAgICB1bmljb2RlKDExKSAiQ29tbWVudCAjMi4iCiAgICAgWzJdPT4KLSAgICBz dHJpbmcoMTMpICJDb21tZW50ICMzZW5kIgorICAgIHVuaWNvZGUoMTMpICJDb21tZW50ICMzZW5k IgogICB9CiB9CkluZGV4OiBleGlmMDA0LnBocHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3JlcG9z aXRvcnkvcGhwLXNyYy9leHQvZXhpZi90ZXN0cy9leGlmMDA0LnBocHQsdgpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuNQpkaWZmIC11IC1yMS41IGV4aWYwMDQucGhwdAotLS0gZXhpZjAwNC5waHB0CTQg SmFuIDIwMDMgMTk6MTk6NTkgLTAwMDAJMS41CisrKyBleGlmMDA0LnBocHQJNyBKdW4gMjAwOCAw MjozMToxNCAtMDAwMApAQCAtMjIsMTcgKzIyLDE3IEBACiA/PgogLS1FWFBFQ1QtLQogYXJyYXko NSkgewotICBbIlN1YmplY3QiXT0+Ci0gIHN0cmluZygxMCkgIlN1YmplY3QuLi4iCi0gIFsiS2V5 d29yZHMiXT0+Ci0gIHN0cmluZygxMSkgIktleXdvcmRzLi4uIgotICBbIkF1dGhvciJdPT4KLSAg c3RyaW5nKDkpICJSdWkgQ2FybW8iCi0gIFsiQ29tbWVudHMiXT0+Ci0gIHN0cmluZygyOSkgIkNv bW1lbnRzCisgIFt1IlN1YmplY3QiXT0+CisgIHVuaWNvZGUoMTApICJTdWJqZWN0Li4uIgorICBb dSJLZXl3b3JkcyJdPT4KKyAgdW5pY29kZSgxMSkgIktleXdvcmRzLi4uIgorICBbdSJBdXRob3Ii XT0+CisgIHVuaWNvZGUoOSkgIlJ1aSBDYXJtbyIKKyAgW3UiQ29tbWVudHMiXT0+CisgIHVuaWNv ZGUoMjkpICJDb21tZW50cwogTGluZTIKIExpbmUzCiBMaW5lNCIKLSAgWyJUaXRsZSJdPT4KLSAg c3RyaW5nKDgpICJUaXRsZS4uLiIKKyAgW3UiVGl0bGUiXT0+CisgIHVuaWNvZGUoOCkgIlRpdGxl Li4uIgogfQpJbmRleDogZXhpZjAwNS5waHB0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9yZXBvc2l0 b3J5L3BocC1zcmMvZXh0L2V4aWYvdGVzdHMvZXhpZjAwNS5waHB0LHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjgKZGlmZiAtdSAtcjEuOCBleGlmMDA1LnBocHQKLS0tIGV4aWYwMDUucGhwdAkyNyBN YXkgMjAwOCAxODoxNjowMCAtMDAwMAkxLjgKKysrIGV4aWYwMDUucGhwdAk3IEp1biAyMDA4IDAy OjMxOjE0IC0wMDAwCkBAIC0xNiw3ICsxNiw3IEBACiAtLUVYUEVDVC0tCiBhcnJheSgyKSB7CiAg IFt1IkltYWdlRGVzY3JpcHRpb24iXT0+Ci0gIHN0cmluZygxMSkgIklmZDAwMDAwMDA5IgorICB1 bmljb2RlKDExKSAiSWZkMDAwMDAwMDkiCiAgIFt1IkRhdGVUaW1lIl09PgotICBzdHJpbmcoMTkp ICIyMDAyOjEwOjE4IDIwOjA2OjAwIgorICB1bmljb2RlKDE5KSAiMjAwMjoxMDoxOCAyMDowNjow MCIKIH0K ------=_Part_9956_3542540.1212819920055--