From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 24 21:39:30 2014 Received: (at submit) by debbugs.gnu.org; 25 Jan 2014 02:39:30 +0000 Received: from localhost ([127.0.0.1]:35001 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W6t9e-0007Lc-Dc for submit@debbugs.gnu.org; Fri, 24 Jan 2014 21:39:30 -0500 Received: from pbsg500.nifty.com ([202.248.238.70]:17626) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W6t9a-0007LO-8j for submit@debbugs.gnu.org; Fri, 24 Jan 2014 21:39:28 -0500 Received: from [10.120.1.25] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg500.nifty.com with ESMTP id s0P2dB6U005335 for ; Sat, 25 Jan 2014 11:39:11 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Sat, 25 Jan 2014 11:39:11 +0900 From: Norihiro Tanaka To: submit@debbugs.gnu.org Subject: Optimazation for is_mb_middle Message-Id: <20140125113911.6DD2.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_52D2369D000000001525_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: 2.6 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Package: grep Tags: patch When matched characters to a regular expression is found by kwsexec or dfaexec, we need check whether it is in the middle of a multi-byte character. `is_mb_middle' of searchutils.c is used for it. However, it's expensive, even if most of them contain constitute with single-byte characters. For example, a source code written in a language with multibyte characters, has a lot of single-byte characters. [...] Content analysis details: (2.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.6 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 3.2 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.6 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Package: grep Tags: patch When matched characters to a regular expression is found by kwsexec or dfaexec, we need check whether it is in the middle of a multi-byte character. `is_mb_middle' of searchutils.c is used for it. However, it's expensive, even if most of them contain constitute with single-byte characters. For example, a source code written in a language with multibyte characters, has a lot of single-byte characters. [...] Content analysis details: (2.6 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.6 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 3.2 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type --------_52D2369D000000001525_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Package: grep Tags: patch When matched characters to a regular expression is found by kwsexec or dfaexec, we need check whether it is in the middle of a multi-byte character. `is_mb_middle' of searchutils.c is used for it. However, it's expensive, even if most of them contain constitute with single-byte characters. For example, a source code written in a language with multibyte characters, has a lot of single-byte characters. Now, I post the patch which optimizes `is_mb_middle'. It checks whether each single-byte is completion as an character before execution, and caches them. In addition, for UTF-8 further optimization is performed. Only when it's impossible to determine the length of a multibyte character with caches, the length is determined with `mbrlen' in execution. --------_52D2369D000000001525_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="is_mb_middle.txt" Content-Disposition: attachment; filename="is_mb_middle.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9tYWluLmMgYi9zcmMvbWFpbi5jCmluZGV4IGJmZDA5ODIuLjJhM2E4 YWYgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluLmMKKysrIGIvc3JjL21haW4uYwpAQCAtNDYsNiArNDYs NyBAQAogI2luY2x1ZGUgInByb3Blcm5hbWUuaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1 ZGUgInNhZmUtcmVhZC5oIgorI2luY2x1ZGUgInNlYXJjaC5oIgogI2luY2x1ZGUgInZlcnNpb24t ZXRjLmgiCiAjaW5jbHVkZSAieGFsbG9jLmgiCiAjaW5jbHVkZSAieHN0cnRvbC5oIgpAQCAtMjM3 Miw2ICsyMzczLDExIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgfQog ICAgIH0KIAorI2lmIE1CU19TVVBQT1JUCisgIGlmIChNQl9DVVJfTUFYID4gMSkKKyAgICBidWls ZF9tYmNsZW5fZ3Vlc3MgKCk7CisjZW5kaWYKKwogICBjb21waWxlIChrZXlzLCBrZXljYyk7CiAg IGZyZWUgKGtleXMpOwogCmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmggYi9zcmMvc2VhcmNoLmgK aW5kZXggNjFkY2Y5NS4uNmQ3N2QzNCAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5oCisrKyBiL3Ny Yy9zZWFyY2guaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVmIHNpZ25lZCBjaGFyIG1iX2xlbl9t YXBfdDsKIGV4dGVybiB2b2lkIGt3c2luaXQgKGt3c2V0X3QgKik7CiAKIGV4dGVybiBjaGFyICpt YnRvbG93ZXIgKGNvbnN0IGNoYXIgKiwgc2l6ZV90ICosIG1iX2xlbl9tYXBfdCAqKik7CitleHRl cm4gdm9pZCBidWlsZF9tYmNsZW5fZ3Vlc3MgKHZvaWQpOwogZXh0ZXJuIGJvb2wgaXNfbWJfbWlk ZGxlIChjb25zdCBjaGFyICoqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsK IAogLyogZGZhc2VhcmNoLmMgKi8KZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2h1dGlscy5jIGIvc3Jj L3NlYXJjaHV0aWxzLmMKaW5kZXggNzc4ZjRhZC4uOTQ5M2ExYiAxMDA2NDQKLS0tIGEvc3JjL3Nl YXJjaHV0aWxzLmMKKysrIGIvc3JjL3NlYXJjaHV0aWxzLmMKQEAgLTE5LDkgKzE5LDE0IEBACiAj aW5jbHVkZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSAic2VhcmNo LmgiCisjaWYgSEFWRV9MQU5HSU5GT19DT0RFU0VUCisjIGluY2x1ZGUgPGxhbmdpbmZvLmg+Cisj ZW5kaWYKIAogI2RlZmluZSBOQ0hBUiAoVUNIQVJfTUFYICsgMSkKIAorc3RhdGljIHNpemVfdCBt YmNsZW5fZ3Vlc3NbTkNIQVJdOworCiB2b2lkCiBrd3Npbml0IChrd3NldF90ICprd3NldCkKIHsK QEAgLTIwNyw2ICsyMTIsNDIgQEAgbWJ0b2xvd2VyIChjb25zdCBjaGFyICpiZWcsIHNpemVfdCAq biwgbWJfbGVuX21hcF90ICoqbGVuX21hcF9wKQogICByZXR1cm4gb3V0OwogfQogCit2b2lkCiti dWlsZF9tYmNsZW5fZ3Vlc3MgKHZvaWQpCit7CisgIG1ic3RhdGVfdCBtYnM7CisgIGludCBpOwor CisjaWYgZGVmaW5lZCBIQVZFX0xBTkdJTkZPX0NPREVTRVQKKyAgaWYgKHN0cmNtcCAobmxfbGFu Z2luZm8gKENPREVTRVQpLCAiVVRGLTgiKSA9PSAwKQorICAgIHsKKyAgICAgIGZvciAoaSA9IDA7 IGkgPCBOQ0hBUjsgKytpKQorCW1iY2xlbl9ndWVzc1tpXSA9IC0xOworCisgICAgICBmb3IgKGkg PSAweDAwOyBpIDw9IDB4N2Y7ICsraSkKKwltYmNsZW5fZ3Vlc3NbaV0gPSAxOworICAgICAgZm9y IChpID0gMHhjMjsgaSA8IDB4ZGY7ICsraSkKKwltYmNsZW5fZ3Vlc3NbaV0gPSAyOworICAgICAg Zm9yIChpID0gMHhlMDsgaSA8PSAweGVmOyArK2kpCisJbWJjbGVuX2d1ZXNzW2ldID0gMzsKKyAg ICAgIGZvciAoaSA9IDB4ZjA7IGkgPD0gMHhmNzsgKytpKQorCW1iY2xlbl9ndWVzc1tpXSA9IDQ7 CisgICAgICBmb3IgKGkgPSAweGY4OyBpIDw9IDB4ZmI7ICsraSkKKwltYmNsZW5fZ3Vlc3NbaV0g PSA1OworICAgICAgZm9yIChpID0gMHhmYzsgaSA8PSAweGZkOyArK2kpCisJbWJjbGVuX2d1ZXNz W2ldID0gNjsKKworICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgIGZvciAoaSA9IDA7 IGkgPCBOQ0hBUjsgKytpKQorICAgIHsKKyAgICAgIGlmICghbWJzaW5pdCAoJm1icykpCisJbWVt c2V0ICgmbWJzLCAnXDAnLCBzaXplb2YgKG1ic3RhdGVfdCkpOworICAgICAgbWJjbGVuX2d1ZXNz W2ldID0gbWJybGVuICgoY29uc3QgY2hhciAqKSAmaSwgMSAtIHAsICZtYnMpOworICAgIH0KK30K IAogYm9vbAogaXNfbWJfbWlkZGxlIChjb25zdCBjaGFyICoqZ29vZCwgY29uc3QgY2hhciAqYnVm LCBjb25zdCBjaGFyICplbmQsCkBAIC0yMTUsMTYgKzI1Niw1MyBAQCBpc19tYl9taWRkbGUgKGNv bnN0IGNoYXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0IGNoYXIgKmVuZCwKICAgY29u c3QgY2hhciAqcCA9ICpnb29kOwogICBjb25zdCBjaGFyICpwcmV2ID0gcDsKICAgbWJzdGF0ZV90 IGN1cl9zdGF0ZTsKKyNpZiBIQVZFX0xBTkdJTkZPX0NPREVTRVQKKyAgc3RhdGljIGludCBpc191 dGY4ID0gKHN0cmNtcCAobmxfbGFuZ2luZm8gKENPREVTRVQpLCAiVVRGLTgiKSA9PSAwKTsKKwor ICBpZiAoIWlzX3V0ZjgpCisjZW5kaWYKKyAgICBtZW1zZXQgKCZjdXJfc3RhdGUsIDAsIHNpemVv ZiAobWJzdGF0ZV90KSk7CiAKLSAgLyogVE9ETzogY2FuIGJlIG9wdGltaXplZCBmb3IgVVRGLTgu ICAqLwotICBtZW1zZXQoJmN1cl9zdGF0ZSwgMCwgc2l6ZW9mKG1ic3RhdGVfdCkpOwogICB3aGls ZSAocCA8IGJ1ZikKICAgICB7Ci0gICAgICBzaXplX3QgbWJjbGVuID0gbWJybGVuKHAsIGVuZCAt IHAsICZjdXJfc3RhdGUpOworICAgICAgc2l6ZV90IG1iY2xlbiA9IG1iY2xlbl9ndWVzc1sodW5z aWduZWQgY2hhcikgKnBdOworCisgICAgICBpZiAobWJjbGVuID09IChzaXplX3QpIC0yKQorCW1i Y2xlbiA9IG1icmxlbiAocCwgZW5kIC0gcCwgJmN1cl9zdGF0ZSk7CisgICAgICBlbHNlIGlmICht YmNsZW4gPT0gKHNpemVfdCkgLTEgfHwgbWJjbGVuID09IDApCisJbWJjbGVuID0gMTsKKyNpZiBk ZWZpbmVkIEhBVkVfTEFOR0lORk9fQ09ERVNFVAorCisgICAgICAvKiBGb3IgVVRGLTggY2hlY2sg dGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCBieXRlcy4gKi8KKyAgICAgIGVsc2UgaWYgKGlzX3V0 ZjggJiYgbWJjbGVuID4gKHNpemVfdCkgMSkKKwl7CisJICBjaGFyICpxID0gcCArIG1iY2xlbjsK KworCSAgaWYgKHEgPD0gYnVmKQorCSAgICB7CisJICAgICAgZm9yICgrK3A7IHAgPCBxOyArK3Ap CisJCXsKKwkJICBpZiAoKnAgPCAweDgwIHx8IDB4YmYgPCAqcCkKKwkJICAgIGJyZWFrOworCQl9 CisJICAgIH0KKworCSAgaWYgKHAgPCBxKQorCSAgICB7CisJICAgICAgLyogQW4gaW52YWxpZCBz ZXF1ZW5jZSwgb3IgYSB0cnVuY2F0ZWQgbXVsdGlieXRlIGNoYXJhY3Rlci4KKwkgICAgICAgICBX ZSB0cmVhdCBpdCBhcyBhIHNpbmdsZSBieXRlIGNoYXJhY3Rlci4gICovCisJICAgICAgcHJldiA9 IHA7CisKKwkgICAgICAvKiBTdG9yZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcmV2aW91cyBjb21w bGV0ZSBtdWx0aWJ5dGUKKwkgICAgICAgICBjaGFyYWN0ZXIuICAqLworCSAgICAgIG1iY2xlbiA9 IDE7CisJICAgIH0KKwl9CisjZW5kaWYKIAogICAgICAgLyogU3RvcmUgdGhlIGJlZ2lubmluZyBv ZiB0aGUgcHJldmlvdXMgY29tcGxldGUgbXVsdGlieXRlIGNoYXJhY3Rlci4gICovCiAgICAgICBp ZiAobWJjbGVuICE9IChzaXplX3QpIC0yKQotICAgICAgICBwcmV2ID0gcDsKKyAgICAgICAgIHBy ZXYgPSBwOwogCiAgICAgICBpZiAobWJjbGVuID09IChzaXplX3QpIC0xIHx8IG1iY2xlbiA9PSAo c2l6ZV90KSAtMiB8fCBtYmNsZW4gPT0gMCkKICAgICAgICAgewo= --------_52D2369D000000001525_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 26 18:52:50 2014 Received: (at 16544) by debbugs.gnu.org; 26 Jan 2014 23:52:50 +0000 Received: from localhost ([127.0.0.1]:37028 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W7ZVR-00087x-Gh for submit@debbugs.gnu.org; Sun, 26 Jan 2014 18:52:49 -0500 Received: from mail-pd0-f169.google.com ([209.85.192.169]:51432) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W7ZVL-00087m-SM for 16544@debbugs.gnu.org; Sun, 26 Jan 2014 18:52:45 -0500 Received: by mail-pd0-f169.google.com with SMTP id v10so5048547pde.14 for <16544@debbugs.gnu.org>; Sun, 26 Jan 2014 15:52:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=1JIExHx3KkygcrGbjkPWpk0+903LkMfaP47ANd1o44Y=; b=DQ6+3AePFve06UNbNxc9edH4I+GJXHWTQZL4rRwg/29ayYZGzspGEvDEYfpSF6N3zs pgmaAc2HThZLWHk7KIQRVWvb9UR9L/2M/32bFVPMKsYezT+73KeSdgoDRxKHSQD8/tVH BVk3NbyErYgYZpFOncoj6fCSb9KYuASf9v6Oq/a79kDyqeMy6rL+6ZRRqvR5KU4yiiCO EEYwlY873uZ9oDPjvxebpLyynIpRLQJAXNtJ6WNRqm7AgGyGhCCG6brAhiGqnFEFwvFv AVYn2eEIL586ovirY6d5iptyWkt6HPctiofXmKpDOfTuO4fSx3e+UWp9WTcZLw7sHSXH afpQ== X-Received: by 10.66.163.164 with SMTP id yj4mr26932651pab.91.1390780362467; Sun, 26 Jan 2014 15:52:42 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.201.231 with HTTP; Sun, 26 Jan 2014 15:52:22 -0800 (PST) In-Reply-To: <20140125113911.6DD2.27F6AC2D@kcn.ne.jp> References: <20140125113911.6DD2.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sun, 26 Jan 2014 15:52:22 -0800 X-Google-Sender-Auth: ZGpX0YIIXu2uWhm_DLRgQ0gpF9I Message-ID: Subject: Re: bug#16544: Optimazation for is_mb_middle To: Norihiro Tanaka Content-Type: multipart/mixed; boundary=047d7b86ec5e78a9d804f0e849ad X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16544 Cc: 16544@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) --047d7b86ec5e78a9d804f0e849ad Content-Type: text/plain; charset=ISO-8859-1 On Fri, Jan 24, 2014 at 6:39 PM, Norihiro Tanaka wrote: > Package: grep > Tags: patch > > When matched characters to a regular expression is found by kwsexec or > dfaexec, we need check whether it is in the middle of a multi-byte character. > > `is_mb_middle' of searchutils.c is used for it. However, it's expensive, > even if most of them contain constitute with single-byte characters. > For example, a source code written in a language with multibyte characters, > has a lot of single-byte characters. > > Now, I post the patch which optimizes `is_mb_middle'. It checks whether > each single-byte is completion as an character before execution, and > caches them. In addition, for UTF-8 further optimization is performed. > > Only when it's impossible to determine the length of a multibyte character > with caches, the length is determined with `mbrlen' in execution. Thank you for the patch. If you performed profiling that led you to optimize that function, would you please share that data? In any case, can you give examples showing how much of a difference this change makes? Also, when I applied that patch and attempted to compile, gcc printed an error and two new warnings (see attached). Would you please address those and send a new version? --047d7b86ec5e78a9d804f0e849ad Content-Type: text/plain; charset=US-ASCII; name="k.txt" Content-Disposition: attachment; filename="k.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hqwym51z1 ICBDQyAgICAgICBzZWFyY2h1dGlscy5vCnNlYXJjaHV0aWxzLmM6IEluIGZ1bmN0aW9uICdidWls ZF9tYmNsZW5fZ3Vlc3MnOgpzZWFyY2h1dGlscy5jOjI0ODo1NjogZXJyb3I6ICdwJyB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICAgIG1iY2xlbl9ndWVzc1tpXSA9 IG1icmxlbiAoKGNvbnN0IGNoYXIgKikgJmksIDEgLSBwLCAmbWJzKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCnNlYXJjaHV0aWxzLmM6 MjQ4OjU2OiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5 IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgpzZWFyY2h1dGlscy5jOiBJbiBm dW5jdGlvbiAnaXNfbWJfbWlkZGxlJzoKc2VhcmNodXRpbHMuYzoyNjA6MzogZXJyb3I6IGluaXRp YWxpemVyIGVsZW1lbnQgaXMgbm90IGNvbnN0YW50CiAgIHN0YXRpYyBpbnQgaXNfdXRmOCA9IChz dHJjbXAgKG5sX2xhbmdpbmZvIChDT0RFU0VUKSwgIlVURi04IikgPT0gMCk7CiAgIF4Kc2VhcmNo dXRpbHMuYzoyNzk6MTQ6IGVycm9yOiBpbml0aWFsaXphdGlvbiBkaXNjYXJkcyAnY29uc3QnIHF1 YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUgWy1XZXJyb3JdCiAgICBjaGFyICpxID0g cCArIG1iY2xlbjsKICAgICAgICAgICAgICBeCnNlYXJjaHV0aWxzLmM6Mjg1OjEyOiBlcnJvcjog Y29tcGFyaXNvbiBpcyBhbHdheXMgdHJ1ZSBkdWUgdG8gbGltaXRlZCByYW5nZSBvZiBkYXRhIHR5 cGUgWy1XZXJyb3I9dHlwZS1saW1pdHNdCiAgICAgaWYgKCpwIDwgMHg4MCB8fCAweGJmIDwgKnAp CiAgICAgICAgICAgIF4K --047d7b86ec5e78a9d804f0e849ad-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 28 10:36:09 2014 Received: (at 16544) by debbugs.gnu.org; 28 Jan 2014 15:36:09 +0000 Received: from localhost ([127.0.0.1]:39410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W8Ahs-00035V-P8 for submit@debbugs.gnu.org; Tue, 28 Jan 2014 10:36:08 -0500 Received: from pbsg500.nifty.com ([202.248.238.70]:45320) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W8Ahm-000351-TW for 16544@debbugs.gnu.org; Tue, 28 Jan 2014 10:36:06 -0500 Received: from [10.120.1.7] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg500.nifty.com with ESMTP id s0SFZruQ014196; Wed, 29 Jan 2014 00:35:53 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Wed, 29 Jan 2014 00:35:54 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#16544: Optimazation for is_mb_middle In-Reply-To: References: <20140125113911.6DD2.27F6AC2D@kcn.ne.jp> Message-Id: <20140129003553.63FB.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_52E7B6FC0000000063F0_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I'm sorry that I don't test the patch sufficiently. I fixed several bugs in the patch. In addition to the patch, I attach the results of the compile and the performance test. [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 3.3 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type X-Debbugs-Envelope-To: 16544 Cc: 16544@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: I'm sorry that I don't test the patch sufficiently. I fixed several bugs in the patch. In addition to the patch, I attach the results of the compile and the performance test. [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 3.3 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type --------_52E7B6FC0000000063F0_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit I'm sorry that I don't test the patch sufficiently. I fixed several bugs in the patch. In addition to the patch, I attach the results of the compile and the performance test. --------_52E7B6FC0000000063F0_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="is_mb_middle.txt" Content-Disposition: attachment; filename="is_mb_middle.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9tYWluLmMgYi9zcmMvbWFpbi5jCmluZGV4IDNmMTYwNjEuLmQzMjA1 YjMgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluLmMKKysrIGIvc3JjL21haW4uYwpAQCAtNDYsNiArNDYs NyBAQAogI2luY2x1ZGUgInByb3Blcm5hbWUuaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1 ZGUgInNhZmUtcmVhZC5oIgorI2luY2x1ZGUgInNlYXJjaC5oIgogI2luY2x1ZGUgInZlcnNpb24t ZXRjLmgiCiAjaW5jbHVkZSAieGFsbG9jLmgiCiAjaW5jbHVkZSAieHN0cnRvbC5oIgpAQCAtMjM2 NCw2ICsyMzY1LDExIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgfQog ICAgIH0KIAorI2lmIE1CU19TVVBQT1JUCisgIGlmIChNQl9DVVJfTUFYID4gMSkKKyAgICBidWls ZF9tYmNsZW5fZ3Vlc3MgKCk7CisjZW5kaWYKKwogICBjb21waWxlIChrZXlzLCBrZXljYyk7CiAg IGZyZWUgKGtleXMpOwogCmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmggYi9zcmMvc2VhcmNoLmgK aW5kZXggNjFkY2Y5NS4uNmQ3N2QzNCAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5oCisrKyBiL3Ny Yy9zZWFyY2guaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVmIHNpZ25lZCBjaGFyIG1iX2xlbl9t YXBfdDsKIGV4dGVybiB2b2lkIGt3c2luaXQgKGt3c2V0X3QgKik7CiAKIGV4dGVybiBjaGFyICpt YnRvbG93ZXIgKGNvbnN0IGNoYXIgKiwgc2l6ZV90ICosIG1iX2xlbl9tYXBfdCAqKik7CitleHRl cm4gdm9pZCBidWlsZF9tYmNsZW5fZ3Vlc3MgKHZvaWQpOwogZXh0ZXJuIGJvb2wgaXNfbWJfbWlk ZGxlIChjb25zdCBjaGFyICoqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsK IAogLyogZGZhc2VhcmNoLmMgKi8KZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2h1dGlscy5jIGIvc3Jj L3NlYXJjaHV0aWxzLmMKaW5kZXggNzc4ZjRhZC4uMTc4ZDdmMiAxMDA2NDQKLS0tIGEvc3JjL3Nl YXJjaHV0aWxzLmMKKysrIGIvc3JjL3NlYXJjaHV0aWxzLmMKQEAgLTE5LDkgKzE5LDE2IEBACiAj aW5jbHVkZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSAic2VhcmNo LmgiCisjaWYgSEFWRV9MQU5HSU5GT19DT0RFU0VUCisjIGluY2x1ZGUgPGxhbmdpbmZvLmg+Cisj ZW5kaWYKKworI2RlZmluZSBTVFJFUShhLCBiKSAoc3RyY21wIChhLCBiKSA9PSAwKQogCiAjZGVm aW5lIE5DSEFSIChVQ0hBUl9NQVggKyAxKQogCitzdGF0aWMgc2l6ZV90IG1iY2xlbl9ndWVzc1tO Q0hBUl07CisKIHZvaWQKIGt3c2luaXQgKGt3c2V0X3QgKmt3c2V0KQogewpAQCAtMjA3LDYgKzIx NCwxOSBAQCBtYnRvbG93ZXIgKGNvbnN0IGNoYXIgKmJlZywgc2l6ZV90ICpuLCBtYl9sZW5fbWFw X3QgKipsZW5fbWFwX3ApCiAgIHJldHVybiBvdXQ7CiB9CiAKK3ZvaWQKK2J1aWxkX21iY2xlbl9n dWVzcyAodm9pZCkKK3sKKyAgbWJzdGF0ZV90IG1iczsKKyAgaW50IGk7CisKKyAgZm9yIChpID0g MDsgaSA8IE5DSEFSOyArK2kpCisgICAgeworICAgICAgaWYgKCFtYnNpbml0ICgmbWJzKSkKKyAg ICAgICAgbWVtc2V0ICgmbWJzLCAwLCBzaXplb2YgbWJzKTsKKyAgICAgIG1iY2xlbl9ndWVzc1tp XSA9IG1icmxlbiAoKGNvbnN0IGNoYXIgKikgJmksIDEsICZtYnMpOworICAgIH0KK30KIAogYm9v bAogaXNfbWJfbWlkZGxlIChjb25zdCBjaGFyICoqZ29vZCwgY29uc3QgY2hhciAqYnVmLCBjb25z dCBjaGFyICplbmQsCkBAIC0yMTUsMTYgKzIzNSwzNSBAQCBpc19tYl9taWRkbGUgKGNvbnN0IGNo YXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0IGNoYXIgKmVuZCwKICAgY29uc3QgY2hh ciAqcCA9ICpnb29kOwogICBjb25zdCBjaGFyICpwcmV2ID0gcDsKICAgbWJzdGF0ZV90IGN1cl9z dGF0ZTsKKyNpZiBIQVZFX0xBTkdJTkZPX0NPREVTRVQKKyAgc3RhdGljIGludCBpc191dGY4ID0g LTE7CisKKyAgaWYgKGlzX3V0ZjggPT0gLTEpCisgICAgaXNfdXRmOCA9IChTVFJFUSAobmxfbGFu Z2luZm8gKENPREVTRVQpLCAiVVRGLTgiKSA9PSAwKTsKKworICBpZiAoaXNfdXRmOCAmJiBidWYg LSBwID4gTUJfQ1VSX01BWCkKKyAgICB7CisgICAgICBmb3IgKHAgPSBidWY7IGJ1ZiAtIHAgPiBN Ql9DVVJfTUFYOyBwLS0pCisgICAgICAgIGlmIChtYmNsZW5fZ3Vlc3NbKHVuc2lnbmVkIGNoYXIp ICpwXSAhPSAoc2l6ZV90KSAtMSkKKyAgICAgICAgICBicmVhazsKKworICAgICAgaWYgKGJ1ZiAt IHAgPT0gTUJfQ1VSX01BWCkKKyAgICAgICAgcCA9IGJ1ZjsKKyAgICB9CisjZW5kaWYKKworICBt ZW1zZXQgKCZjdXJfc3RhdGUsIDAsIHNpemVvZiBjdXJfc3RhdGUpOwogCi0gIC8qIFRPRE86IGNh biBiZSBvcHRpbWl6ZWQgZm9yIFVURi04LiAgKi8KLSAgbWVtc2V0KCZjdXJfc3RhdGUsIDAsIHNp emVvZihtYnN0YXRlX3QpKTsKICAgd2hpbGUgKHAgPCBidWYpCiAgICAgewotICAgICAgc2l6ZV90 IG1iY2xlbiA9IG1icmxlbihwLCBlbmQgLSBwLCAmY3VyX3N0YXRlKTsKKyAgICAgIHNpemVfdCBt YmNsZW4gPSBtYmNsZW5fZ3Vlc3NbKHVuc2lnbmVkIGNoYXIpICpwXTsKKworICAgICAgaWYgKG1i Y2xlbiA9PSAoc2l6ZV90KSAtMikKKyAgICAgICAgbWJjbGVuID0gbWJybGVuIChwLCBlbmQgLSBw LCAmY3VyX3N0YXRlKTsKIAogICAgICAgLyogU3RvcmUgdGhlIGJlZ2lubmluZyBvZiB0aGUgcHJl dmlvdXMgY29tcGxldGUgbXVsdGlieXRlIGNoYXJhY3Rlci4gICovCiAgICAgICBpZiAobWJjbGVu ICE9IChzaXplX3QpIC0yKQotICAgICAgICBwcmV2ID0gcDsKKyAgICAgICAgIHByZXYgPSBwOwog CiAgICAgICBpZiAobWJjbGVuID09IChzaXplX3QpIC0xIHx8IG1iY2xlbiA9PSAoc2l6ZV90KSAt MiB8fCBtYmNsZW4gPT0gMCkKICAgICAgICAgewo= --------_52E7B6FC0000000063F0_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="make.txt" Content-Disposition: attachment; filename="make.txt" Content-Transfer-Encoding: base64 JCBlbnYgTEFORz1DIGdjYyAtdgpSZWFkaW5nIHNwZWNzIGZyb20gL3Vzci9sb2NhbC9saWIvZ2Nj L3g4Nl82NC1wYy1saW51eC1nbnUvNC4xLjIvc3BlY3MKVGFyZ2V0OiB4ODZfNjQtcGMtbGludXgt Z251CkNvbmZpZ3VyZWQgd2l0aDogLi9jb25maWd1cmUgLS13aXRoLWFzPS91c3IvbG9jYWwvYmlu L2FzIC0td2l0aC1sZD0vdXNyL2xvY2FsL2Jpbi9sZCAtLXdpdGgtc3lzdGVtLXpsaWIgLS1lbmFi bGUtX19jeGFfYXRleGl0ClRocmVhZCBtb2RlbDogcG9zaXgKZ2NjIHZlcnNpb24gNC4xLjIKJCBj ZCBzcmMgJiYgbWFrZQpkZXBiYXNlPWBlY2hvIGt3c2V0Lm8gfCBzZWQgJ3N8W14vXSokfC5kZXBz LyZ8O3N8XC5vJHx8J2A7XApnY2MgLXN0ZD1nbnU5OSAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4g IC1JLi4vbGliIC1JLi4vbGliICAtVyAtV2FiaSAtV2FsbCAtV2F0dHJpYnV0ZXMgLVdiYWQtZnVu Y3Rpb24tY2FzdCAtV2Nhc3QtYWxpZ24gLVdjaGFyLXN1YnNjcmlwdHMgLVdjb21tZW50IC1XY29t bWVudHMgLVdkZXByZWNhdGVkIC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMgLVdkaXNhYmxlZC1v cHRpbWl6YXRpb24gLVdkaXYtYnktemVybyAtV2VuZGlmLWxhYmVscyAtV2V4dHJhIC1XZm9ybWF0 LWV4dHJhLWFyZ3MgLVdmb3JtYXQtc2VjdXJpdHkgLVdmb3JtYXQteTJrIC1XZm9ybWF0LXplcm8t bGVuZ3RoIC1XaW1wbGljaXQgLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2ltcGxp Y2l0LWludCAtV2luaXQtc2VsZiAtV2ludC10by1wb2ludGVyLWNhc3QgLVdpbnZhbGlkLXBjaCAt V21haW4gLVdtaXNzaW5nLWJyYWNlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1m aWVsZC1pbml0aWFsaXplcnMgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90 eXBlcyAtV211bHRpY2hhciAtV25vbm51bGwgLVdub3JtYWxpemVkPW5mYyAtV29sZC1zdHlsZS1k ZWZpbml0aW9uIC1XcGFja2VkIC1XcGFyZW50aGVzZXMgLVdwb2ludGVyLWFyaXRoIC1XcG9pbnRl ci1zaWduIC1XcG9pbnRlci10by1pbnQtY2FzdCAtV3ByYWdtYXMgLVdyZXR1cm4tdHlwZSAtV3Nl cXVlbmNlLXBvaW50IC1Xc2hhZG93IC1Xc3RyaWN0LWFsaWFzaW5nIC1Xc3RyaWN0LXByb3RvdHlw ZXMgLVdzd2l0Y2ggLVd0cmlncmFwaHMgLVd1bmluaXRpYWxpemVkIC1XdW5rbm93bi1wcmFnbWFz IC1XdW51c2VkIC1XdW51c2VkLWZ1bmN0aW9uIC1XdW51c2VkLWxhYmVsIC1XdW51c2VkLW1hY3Jv cyAtV3VudXNlZC1wYXJhbWV0ZXIgLVd1bnVzZWQtdmFsdWUgLVd1bnVzZWQtdmFyaWFibGUgLVd2 YXJpYWRpYy1tYWNyb3MgLVd2b2xhdGlsZS1yZWdpc3Rlci12YXIgLVd3cml0ZS1zdHJpbmdzIC1m ZGlhZ25vc3RpY3Mtc2hvdy1vcHRpb24gLWZ1bml0LWF0LWEtdGltZSAtV25vLW1pc3NpbmctZmll bGQtaW5pdGlhbGl6ZXJzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1zaWdu LWNvbXBhcmUgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZm9y bWF0LW5vbmxpdGVyYWwgLVdlcnJvciAtTzIgLXBpcGUgLUROREVCVUcgLU1UIGt3c2V0Lm8gLU1E IC1NUCAtTUYgJGRlcGJhc2UuVHBvIC1jIC1vIGt3c2V0Lm8ga3dzZXQuYyAmJlwKbXYgLWYgJGRl cGJhc2UuVHBvICRkZXBiYXNlLlBvCmNjMTogd2FybmluZzogY29tbWFuZCBsaW5lIG9wdGlvbiAi LVdhYmkiIGlzIHZhbGlkIGZvciBDKysvT2JqQysrIGJ1dCBub3QgZm9yIEMKY2MxOiB3YXJuaW5n OiBjb21tYW5kIGxpbmUgb3B0aW9uICItV2RlcHJlY2F0ZWQiIGlzIHZhbGlkIGZvciBDKysvSmF2 YS9PYmpDKysgYnV0IG5vdCBmb3IgQwpkZXBiYXNlPWBlY2hvIGRmYS5vIHwgc2VkICdzfFteL10q JHwuZGVwcy8mfDtzfFwubyR8fCdgO1wKZ2NjIC1zdGQ9Z251OTkgLURIQVZFX0NPTkZJR19IIC1J LiAtSS4uICAtSS4uL2xpYiAtSS4uL2xpYiAgLVcgLVdhYmkgLVdhbGwgLVdhdHRyaWJ1dGVzIC1X YmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWduIC1XY2hhci1zdWJzY3JpcHRzIC1XY29tbWVu dCAtV2NvbW1lbnRzIC1XZGVwcmVjYXRlZCAtV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIC1XZGlz YWJsZWQtb3B0aW1pemF0aW9uIC1XZGl2LWJ5LXplcm8gLVdlbmRpZi1sYWJlbHMgLVdleHRyYSAt V2Zvcm1hdC1leHRyYS1hcmdzIC1XZm9ybWF0LXNlY3VyaXR5IC1XZm9ybWF0LXkyayAtV2Zvcm1h dC16ZXJvLWxlbmd0aCAtV2ltcGxpY2l0IC1XaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24g LVdpbXBsaWNpdC1pbnQgLVdpbml0LXNlbGYgLVdpbnQtdG8tcG9pbnRlci1jYXN0IC1XaW52YWxp ZC1wY2ggLVdtYWluIC1XbWlzc2luZy1icmFjZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21p c3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMgLVdtaXNzaW5n LXByb3RvdHlwZXMgLVdtdWx0aWNoYXIgLVdub25udWxsIC1Xbm9ybWFsaXplZD1uZmMgLVdvbGQt c3R5bGUtZGVmaW5pdGlvbiAtV3BhY2tlZCAtV3BhcmVudGhlc2VzIC1XcG9pbnRlci1hcml0aCAt V3BvaW50ZXItc2lnbiAtV3BvaW50ZXItdG8taW50LWNhc3QgLVdwcmFnbWFzIC1XcmV0dXJuLXR5 cGUgLVdzZXF1ZW5jZS1wb2ludCAtV3NoYWRvdyAtV3N0cmljdC1hbGlhc2luZyAtV3N0cmljdC1w cm90b3R5cGVzIC1Xc3dpdGNoIC1XdHJpZ3JhcGhzIC1XdW5pbml0aWFsaXplZCAtV3Vua25vd24t cHJhZ21hcyAtV3VudXNlZCAtV3VudXNlZC1mdW5jdGlvbiAtV3VudXNlZC1sYWJlbCAtV3VudXNl ZC1tYWNyb3MgLVd1bnVzZWQtcGFyYW1ldGVyIC1XdW51c2VkLXZhbHVlIC1XdW51c2VkLXZhcmlh YmxlIC1XdmFyaWFkaWMtbWFjcm9zIC1Xdm9sYXRpbGUtcmVnaXN0ZXItdmFyIC1Xd3JpdGUtc3Ry aW5ncyAtZmRpYWdub3N0aWNzLXNob3ctb3B0aW9uIC1mdW5pdC1hdC1hLXRpbWUgLVduby1taXNz aW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1X bm8tc2lnbi1jb21wYXJlIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAt V25vLWZvcm1hdC1ub25saXRlcmFsIC1XZXJyb3IgLU8yIC1waXBlIC1ETkRFQlVHIC1NVCBkZmEu byAtTUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMgLW8gZGZhLm8gZGZhLmMgJiZcCm12IC1mICRk ZXBiYXNlLlRwbyAkZGVwYmFzZS5QbwpjYzE6IHdhcm5pbmc6IGNvbW1hbmQgbGluZSBvcHRpb24g Ii1XYWJpIiBpcyB2YWxpZCBmb3IgQysrL09iakMrKyBidXQgbm90IGZvciBDCmNjMTogd2Fybmlu ZzogY29tbWFuZCBsaW5lIG9wdGlvbiAiLVdkZXByZWNhdGVkIiBpcyB2YWxpZCBmb3IgQysrL0ph dmEvT2JqQysrIGJ1dCBub3QgZm9yIEMKZGVwYmFzZT1gZWNobyBzZWFyY2h1dGlscy5vIHwgc2Vk ICdzfFteL10qJHwuZGVwcy8mfDtzfFwubyR8fCdgO1wKZ2NjIC1zdGQ9Z251OTkgLURIQVZFX0NP TkZJR19IIC1JLiAtSS4uICAtSS4uL2xpYiAtSS4uL2xpYiAgLVcgLVdhYmkgLVdhbGwgLVdhdHRy aWJ1dGVzIC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWduIC1XY2hhci1zdWJzY3JpcHRz IC1XY29tbWVudCAtV2NvbW1lbnRzIC1XZGVwcmVjYXRlZCAtV2RlcHJlY2F0ZWQtZGVjbGFyYXRp b25zIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uIC1XZGl2LWJ5LXplcm8gLVdlbmRpZi1sYWJlbHMg LVdleHRyYSAtV2Zvcm1hdC1leHRyYS1hcmdzIC1XZm9ybWF0LXNlY3VyaXR5IC1XZm9ybWF0LXky ayAtV2Zvcm1hdC16ZXJvLWxlbmd0aCAtV2ltcGxpY2l0IC1XaW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb24gLVdpbXBsaWNpdC1pbnQgLVdpbml0LXNlbGYgLVdpbnQtdG8tcG9pbnRlci1jYXN0 IC1XaW52YWxpZC1wY2ggLVdtYWluIC1XbWlzc2luZy1icmFjZXMgLVdtaXNzaW5nLWRlY2xhcmF0 aW9ucyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMg LVdtaXNzaW5nLXByb3RvdHlwZXMgLVdtdWx0aWNoYXIgLVdub25udWxsIC1Xbm9ybWFsaXplZD1u ZmMgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiAtV3BhY2tlZCAtV3BhcmVudGhlc2VzIC1XcG9pbnRl ci1hcml0aCAtV3BvaW50ZXItc2lnbiAtV3BvaW50ZXItdG8taW50LWNhc3QgLVdwcmFnbWFzIC1X cmV0dXJuLXR5cGUgLVdzZXF1ZW5jZS1wb2ludCAtV3NoYWRvdyAtV3N0cmljdC1hbGlhc2luZyAt V3N0cmljdC1wcm90b3R5cGVzIC1Xc3dpdGNoIC1XdHJpZ3JhcGhzIC1XdW5pbml0aWFsaXplZCAt V3Vua25vd24tcHJhZ21hcyAtV3VudXNlZCAtV3VudXNlZC1mdW5jdGlvbiAtV3VudXNlZC1sYWJl bCAtV3VudXNlZC1tYWNyb3MgLVd1bnVzZWQtcGFyYW1ldGVyIC1XdW51c2VkLXZhbHVlIC1XdW51 c2VkLXZhcmlhYmxlIC1XdmFyaWFkaWMtbWFjcm9zIC1Xdm9sYXRpbGUtcmVnaXN0ZXItdmFyIC1X d3JpdGUtc3RyaW5ncyAtZmRpYWdub3N0aWNzLXNob3ctb3B0aW9uIC1mdW5pdC1hdC1hLXRpbWUg LVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlh bGl6ZXJzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXBh cmFtZXRlciAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1XZXJyb3IgLU8yIC1waXBlIC1ETkRFQlVH IC1NVCBzZWFyY2h1dGlscy5vIC1NRCAtTVAgLU1GICRkZXBiYXNlLlRwbyAtYyAtbyBzZWFyY2h1 dGlscy5vIHNlYXJjaHV0aWxzLmMgJiZcCm12IC1mICRkZXBiYXNlLlRwbyAkZGVwYmFzZS5Qbwpj YzE6IHdhcm5pbmc6IGNvbW1hbmQgbGluZSBvcHRpb24gIi1XYWJpIiBpcyB2YWxpZCBmb3IgQysr L09iakMrKyBidXQgbm90IGZvciBDCmNjMTogd2FybmluZzogY29tbWFuZCBsaW5lIG9wdGlvbiAi LVdkZXByZWNhdGVkIiBpcyB2YWxpZCBmb3IgQysrL0phdmEvT2JqQysrIGJ1dCBub3QgZm9yIEMK ZGVwYmFzZT1gZWNobyBkZmFzZWFyY2gubyB8IHNlZCAnc3xbXi9dKiR8LmRlcHMvJnw7c3xcLm8k fHwnYDtcCmdjYyAtc3RkPWdudTk5IC1ESEFWRV9DT05GSUdfSCAtSS4gLUkuLiAgLUkuLi9saWIg LUkuLi9saWIgIC1XIC1XYWJpIC1XYWxsIC1XYXR0cmlidXRlcyAtV2JhZC1mdW5jdGlvbi1jYXN0 IC1XY2FzdC1hbGlnbiAtV2NoYXItc3Vic2NyaXB0cyAtV2NvbW1lbnQgLVdjb21tZW50cyAtV2Rl cHJlY2F0ZWQgLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyAtV2Rpc2FibGVkLW9wdGltaXphdGlv biAtV2Rpdi1ieS16ZXJvIC1XZW5kaWYtbGFiZWxzIC1XZXh0cmEgLVdmb3JtYXQtZXh0cmEtYXJn cyAtV2Zvcm1hdC1zZWN1cml0eSAtV2Zvcm1hdC15MmsgLVdmb3JtYXQtemVyby1sZW5ndGggLVdp bXBsaWNpdCAtV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1XaW1wbGljaXQtaW50IC1X aW5pdC1zZWxmIC1XaW50LXRvLXBvaW50ZXItY2FzdCAtV2ludmFsaWQtcGNoIC1XbWFpbiAtV21p c3NpbmctYnJhY2VzIC1XbWlzc2luZy1kZWNsYXJhdGlvbnMgLVdtaXNzaW5nLWZpZWxkLWluaXRp YWxpemVycyAtV21pc3NpbmctaW5jbHVkZS1kaXJzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbXVs dGljaGFyIC1Xbm9ubnVsbCAtV25vcm1hbGl6ZWQ9bmZjIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24g LVdwYWNrZWQgLVdwYXJlbnRoZXNlcyAtV3BvaW50ZXItYXJpdGggLVdwb2ludGVyLXNpZ24gLVdw b2ludGVyLXRvLWludC1jYXN0IC1XcHJhZ21hcyAtV3JldHVybi10eXBlIC1Xc2VxdWVuY2UtcG9p bnQgLVdzaGFkb3cgLVdzdHJpY3QtYWxpYXNpbmcgLVdzdHJpY3QtcHJvdG90eXBlcyAtV3N3aXRj aCAtV3RyaWdyYXBocyAtV3VuaW5pdGlhbGl6ZWQgLVd1bmtub3duLXByYWdtYXMgLVd1bnVzZWQg LVd1bnVzZWQtZnVuY3Rpb24gLVd1bnVzZWQtbGFiZWwgLVd1bnVzZWQtbWFjcm9zIC1XdW51c2Vk LXBhcmFtZXRlciAtV3VudXNlZC12YWx1ZSAtV3VudXNlZC12YXJpYWJsZSAtV3ZhcmlhZGljLW1h Y3JvcyAtV3ZvbGF0aWxlLXJlZ2lzdGVyLXZhciAtV3dyaXRlLXN0cmluZ3MgLWZkaWFnbm9zdGlj cy1zaG93LW9wdGlvbiAtZnVuaXQtYXQtYS10aW1lIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFs aXplcnMgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXNpZ24tY29tcGFyZSAt V25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1mb3JtYXQtbm9ubGl0 ZXJhbCAtV2Vycm9yIC1PMiAtcGlwZSAtRE5ERUJVRyAtTVQgZGZhc2VhcmNoLm8gLU1EIC1NUCAt TUYgJGRlcGJhc2UuVHBvIC1jIC1vIGRmYXNlYXJjaC5vIGRmYXNlYXJjaC5jICYmXAptdiAtZiAk ZGVwYmFzZS5UcG8gJGRlcGJhc2UuUG8KY2MxOiB3YXJuaW5nOiBjb21tYW5kIGxpbmUgb3B0aW9u ICItV2FiaSIgaXMgdmFsaWQgZm9yIEMrKy9PYmpDKysgYnV0IG5vdCBmb3IgQwpjYzE6IHdhcm5p bmc6IGNvbW1hbmQgbGluZSBvcHRpb24gIi1XZGVwcmVjYXRlZCIgaXMgdmFsaWQgZm9yIEMrKy9K YXZhL09iakMrKyBidXQgbm90IGZvciBDCmRlcGJhc2U9YGVjaG8ga3dzZWFyY2gubyB8IHNlZCAn c3xbXi9dKiR8LmRlcHMvJnw7c3xcLm8kfHwnYDtcCmdjYyAtc3RkPWdudTk5IC1ESEFWRV9DT05G SUdfSCAtSS4gLUkuLiAgLUkuLi9saWIgLUkuLi9saWIgIC1XIC1XYWJpIC1XYWxsIC1XYXR0cmli dXRlcyAtV2JhZC1mdW5jdGlvbi1jYXN0IC1XY2FzdC1hbGlnbiAtV2NoYXItc3Vic2NyaXB0cyAt V2NvbW1lbnQgLVdjb21tZW50cyAtV2RlcHJlY2F0ZWQgLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u cyAtV2Rpc2FibGVkLW9wdGltaXphdGlvbiAtV2Rpdi1ieS16ZXJvIC1XZW5kaWYtbGFiZWxzIC1X ZXh0cmEgLVdmb3JtYXQtZXh0cmEtYXJncyAtV2Zvcm1hdC1zZWN1cml0eSAtV2Zvcm1hdC15Mmsg LVdmb3JtYXQtemVyby1sZW5ndGggLVdpbXBsaWNpdCAtV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xh cmF0aW9uIC1XaW1wbGljaXQtaW50IC1XaW5pdC1zZWxmIC1XaW50LXRvLXBvaW50ZXItY2FzdCAt V2ludmFsaWQtcGNoIC1XbWFpbiAtV21pc3NpbmctYnJhY2VzIC1XbWlzc2luZy1kZWNsYXJhdGlv bnMgLVdtaXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV21pc3NpbmctaW5jbHVkZS1kaXJzIC1X bWlzc2luZy1wcm90b3R5cGVzIC1XbXVsdGljaGFyIC1Xbm9ubnVsbCAtV25vcm1hbGl6ZWQ9bmZj IC1Xb2xkLXN0eWxlLWRlZmluaXRpb24gLVdwYWNrZWQgLVdwYXJlbnRoZXNlcyAtV3BvaW50ZXIt YXJpdGggLVdwb2ludGVyLXNpZ24gLVdwb2ludGVyLXRvLWludC1jYXN0IC1XcHJhZ21hcyAtV3Jl dHVybi10eXBlIC1Xc2VxdWVuY2UtcG9pbnQgLVdzaGFkb3cgLVdzdHJpY3QtYWxpYXNpbmcgLVdz dHJpY3QtcHJvdG90eXBlcyAtV3N3aXRjaCAtV3RyaWdyYXBocyAtV3VuaW5pdGlhbGl6ZWQgLVd1 bmtub3duLXByYWdtYXMgLVd1bnVzZWQgLVd1bnVzZWQtZnVuY3Rpb24gLVd1bnVzZWQtbGFiZWwg LVd1bnVzZWQtbWFjcm9zIC1XdW51c2VkLXBhcmFtZXRlciAtV3VudXNlZC12YWx1ZSAtV3VudXNl ZC12YXJpYWJsZSAtV3ZhcmlhZGljLW1hY3JvcyAtV3ZvbGF0aWxlLXJlZ2lzdGVyLXZhciAtV3dy aXRlLXN0cmluZ3MgLWZkaWFnbm9zdGljcy1zaG93LW9wdGlvbiAtZnVuaXQtYXQtYS10aW1lIC1X bm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxp emVycyAtV25vLXNpZ24tY29tcGFyZSAtV25vLXBvaW50ZXItc2lnbiAtV25vLXVudXNlZC1wYXJh bWV0ZXIgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCAtV2Vycm9yIC1PMiAtcGlwZSAtRE5ERUJVRyAt TVQga3dzZWFyY2gubyAtTUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMgLW8ga3dzZWFyY2gubyBr d3NlYXJjaC5jICYmXAptdiAtZiAkZGVwYmFzZS5UcG8gJGRlcGJhc2UuUG8KY2MxOiB3YXJuaW5n OiBjb21tYW5kIGxpbmUgb3B0aW9uICItV2FiaSIgaXMgdmFsaWQgZm9yIEMrKy9PYmpDKysgYnV0 IG5vdCBmb3IgQwpjYzE6IHdhcm5pbmc6IGNvbW1hbmQgbGluZSBvcHRpb24gIi1XZGVwcmVjYXRl ZCIgaXMgdmFsaWQgZm9yIEMrKy9KYXZhL09iakMrKyBidXQgbm90IGZvciBDCmRlcGJhc2U9YGVj aG8gcGNyZXNlYXJjaC5vIHwgc2VkICdzfFteL10qJHwuZGVwcy8mfDtzfFwubyR8fCdgO1wKZ2Nj IC1zdGQ9Z251OTkgLURIQVZFX0NPTkZJR19IIC1JLiAtSS4uICAtSS4uL2xpYiAtSS4uL2xpYiAg LVcgLVdhYmkgLVdhbGwgLVdhdHRyaWJ1dGVzIC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFs aWduIC1XY2hhci1zdWJzY3JpcHRzIC1XY29tbWVudCAtV2NvbW1lbnRzIC1XZGVwcmVjYXRlZCAt V2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uIC1XZGl2LWJ5 LXplcm8gLVdlbmRpZi1sYWJlbHMgLVdleHRyYSAtV2Zvcm1hdC1leHRyYS1hcmdzIC1XZm9ybWF0 LXNlY3VyaXR5IC1XZm9ybWF0LXkyayAtV2Zvcm1hdC16ZXJvLWxlbmd0aCAtV2ltcGxpY2l0IC1X aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gLVdpbXBsaWNpdC1pbnQgLVdpbml0LXNlbGYg LVdpbnQtdG8tcG9pbnRlci1jYXN0IC1XaW52YWxpZC1wY2ggLVdtYWluIC1XbWlzc2luZy1icmFj ZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1X bWlzc2luZy1pbmNsdWRlLWRpcnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdtdWx0aWNoYXIgLVdu b25udWxsIC1Xbm9ybWFsaXplZD1uZmMgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiAtV3BhY2tlZCAt V3BhcmVudGhlc2VzIC1XcG9pbnRlci1hcml0aCAtV3BvaW50ZXItc2lnbiAtV3BvaW50ZXItdG8t aW50LWNhc3QgLVdwcmFnbWFzIC1XcmV0dXJuLXR5cGUgLVdzZXF1ZW5jZS1wb2ludCAtV3NoYWRv dyAtV3N0cmljdC1hbGlhc2luZyAtV3N0cmljdC1wcm90b3R5cGVzIC1Xc3dpdGNoIC1XdHJpZ3Jh cGhzIC1XdW5pbml0aWFsaXplZCAtV3Vua25vd24tcHJhZ21hcyAtV3VudXNlZCAtV3VudXNlZC1m dW5jdGlvbiAtV3VudXNlZC1sYWJlbCAtV3VudXNlZC1tYWNyb3MgLVd1bnVzZWQtcGFyYW1ldGVy IC1XdW51c2VkLXZhbHVlIC1XdW51c2VkLXZhcmlhYmxlIC1XdmFyaWFkaWMtbWFjcm9zIC1Xdm9s YXRpbGUtcmVnaXN0ZXItdmFyIC1Xd3JpdGUtc3RyaW5ncyAtZmRpYWdub3N0aWNzLXNob3ctb3B0 aW9uIC1mdW5pdC1hdC1hLXRpbWUgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25v LW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tcG9pbnRl ci1zaWduIC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1XZXJy b3IgLU8yIC1waXBlIC1ETkRFQlVHIC1NVCBwY3Jlc2VhcmNoLm8gLU1EIC1NUCAtTUYgJGRlcGJh c2UuVHBvIC1jIC1vIHBjcmVzZWFyY2gubyBwY3Jlc2VhcmNoLmMgJiZcCm12IC1mICRkZXBiYXNl LlRwbyAkZGVwYmFzZS5QbwpjYzE6IHdhcm5pbmc6IGNvbW1hbmQgbGluZSBvcHRpb24gIi1XYWJp IiBpcyB2YWxpZCBmb3IgQysrL09iakMrKyBidXQgbm90IGZvciBDCmNjMTogd2FybmluZzogY29t bWFuZCBsaW5lIG9wdGlvbiAiLVdkZXByZWNhdGVkIiBpcyB2YWxpZCBmb3IgQysrL0phdmEvT2Jq QysrIGJ1dCBub3QgZm9yIEMKZGVwYmFzZT1gZWNobyBtYWluLm8gfCBzZWQgJ3N8W14vXSokfC5k ZXBzLyZ8O3N8XC5vJHx8J2A7XApnY2MgLXN0ZD1nbnU5OSAtREhBVkVfQ09ORklHX0ggLUkuIC1J Li4gIC1JLi4vbGliIC1JLi4vbGliICAtVyAtV2FiaSAtV2FsbCAtV2F0dHJpYnV0ZXMgLVdiYWQt ZnVuY3Rpb24tY2FzdCAtV2Nhc3QtYWxpZ24gLVdjaGFyLXN1YnNjcmlwdHMgLVdjb21tZW50IC1X Y29tbWVudHMgLVdkZXByZWNhdGVkIC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMgLVdkaXNhYmxl ZC1vcHRpbWl6YXRpb24gLVdkaXYtYnktemVybyAtV2VuZGlmLWxhYmVscyAtV2V4dHJhIC1XZm9y bWF0LWV4dHJhLWFyZ3MgLVdmb3JtYXQtc2VjdXJpdHkgLVdmb3JtYXQteTJrIC1XZm9ybWF0LXpl cm8tbGVuZ3RoIC1XaW1wbGljaXQgLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2lt cGxpY2l0LWludCAtV2luaXQtc2VsZiAtV2ludC10by1wb2ludGVyLWNhc3QgLVdpbnZhbGlkLXBj aCAtV21haW4gLVdtaXNzaW5nLWJyYWNlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2lu Zy1maWVsZC1pbml0aWFsaXplcnMgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyAtV21pc3NpbmctcHJv dG90eXBlcyAtV211bHRpY2hhciAtV25vbm51bGwgLVdub3JtYWxpemVkPW5mYyAtV29sZC1zdHls ZS1kZWZpbml0aW9uIC1XcGFja2VkIC1XcGFyZW50aGVzZXMgLVdwb2ludGVyLWFyaXRoIC1XcG9p bnRlci1zaWduIC1XcG9pbnRlci10by1pbnQtY2FzdCAtV3ByYWdtYXMgLVdyZXR1cm4tdHlwZSAt V3NlcXVlbmNlLXBvaW50IC1Xc2hhZG93IC1Xc3RyaWN0LWFsaWFzaW5nIC1Xc3RyaWN0LXByb3Rv dHlwZXMgLVdzd2l0Y2ggLVd0cmlncmFwaHMgLVd1bmluaXRpYWxpemVkIC1XdW5rbm93bi1wcmFn bWFzIC1XdW51c2VkIC1XdW51c2VkLWZ1bmN0aW9uIC1XdW51c2VkLWxhYmVsIC1XdW51c2VkLW1h Y3JvcyAtV3VudXNlZC1wYXJhbWV0ZXIgLVd1bnVzZWQtdmFsdWUgLVd1bnVzZWQtdmFyaWFibGUg LVd2YXJpYWRpYy1tYWNyb3MgLVd2b2xhdGlsZS1yZWdpc3Rlci12YXIgLVd3cml0ZS1zdHJpbmdz IC1mZGlhZ25vc3RpY3Mtc2hvdy1vcHRpb24gLWZ1bml0LWF0LWEtdGltZSAtV25vLW1pc3Npbmct ZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1z aWduLWNvbXBhcmUgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8t Zm9ybWF0LW5vbmxpdGVyYWwgLVdlcnJvciAtTzIgLXBpcGUgLUROREVCVUcgLU1UIG1haW4ubyAt TUQgLU1QIC1NRiAkZGVwYmFzZS5UcG8gLWMgLW8gbWFpbi5vIG1haW4uYyAmJlwKbXYgLWYgJGRl cGJhc2UuVHBvICRkZXBiYXNlLlBvCmNjMTogd2FybmluZzogY29tbWFuZCBsaW5lIG9wdGlvbiAi LVdhYmkiIGlzIHZhbGlkIGZvciBDKysvT2JqQysrIGJ1dCBub3QgZm9yIEMKY2MxOiB3YXJuaW5n OiBjb21tYW5kIGxpbmUgb3B0aW9uICItV2RlcHJlY2F0ZWQiIGlzIHZhbGlkIGZvciBDKysvSmF2 YS9PYmpDKysgYnV0IG5vdCBmb3IgQwpybSAtZiBsaWJncmVwLmEKYXIgY3J1IGxpYmdyZXAuYSBr d3NldC5vIGRmYS5vIHNlYXJjaHV0aWxzLm8gZGZhc2VhcmNoLm8ga3dzZWFyY2gubyBwY3Jlc2Vh cmNoLm8gbWFpbi5vIApyYW5saWIgbGliZ3JlcC5hCmRlcGJhc2U9YGVjaG8gZ3JlcC5vIHwgc2Vk ICdzfFteL10qJHwuZGVwcy8mfDtzfFwubyR8fCdgO1wKZ2NjIC1zdGQ9Z251OTkgLURIQVZFX0NP TkZJR19IIC1JLiAtSS4uICAtSS4uL2xpYiAtSS4uL2xpYiAgLVcgLVdhYmkgLVdhbGwgLVdhdHRy aWJ1dGVzIC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWduIC1XY2hhci1zdWJzY3JpcHRz IC1XY29tbWVudCAtV2NvbW1lbnRzIC1XZGVwcmVjYXRlZCAtV2RlcHJlY2F0ZWQtZGVjbGFyYXRp b25zIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uIC1XZGl2LWJ5LXplcm8gLVdlbmRpZi1sYWJlbHMg LVdleHRyYSAtV2Zvcm1hdC1leHRyYS1hcmdzIC1XZm9ybWF0LXNlY3VyaXR5IC1XZm9ybWF0LXky ayAtV2Zvcm1hdC16ZXJvLWxlbmd0aCAtV2ltcGxpY2l0IC1XaW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb24gLVdpbXBsaWNpdC1pbnQgLVdpbml0LXNlbGYgLVdpbnQtdG8tcG9pbnRlci1jYXN0 IC1XaW52YWxpZC1wY2ggLVdtYWluIC1XbWlzc2luZy1icmFjZXMgLVdtaXNzaW5nLWRlY2xhcmF0 aW9ucyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMg LVdtaXNzaW5nLXByb3RvdHlwZXMgLVdtdWx0aWNoYXIgLVdub25udWxsIC1Xbm9ybWFsaXplZD1u ZmMgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiAtV3BhY2tlZCAtV3BhcmVudGhlc2VzIC1XcG9pbnRl ci1hcml0aCAtV3BvaW50ZXItc2lnbiAtV3BvaW50ZXItdG8taW50LWNhc3QgLVdwcmFnbWFzIC1X cmV0dXJuLXR5cGUgLVdzZXF1ZW5jZS1wb2ludCAtV3NoYWRvdyAtV3N0cmljdC1hbGlhc2luZyAt V3N0cmljdC1wcm90b3R5cGVzIC1Xc3dpdGNoIC1XdHJpZ3JhcGhzIC1XdW5pbml0aWFsaXplZCAt V3Vua25vd24tcHJhZ21hcyAtV3VudXNlZCAtV3VudXNlZC1mdW5jdGlvbiAtV3VudXNlZC1sYWJl bCAtV3VudXNlZC1tYWNyb3MgLVd1bnVzZWQtcGFyYW1ldGVyIC1XdW51c2VkLXZhbHVlIC1XdW51 c2VkLXZhcmlhYmxlIC1XdmFyaWFkaWMtbWFjcm9zIC1Xdm9sYXRpbGUtcmVnaXN0ZXItdmFyIC1X d3JpdGUtc3RyaW5ncyAtZmRpYWdub3N0aWNzLXNob3ctb3B0aW9uIC1mdW5pdC1hdC1hLXRpbWUg LVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlh bGl6ZXJzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tcG9pbnRlci1zaWduIC1Xbm8tdW51c2VkLXBh cmFtZXRlciAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1XZXJyb3IgLU8yIC1waXBlIC1ETkRFQlVH IC1NVCBncmVwLm8gLU1EIC1NUCAtTUYgJGRlcGJhc2UuVHBvIC1jIC1vIGdyZXAubyBncmVwLmMg JiZcCm12IC1mICRkZXBiYXNlLlRwbyAkZGVwYmFzZS5QbwpjYzE6IHdhcm5pbmc6IGNvbW1hbmQg bGluZSBvcHRpb24gIi1XYWJpIiBpcyB2YWxpZCBmb3IgQysrL09iakMrKyBidXQgbm90IGZvciBD CmNjMTogd2FybmluZzogY29tbWFuZCBsaW5lIG9wdGlvbiAiLVdkZXByZWNhdGVkIiBpcyB2YWxp ZCBmb3IgQysrL0phdmEvT2JqQysrIGJ1dCBub3QgZm9yIEMKZ2NjIC1zdGQ9Z251OTkgLVcgLVdh YmkgLVdhbGwgLVdhdHRyaWJ1dGVzIC1XYmFkLWZ1bmN0aW9uLWNhc3QgLVdjYXN0LWFsaWduIC1X Y2hhci1zdWJzY3JpcHRzIC1XY29tbWVudCAtV2NvbW1lbnRzIC1XZGVwcmVjYXRlZCAtV2RlcHJl Y2F0ZWQtZGVjbGFyYXRpb25zIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uIC1XZGl2LWJ5LXplcm8g LVdlbmRpZi1sYWJlbHMgLVdleHRyYSAtV2Zvcm1hdC1leHRyYS1hcmdzIC1XZm9ybWF0LXNlY3Vy aXR5IC1XZm9ybWF0LXkyayAtV2Zvcm1hdC16ZXJvLWxlbmd0aCAtV2ltcGxpY2l0IC1XaW1wbGlj aXQtZnVuY3Rpb24tZGVjbGFyYXRpb24gLVdpbXBsaWNpdC1pbnQgLVdpbml0LXNlbGYgLVdpbnQt dG8tcG9pbnRlci1jYXN0IC1XaW52YWxpZC1wY2ggLVdtYWluIC1XbWlzc2luZy1icmFjZXMgLVdt aXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1XbWlzc2lu Zy1pbmNsdWRlLWRpcnMgLVdtaXNzaW5nLXByb3RvdHlwZXMgLVdtdWx0aWNoYXIgLVdub25udWxs IC1Xbm9ybWFsaXplZD1uZmMgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiAtV3BhY2tlZCAtV3BhcmVu dGhlc2VzIC1XcG9pbnRlci1hcml0aCAtV3BvaW50ZXItc2lnbiAtV3BvaW50ZXItdG8taW50LWNh c3QgLVdwcmFnbWFzIC1XcmV0dXJuLXR5cGUgLVdzZXF1ZW5jZS1wb2ludCAtV3NoYWRvdyAtV3N0 cmljdC1hbGlhc2luZyAtV3N0cmljdC1wcm90b3R5cGVzIC1Xc3dpdGNoIC1XdHJpZ3JhcGhzIC1X dW5pbml0aWFsaXplZCAtV3Vua25vd24tcHJhZ21hcyAtV3VudXNlZCAtV3VudXNlZC1mdW5jdGlv biAtV3VudXNlZC1sYWJlbCAtV3VudXNlZC1tYWNyb3MgLVd1bnVzZWQtcGFyYW1ldGVyIC1XdW51 c2VkLXZhbHVlIC1XdW51c2VkLXZhcmlhYmxlIC1XdmFyaWFkaWMtbWFjcm9zIC1Xdm9sYXRpbGUt cmVnaXN0ZXItdmFyIC1Xd3JpdGUtc3RyaW5ncyAtZmRpYWdub3N0aWNzLXNob3ctb3B0aW9uIC1m dW5pdC1hdC1hLXRpbWUgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLW1pc3Np bmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tcG9pbnRlci1zaWdu IC1Xbm8tdW51c2VkLXBhcmFtZXRlciAtV25vLWZvcm1hdC1ub25saXRlcmFsIC1XZXJyb3IgLU8y IC1waXBlIC1ETkRFQlVHICAgLW8gZ3JlcCBncmVwLm8gbGliZ3JlcC5hIC4uL2xpYi9saWJncmVw dXRpbHMuYSAgLi4vbGliL2xpYmdyZXB1dGlscy5hICAgLWxwY3JlIApkZXBiYXNlPWBlY2hvIGVn cmVwLm8gfCBzZWQgJ3N8W14vXSokfC5kZXBzLyZ8O3N8XC5vJHx8J2A7XApnY2MgLXN0ZD1nbnU5 OSAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4gIC1JLi4vbGliIC1JLi4vbGliICAtVyAtV2FiaSAt V2FsbCAtV2F0dHJpYnV0ZXMgLVdiYWQtZnVuY3Rpb24tY2FzdCAtV2Nhc3QtYWxpZ24gLVdjaGFy LXN1YnNjcmlwdHMgLVdjb21tZW50IC1XY29tbWVudHMgLVdkZXByZWNhdGVkIC1XZGVwcmVjYXRl ZC1kZWNsYXJhdGlvbnMgLVdkaXNhYmxlZC1vcHRpbWl6YXRpb24gLVdkaXYtYnktemVybyAtV2Vu ZGlmLWxhYmVscyAtV2V4dHJhIC1XZm9ybWF0LWV4dHJhLWFyZ3MgLVdmb3JtYXQtc2VjdXJpdHkg LVdmb3JtYXQteTJrIC1XZm9ybWF0LXplcm8tbGVuZ3RoIC1XaW1wbGljaXQgLVdpbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbiAtV2ltcGxpY2l0LWludCAtV2luaXQtc2VsZiAtV2ludC10by1w b2ludGVyLWNhc3QgLVdpbnZhbGlkLXBjaCAtV21haW4gLVdtaXNzaW5nLWJyYWNlcyAtV21pc3Np bmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVdtaXNzaW5nLWlu Y2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90eXBlcyAtV211bHRpY2hhciAtV25vbm51bGwgLVdu b3JtYWxpemVkPW5mYyAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1XcGFja2VkIC1XcGFyZW50aGVz ZXMgLVdwb2ludGVyLWFyaXRoIC1XcG9pbnRlci1zaWduIC1XcG9pbnRlci10by1pbnQtY2FzdCAt V3ByYWdtYXMgLVdyZXR1cm4tdHlwZSAtV3NlcXVlbmNlLXBvaW50IC1Xc2hhZG93IC1Xc3RyaWN0 LWFsaWFzaW5nIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdzd2l0Y2ggLVd0cmlncmFwaHMgLVd1bmlu aXRpYWxpemVkIC1XdW5rbm93bi1wcmFnbWFzIC1XdW51c2VkIC1XdW51c2VkLWZ1bmN0aW9uIC1X dW51c2VkLWxhYmVsIC1XdW51c2VkLW1hY3JvcyAtV3VudXNlZC1wYXJhbWV0ZXIgLVd1bnVzZWQt dmFsdWUgLVd1bnVzZWQtdmFyaWFibGUgLVd2YXJpYWRpYy1tYWNyb3MgLVd2b2xhdGlsZS1yZWdp c3Rlci12YXIgLVd3cml0ZS1zdHJpbmdzIC1mZGlhZ25vc3RpY3Mtc2hvdy1vcHRpb24gLWZ1bml0 LWF0LWEtdGltZSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tbWlzc2luZy1m aWVsZC1pbml0aWFsaXplcnMgLVduby1zaWduLWNvbXBhcmUgLVduby1wb2ludGVyLXNpZ24gLVdu by11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdlcnJvciAtTzIgLXBp cGUgLUROREVCVUcgLU1UIGVncmVwLm8gLU1EIC1NUCAtTUYgJGRlcGJhc2UuVHBvIC1jIC1vIGVn cmVwLm8gZWdyZXAuYyAmJlwKbXYgLWYgJGRlcGJhc2UuVHBvICRkZXBiYXNlLlBvCmNjMTogd2Fy bmluZzogY29tbWFuZCBsaW5lIG9wdGlvbiAiLVdhYmkiIGlzIHZhbGlkIGZvciBDKysvT2JqQysr IGJ1dCBub3QgZm9yIEMKY2MxOiB3YXJuaW5nOiBjb21tYW5kIGxpbmUgb3B0aW9uICItV2RlcHJl Y2F0ZWQiIGlzIHZhbGlkIGZvciBDKysvSmF2YS9PYmpDKysgYnV0IG5vdCBmb3IgQwpnY2MgLXN0 ZD1nbnU5OSAtVyAtV2FiaSAtV2FsbCAtV2F0dHJpYnV0ZXMgLVdiYWQtZnVuY3Rpb24tY2FzdCAt V2Nhc3QtYWxpZ24gLVdjaGFyLXN1YnNjcmlwdHMgLVdjb21tZW50IC1XY29tbWVudHMgLVdkZXBy ZWNhdGVkIC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMgLVdkaXNhYmxlZC1vcHRpbWl6YXRpb24g LVdkaXYtYnktemVybyAtV2VuZGlmLWxhYmVscyAtV2V4dHJhIC1XZm9ybWF0LWV4dHJhLWFyZ3Mg LVdmb3JtYXQtc2VjdXJpdHkgLVdmb3JtYXQteTJrIC1XZm9ybWF0LXplcm8tbGVuZ3RoIC1XaW1w bGljaXQgLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2ltcGxpY2l0LWludCAtV2lu aXQtc2VsZiAtV2ludC10by1wb2ludGVyLWNhc3QgLVdpbnZhbGlkLXBjaCAtV21haW4gLVdtaXNz aW5nLWJyYWNlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1maWVsZC1pbml0aWFs aXplcnMgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90eXBlcyAtV211bHRp Y2hhciAtV25vbm51bGwgLVdub3JtYWxpemVkPW5mYyAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1X cGFja2VkIC1XcGFyZW50aGVzZXMgLVdwb2ludGVyLWFyaXRoIC1XcG9pbnRlci1zaWduIC1XcG9p bnRlci10by1pbnQtY2FzdCAtV3ByYWdtYXMgLVdyZXR1cm4tdHlwZSAtV3NlcXVlbmNlLXBvaW50 IC1Xc2hhZG93IC1Xc3RyaWN0LWFsaWFzaW5nIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdzd2l0Y2gg LVd0cmlncmFwaHMgLVd1bmluaXRpYWxpemVkIC1XdW5rbm93bi1wcmFnbWFzIC1XdW51c2VkIC1X dW51c2VkLWZ1bmN0aW9uIC1XdW51c2VkLWxhYmVsIC1XdW51c2VkLW1hY3JvcyAtV3VudXNlZC1w YXJhbWV0ZXIgLVd1bnVzZWQtdmFsdWUgLVd1bnVzZWQtdmFyaWFibGUgLVd2YXJpYWRpYy1tYWNy b3MgLVd2b2xhdGlsZS1yZWdpc3Rlci12YXIgLVd3cml0ZS1zdHJpbmdzIC1mZGlhZ25vc3RpY3Mt c2hvdy1vcHRpb24gLWZ1bml0LWF0LWEtdGltZSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6 ZXJzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1zaWduLWNvbXBhcmUgLVdu by1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVy YWwgLVdlcnJvciAtTzIgLXBpcGUgLUROREVCVUcgICAtbyBlZ3JlcCBlZ3JlcC5vIGxpYmdyZXAu YSAuLi9saWIvbGliZ3JlcHV0aWxzLmEgIC4uL2xpYi9saWJncmVwdXRpbHMuYSAgIApkZXBiYXNl PWBlY2hvIGZncmVwLm8gfCBzZWQgJ3N8W14vXSokfC5kZXBzLyZ8O3N8XC5vJHx8J2A7XApnY2Mg LXN0ZD1nbnU5OSAtREhBVkVfQ09ORklHX0ggLUkuIC1JLi4gIC1JLi4vbGliIC1JLi4vbGliICAt VyAtV2FiaSAtV2FsbCAtV2F0dHJpYnV0ZXMgLVdiYWQtZnVuY3Rpb24tY2FzdCAtV2Nhc3QtYWxp Z24gLVdjaGFyLXN1YnNjcmlwdHMgLVdjb21tZW50IC1XY29tbWVudHMgLVdkZXByZWNhdGVkIC1X ZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMgLVdkaXNhYmxlZC1vcHRpbWl6YXRpb24gLVdkaXYtYnkt emVybyAtV2VuZGlmLWxhYmVscyAtV2V4dHJhIC1XZm9ybWF0LWV4dHJhLWFyZ3MgLVdmb3JtYXQt c2VjdXJpdHkgLVdmb3JtYXQteTJrIC1XZm9ybWF0LXplcm8tbGVuZ3RoIC1XaW1wbGljaXQgLVdp bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2ltcGxpY2l0LWludCAtV2luaXQtc2VsZiAt V2ludC10by1wb2ludGVyLWNhc3QgLVdpbnZhbGlkLXBjaCAtV21haW4gLVdtaXNzaW5nLWJyYWNl cyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVdt aXNzaW5nLWluY2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90eXBlcyAtV211bHRpY2hhciAtV25v bm51bGwgLVdub3JtYWxpemVkPW5mYyAtV29sZC1zdHlsZS1kZWZpbml0aW9uIC1XcGFja2VkIC1X cGFyZW50aGVzZXMgLVdwb2ludGVyLWFyaXRoIC1XcG9pbnRlci1zaWduIC1XcG9pbnRlci10by1p bnQtY2FzdCAtV3ByYWdtYXMgLVdyZXR1cm4tdHlwZSAtV3NlcXVlbmNlLXBvaW50IC1Xc2hhZG93 IC1Xc3RyaWN0LWFsaWFzaW5nIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdzd2l0Y2ggLVd0cmlncmFw aHMgLVd1bmluaXRpYWxpemVkIC1XdW5rbm93bi1wcmFnbWFzIC1XdW51c2VkIC1XdW51c2VkLWZ1 bmN0aW9uIC1XdW51c2VkLWxhYmVsIC1XdW51c2VkLW1hY3JvcyAtV3VudXNlZC1wYXJhbWV0ZXIg LVd1bnVzZWQtdmFsdWUgLVd1bnVzZWQtdmFyaWFibGUgLVd2YXJpYWRpYy1tYWNyb3MgLVd2b2xh dGlsZS1yZWdpc3Rlci12YXIgLVd3cml0ZS1zdHJpbmdzIC1mZGlhZ25vc3RpY3Mtc2hvdy1vcHRp b24gLWZ1bml0LWF0LWEtdGltZSAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8t bWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1zaWduLWNvbXBhcmUgLVduby1wb2ludGVy LXNpZ24gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwgLVdlcnJv ciAtTzIgLXBpcGUgLUROREVCVUcgLU1UIGZncmVwLm8gLU1EIC1NUCAtTUYgJGRlcGJhc2UuVHBv IC1jIC1vIGZncmVwLm8gZmdyZXAuYyAmJlwKbXYgLWYgJGRlcGJhc2UuVHBvICRkZXBiYXNlLlBv CmNjMTogd2FybmluZzogY29tbWFuZCBsaW5lIG9wdGlvbiAiLVdhYmkiIGlzIHZhbGlkIGZvciBD KysvT2JqQysrIGJ1dCBub3QgZm9yIEMKY2MxOiB3YXJuaW5nOiBjb21tYW5kIGxpbmUgb3B0aW9u ICItV2RlcHJlY2F0ZWQiIGlzIHZhbGlkIGZvciBDKysvSmF2YS9PYmpDKysgYnV0IG5vdCBmb3Ig QwpnY2MgLXN0ZD1nbnU5OSAtVyAtV2FiaSAtV2FsbCAtV2F0dHJpYnV0ZXMgLVdiYWQtZnVuY3Rp b24tY2FzdCAtV2Nhc3QtYWxpZ24gLVdjaGFyLXN1YnNjcmlwdHMgLVdjb21tZW50IC1XY29tbWVu dHMgLVdkZXByZWNhdGVkIC1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMgLVdkaXNhYmxlZC1vcHRp bWl6YXRpb24gLVdkaXYtYnktemVybyAtV2VuZGlmLWxhYmVscyAtV2V4dHJhIC1XZm9ybWF0LWV4 dHJhLWFyZ3MgLVdmb3JtYXQtc2VjdXJpdHkgLVdmb3JtYXQteTJrIC1XZm9ybWF0LXplcm8tbGVu Z3RoIC1XaW1wbGljaXQgLVdpbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtV2ltcGxpY2l0 LWludCAtV2luaXQtc2VsZiAtV2ludC10by1wb2ludGVyLWNhc3QgLVdpbnZhbGlkLXBjaCAtV21h aW4gLVdtaXNzaW5nLWJyYWNlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1maWVs ZC1pbml0aWFsaXplcnMgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyAtV21pc3NpbmctcHJvdG90eXBl cyAtV211bHRpY2hhciAtV25vbm51bGwgLVdub3JtYWxpemVkPW5mYyAtV29sZC1zdHlsZS1kZWZp bml0aW9uIC1XcGFja2VkIC1XcGFyZW50aGVzZXMgLVdwb2ludGVyLWFyaXRoIC1XcG9pbnRlci1z aWduIC1XcG9pbnRlci10by1pbnQtY2FzdCAtV3ByYWdtYXMgLVdyZXR1cm4tdHlwZSAtV3NlcXVl bmNlLXBvaW50IC1Xc2hhZG93IC1Xc3RyaWN0LWFsaWFzaW5nIC1Xc3RyaWN0LXByb3RvdHlwZXMg LVdzd2l0Y2ggLVd0cmlncmFwaHMgLVd1bmluaXRpYWxpemVkIC1XdW5rbm93bi1wcmFnbWFzIC1X dW51c2VkIC1XdW51c2VkLWZ1bmN0aW9uIC1XdW51c2VkLWxhYmVsIC1XdW51c2VkLW1hY3JvcyAt V3VudXNlZC1wYXJhbWV0ZXIgLVd1bnVzZWQtdmFsdWUgLVd1bnVzZWQtdmFyaWFibGUgLVd2YXJp YWRpYy1tYWNyb3MgLVd2b2xhdGlsZS1yZWdpc3Rlci12YXIgLVd3cml0ZS1zdHJpbmdzIC1mZGlh Z25vc3RpY3Mtc2hvdy1vcHRpb24gLWZ1bml0LWF0LWEtdGltZSAtV25vLW1pc3NpbmctZmllbGQt aW5pdGlhbGl6ZXJzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1zaWduLWNv bXBhcmUgLVduby1wb2ludGVyLXNpZ24gLVduby11bnVzZWQtcGFyYW1ldGVyIC1Xbm8tZm9ybWF0 LW5vbmxpdGVyYWwgLVdlcnJvciAtTzIgLXBpcGUgLUROREVCVUcgICAtbyBmZ3JlcCBmZ3JlcC5v IGxpYmdyZXAuYSAuLi9saWIvbGliZ3JlcHV0aWxzLmEgIC4uL2xpYi9saWJncmVwdXRpbHMuYSAg IAo= --------_52E7B6FC0000000063F0_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="test.txt" Content-Disposition: attachment; filename="test.txt" Content-Transfer-Encoding: base64 CiQgZ3JlcCAnXm1vZGVsIG5hbWUnIC9wcm9jL2NwdWluZm8gfCBoZWFkIC0xCm1vZGVsIG5hbWUJ OiBJbnRlbChSKSBDb3JlKFRNKSBpNS0zNDcwIENQVSBAIDMuMjBHSHoKCgo8PCB0ZXN0MSA+PgoK Zm9yICgoIGkgPSAwOyBpIDwgMTAwMDAwMDsgaSsrICkpOyBkbwogIHByaW50ZiAnYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWJcbicKZG9uZSA+IHRlc3QxLnR4dApwcmludGYgJ2FhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhXG4nID4+IHRlc3QxLnR4dAoKdGltZSBlbnYgTEFORz1qYV9KUC5ldWNKUCBzcmMv Z3JlcCAtdiBiIHRlc3QxLnR4dAoKPT09IGJlZm9yZSB0aGUgcGF0Y2ggPT09CgokIHRpbWUgZW52 IExBTkc9amFfSlAuZXVjSlAgc3JjL2dyZXAgLXYgYiB0ZXN0MS50eHQKYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWEKCnJlYWwgICAgMG0yLjAzOHMKdXNlciAgICAwbTEuOTY3cwpzeXMgICAgIDBtMC4w NzFzCgo9PT0gYWZ0ZXIgdGhlIHBhdGNoID09PQoKJCB0aW1lIGVudiBMQU5HPWphX0pQLmV1Y0pQ IHNyYy9ncmVwIC12IGIgdGVzdDEudHh0CmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhCgpyZWFsICAg IDBtMC41OTVzCnVzZXIgICAgMG0wLjUzNnMKc3lzICAgICAwbTAuMDYwcwoKCjw8IHRlc3QyID4+ Cgpmb3IgKCggaSA9IDA7IGkgPCA0MDAwMDAwOyBpKysgKSk7IGRvCiAgcHJpbnRmICdceGMyXHhh Mlx4YzJceGEyXHhjMlx4YTJceGMyXHhhMlx4YzJceGEyXHhjMlx4YTJceGMyXHhhMlx4YzJceGEy XHhjMlx4YTJceGMyXHhhM1xuJwpkb25lID4gdGVzdDIudHh0CnByaW50ZiAnXHhjMlx4YTJceGMy XHhhMlx4YzJceGEyXHhjMlx4YTJceGMyXHhhMlx4YzJceGEyXHhjMlx4YTJceGMyXHhhMlx4YzJc eGEyXHhjMlx4YTJcbicgPj4gdGVzdDIudHh0CgpDSFI9YHByaW50ZiAnXHhjMlx4YTMnYAp0aW1l IGVudiBMQU5HPWphX0pQLlVURi04IHNyYy9ncmVwIC12ICIkQ0hSIiB0ZXN0Mi50eHQKCj09PSBi ZWZvcmUgdGhlIHBhdGNoID09PQoKJCB0aW1lIGVudiBMQU5HPWphX0pQLlVURi04IHNyYy9ncmVw IC12ICIkQ0hSIiB0ZXN0Mi50eHQK77+g77+g77+g77+g77+g77+g77+g77+g77+g77+gCgpyZWFs ICAgIDBtMS40NjBzCnVzZXIgICAgMG0xLjQwN3MKc3lzICAgICAwbTAuMDU0cwoKPT09IGFmdGVy IHRoZSBwYXRjaCA9PT0KCiQgdGltZSBlbnYgTEFORz1qYV9KUC5VVEYtOCBzcmMvZ3JlcCAtdiAi JENIUiIgdGVzdDIudHh0Cu+/oO+/oO+/oO+/oO+/oO+/oO+/oO+/oO+/oO+/oAoKcmVhbCAgICAw bTAuNTYwcwp1c2VyICAgIDBtMC41MTNzCnN5cyAgICAgMG0wLjA0N3MK --------_52E7B6FC0000000063F0_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 28 13:37:55 2014 Received: (at 16544) by debbugs.gnu.org; 28 Jan 2014 18:37:56 +0000 Received: from localhost ([127.0.0.1]:39535 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W8DXm-0007hD-0o for submit@debbugs.gnu.org; Tue, 28 Jan 2014 13:37:54 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:52953) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W8DXk-0007h3-1W for 16544@debbugs.gnu.org; Tue, 28 Jan 2014 13:37:52 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 114B539E801A; Tue, 28 Jan 2014 10:37:51 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OhO4oVNH0Z6s; Tue, 28 Jan 2014 10:37:50 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id ABC2339E8019; Tue, 28 Jan 2014 10:37:50 -0800 (PST) Message-ID: <52E7F8F6.8080209@cs.ucla.edu> Date: Tue, 28 Jan 2014 10:37:42 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Norihiro Tanaka , Jim Meyering Subject: Re: bug#16544: Optimazation for is_mb_middle References: <20140125113911.6DD2.27F6AC2D@kcn.ne.jp> <20140129003553.63FB.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140129003553.63FB.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 16544 Cc: 16544@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.8 (--) Thanks for the further patch. Some comments: > + if (!mbsinit (&mbs)) > + memset (&mbs, 0, sizeof mbs); Why bother with mbsinit? Just do the memset, or better yet declare and initialize mbs here. > + mbclen_guess[i] = mbrlen ((const char *) &i, 1, &mbs); This assumes a little-endian machine, which is not portable. Please use something like this instead: for (i = CHAR_MIN; i <= CHAR_MAX; i++) { char c = i; unsigned char uc = i; mbstate_t mbs = { 0 }; mbclen_guess[uc] = mbrlen (&c, 1, &mbs); } Here I'm using a style that avoids casts, as casts in general can be dangerous. A minor question about naming: in what sense is mbclen_guess a guess? It doesn't seem to be guessing anything. Perhaps rename it to mbclen_cache? From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 29 08:07:44 2014 Received: (at 16544) by debbugs.gnu.org; 29 Jan 2014 13:07:44 +0000 Received: from localhost ([127.0.0.1]:39970 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W8Urn-00064X-U8 for submit@debbugs.gnu.org; Wed, 29 Jan 2014 08:07:44 -0500 Received: from pbsg500.nifty.com ([202.248.238.70]:29534) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W8Urj-00064L-Lt for 16544@debbugs.gnu.org; Wed, 29 Jan 2014 08:07:42 -0500 Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg500.nifty.com with ESMTP id s0TD7Jt7021835; Wed, 29 Jan 2014 22:07:20 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Wed, 29 Jan 2014 22:07:22 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: Re: bug#16544: Optimazation for is_mb_middle In-Reply-To: <52E7F8F6.8080209@cs.ucla.edu> References: <20140129003553.63FB.27F6AC2D@kcn.ne.jp> <52E7F8F6.8080209@cs.ucla.edu> Message-Id: <20140129220720.757A.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_52E8FB6500000000756D_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi Paul, Thank you for reviewing tha patch. > Please use something like this instead [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 3.3 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type X-Debbugs-Envelope-To: 16544 Cc: Jim Meyering , 16544@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi Paul, Thank you for reviewing tha patch. > Please use something like this instead [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 3.3 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type --------_52E8FB6500000000756D_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Hi Paul, Thank you for reviewing tha patch. > Please use something like this instead All right. > A minor question about naming: in what sense is mbclen_guess a guess? Because mbclen_guess always returns -2 for characters of two or more bytes, I consider that what isn't mbclen_cache should be used instead of it. But I don't particularly attach one's mind to the name. Now, I rename it to mbclen_cache. --------_52E8FB6500000000756D_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="is_mb_middle.txt" Content-Disposition: attachment; filename="is_mb_middle.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9tYWluLmMgYi9zcmMvbWFpbi5jCmluZGV4IDNmMTYwNjEuLjczOGMx MzAgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluLmMKKysrIGIvc3JjL21haW4uYwpAQCAtNDYsNiArNDYs NyBAQAogI2luY2x1ZGUgInByb3Blcm5hbWUuaCIKICNpbmNsdWRlICJxdW90ZS5oIgogI2luY2x1 ZGUgInNhZmUtcmVhZC5oIgorI2luY2x1ZGUgInNlYXJjaC5oIgogI2luY2x1ZGUgInZlcnNpb24t ZXRjLmgiCiAjaW5jbHVkZSAieGFsbG9jLmgiCiAjaW5jbHVkZSAieHN0cnRvbC5oIgpAQCAtMjM2 NCw2ICsyMzY1LDExIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgfQog ICAgIH0KIAorI2lmIE1CU19TVVBQT1JUCisgIGlmIChNQl9DVVJfTUFYID4gMSkKKyAgICBidWls ZF9tYmNsZW5fY2FjaGUgKCk7CisjZW5kaWYKKwogICBjb21waWxlIChrZXlzLCBrZXljYyk7CiAg IGZyZWUgKGtleXMpOwogCmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmggYi9zcmMvc2VhcmNoLmgK aW5kZXggNjFkY2Y5NS4uMTJkMDgyMiAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5oCisrKyBiL3Ny Yy9zZWFyY2guaApAQCAtNDYsNiArNDYsNyBAQCB0eXBlZGVmIHNpZ25lZCBjaGFyIG1iX2xlbl9t YXBfdDsKIGV4dGVybiB2b2lkIGt3c2luaXQgKGt3c2V0X3QgKik7CiAKIGV4dGVybiBjaGFyICpt YnRvbG93ZXIgKGNvbnN0IGNoYXIgKiwgc2l6ZV90ICosIG1iX2xlbl9tYXBfdCAqKik7CitleHRl cm4gdm9pZCBidWlsZF9tYmNsZW5fY2FjaGUgKHZvaWQpOwogZXh0ZXJuIGJvb2wgaXNfbWJfbWlk ZGxlIChjb25zdCBjaGFyICoqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsK IAogLyogZGZhc2VhcmNoLmMgKi8KZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2h1dGlscy5jIGIvc3Jj L3NlYXJjaHV0aWxzLmMKaW5kZXggNzc4ZjRhZC4uNmZlZTc1NiAxMDA2NDQKLS0tIGEvc3JjL3Nl YXJjaHV0aWxzLmMKKysrIGIvc3JjL3NlYXJjaHV0aWxzLmMKQEAgLTE5LDkgKzE5LDE2IEBACiAj aW5jbHVkZSA8Y29uZmlnLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSAic2VhcmNo LmgiCisjaWYgSEFWRV9MQU5HSU5GT19DT0RFU0VUCisjIGluY2x1ZGUgPGxhbmdpbmZvLmg+Cisj ZW5kaWYKKworI2RlZmluZSBTVFJFUShhLCBiKSAoc3RyY21wIChhLCBiKSA9PSAwKQogCiAjZGVm aW5lIE5DSEFSIChVQ0hBUl9NQVggKyAxKQogCitzdGF0aWMgc2l6ZV90IG1iY2xlbl9jYWNoZVtO Q0hBUl07CisKIHZvaWQKIGt3c2luaXQgKGt3c2V0X3QgKmt3c2V0KQogewpAQCAtMjA3LDYgKzIx NCwxOSBAQCBtYnRvbG93ZXIgKGNvbnN0IGNoYXIgKmJlZywgc2l6ZV90ICpuLCBtYl9sZW5fbWFw X3QgKipsZW5fbWFwX3ApCiAgIHJldHVybiBvdXQ7CiB9CiAKK3ZvaWQKK2J1aWxkX21iY2xlbl9j YWNoZSAodm9pZCkKK3sKKyAgaW50IGk7CisKKyAgZm9yIChpID0gQ0hBUl9NSU47IGkgPD0gQ0hB Ul9NQVg7ICsraSkKKyAgICB7CisgICAgICBjaGFyIGMgPSBpOworICAgICAgdW5zaWduZWQgY2hh ciB1YyA9IGk7CisgICAgICBtYnN0YXRlX3QgbWJzID0geyAwIH07CisgICAgICBtYmNsZW5fY2Fj aGVbdWNdID0gbWJybGVuICgmYywgMSwgJm1icyk7CisgICAgfQorfQogCiBib29sCiBpc19tYl9t aWRkbGUgKGNvbnN0IGNoYXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0IGNoYXIgKmVu ZCwKQEAgLTIxNSwxNiArMjM1LDM1IEBAIGlzX21iX21pZGRsZSAoY29uc3QgY2hhciAqKmdvb2Qs IGNvbnN0IGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZW5kLAogICBjb25zdCBjaGFyICpwID0gKmdv b2Q7CiAgIGNvbnN0IGNoYXIgKnByZXYgPSBwOwogICBtYnN0YXRlX3QgY3VyX3N0YXRlOworI2lm IEhBVkVfTEFOR0lORk9fQ09ERVNFVAorICBzdGF0aWMgaW50IGlzX3V0ZjggPSAtMTsKKworICBp ZiAoaXNfdXRmOCA9PSAtMSkKKyAgICBpc191dGY4ID0gKFNUUkVRIChubF9sYW5naW5mbyAoQ09E RVNFVCksICJVVEYtOCIpID09IDApOworCisgIGlmIChpc191dGY4ICYmIGJ1ZiAtIHAgPiBNQl9D VVJfTUFYKQorICAgIHsKKyAgICAgIGZvciAocCA9IGJ1ZjsgYnVmIC0gcCA+IE1CX0NVUl9NQVg7 IHAtLSkKKyAgICAgICAgaWYgKG1iY2xlbl9jYWNoZVsodW5zaWduZWQgY2hhcikgKnBdICE9IChz aXplX3QpIC0xKQorICAgICAgICAgIGJyZWFrOworCisgICAgICBpZiAoYnVmIC0gcCA9PSBNQl9D VVJfTUFYKQorICAgICAgICBwID0gYnVmOworICAgIH0KKyNlbmRpZgorCisgIG1lbXNldCgmY3Vy X3N0YXRlLCAwLCBzaXplb2YgY3VyX3N0YXRlKTsKIAotICAvKiBUT0RPOiBjYW4gYmUgb3B0aW1p emVkIGZvciBVVEYtOC4gICovCi0gIG1lbXNldCgmY3VyX3N0YXRlLCAwLCBzaXplb2YobWJzdGF0 ZV90KSk7CiAgIHdoaWxlIChwIDwgYnVmKQogICAgIHsKLSAgICAgIHNpemVfdCBtYmNsZW4gPSBt YnJsZW4ocCwgZW5kIC0gcCwgJmN1cl9zdGF0ZSk7CisgICAgICBzaXplX3QgbWJjbGVuID0gbWJj bGVuX2NhY2hlWyh1bnNpZ25lZCBjaGFyKSAqcF07CisKKyAgICAgIGlmIChtYmNsZW4gPT0gKHNp emVfdCkgLTIpCisgICAgICAgIG1iY2xlbiA9IG1icmxlbiAocCwgZW5kIC0gcCwgJmN1cl9zdGF0 ZSk7CiAKICAgICAgIC8qIFN0b3JlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByZXZpb3VzIGNvbXBs ZXRlIG11bHRpYnl0ZSBjaGFyYWN0ZXIuICAqLwogICAgICAgaWYgKG1iY2xlbiAhPSAoc2l6ZV90 KSAtMikKLSAgICAgICAgcHJldiA9IHA7CisgICAgICAgICBwcmV2ID0gcDsKIAogICAgICAgaWYg KG1iY2xlbiA9PSAoc2l6ZV90KSAtMSB8fCBtYmNsZW4gPT0gKHNpemVfdCkgLTIgfHwgbWJjbGVu ID09IDApCiAgICAgICAgIHsK --------_52E8FB6500000000756D_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat Feb 01 20:18:34 2014 Received: (at 16544) by debbugs.gnu.org; 2 Feb 2014 01:18:34 +0000 Received: from localhost ([127.0.0.1]:45518 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W9lhh-000082-Je for submit@debbugs.gnu.org; Sat, 01 Feb 2014 20:18:34 -0500 Received: from mail-pa0-f41.google.com ([209.85.220.41]:55496) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W9lhe-00007p-47 for 16544@debbugs.gnu.org; Sat, 01 Feb 2014 20:18:31 -0500 Received: by mail-pa0-f41.google.com with SMTP id fa1so5840948pad.0 for <16544@debbugs.gnu.org>; Sat, 01 Feb 2014 17:18:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=klhKRQ2SInI8YNBFfbEjee0o3H3V2ZazuLDZM04lcBY=; b=k4fVFKxUNuv1Q32Q6+4D0RSxCh1KA7BEejU/WUK0OpSd5aT319YaZnE++bAMvPCf2Z JXLln76aYdSOt+rIJji9DJtYXX5WnM3TSemu+CiiOi7QtYyYaD9vHfgxNql2VPxeUtez uG6mVVQoLaHy/p/f32efjIYe26U9pUmvHnqgUHzQbJUFJ8YqMs0ACOqQ6atLPga2E4sw S4ZwbS97jfTh+shTv22QrAYKHj8kZQuIgNUFye0ekssE2M5kOjNieRqVE8XKiuspzjWb SwLZWtmeApzUZ200FhkTNWdrlTyOq8bCD75NvMIZEuNtwCP49JOvfBpCZHEyW1eoz6CW oB/w== X-Received: by 10.66.129.133 with SMTP id nw5mr28895232pab.98.1391303908981; Sat, 01 Feb 2014 17:18:28 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.201.231 with HTTP; Sat, 1 Feb 2014 17:18:07 -0800 (PST) In-Reply-To: <20140129220720.757A.27F6AC2D@kcn.ne.jp> References: <20140129003553.63FB.27F6AC2D@kcn.ne.jp> <52E7F8F6.8080209@cs.ucla.edu> <20140129220720.757A.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sat, 1 Feb 2014 17:18:07 -0800 X-Google-Sender-Auth: 7tjRae0uUGcO07fGAbV3jeX_tPQ Message-ID: Subject: Re: bug#16544: Optimazation for is_mb_middle To: Norihiro Tanaka Content-Type: multipart/mixed; boundary=001a11364e98476d5904f1622f34 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16544 Cc: Paul Eggert , 16544@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11364e98476d5904f1622f34 Content-Type: text/plain; charset=ISO-8859-1 Thank you for the updated patch. I am attaching it (with a detailed commit/ChangeLog I have added, and a NEWS entry), along with four additional commits. One fixes an actual bug. I expect to merge those commits into yours, discarding their individual commit logs. I leave them separate here solely to make the changes easier to review. By the way, I measured the speed-up before and after your change on an idle AMD FX-4100 (best of 10), running these commands: yes $(printf '%078dm' 0)|head -1000000 > in for i in $(seq 10); do env LC_ALL=ja_JP.eucJP time src/grep -v m in; done Before: 2.46 After: 0.36 Let me know if you see anything that can be improved, Jim --001a11364e98476d5904f1622f34 Content-Type: text/plain; charset=US-ASCII; name="k.txt" Content-Disposition: attachment; filename="k.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hr5lqchc1 RnJvbSA5YWZmMGY0MTQxNDkzM2E5NDViMTMzMjgxMTFiZGIxNTFhYzlhOWVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog VGh1LCAzMCBKYW4gMjAxNCAxMjo1NjowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS81XSBzcGVl ZCB1cCBtYi1ib3VuZGFyeS1kZXRlY3Rpb24gYWZ0ZXIgZWFjaCBwcmVsaW1pbmFyeQogbWF0Y2gK CkFmdGVyIGVhY2gga3dzZXhlYyBvciBkZmFleGVjIG1hdGNoLCB3ZSBtdXN0IGRldGVybWluZSB3 aGV0aGVyCnRoZSB0ZW50YXRpdmUgbWF0Y2ggZmFsbHMgaW4gdGhlIG1pZGRsZSBvZiBhIG11bHRp LWJ5dGUgY2hhcmFjdGVyLgpUaGF0IGlzIHdoYXQgb3VyIGlzX21iX21pZGRsZSBmdW5jdGlvbiBk b2VzLCBidXQgaXQgd2FzIGV4cGVuc2l2ZSwKZXZlbiB3aGVuIG1vc3QgaW5wdXQgY29uc2lzdGVk IG9mIHNpbmdsZS1ieXRlIGNoYXJhY3RlcnMuICBUaGUgbWFpbgpjb3N0IHdhcyBmb3IgZWFjaCBj YWxsIHRvIG1icmxlbi4gIFRoaXMgY2hhbmdlIGNvbnN0cnVjdHMgYW5kIHVzZXMKYSBjYWNoZSBv ZiB0aGUgbGVuZ3RocyByZXR1cm5lZCBieSBtYnJsZW4gZm9yIHVuaWJ5dGUgdmFsdWVzLgpUaGUg bGFyZ2VzdCBzcGVlZC11cCAoM3ggdG8gN3gsIENQVS1kZXBlbmRlbnQpIGlzIHdoZW4gbW9zdAps aW5lcyBjb250YWluIGEgbWF0Y2gsIHlldCBmZXcgYXJlIHByaW50ZWQsIGUuZy4sIHdoZW4gdXNp bmcKZ3JlcCAtdiBjb21tb24tcGF0dGVybiAuLi4gdG8gZmlsdGVyIG91dCBhbGwgYnV0IGEgZmV3 IGxpbmVzLgoKKiBzcmMvc2VhcmNoLmggKGJ1aWxkX21iY2xlbl9jYWNoZSk6IERlY2xhcmUgaXQu Ciogc3JjL21haW4uYzogSW5jbHVkZSAic2VhcmNoLmgiLgpbTUJTX1NVUFBPUlRdIChtYWluKTog Q2FsbCBidWlsZF9tYmNsZW5fY2FjaGUgaW4gYSBtdWx0aWJ5dGUgbG9jYWxlLgoqIHNyYy9zZWFy Y2h1dGlscy5jIFtIQVZFX0xBTkdJTkZPX0NPREVTRVRdOiBJbmNsdWRlIDxsYW5naW5mby5oPi4K KG1iY2xlbl9jYWNoZSk6IE5ldyBnbG9iYWwuCihidWlsZF9tYmNsZW5fY2FjaGUpOiBOZXcgZnVu Y3Rpb24uCihpc19tYl9taWRkbGUpIFtIQVZFX0xBTkdJTkZPX0NPREVTRVRdOiBVc2UgaXQuCiog TkVXUyAoSW1wcm92ZW1lbnRzKTogTWVudGlvbiBpdC4KLS0tCiBORVdTICAgICAgICAgICAgICB8 ICAzICsrKwogc3JjL21haW4uYyAgICAgICAgfCAgNiArKysrKysKIHNyYy9zZWFyY2guaCAgICAg IHwgIDEgKwogc3JjL3NlYXJjaHV0aWxzLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ORVdTIGIvTkVXUwppbmRleCBhNjYyOTYw Li4yZmY3MjcyIDEwMDY0NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAgLTcsNiArNyw5IEBAIEdO VSBncmVwIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGlu ZSAtKi0KICAgZ3JlcCAtaSBpbiBhIG11bHRpYnl0ZSBsb2NhbGUgaXMgbm93IHR5cGljYWxseSAx MCB0aW1lcyBmYXN0ZXIKICAgZm9yIHBhdHRlcm5zIHRoYXQgZG8gbm90IGNvbnRhaW4gXCBvciBb LgoKKyAgZ3JlcCAod2l0aG91dCAtaSkgaW4gYSBtdWx0aWJ5dGUgbG9jYWxlIGlzIG5vdyB1cCB0 byA3IHRpbWVzIGZhc3RlcgorICB3aGVuIHByb2Nlc3NpbmcgbWFueSBtYXRjaGVkIGxpbmVzLgor CiAgIFJhbmdlIGV4cHJlc3Npb25zIGluIHVuaWJ5dGUgbG9jYWxlcyBub3cgb3JkaW5hcmlseSB1 c2UgdGhlIHJhdGlvbmFsCiAgIHJhbmdlIGludGVycHJldGF0aW9uLCBpbiB3aGljaCBbYS16XSBt YXRjaGVzIG9ubHkgbG93ZXItY2FzZSBBU0NJSQogICBsZXR0ZXJzIHJlZ2FyZGxlc3Mgb2YgbG9j YWxlLCBhbmQgc2ltaWxhcmx5IGZvciBvdGhlciByYW5nZXMuICAoVGhpcwpkaWZmIC0tZ2l0IGEv c3JjL21haW4uYyBiL3NyYy9tYWluLmMKaW5kZXggNDJmOWZmMy4uNTRkOWRmYyAxMDA2NDQKLS0t IGEvc3JjL21haW4uYworKysgYi9zcmMvbWFpbi5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVk ZSAicHJvcGVybmFtZS5oIgogI2luY2x1ZGUgInF1b3RlLmgiCiAjaW5jbHVkZSAic2FmZS1yZWFk LmgiCisjaW5jbHVkZSAic2VhcmNoLmgiCiAjaW5jbHVkZSAidmVyc2lvbi1ldGMuaCIKICNpbmNs dWRlICJ4YWxsb2MuaCIKICNpbmNsdWRlICJ4c3RydG9sLmgiCkBAIC0yMzY0LDYgKzIzNjUsMTEg QEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICB9CiAgICAgfQoKKyNpZiBN QlNfU1VQUE9SVAorICBpZiAoTUJfQ1VSX01BWCA+IDEpCisgICAgYnVpbGRfbWJjbGVuX2NhY2hl ICgpOworI2VuZGlmCisKICAgY29tcGlsZSAoa2V5cywga2V5Y2MpOwogICBmcmVlIChrZXlzKTsK CmRpZmYgLS1naXQgYS9zcmMvc2VhcmNoLmggYi9zcmMvc2VhcmNoLmgKaW5kZXggNjFkY2Y5NS4u MTJkMDgyMiAxMDA2NDQKLS0tIGEvc3JjL3NlYXJjaC5oCisrKyBiL3NyYy9zZWFyY2guaApAQCAt NDYsNiArNDYsNyBAQCB0eXBlZGVmIHNpZ25lZCBjaGFyIG1iX2xlbl9tYXBfdDsKIGV4dGVybiB2 b2lkIGt3c2luaXQgKGt3c2V0X3QgKik7CgogZXh0ZXJuIGNoYXIgKm1idG9sb3dlciAoY29uc3Qg Y2hhciAqLCBzaXplX3QgKiwgbWJfbGVuX21hcF90ICoqKTsKK2V4dGVybiB2b2lkIGJ1aWxkX21i Y2xlbl9jYWNoZSAodm9pZCk7CiBleHRlcm4gYm9vbCBpc19tYl9taWRkbGUgKGNvbnN0IGNoYXIg KiosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwoKIC8qIGRmYXNlYXJjaC5j ICovCmRpZmYgLS1naXQgYS9zcmMvc2VhcmNodXRpbHMuYyBiL3NyYy9zZWFyY2h1dGlscy5jCmlu ZGV4IDc3OGY0YWQuLjFjMzU0NTEgMTAwNjQ0Ci0tLSBhL3NyYy9zZWFyY2h1dGlscy5jCisrKyBi L3NyYy9zZWFyY2h1dGlscy5jCkBAIC0xOSw5ICsxOSwxNiBAQAogI2luY2x1ZGUgPGNvbmZpZy5o PgogI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgInNlYXJjaC5oIgorI2lmIEhBVkVfTEFO R0lORk9fQ09ERVNFVAorIyBpbmNsdWRlIDxsYW5naW5mby5oPgorI2VuZGlmCisKKyNkZWZpbmUg U1RSRVEoYSwgYikgKHN0cmNtcCAoYSwgYikgPT0gMCkKCiAjZGVmaW5lIE5DSEFSIChVQ0hBUl9N QVggKyAxKQoKK3N0YXRpYyBzaXplX3QgbWJjbGVuX2NhY2hlW05DSEFSXTsKKwogdm9pZAoga3dz aW5pdCAoa3dzZXRfdCAqa3dzZXQpCiB7CkBAIC0yMDcsNiArMjE0LDIwIEBAIG1idG9sb3dlciAo Y29uc3QgY2hhciAqYmVnLCBzaXplX3QgKm4sIG1iX2xlbl9tYXBfdCAqKmxlbl9tYXBfcCkKICAg cmV0dXJuIG91dDsKIH0KCisvKiBJbml0aWFsaXplIGEgY2FjaGUgb2YgbWJybGVuIHZhbHVlcyBm b3IgZWFjaCBvZiBpdHMgMS1ieXRlIGlucHV0cy4gICovCit2b2lkCitidWlsZF9tYmNsZW5fY2Fj aGUgKHZvaWQpCit7CisgIGludCBpOworCisgIGZvciAoaSA9IENIQVJfTUlOOyBpIDw9IENIQVJf TUFYOyArK2kpCisgICAgeworICAgICAgY2hhciBjID0gaTsKKyAgICAgIHVuc2lnbmVkIGNoYXIg dWMgPSBpOworICAgICAgbWJzdGF0ZV90IG1icyA9IHsgMCB9OworICAgICAgbWJjbGVuX2NhY2hl W3VjXSA9IG1icmxlbiAoJmMsIDEsICZtYnMpOworICAgIH0KK30KCiBib29sCiBpc19tYl9taWRk bGUgKGNvbnN0IGNoYXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0IGNoYXIgKmVuZCwK QEAgLTIxNSwxNiArMjM2LDM1IEBAIGlzX21iX21pZGRsZSAoY29uc3QgY2hhciAqKmdvb2QsIGNv bnN0IGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZW5kLAogICBjb25zdCBjaGFyICpwID0gKmdvb2Q7 CiAgIGNvbnN0IGNoYXIgKnByZXYgPSBwOwogICBtYnN0YXRlX3QgY3VyX3N0YXRlOworI2lmIEhB VkVfTEFOR0lORk9fQ09ERVNFVAorICBzdGF0aWMgaW50IGlzX3V0ZjggPSAtMTsKKworICBpZiAo aXNfdXRmOCA9PSAtMSkKKyAgICBpc191dGY4ID0gKFNUUkVRIChubF9sYW5naW5mbyAoQ09ERVNF VCksICJVVEYtOCIpID09IDApOworCisgIGlmIChpc191dGY4ICYmIGJ1ZiAtIHAgPiBNQl9DVVJf TUFYKQorICAgIHsKKyAgICAgIGZvciAocCA9IGJ1ZjsgYnVmIC0gcCA+IE1CX0NVUl9NQVg7IHAt LSkKKyAgICAgICAgaWYgKG1iY2xlbl9jYWNoZVsodW5zaWduZWQgY2hhcikgKnBdICE9IChzaXpl X3QpIC0xKQorICAgICAgICAgIGJyZWFrOworCisgICAgICBpZiAoYnVmIC0gcCA9PSBNQl9DVVJf TUFYKQorICAgICAgICBwID0gYnVmOworICAgIH0KKyNlbmRpZgorCisgIG1lbXNldCgmY3VyX3N0 YXRlLCAwLCBzaXplb2YgY3VyX3N0YXRlKTsKCi0gIC8qIFRPRE86IGNhbiBiZSBvcHRpbWl6ZWQg Zm9yIFVURi04LiAgKi8KLSAgbWVtc2V0KCZjdXJfc3RhdGUsIDAsIHNpemVvZihtYnN0YXRlX3Qp KTsKICAgd2hpbGUgKHAgPCBidWYpCiAgICAgewotICAgICAgc2l6ZV90IG1iY2xlbiA9IG1icmxl bihwLCBlbmQgLSBwLCAmY3VyX3N0YXRlKTsKKyAgICAgIHNpemVfdCBtYmNsZW4gPSBtYmNsZW5f Y2FjaGVbKHVuc2lnbmVkIGNoYXIpICpwXTsKKworICAgICAgaWYgKG1iY2xlbiA9PSAoc2l6ZV90 KSAtMikKKyAgICAgICAgbWJjbGVuID0gbWJybGVuIChwLCBlbmQgLSBwLCAmY3VyX3N0YXRlKTsK CiAgICAgICAvKiBTdG9yZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcmV2aW91cyBjb21wbGV0ZSBt dWx0aWJ5dGUgY2hhcmFjdGVyLiAgKi8KICAgICAgIGlmIChtYmNsZW4gIT0gKHNpemVfdCkgLTIp Ci0gICAgICAgIHByZXYgPSBwOworICAgICAgICAgcHJldiA9IHA7CgogICAgICAgaWYgKG1iY2xl biA9PSAoc2l6ZV90KSAtMSB8fCBtYmNsZW4gPT0gKHNpemVfdCkgLTIgfHwgbWJjbGVuID09IDAp CiAgICAgICAgIHsKLS0gCjEuOC41LjMuMzIxLmcxNDU5OGI5CgoKRnJvbSBhNTcxZGM4YTE4ZDQz ZDU0Y2RmNGU0M2I2NDY2NDUxOTk0N2U5MWUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTogVGh1LCAzMCBKYW4gMjAxNCAx Mjo1OTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMi81XSBtaW5vciBmaXgtdXAKCnVzZSB0b191 Y2hhciBpbiBwbGFjZSBvZiBleHBsaWNpdCBjYXN0LCB0d2ljZQpyZW1vdmUgYSBzcGFjZSBvbiBh Y2NpZGVudGFsbHkgb3Zlci1pbmRlbnRlZCBsaW5lCi0tLQogc3JjL3NlYXJjaHV0aWxzLmMgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvc2VhcmNodXRpbHMuYyBiL3NyYy9zZWFyY2h1dGlscy5jCmluZGV4 IDFjMzU0NTEuLjgwNjJlYjQgMTAwNjQ0Ci0tLSBhL3NyYy9zZWFyY2h1dGlscy5jCisrKyBiL3Ny Yy9zZWFyY2h1dGlscy5jCkBAIC0yNDUsNyArMjQ1LDcgQEAgaXNfbWJfbWlkZGxlIChjb25zdCBj aGFyICoqZ29vZCwgY29uc3QgY2hhciAqYnVmLCBjb25zdCBjaGFyICplbmQsCiAgIGlmIChpc191 dGY4ICYmIGJ1ZiAtIHAgPiBNQl9DVVJfTUFYKQogICAgIHsKICAgICAgIGZvciAocCA9IGJ1Zjsg YnVmIC0gcCA+IE1CX0NVUl9NQVg7IHAtLSkKLSAgICAgICAgaWYgKG1iY2xlbl9jYWNoZVsodW5z aWduZWQgY2hhcikgKnBdICE9IChzaXplX3QpIC0xKQorICAgICAgICBpZiAobWJjbGVuX2NhY2hl W3RvX3VjaGFyICgqcCldICE9IChzaXplX3QpIC0xKQogICAgICAgICAgIGJyZWFrOwoKICAgICAg IGlmIChidWYgLSBwID09IE1CX0NVUl9NQVgpCkBAIC0yNTcsMTQgKzI1NywxNCBAQCBpc19tYl9t aWRkbGUgKGNvbnN0IGNoYXIgKipnb29kLCBjb25zdCBjaGFyICpidWYsIGNvbnN0IGNoYXIgKmVu ZCwKCiAgIHdoaWxlIChwIDwgYnVmKQogICAgIHsKLSAgICAgIHNpemVfdCBtYmNsZW4gPSBtYmNs ZW5fY2FjaGVbKHVuc2lnbmVkIGNoYXIpICpwXTsKKyAgICAgIHNpemVfdCBtYmNsZW4gPSBtYmNs ZW5fY2FjaGVbdG9fdWNoYXIgKCpwKV07CgogICAgICAgaWYgKG1iY2xlbiA9PSAoc2l6ZV90KSAt MikKICAgICAgICAgbWJjbGVuID0gbWJybGVuIChwLCBlbmQgLSBwLCAmY3VyX3N0YXRlKTsKCiAg ICAgICAvKiBTdG9yZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcmV2aW91cyBjb21wbGV0ZSBtdWx0 aWJ5dGUgY2hhcmFjdGVyLiAgKi8KICAgICAgIGlmIChtYmNsZW4gIT0gKHNpemVfdCkgLTIpCi0g ICAgICAgICBwcmV2ID0gcDsKKyAgICAgICAgcHJldiA9IHA7CgogICAgICAgaWYgKG1iY2xlbiA9 PSAoc2l6ZV90KSAtMSB8fCBtYmNsZW4gPT0gKHNpemVfdCkgLTIgfHwgbWJjbGVuID09IDApCiAg ICAgICAgIHsKLS0gCjEuOC41LjMuMzIxLmcxNDU5OGI5CgoKRnJvbSBlZTQ0M2ZmY2M1ZTE3MjFj ZDU0OTQyNzk4YTVmNTdlYzU4ODNmMTAxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK aW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTogVGh1LCAzMCBKYW4gMjAxNCAxOToz NDo0MCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMy81XSBTVFJFUTogZG8gbm90IGRlZmluZS4gYWxy ZWFkeSBpbmNsdWRlZCBmcm9tIHN5c3RlbS5oIHZpYQogc2VhcmNoLmgKCi0tLQogc3JjL3NlYXJj aHV0aWxzLmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvc2VhcmNodXRpbHMuYyBiL3NyYy9zZWFyY2h1dGlscy5jCmluZGV4IDgwNjJlYjQu LjU4NGMxNmYgMTAwNjQ0Ci0tLSBhL3NyYy9zZWFyY2h1dGlscy5jCisrKyBiL3NyYy9zZWFyY2h1 dGlscy5jCkBAIC0yMyw4ICsyMyw2IEBACiAjIGluY2x1ZGUgPGxhbmdpbmZvLmg+CiAjZW5kaWYK Ci0jZGVmaW5lIFNUUkVRKGEsIGIpIChzdHJjbXAgKGEsIGIpID09IDApCi0KICNkZWZpbmUgTkNI QVIgKFVDSEFSX01BWCArIDEpCgogc3RhdGljIHNpemVfdCBtYmNsZW5fY2FjaGVbTkNIQVJdOwot LSAKMS44LjUuMy4zMjEuZzE0NTk4YjkKCgpGcm9tIDEwOTA1MzQxM2U0Y2I3N2I1MzQxY2RjODI0 ODVmZDg5YWNiMDYxYzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppbSBNZXllcmlu ZyA8bWV5ZXJpbmdAZmIuY29tPgpEYXRlOiBUaHUsIDMwIEphbiAyMDE0IDE5OjQzOjE5IC0wODAw ClN1YmplY3Q6IFtQQVRDSCA0LzVdIGluc2VydCBzcGFjZSBiZWZvcmUgZnVudGlvbi1jYWxsLW9w ZW4tcGFyZW50aGVzaXMKCi0tLQogc3JjL3NlYXJjaHV0aWxzLmMgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L3NlYXJjaHV0aWxzLmMgYi9zcmMvc2VhcmNodXRpbHMuYwppbmRleCA1ODRjMTZmLi43Y2JjZDk0 IDEwMDY0NAotLS0gYS9zcmMvc2VhcmNodXRpbHMuYworKysgYi9zcmMvc2VhcmNodXRpbHMuYwpA QCAtMjUxLDcgKzI1MSw3IEBAIGlzX21iX21pZGRsZSAoY29uc3QgY2hhciAqKmdvb2QsIGNvbnN0 IGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZW5kLAogICAgIH0KICNlbmRpZgoKLSAgbWVtc2V0KCZj dXJfc3RhdGUsIDAsIHNpemVvZiBjdXJfc3RhdGUpOworICBtZW1zZXQgKCZjdXJfc3RhdGUsIDAs IHNpemVvZiBjdXJfc3RhdGUpOwoKICAgd2hpbGUgKHAgPCBidWYpCiAgICAgewpAQCAtMjY5LDcg KzI2OSw3IEBAIGlzX21iX21pZGRsZSAoY29uc3QgY2hhciAqKmdvb2QsIGNvbnN0IGNoYXIgKmJ1 ZiwgY29uc3QgY2hhciAqZW5kLAogICAgICAgICAgIC8qIEFuIGludmFsaWQgc2VxdWVuY2UsIG9y IGEgdHJ1bmNhdGVkIG11bHRpYnl0ZSBjaGFyYWN0ZXIuCiAgICAgICAgICAgICAgV2UgdHJlYXQg aXQgYXMgYSBzaW5nbGUgYnl0ZSBjaGFyYWN0ZXIuICAqLwogICAgICAgICAgIG1iY2xlbiA9IDE7 Ci0gICAgICAgICAgbWVtc2V0KCZjdXJfc3RhdGUsIDAsIHNpemVvZiBjdXJfc3RhdGUpOworICAg ICAgICAgIG1lbXNldCAoJmN1cl9zdGF0ZSwgMCwgc2l6ZW9mIGN1cl9zdGF0ZSk7CiAgICAgICAg IH0KICAgICAgIHAgKz0gbWJjbGVuOwogICAgIH0KLS0gCjEuOC41LjMuMzIxLmcxNDU5OGI5CgoK RnJvbSBjODQ2NmNkNzBjZjAyYzlmYWNmY2JlYWIwNDAzNDBmMjdlMTc0YzRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U2F0LCAxIEZlYiAyMDE0IDA4OjI4OjA0IC0wODAwClN1YmplY3Q6IFtQQVRDSCA1LzVdIGZpeCBz dHJjbXAvU1RSRVEgY29udmVyc2lvbiB0eXBvCgotLS0KIHNyYy9zZWFyY2h1dGlscy5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL3NlYXJjaHV0aWxzLmMgYi9zcmMvc2VhcmNodXRpbHMuYwppbmRleCA3Y2JjZDk0 Li4zNDc4NDE3IDEwMDY0NAotLS0gYS9zcmMvc2VhcmNodXRpbHMuYworKysgYi9zcmMvc2VhcmNo dXRpbHMuYwpAQCAtMjM4LDcgKzIzOCw3IEBAIGlzX21iX21pZGRsZSAoY29uc3QgY2hhciAqKmdv b2QsIGNvbnN0IGNoYXIgKmJ1ZiwgY29uc3QgY2hhciAqZW5kLAogICBzdGF0aWMgaW50IGlzX3V0 ZjggPSAtMTsKCiAgIGlmIChpc191dGY4ID09IC0xKQotICAgIGlzX3V0ZjggPSAoU1RSRVEgKG5s X2xhbmdpbmZvIChDT0RFU0VUKSwgIlVURi04IikgPT0gMCk7CisgICAgaXNfdXRmOCA9IFNUUkVR IChubF9sYW5naW5mbyAoQ09ERVNFVCksICJVVEYtOCIpOwoKICAgaWYgKGlzX3V0ZjggJiYgYnVm IC0gcCA+IE1CX0NVUl9NQVgpCiAgICAgewotLSAKMS44LjUuMy4zMjEuZzE0NTk4YjkKCg== --001a11364e98476d5904f1622f34-- From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 02 08:15:34 2014 Received: (at 16544) by debbugs.gnu.org; 2 Feb 2014 13:15:34 +0000 Received: from localhost ([127.0.0.1]:45658 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W9wta-0001WC-2r for submit@debbugs.gnu.org; Sun, 02 Feb 2014 08:15:34 -0500 Received: from pbsg501.nifty.com ([202.248.238.71]:38129) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1W9wtV-0001W1-SQ for 16544@debbugs.gnu.org; Sun, 02 Feb 2014 08:15:32 -0500 Received: from [10.120.1.49] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s12DF7as028294; Sun, 2 Feb 2014 22:15:08 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Sun, 02 Feb 2014 22:15:07 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#16544: Optimazation for is_mb_middle In-Reply-To: References: <20140129220720.757A.27F6AC2D@kcn.ne.jp> Message-Id: <20140202221458.D888.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: -0.5 (/) X-Debbugs-Envelope-To: 16544 Cc: Paul Eggert , 16544@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.5 (/) Hi Jim, Thank you for the review, test and fix for the patch. I have nothing that can be improved after your change. Norihiro From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 02 11:35:41 2014 Received: (at 16544-done) by debbugs.gnu.org; 2 Feb 2014 16:35:41 +0000 Received: from localhost ([127.0.0.1]:46549 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WA01D-0007ha-Go for submit@debbugs.gnu.org; Sun, 02 Feb 2014 11:35:41 -0500 Received: from mail-pd0-f180.google.com ([209.85.192.180]:60017) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WA01A-0007hR-Pn for 16544-done@debbugs.gnu.org; Sun, 02 Feb 2014 11:35:37 -0500 Received: by mail-pd0-f180.google.com with SMTP id x10so6000763pdj.25 for <16544-done@debbugs.gnu.org>; Sun, 02 Feb 2014 08:35:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=JthDV+TOw7HOXx0vmenL7JQFuhFu+R/ZWKEa/JqYYE0=; b=uaH0Mi01qliB5D5Q/1y18cw5axgWarDmsnupozR/DxfSxL+k7Xc8spIAgKulAWdNsv G+Oy4+0SDkepcQ84KHGT/F2IRTapzRBcqgvHRkCo3AM0ftO6+nkrVWc1HYm3g/o+ShZ0 yA9iPeWm2+9Hv2HSJ0A0cUZ3711OwqSjyWSbpojwgDATQS4+ArRLYAZBV9fgpn5Cmhh0 Z+4vjeqv3UsswtFdyEt19KtJoL4vUtHC2SW5GTM+CubJ72waUOh6P9xNsUNzWMDRaaHM 0SDXXbgmEfeB62roY/jZT7F0EdSK4W1OY7UZfuxHg4Nn00QQTaQILP1eHamdJWZnvscs iyXQ== X-Received: by 10.66.189.100 with SMTP id gh4mr31983639pac.25.1391358935918; Sun, 02 Feb 2014 08:35:35 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.201.231 with HTTP; Sun, 2 Feb 2014 08:35:15 -0800 (PST) In-Reply-To: <20140202221458.D888.27F6AC2D@kcn.ne.jp> References: <20140129220720.757A.27F6AC2D@kcn.ne.jp> <20140202221458.D888.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sun, 2 Feb 2014 08:35:15 -0800 X-Google-Sender-Auth: XH3fTMcoJnrLAf1ZUq9zFt02u3g Message-ID: Subject: Re: bug#16544: Optimazation for is_mb_middle To: Norihiro Tanaka Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16544-done Cc: Paul Eggert , 16544-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.0 (/) Merged and pushed. From debbugs-submit-bounces@debbugs.gnu.org Sun Feb 09 23:56:15 2014 Received: (at 16544-done) by debbugs.gnu.org; 10 Feb 2014 04:56:15 +0000 Received: from localhost ([127.0.0.1]:33503 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WCiuk-0006Tr-KL for submit@debbugs.gnu.org; Sun, 09 Feb 2014 23:56:15 -0500 Received: from mail-pa0-f43.google.com ([209.85.220.43]:39988) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WCiui-0006Tf-Jm for 16544-done@debbugs.gnu.org; Sun, 09 Feb 2014 23:56:13 -0500 Received: by mail-pa0-f43.google.com with SMTP id rd3so5696846pab.2 for <16544-done@debbugs.gnu.org>; Sun, 09 Feb 2014 20:56:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=ri9iSm5Qkg6Jp+dnj9ikKwN/dfyFXZPtGkPSoHZj/zw=; b=HFT7bFLGVOqd4DN4tBl5GM+SO39HlQOAQHkGeNbbZWe3IzMGukpzjbJ9UZ/uCvHsdZ z9tr57qAsJM7knERfoW8zhyP3Ha0Z18CWIB+iKYPr/SOwFsAnQtNEE63+BKyxHziO9e3 alwgc43C3+4LP1l/07LQG4EJOJTPZKLVL+8m5FhYwESKzPfmCwGpl1DRJu846Ab38rwV 8DoIcCqiGahR2X9HG2LOqdE0kx5m2LHoTDJ/Ll+gqhWN7tKq89wJSGHHRKablaNOAq6e SAqgM+HHJNCrXiSSuzisHexIQh4WrJyzmHXKRnY0gHc486xhFa3s3ZHdk+ZRBVV6sFc1 z0sg== X-Received: by 10.66.189.100 with SMTP id gh4mr23114006pac.25.1392008171687; Sun, 09 Feb 2014 20:56:11 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.201.231 with HTTP; Sun, 9 Feb 2014 20:55:51 -0800 (PST) In-Reply-To: References: <20140129220720.757A.27F6AC2D@kcn.ne.jp> <20140202221458.D888.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sun, 9 Feb 2014 20:55:51 -0800 X-Google-Sender-Auth: 8ynPqQhhXtz6FstacufqtPbqVSM Message-ID: Subject: Re: bug#16544: Optimazation for is_mb_middle To: Norihiro Tanaka Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16544-done Cc: Paul Eggert , 16544-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) I have just noticed that this (currently topmost) commit lists my name as the author. That was not my intention. Norihiro Tanaka should be listed as the author. I plan to take the unusual step of replacing that public/pushed commit with an identical one with that important correction. Then I will post instructions telling people how to deal with this unusual situation. Norihiro, you can help avoid recurrence by submitting future patches created by running "git format-patch --stdout -1". That way, your name is recorded in the patch, and I don't have to take extra steps to add it when creating a commit. From debbugs-submit-bounces@debbugs.gnu.org Mon Feb 10 08:51:07 2014 Received: (at 16544-done) by debbugs.gnu.org; 10 Feb 2014 13:51:07 +0000 Received: from localhost ([127.0.0.1]:39355 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WCrGM-0005Vs-FE for submit@debbugs.gnu.org; Mon, 10 Feb 2014 08:51:06 -0500 Received: from pbsg501.nifty.com ([202.248.238.71]:56944) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WCrGH-0005VN-UT for 16544-done@debbugs.gnu.org; Mon, 10 Feb 2014 08:51:04 -0500 Received: from [10.120.1.51] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s1ADoUjC021270; Mon, 10 Feb 2014 22:50:31 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Mon, 10 Feb 2014 22:50:30 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#16544: Optimazation for is_mb_middle In-Reply-To: References: Message-Id: <20140210225024.8D07.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 16544-done Cc: Paul Eggert , 16544-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Hi Jim, Sorry for the trouble. When I submit future patches, I will create them with "git format-patch --stdout -1". From unknown Mon Aug 18 19:32:23 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 11 Mar 2014 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator