<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>76687</bug_id>
          
          <creation_ts>2012-01-19 23:17:08 -0800</creation_ts>
          <short_desc>Removed some regexp entry boilerplate code</short_desc>
          <delta_ts>2012-01-21 19:23:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>barraclough</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>539295</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-19 23:17:08 -0800</bug_when>
    <thetext>Removed some regexp entry boilerplate code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539319</commentid>
    <comment_count>1</comment_count>
      <attachid>123261</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-20 00:29:47 -0800</bug_when>
    <thetext>Created attachment 123261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539556</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-01-20 09:03:59 -0800</bug_when>
    <thetext>This changes seem fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539583</commentid>
    <comment_count>3</comment_count>
      <attachid>123261</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-01-20 09:36:28 -0800</bug_when>
    <thetext>Comment on attachment 123261
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=123261&amp;action=review

&gt; Source/JavaScriptCore/runtime/RegExp.cpp:339
&gt; +    ASSERT(startOffset &gt;= 0);

Another approach might be to use the type unsigned instead of int.

&gt; Source/JavaScriptCore/runtime/RegExp.cpp:340
&gt; +    ASSERT(!s.isNull());

Clearly the check for null that was here before was unneeded. But the assertion also seems unneeded. The code seems like it would do just fine if passed a null string, and shouldn’t be so picky!

&gt; Source/JavaScriptCore/runtime/RegExp.cpp:343
&gt; +    ASSERT(m_state != ParseError);
&gt;  
&gt;      ASSERT(m_state != ParseError);

Oops, left this assertion in twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539669</commentid>
    <comment_count>4</comment_count>
      <attachid>123351</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-20 11:56:11 -0800</bug_when>
    <thetext>Created attachment 123351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539674</commentid>
    <comment_count>5</comment_count>
      <attachid>123352</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-20 12:05:28 -0800</bug_when>
    <thetext>Created attachment 123352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539698</commentid>
    <comment_count>6</comment_count>
      <attachid>123357</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-20 12:24:03 -0800</bug_when>
    <thetext>Created attachment 123357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539737</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-01-20 13:06:02 -0800</bug_when>
    <thetext>Committed r105539: &lt;http://trac.webkit.org/changeset/105539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540213</commentid>
    <comment_count>8</comment_count>
      <attachid>123357</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-01-21 19:23:42 -0800</bug_when>
    <thetext>Comment on attachment 123357
Patch

Clearing review flag on patch to remove it from the review queue since it was already committed per comment 7.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123261</attachid>
            <date>2012-01-20 00:29:47 -0800</date>
            <delta_ts>2012-01-20 11:56:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76687-20120120002945.patch</filename>
            <type>text/plain</type>
            <size>5055</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1NDgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAxLTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBzb21lIHJlZ2V4cCBlbnRyeSBib2lsZXJwbGF0ZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgMSUgLSAyJSBzcGVl
ZHVwIG9uIHJlZ2V4cCB0ZXN0cywgbm8gY2hhbmdlIG92ZXJhbGwuCisKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0Y2gpOgorICAgICAgICAg
ICAgLSBBU1NFUlQgdGhhdCBvdXIgc3RhcnRJbmRleCBpcyBub24tbmVnYXRpdmUsIGJlY2F1c2Ug
YW55dGhpbmcgbGVzcworICAgICAgICAgICAgd291bGQgYmUgdW5jaXZpbGl6ZWQuCisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIC0gQVNTRVJUIHRoYXQgb3VyIGlucHV0IGlzIG5vdCB0aGUgbnVs
bCBzdHJpbmcgZm9yIHRoZSBzYW1lIHJlYXNvbi4KKworICAgICAgICAgICAgLSBObyBuZWVkIHRv
IHRlc3QgZm9yIHN0YXJ0T2Zmc2V0IGJlaW5nIHBhc3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAor
ICAgICAgICAgICAgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbmdpbmUgd2lsbCBkbyB0
aGlzIHRlc3QgZm9yIHVzLgorCisgICAgICAgICAgICAtIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0
aGUgb3V0cHV0IHZlY3Rvciwgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAgICAg
ICAgZW5naW5lIHdpbGwgZmlsbCBpdCBpbiBmb3IgdXMuCisKKyAgICAgICAgKiB5YXJyL1lhcnJJ
bnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjppbnRlcnBy
ZXQpOgorICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6Ollh
cnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAKKyAgICAgICAgICAgIFJlZ0V4cCB1c2Vk
IHRvIGRvIHRoZXNlIGpvYnMgZm9yIHVzLCBidXQgbm93IHdlIGRvIHRoZW0gZm9yIG91cnNlbHZl
cworICAgICAgICAgICAgYmVjYXVzZSBpdCdzIGEgYmV0dGVyIHNlcGFyYXRpb24gb2YgY29uY2Vy
bnMsIGFuZCB0aGUgSklUIGNhbiBkbyB0aGVtCisgICAgICAgICAgICBtb3JlIGVmZmljaWVudGx5
IHRoYW4gQysrIGNvZGU6CisKKyAgICAgICAgICAgIC0gVGVzdCBmb3IgInBhc3QgdGhlIGVuZCIg
YmVmb3JlIGRvaW5nIGFueSBtYXRjaGluZyAtLSBvdGhlcndpc2UKKyAgICAgICAgICAgIGEqIHdp
bGwgbWF0Y2ggd2l0aCB6ZXJvIGxlbmd0aCBwYXN0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgd2hp
Y2ggaXMgd3JvbmcuCisKKyAgICAgICAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgb3V0cHV0IHZlY3Rv
ciBiZWZvcmUgZG9pbmcgYW55IG1hdGNoaW5nLgorCiAyMDEyLTAxLTE5ICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgYW4gb2Jzb2xl
dGUgY29tbWVudCBhYm91dCBmZWF0dXJlcy5neXBpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cC5jcHAJKHJldmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMiwxNSArMzMy
LDEzIEBAIHZvaWQgUmVnRXhwOjpjb21waWxlSWZOZWNlc3NhcnkoSlNHbG9iYWwKIAogaW50IFJl
Z0V4cDo6bWF0Y2goSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBzLCBp
bnQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQsIDMyPiogb3ZlY3RvcikKIHsKLSAgICBpZiAoc3Rh
cnRPZmZzZXQgPCAwKQotICAgICAgICBzdGFydE9mZnNldCA9IDA7Ci0KICNpZiBFTkFCTEUoUkVH
RVhQX1RSQUNJTkcpCiAgICAgbV9ydE1hdGNoQ2FsbENvdW50Kys7CiAjZW5kaWYKIAotICAgIGlm
IChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhcnRPZmZzZXQpID4gcy5sZW5ndGgoKSB8fCBzLmlz
TnVsbCgpKQotICAgICAgICByZXR1cm4gLTE7CisgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0ID49IDAp
OworICAgIEFTU0VSVCghcy5pc051bGwoKSk7CisgICAgQVNTRVJUKG1fc3RhdGUgIT0gUGFyc2VF
cnJvcik7CiAKICAgICBBU1NFUlQobV9zdGF0ZSAhPSBQYXJzZUVycm9yKTsKICAgICBjb21waWxl
SWZOZWNlc3NhcnkoZ2xvYmFsRGF0YSwgcy5pczhCaXQoKSA/IFlhcnI6OkNoYXI4IDogWWFycjo6
Q2hhcjE2KTsKQEAgLTM1NSwxMyArMzUzLDcgQEAgaW50IFJlZ0V4cDo6bWF0Y2goSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYQogICAgICAgICBub25SZXR1cm5lZE92ZWN0b3IucmVzaXplKG9mZnNldFZl
Y3RvclNpemUpOwogICAgICAgICBvZmZzZXRWZWN0b3IgPSBub25SZXR1cm5lZE92ZWN0b3IuZGF0
YSgpOwogICAgIH0KLQogICAgIEFTU0VSVChvZmZzZXRWZWN0b3IpOwotICAgIC8vIEluaXRpYWxp
emUgb2Zmc2V0VmVjdG9yIHdpdGggdGhlIHJldHVybiB2YWx1ZSAoaW5kZXggMCkgYW5kIHRoZSAK
LSAgICAvLyBmaXJzdCBzdWJwYXR0ZXJuIHN0YXJ0IGluZGljaWVzIChldmVuIGluZGV4IHZhbHVl
cykgc2V0IHRvIC0xLgotICAgIC8vIE5vIG5lZWQgdG8gaW5pdCB0aGUgc3VicGF0dGVybiBlbmQg
aW5kaWNpZXMuCi0gICAgZm9yICh1bnNpZ25lZCBqID0gMCwgaSA9IDA7IGkgPCBtX251bVN1YnBh
dHRlcm5zICsgMTsgaiArPSAyLCBpKyspICAgICAgICAgICAgCi0gICAgICAgIG9mZnNldFZlY3Rv
cltqXSA9IC0xOwogCiAgICAgaW50IHJlc3VsdDsKICNpZiBFTkFCTEUoWUFSUl9KSVQpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAJKHJl
dmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnBy
ZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDMsMTMgKzE0NDMsMTYgQEAgcHVibGljOgog
CiAgICAgaW50IGludGVycHJldCgpCiAgICAgeworICAgICAgICBpZiAoaW5wdXQuaXNOb3RBdmFp
bGFibGVJbnB1dCgwKSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgcGF0dGVybi0+bV9ib2R5LT5tX251bVN1YnBhdHRlcm5zICsgMTsg
KytpKQorICAgICAgICAgICAgb3V0cHV0W2kgPDwgMV0gPSAtMTsKKwogICAgICAgICBhbGxvY2F0
b3JQb29sID0gcGF0dGVybi0+bV9hbGxvY2F0b3ItPnN0YXJ0QWxsb2NhdG9yKCk7CiAgICAgICAg
IGlmICghYWxsb2NhdG9yUG9vbCkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8ICgocGF0dGVybi0+bV9ib2R5LT5tX251bVN1YnBhdHRlcm5z
ICsgMSkgPDwgMSk7ICsraSkKLSAgICAgICAgICAgIG91dHB1dFtpXSA9IC0xOwotCiAgICAgICAg
IERpc2p1bmN0aW9uQ29udGV4dCogY29udGV4dCA9IGFsbG9jRGlzanVuY3Rpb25Db250ZXh0KHBh
dHRlcm4tPm1fYm9keS5nZXQoKSk7CiAKICAgICAgICAgSlNSZWdFeHBSZXN1bHQgcmVzdWx0ID0g
bWF0Y2hEaXNqdW5jdGlvbihwYXR0ZXJuLT5tX2JvZHkuZ2V0KCksIGNvbnRleHQsIGZhbHNlKTsK
QEAgLTE0NjIsNyArMTQ2NSw2IEBAIHB1YmxpYzoKIAogICAgICAgICBwYXR0ZXJuLT5tX2FsbG9j
YXRvci0+c3RvcEFsbG9jYXRvcigpOwogCi0gICAgICAgIC8vIFJlZ0V4cC5jcHAgY3VycmVudGx5
IGV4cGVjdHMgYWxsIGVycm9yIHRvIGJlIGNvbnZlcnRlZCB0byAtMS4KICAgICAgICAgQVNTRVJU
KChyZXN1bHQgPT0gSlNSZWdFeHBNYXRjaCkgPT0gKG91dHB1dFswXSAhPSAtMSkpOwogICAgICAg
ICByZXR1cm4gb3V0cHV0WzBdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3Nyw2ICsyNDc3LDE0IEBAIHB1
YmxpYzoKICAgICB7CiAgICAgICAgIGdlbmVyYXRlRW50ZXIoKTsKIAorICAgICAgICBKdW1wIGhh
c0lucHV0ID0gY2hlY2tJbnB1dCgpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigtMSksIHJl
dHVyblJlZ2lzdGVyKTsKKyAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKKyAgICAgICAgaGFzSW5w
dXQubGluayh0aGlzKTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wYXR0
ZXJuLm1fbnVtU3VicGF0dGVybnMgKyAxOyArK2kpCisgICAgICAgICAgICBzdG9yZTMyKFRydXN0
ZWRJbW0zMigtMSksIEFkZHJlc3Mob3V0cHV0LCAoaSA8PCAxKSAqIHNpemVvZihpbnQpKSk7CisK
ICAgICAgICAgaWYgKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSkKICAgICAgICAg
ICAgIHN0b3JlMzIoaW5kZXgsIEFkZHJlc3Mob3V0cHV0KSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123351</attachid>
            <date>2012-01-20 11:56:11 -0800</date>
            <delta_ts>2012-01-20 12:05:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76687-20120120115611.patch</filename>
            <type>text/plain</type>
            <size>7566</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1NDgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAxLTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBzb21lIHJlZ2V4cCBlbnRyeSBib2lsZXJwbGF0ZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgMSUgLSAyJSBzcGVl
ZHVwIG9uIHJlZ2V4cCB0ZXN0cywgbm8gY2hhbmdlIG92ZXJhbGwuCisKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0Y2gpOgorICAgICAgICAg
ICAgLSBBU1NFUlQgdGhhdCBvdXIgc3RhcnRJbmRleCBpcyBub24tbmVnYXRpdmUsIGJlY2F1c2Ug
YW55dGhpbmcgbGVzcworICAgICAgICAgICAgd291bGQgYmUgdW5jaXZpbGl6ZWQuCisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIC0gQVNTRVJUIHRoYXQgb3VyIGlucHV0IGlzIG5vdCB0aGUgbnVs
bCBzdHJpbmcgZm9yIHRoZSBzYW1lIHJlYXNvbi4KKworICAgICAgICAgICAgLSBObyBuZWVkIHRv
IHRlc3QgZm9yIHN0YXJ0T2Zmc2V0IGJlaW5nIHBhc3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAor
ICAgICAgICAgICAgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbmdpbmUgd2lsbCBkbyB0
aGlzIHRlc3QgZm9yIHVzLgorCisgICAgICAgICAgICAtIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0
aGUgb3V0cHV0IHZlY3Rvciwgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAgICAg
ICAgZW5naW5lIHdpbGwgZmlsbCBpdCBpbiBmb3IgdXMuCisKKyAgICAgICAgKiB5YXJyL1lhcnJJ
bnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjppbnRlcnBy
ZXQpOgorICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6Ollh
cnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAKKyAgICAgICAgICAgIFJlZ0V4cCB1c2Vk
IHRvIGRvIHRoZXNlIGpvYnMgZm9yIHVzLCBidXQgbm93IHdlIGRvIHRoZW0gZm9yIG91cnNlbHZl
cworICAgICAgICAgICAgYmVjYXVzZSBpdCdzIGEgYmV0dGVyIHNlcGFyYXRpb24gb2YgY29uY2Vy
bnMsIGFuZCB0aGUgSklUIGNhbiBkbyB0aGVtCisgICAgICAgICAgICBtb3JlIGVmZmljaWVudGx5
IHRoYW4gQysrIGNvZGU6CisKKyAgICAgICAgICAgIC0gVGVzdCBmb3IgInBhc3QgdGhlIGVuZCIg
YmVmb3JlIGRvaW5nIGFueSBtYXRjaGluZyAtLSBvdGhlcndpc2UKKyAgICAgICAgICAgIGEqIHdp
bGwgbWF0Y2ggd2l0aCB6ZXJvIGxlbmd0aCBwYXN0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgd2hp
Y2ggaXMgd3JvbmcuCisKKyAgICAgICAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgb3V0cHV0IHZlY3Rv
ciBiZWZvcmUgZG9pbmcgYW55IG1hdGNoaW5nLgorCiAyMDEyLTAxLTE5ICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgYW4gb2Jzb2xl
dGUgY29tbWVudCBhYm91dCBmZWF0dXJlcy5neXBpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OCw3ICsyNzgs
NyBAQCBfX1pOM0pTQzZKU0xvY2s0bG9ja0VOU18xNEpTTG9ja0JlaGF2aW9yCiBfX1pOM0pTQzZK
U0xvY2s2dW5sb2NrRU5TXzE0SlNMb2NrQmVoYXZpb3JFCiBfX1pOM0pTQzZKU0xvY2s5bG9ja0Nv
dW50RXYKIF9fWk4zSlNDNkpTTG9ja0MxRVBOU185RXhlY1N0YXRlRQotX19aTjNKU0M2UmVnRXhw
NW1hdGNoRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdVU3RyaW5nRWlQTjNXVEY2VmVjdG9ySWlM
bTMyRUVFCitfX1pOM0pTQzZSZWdFeHA1bWF0Y2hFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN1VT
dHJpbmdFalBOM1dURjZWZWN0b3JJaUxtMzJFRUUKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5T
XzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlND
N0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBf
X1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFagpAQCAt
MzIyLDkgKzMyMiw5IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzZKU0MK
IF9fWk4zSlNDOEpTT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RW
aXNpdG9yRQogX19aTjNKU0M4SlNPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU182SlNDZWxsRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4SlNPYmplY3QxNmdldFBy
b3BlcnR5TmFtZXNFUFMwX1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5T
XzE1RW51bWVyYXRpb25Nb2RlRQorX19aTjNKU0M4SlNPYmplY3QxNnB1dERpcmVjdFZpcnR1YWxF
UFMwX1BOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWoKIF9fWk4z
SlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRWIKIF9fWk4zSlNDOEpTT2JqZWN0
MTdwcmV2ZW50RXh0ZW5zaW9uc0VSTlNfMTJKU0dsb2JhbERhdGFFCi1fX1pOM0pTQzhKU09iamVj
dDE2cHV0RGlyZWN0VmlydHVhbEVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
TlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUFMw
X1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25N
b2RlRQogX19aTjNKU0M4SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5QnlJbmRleEVQTlNfNkpTQ2Vs
bEVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlw
dG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3Jp
cHRvckUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2
aXNpb24gMTA1NDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDE4ICszMzAsMTIgQEAgdm9pZCBSZWdFeHA6OmNvbXBp
bGVJZk5lY2Vzc2FyeShKU0dsb2JhbAogICAgIGNvbXBpbGUoJmdsb2JhbERhdGEsIGNoYXJTaXpl
KTsKIH0KIAotaW50IFJlZ0V4cDo6bWF0Y2goSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25z
dCBVU3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQsIDMyPiogb3ZlY3RvcikK
K2ludCBSZWdFeHA6Om1hdGNoKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmlu
ZyYgcywgdW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQsIDMyPiogb3ZlY3RvcikKIHsK
LSAgICBpZiAoc3RhcnRPZmZzZXQgPCAwKQotICAgICAgICBzdGFydE9mZnNldCA9IDA7Ci0KICNp
ZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCiAgICAgbV9ydE1hdGNoQ2FsbENvdW50Kys7CiAjZW5k
aWYKIAotICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhcnRPZmZzZXQpID4gcy5sZW5n
dGgoKSB8fCBzLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gLTE7Ci0KICAgICBBU1NFUlQobV9z
dGF0ZSAhPSBQYXJzZUVycm9yKTsKICAgICBjb21waWxlSWZOZWNlc3NhcnkoZ2xvYmFsRGF0YSwg
cy5pczhCaXQoKSA/IFlhcnI6OkNoYXI4IDogWWFycjo6Q2hhcjE2KTsKIApAQCAtMzU1LDEzICsz
NDksNyBAQCBpbnQgUmVnRXhwOjptYXRjaChKU0dsb2JhbERhdGEmIGdsb2JhbERhCiAgICAgICAg
IG5vblJldHVybmVkT3ZlY3Rvci5yZXNpemUob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAgICAgIG9m
ZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7CiAgICAgfQotCiAgICAgQVNT
RVJUKG9mZnNldFZlY3Rvcik7Ci0gICAgLy8gSW5pdGlhbGl6ZSBvZmZzZXRWZWN0b3Igd2l0aCB0
aGUgcmV0dXJuIHZhbHVlIChpbmRleCAwKSBhbmQgdGhlIAotICAgIC8vIGZpcnN0IHN1YnBhdHRl
cm4gc3RhcnQgaW5kaWNpZXMgKGV2ZW4gaW5kZXggdmFsdWVzKSBzZXQgdG8gLTEuCi0gICAgLy8g
Tm8gbmVlZCB0byBpbml0IHRoZSBzdWJwYXR0ZXJuIGVuZCBpbmRpY2llcy4KLSAgICBmb3IgKHVu
c2lnbmVkIGogPSAwLCBpID0gMDsgaSA8IG1fbnVtU3VicGF0dGVybnMgKyAxOyBqICs9IDIsIGkr
KykgICAgICAgICAgICAKLSAgICAgICAgb2Zmc2V0VmVjdG9yW2pdID0gLTE7CiAKICAgICBpbnQg
cmVzdWx0OwogI2lmIEVOQUJMRShZQVJSX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cC5oCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHAuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIW1fY29u
c3RydWN0aW9uRXJyb3IgJiYgbV9mbGFncyAhPSBJbnZhbGlkRmxhZ3M7IH0KICAgICAgICAgY29u
c3QgY2hhciogZXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJ1Y3Rpb25FcnJv
cjsgfQogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGludCBtYXRjaChKU0dsb2JhbERhdGEm
LCBjb25zdCBVU3RyaW5nJiwgaW50IHN0YXJ0T2Zmc2V0LCBWZWN0b3I8aW50LCAzMj4qIG92ZWN0
b3IgPSAwKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgaW50IG1hdGNoKEpTR2xvYmFsRGF0
YSYsIGNvbnN0IFVTdHJpbmcmLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgVmVjdG9yPGludCwgMzI+
KiBvdmVjdG9yID0gMCk7CiAgICAgICAgIHVuc2lnbmVkIG51bVN1YnBhdHRlcm5zKCkgY29uc3Qg
eyByZXR1cm4gbV9udW1TdWJwYXR0ZXJuczsgfQogCiAgICAgICAgIGJvb2wgaGFzQ29kZSgpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAJ
KHJldmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRl
cnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDMsMTMgKzE0NDMsMTYgQEAgcHVibGlj
OgogCiAgICAgaW50IGludGVycHJldCgpCiAgICAgeworICAgICAgICBpZiAoaW5wdXQuaXNOb3RB
dmFpbGFibGVJbnB1dCgwKSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0dGVybi0+bV9ib2R5LT5tX251bVN1YnBhdHRlcm5zICsg
MTsgKytpKQorICAgICAgICAgICAgb3V0cHV0W2kgPDwgMV0gPSAtMTsKKwogICAgICAgICBhbGxv
Y2F0b3JQb29sID0gcGF0dGVybi0+bV9hbGxvY2F0b3ItPnN0YXJ0QWxsb2NhdG9yKCk7CiAgICAg
ICAgIGlmICghYWxsb2NhdG9yUG9vbCkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8ICgocGF0dGVybi0+bV9ib2R5LT5tX251bVN1YnBhdHRl
cm5zICsgMSkgPDwgMSk7ICsraSkKLSAgICAgICAgICAgIG91dHB1dFtpXSA9IC0xOwotCiAgICAg
ICAgIERpc2p1bmN0aW9uQ29udGV4dCogY29udGV4dCA9IGFsbG9jRGlzanVuY3Rpb25Db250ZXh0
KHBhdHRlcm4tPm1fYm9keS5nZXQoKSk7CiAKICAgICAgICAgSlNSZWdFeHBSZXN1bHQgcmVzdWx0
ID0gbWF0Y2hEaXNqdW5jdGlvbihwYXR0ZXJuLT5tX2JvZHkuZ2V0KCksIGNvbnRleHQsIGZhbHNl
KTsKQEAgLTE0NjIsNyArMTQ2NSw2IEBAIHB1YmxpYzoKIAogICAgICAgICBwYXR0ZXJuLT5tX2Fs
bG9jYXRvci0+c3RvcEFsbG9jYXRvcigpOwogCi0gICAgICAgIC8vIFJlZ0V4cC5jcHAgY3VycmVu
dGx5IGV4cGVjdHMgYWxsIGVycm9yIHRvIGJlIGNvbnZlcnRlZCB0byAtMS4KICAgICAgICAgQVNT
RVJUKChyZXN1bHQgPT0gSlNSZWdFeHBNYXRjaCkgPT0gKG91dHB1dFswXSAhPSAtMSkpOwogICAg
ICAgICByZXR1cm4gb3V0cHV0WzBdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS95YXJyL1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJKSVQuY3BwCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3Nyw2ICsyNDc3LDE0IEBA
IHB1YmxpYzoKICAgICB7CiAgICAgICAgIGdlbmVyYXRlRW50ZXIoKTsKIAorICAgICAgICBKdW1w
IGhhc0lucHV0ID0gY2hlY2tJbnB1dCgpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigtMSks
IHJldHVyblJlZ2lzdGVyKTsKKyAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKKyAgICAgICAgaGFz
SW5wdXQubGluayh0aGlzKTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9w
YXR0ZXJuLm1fbnVtU3VicGF0dGVybnMgKyAxOyArK2kpCisgICAgICAgICAgICBzdG9yZTMyKFRy
dXN0ZWRJbW0zMigtMSksIEFkZHJlc3Mob3V0cHV0LCAoaSA8PCAxKSAqIHNpemVvZihpbnQpKSk7
CisKICAgICAgICAgaWYgKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSkKICAgICAg
ICAgICAgIHN0b3JlMzIoaW5kZXgsIEFkZHJlc3Mob3V0cHV0KSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123352</attachid>
            <date>2012-01-20 12:05:28 -0800</date>
            <delta_ts>2012-01-20 12:23:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76687-20120120120528.patch</filename>
            <type>text/plain</type>
            <size>8301</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1NDgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAxLTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBzb21lIHJlZ2V4cCBlbnRyeSBib2lsZXJwbGF0ZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgMSUgLSAyJSBzcGVl
ZHVwIG9uIHJlZ2V4cCB0ZXN0cywgbm8gY2hhbmdlIG92ZXJhbGwuCisKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0Y2gpOgorICAgICAgICAg
ICAgLSBBU1NFUlQgdGhhdCBvdXIgc3RhcnRJbmRleCBpcyBub24tbmVnYXRpdmUsIGJlY2F1c2Ug
YW55dGhpbmcgbGVzcworICAgICAgICAgICAgd291bGQgYmUgdW5jaXZpbGl6ZWQuCisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIC0gQVNTRVJUIHRoYXQgb3VyIGlucHV0IGlzIG5vdCB0aGUgbnVs
bCBzdHJpbmcgZm9yIHRoZSBzYW1lIHJlYXNvbi4KKworICAgICAgICAgICAgLSBObyBuZWVkIHRv
IHRlc3QgZm9yIHN0YXJ0T2Zmc2V0IGJlaW5nIHBhc3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAor
ICAgICAgICAgICAgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbmdpbmUgd2lsbCBkbyB0
aGlzIHRlc3QgZm9yIHVzLgorCisgICAgICAgICAgICAtIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0
aGUgb3V0cHV0IHZlY3Rvciwgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAgICAg
ICAgZW5naW5lIHdpbGwgZmlsbCBpdCBpbiBmb3IgdXMuCisKKyAgICAgICAgKiB5YXJyL1lhcnJJ
bnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjppbnRlcnBy
ZXQpOgorICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6Ollh
cnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAKKyAgICAgICAgICAgIFJlZ0V4cCB1c2Vk
IHRvIGRvIHRoZXNlIGpvYnMgZm9yIHVzLCBidXQgbm93IHdlIGRvIHRoZW0gZm9yIG91cnNlbHZl
cworICAgICAgICAgICAgYmVjYXVzZSBpdCdzIGEgYmV0dGVyIHNlcGFyYXRpb24gb2YgY29uY2Vy
bnMsIGFuZCB0aGUgSklUIGNhbiBkbyB0aGVtCisgICAgICAgICAgICBtb3JlIGVmZmljaWVudGx5
IHRoYW4gQysrIGNvZGU6CisKKyAgICAgICAgICAgIC0gVGVzdCBmb3IgInBhc3QgdGhlIGVuZCIg
YmVmb3JlIGRvaW5nIGFueSBtYXRjaGluZyAtLSBvdGhlcndpc2UKKyAgICAgICAgICAgIGEqIHdp
bGwgbWF0Y2ggd2l0aCB6ZXJvIGxlbmd0aCBwYXN0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgd2hp
Y2ggaXMgd3JvbmcuCisKKyAgICAgICAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgb3V0cHV0IHZlY3Rv
ciBiZWZvcmUgZG9pbmcgYW55IG1hdGNoaW5nLgorCiAyMDEyLTAxLTE5ICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgYW4gb2Jzb2xl
dGUgY29tbWVudCBhYm91dCBmZWF0dXJlcy5neXBpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OCw3ICsyNzgs
NyBAQCBfX1pOM0pTQzZKU0xvY2s0bG9ja0VOU18xNEpTTG9ja0JlaGF2aW9yCiBfX1pOM0pTQzZK
U0xvY2s2dW5sb2NrRU5TXzE0SlNMb2NrQmVoYXZpb3JFCiBfX1pOM0pTQzZKU0xvY2s5bG9ja0Nv
dW50RXYKIF9fWk4zSlNDNkpTTG9ja0MxRVBOU185RXhlY1N0YXRlRQotX19aTjNKU0M2UmVnRXhw
NW1hdGNoRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdVU3RyaW5nRWlQTjNXVEY2VmVjdG9ySWlM
bTMyRUVFCitfX1pOM0pTQzZSZWdFeHA1bWF0Y2hFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN1VT
dHJpbmdFalBOM1dURjZWZWN0b3JJaUxtMzJFRUUKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5T
XzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlND
N0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBf
X1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFagpAQCAt
MzIyLDkgKzMyMiw5IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzZKU0MK
IF9fWk4zSlNDOEpTT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RW
aXNpdG9yRQogX19aTjNKU0M4SlNPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU182SlNDZWxsRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4SlNPYmplY3QxNmdldFBy
b3BlcnR5TmFtZXNFUFMwX1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5T
XzE1RW51bWVyYXRpb25Nb2RlRQorX19aTjNKU0M4SlNPYmplY3QxNnB1dERpcmVjdFZpcnR1YWxF
UFMwX1BOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWoKIF9fWk4z
SlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRWIKIF9fWk4zSlNDOEpTT2JqZWN0
MTdwcmV2ZW50RXh0ZW5zaW9uc0VSTlNfMTJKU0dsb2JhbERhdGFFCi1fX1pOM0pTQzhKU09iamVj
dDE2cHV0RGlyZWN0VmlydHVhbEVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
TlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUFMw
X1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25N
b2RlRQogX19aTjNKU0M4SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5QnlJbmRleEVQTlNfNkpTQ2Vs
bEVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlw
dG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3Jp
cHRvckUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgko
d29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0Myw2IEBAIEVYUE9SVFMKICAgICA/bG9ja0BNdXRl
eEBXVEZAQFFBRVhYWgogICAgID9sb2NrQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXhA
V1RGQEBZQVhYWgogICAgID9sb2NrQ291bnRASlNMb2NrQEpTQ0BAU0FIWFoKLSAgICA/bWF0Y2hA
UmVnRXhwQEpTQ0BAUUFFSEFBVkpTR2xvYmFsRGF0YUAyQEFCVlVTdHJpbmdAMkBIUEFWPyRWZWN0
b3JASCQwQ0FAQFdURkBAQFoKICAgICA/bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcEBTdHJ1Y3R1cmVA
SlNDQEBBQUVYQUFWSlNHbG9iYWxEYXRhQDJAQFoKICAgICA/bW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lQFdURkBAWUFOWFoKICAgICA/bW9udGhGcm9tRGF5SW5ZZWFyQFdURkBAWUFISF9OQFoK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24g
MTA1NDgyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMwLDE4ICszMzAsMTIgQEAgdm9pZCBSZWdFeHA6OmNvbXBpbGVJZk5l
Y2Vzc2FyeShKU0dsb2JhbAogICAgIGNvbXBpbGUoJmdsb2JhbERhdGEsIGNoYXJTaXplKTsKIH0K
IAotaW50IFJlZ0V4cDo6bWF0Y2goSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3Ry
aW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQsIDMyPiogb3ZlY3RvcikKK2ludCBS
ZWdFeHA6Om1hdGNoKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgcywg
dW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3RvcjxpbnQsIDMyPiogb3ZlY3RvcikKIHsKLSAgICBp
ZiAoc3RhcnRPZmZzZXQgPCAwKQotICAgICAgICBzdGFydE9mZnNldCA9IDA7Ci0KICNpZiBFTkFC
TEUoUkVHRVhQX1RSQUNJTkcpCiAgICAgbV9ydE1hdGNoQ2FsbENvdW50Kys7CiAjZW5kaWYKIAot
ICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc3RhcnRPZmZzZXQpID4gcy5sZW5ndGgoKSB8
fCBzLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gLTE7Ci0KICAgICBBU1NFUlQobV9zdGF0ZSAh
PSBQYXJzZUVycm9yKTsKICAgICBjb21waWxlSWZOZWNlc3NhcnkoZ2xvYmFsRGF0YSwgcy5pczhC
aXQoKSA/IFlhcnI6OkNoYXI4IDogWWFycjo6Q2hhcjE2KTsKIApAQCAtMzU1LDEzICszNDksNyBA
QCBpbnQgUmVnRXhwOjptYXRjaChKU0dsb2JhbERhdGEmIGdsb2JhbERhCiAgICAgICAgIG5vblJl
dHVybmVkT3ZlY3Rvci5yZXNpemUob2Zmc2V0VmVjdG9yU2l6ZSk7CiAgICAgICAgIG9mZnNldFZl
Y3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5kYXRhKCk7CiAgICAgfQotCiAgICAgQVNTRVJUKG9m
ZnNldFZlY3Rvcik7Ci0gICAgLy8gSW5pdGlhbGl6ZSBvZmZzZXRWZWN0b3Igd2l0aCB0aGUgcmV0
dXJuIHZhbHVlIChpbmRleCAwKSBhbmQgdGhlIAotICAgIC8vIGZpcnN0IHN1YnBhdHRlcm4gc3Rh
cnQgaW5kaWNpZXMgKGV2ZW4gaW5kZXggdmFsdWVzKSBzZXQgdG8gLTEuCi0gICAgLy8gTm8gbmVl
ZCB0byBpbml0IHRoZSBzdWJwYXR0ZXJuIGVuZCBpbmRpY2llcy4KLSAgICBmb3IgKHVuc2lnbmVk
IGogPSAwLCBpID0gMDsgaSA8IG1fbnVtU3VicGF0dGVybnMgKyAxOyBqICs9IDIsIGkrKykgICAg
ICAgICAgICAKLSAgICAgICAgb2Zmc2V0VmVjdG9yW2pdID0gLTE7CiAKICAgICBpbnQgcmVzdWx0
OwogI2lmIEVOQUJMRShZQVJSX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cC5oCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHAuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gIW1fY29uc3RydWN0
aW9uRXJyb3IgJiYgbV9mbGFncyAhPSBJbnZhbGlkRmxhZ3M7IH0KICAgICAgICAgY29uc3QgY2hh
ciogZXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9jb25zdHJ1Y3Rpb25FcnJvcjsgfQog
Ci0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIGludCBtYXRjaChKU0dsb2JhbERhdGEmLCBjb25z
dCBVU3RyaW5nJiwgaW50IHN0YXJ0T2Zmc2V0LCBWZWN0b3I8aW50LCAzMj4qIG92ZWN0b3IgPSAw
KTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUgaW50IG1hdGNoKEpTR2xvYmFsRGF0YSYsIGNv
bnN0IFVTdHJpbmcmLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgVmVjdG9yPGludCwgMzI+KiBvdmVj
dG9yID0gMCk7CiAgICAgICAgIHVuc2lnbmVkIG51bVN1YnBhdHRlcm5zKCkgY29uc3QgeyByZXR1
cm4gbV9udW1TdWJwYXR0ZXJuczsgfQogCiAgICAgICAgIGJvb2wgaGFzQ29kZSgpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAJKHJldmlz
aW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NDMsMTMgKzE0NDMsMTYgQEAgcHVibGljOgogCiAg
ICAgaW50IGludGVycHJldCgpCiAgICAgeworICAgICAgICBpZiAoaW5wdXQuaXNOb3RBdmFpbGFi
bGVJbnB1dCgwKSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgcGF0dGVybi0+bV9ib2R5LT5tX251bVN1YnBhdHRlcm5zICsgMTsgKytp
KQorICAgICAgICAgICAgb3V0cHV0W2kgPDwgMV0gPSAtMTsKKwogICAgICAgICBhbGxvY2F0b3JQ
b29sID0gcGF0dGVybi0+bV9hbGxvY2F0b3ItPnN0YXJ0QWxsb2NhdG9yKCk7CiAgICAgICAgIGlm
ICghYWxsb2NhdG9yUG9vbCkKICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8ICgocGF0dGVybi0+bV9ib2R5LT5tX251bVN1YnBhdHRlcm5zICsg
MSkgPDwgMSk7ICsraSkKLSAgICAgICAgICAgIG91dHB1dFtpXSA9IC0xOwotCiAgICAgICAgIERp
c2p1bmN0aW9uQ29udGV4dCogY29udGV4dCA9IGFsbG9jRGlzanVuY3Rpb25Db250ZXh0KHBhdHRl
cm4tPm1fYm9keS5nZXQoKSk7CiAKICAgICAgICAgSlNSZWdFeHBSZXN1bHQgcmVzdWx0ID0gbWF0
Y2hEaXNqdW5jdGlvbihwYXR0ZXJuLT5tX2JvZHkuZ2V0KCksIGNvbnRleHQsIGZhbHNlKTsKQEAg
LTE0NjIsNyArMTQ2NSw2IEBAIHB1YmxpYzoKIAogICAgICAgICBwYXR0ZXJuLT5tX2FsbG9jYXRv
ci0+c3RvcEFsbG9jYXRvcigpOwogCi0gICAgICAgIC8vIFJlZ0V4cC5jcHAgY3VycmVudGx5IGV4
cGVjdHMgYWxsIGVycm9yIHRvIGJlIGNvbnZlcnRlZCB0byAtMS4KICAgICAgICAgQVNTRVJUKChy
ZXN1bHQgPT0gSlNSZWdFeHBNYXRjaCkgPT0gKG91dHB1dFswXSAhPSAtMSkpOwogICAgICAgICBy
ZXR1cm4gb3V0cHV0WzBdOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lh
cnJKSVQuY3BwCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3Nyw2ICsyNDc3LDE0IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIGdlbmVyYXRlRW50ZXIoKTsKIAorICAgICAgICBKdW1wIGhhc0lu
cHV0ID0gY2hlY2tJbnB1dCgpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigtMSksIHJldHVy
blJlZ2lzdGVyKTsKKyAgICAgICAgZ2VuZXJhdGVSZXR1cm4oKTsKKyAgICAgICAgaGFzSW5wdXQu
bGluayh0aGlzKTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wYXR0ZXJu
Lm1fbnVtU3VicGF0dGVybnMgKyAxOyArK2kpCisgICAgICAgICAgICBzdG9yZTMyKFRydXN0ZWRJ
bW0zMigtMSksIEFkZHJlc3Mob3V0cHV0LCAoaSA8PCAxKSAqIHNpemVvZihpbnQpKSk7CisKICAg
ICAgICAgaWYgKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSkKICAgICAgICAgICAg
IHN0b3JlMzIoaW5kZXgsIEFkZHJlc3Mob3V0cHV0KSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123357</attachid>
            <date>2012-01-20 12:24:03 -0800</date>
            <delta_ts>2012-01-21 19:23:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76687-20120120122403.patch</filename>
            <type>text/plain</type>
            <size>8388</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA1NDgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAxLTE5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBzb21lIHJlZ2V4cCBlbnRyeSBib2lsZXJwbGF0ZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjY4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgMSUgLSAyJSBzcGVl
ZHVwIG9uIHJlZ2V4cCB0ZXN0cywgbm8gY2hhbmdlIG92ZXJhbGwuCisKKyAgICAgICAgKiBydW50
aW1lL1JlZ0V4cC5jcHA6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6bWF0Y2gpOgorICAgICAgICAg
ICAgLSBBU1NFUlQgdGhhdCBvdXIgc3RhcnRJbmRleCBpcyBub24tbmVnYXRpdmUsIGJlY2F1c2Ug
YW55dGhpbmcgbGVzcworICAgICAgICAgICAgd291bGQgYmUgdW5jaXZpbGl6ZWQuCisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIC0gQVNTRVJUIHRoYXQgb3VyIGlucHV0IGlzIG5vdCB0aGUgbnVs
bCBzdHJpbmcgZm9yIHRoZSBzYW1lIHJlYXNvbi4KKworICAgICAgICAgICAgLSBObyBuZWVkIHRv
IHRlc3QgZm9yIHN0YXJ0T2Zmc2V0IGJlaW5nIHBhc3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLAor
ICAgICAgICAgICAgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBlbmdpbmUgd2lsbCBkbyB0
aGlzIHRlc3QgZm9yIHVzLgorCisgICAgICAgICAgICAtIE5vIG5lZWQgdG8gaW5pdGlhbGl6ZSB0
aGUgb3V0cHV0IHZlY3Rvciwgc2luY2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbgorICAgICAgICAg
ICAgZW5naW5lIHdpbGwgZmlsbCBpdCBpbiBmb3IgdXMuCisKKyAgICAgICAgKiB5YXJyL1lhcnJJ
bnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVyOjppbnRlcnBy
ZXQpOgorICAgICAgICAqIHlhcnIvWWFyckpJVC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6Ollh
cnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAgICAKKyAgICAgICAgICAgIFJlZ0V4cCB1c2Vk
IHRvIGRvIHRoZXNlIGpvYnMgZm9yIHVzLCBidXQgbm93IHdlIGRvIHRoZW0gZm9yIG91cnNlbHZl
cworICAgICAgICAgICAgYmVjYXVzZSBpdCdzIGEgYmV0dGVyIHNlcGFyYXRpb24gb2YgY29uY2Vy
bnMsIGFuZCB0aGUgSklUIGNhbiBkbyB0aGVtCisgICAgICAgICAgICBtb3JlIGVmZmljaWVudGx5
IHRoYW4gQysrIGNvZGU6CisKKyAgICAgICAgICAgIC0gVGVzdCBmb3IgInBhc3QgdGhlIGVuZCIg
YmVmb3JlIGRvaW5nIGFueSBtYXRjaGluZyAtLSBvdGhlcndpc2UKKyAgICAgICAgICAgIGEqIHdp
bGwgbWF0Y2ggd2l0aCB6ZXJvIGxlbmd0aCBwYXN0IHRoZSBlbmQgb2YgdGhlIHN0cmluZywgd2hp
Y2ggaXMgd3JvbmcuCisKKyAgICAgICAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgb3V0cHV0IHZlY3Rv
ciBiZWZvcmUgZG9pbmcgYW55IG1hdGNoaW5nLgorCiAyMDEyLTAxLTE5ICBUb255IENoYW5nICA8
dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgYW4gb2Jzb2xl
dGUgY29tbWVudCBhYm91dCBmZWF0dXJlcy5neXBpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OCw3ICsyNzgs
NyBAQCBfX1pOM0pTQzZKU0xvY2s0bG9ja0VOU18xNEpTTG9ja0JlaGF2aW9yCiBfX1pOM0pTQzZK
U0xvY2s2dW5sb2NrRU5TXzE0SlNMb2NrQmVoYXZpb3JFCiBfX1pOM0pTQzZKU0xvY2s5bG9ja0Nv
dW50RXYKIF9fWk4zSlNDNkpTTG9ja0MxRVBOU185RXhlY1N0YXRlRQotX19aTjNKU0M2UmVnRXhw
NW1hdGNoRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzdVU3RyaW5nRWlQTjNXVEY2VmVjdG9ySWlM
bTMyRUVFCitfX1pOM0pTQzZSZWdFeHA1bWF0Y2hFUk5TXzEySlNHbG9iYWxEYXRhRVJLTlNfN1VT
dHJpbmdFalBOM1dURjZWZWN0b3JJaUxtMzJFRUUKIF9fWk4zSlNDNlJlZ0V4cDZjcmVhdGVFUk5T
XzEySlNHbG9iYWxEYXRhRVJLTlNfN1VTdHJpbmdFTlNfMTFSZWdFeHBGbGFnc0UKIF9fWk4zSlND
N0pTQXJyYXkxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBf
X1pOM0pTQzdKU0FycmF5MTRmaW5pc2hDcmVhdGlvbkVSTlNfMTJKU0dsb2JhbERhdGFFagpAQCAt
MzIyLDkgKzMyMiw5IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTJ0b1RoaXNPYmplY3RFUE5TXzZKU0MK
IF9fWk4zSlNDOEpTT2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RW
aXNpdG9yRQogX19aTjNKU0M4SlNPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU182SlNDZWxsRVBO
U185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQogX19aTjNKU0M4SlNPYmplY3QxNmdldFBy
b3BlcnR5TmFtZXNFUFMwX1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5T
XzE1RW51bWVyYXRpb25Nb2RlRQorX19aTjNKU0M4SlNPYmplY3QxNnB1dERpcmVjdFZpcnR1YWxF
UFMwX1BOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRU5TXzdKU1ZhbHVlRWoKIF9fWk4z
SlNDOEpTT2JqZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRWIKIF9fWk4zSlNDOEpTT2JqZWN0
MTdwcmV2ZW50RXh0ZW5zaW9uc0VSTlNfMTJKU0dsb2JhbERhdGFFCi1fX1pOM0pTQzhKU09iamVj
dDE2cHV0RGlyZWN0VmlydHVhbEVQUzBfUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
TlNfN0pTVmFsdWVFagogX19aTjNKU0M4SlNPYmplY3QxOWdldE93blByb3BlcnR5TmFtZXNFUFMw
X1BOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5TXzE1RW51bWVyYXRpb25N
b2RlRQogX19aTjNKU0M4SlNPYmplY3QyMWRlbGV0ZVByb3BlcnR5QnlJbmRleEVQTlNfNkpTQ2Vs
bEVQTlNfOUV4ZWNTdGF0ZUVqCiBfX1pOM0pTQzhKU09iamVjdDIxZ2V0UHJvcGVydHlEZXNjcmlw
dG9yRVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3Jp
cHRvckUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCShyZXZpc2lvbiAxMDU0ODIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgko
d29ya2luZyBjb3B5KQpAQCAtMjQzLDcgKzI0Myw3IEBAIEVYUE9SVFMKICAgICA/bG9ja0BNdXRl
eEBXVEZAQFFBRVhYWgogICAgID9sb2NrQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXhA
V1RGQEBZQVhYWgogICAgID9sb2NrQ291bnRASlNMb2NrQEpTQ0BAU0FIWFoKLSAgICA/bWF0Y2hA
UmVnRXhwQEpTQ0BAUUFFSEFBVkpTR2xvYmFsRGF0YUAyQEFCVlVTdHJpbmdAMkBIUEFWPyRWZWN0
b3JASCQwQ0FAQFdURkBAQFoKKyAgICA/bWF0Y2hAUmVnRXhwQEpTQ0BAUUFFSEFBVkpTR2xvYmFs
RGF0YUAyQEFCVlVTdHJpbmdAMkBJUEFWPyRWZWN0b3JASCQwQ0FAQFdURkBAQFoKICAgICA/bWF0
ZXJpYWxpemVQcm9wZXJ0eU1hcEBTdHJ1Y3R1cmVASlNDQEBBQUVYQUFWSlNHbG9iYWxEYXRhQDJA
QFoKICAgICA/bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lQFdURkBAWUFOWFoKICAgICA/bW9u
dGhGcm9tRGF5SW5ZZWFyQFdURkBAWUFISF9OQFoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwLmNwcAkocmV2aXNpb24gMTA1NDgyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDE4ICszMzAs
MTIgQEAgdm9pZCBSZWdFeHA6OmNvbXBpbGVJZk5lY2Vzc2FyeShKU0dsb2JhbAogICAgIGNvbXBp
bGUoJmdsb2JhbERhdGEsIGNoYXJTaXplKTsKIH0KIAotaW50IFJlZ0V4cDo6bWF0Y2goSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBzLCBpbnQgc3RhcnRPZmZzZXQsIFZl
Y3RvcjxpbnQsIDMyPiogb3ZlY3RvcikKK2ludCBSZWdFeHA6Om1hdGNoKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgcywgdW5zaWduZWQgc3RhcnRPZmZzZXQsIFZlY3Rv
cjxpbnQsIDMyPiogb3ZlY3RvcikKIHsKLSAgICBpZiAoc3RhcnRPZmZzZXQgPCAwKQotICAgICAg
ICBzdGFydE9mZnNldCA9IDA7Ci0KICNpZiBFTkFCTEUoUkVHRVhQX1RSQUNJTkcpCiAgICAgbV9y
dE1hdGNoQ2FsbENvdW50Kys7CiAjZW5kaWYKIAotICAgIGlmIChzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oc3RhcnRPZmZzZXQpID4gcy5sZW5ndGgoKSB8fCBzLmlzTnVsbCgpKQotICAgICAgICByZXR1
cm4gLTE7Ci0KICAgICBBU1NFUlQobV9zdGF0ZSAhPSBQYXJzZUVycm9yKTsKICAgICBjb21waWxl
SWZOZWNlc3NhcnkoZ2xvYmFsRGF0YSwgcy5pczhCaXQoKSA/IFlhcnI6OkNoYXI4IDogWWFycjo6
Q2hhcjE2KTsKIApAQCAtMzU1LDEzICszNDksNyBAQCBpbnQgUmVnRXhwOjptYXRjaChKU0dsb2Jh
bERhdGEmIGdsb2JhbERhCiAgICAgICAgIG5vblJldHVybmVkT3ZlY3Rvci5yZXNpemUob2Zmc2V0
VmVjdG9yU2l6ZSk7CiAgICAgICAgIG9mZnNldFZlY3RvciA9IG5vblJldHVybmVkT3ZlY3Rvci5k
YXRhKCk7CiAgICAgfQotCiAgICAgQVNTRVJUKG9mZnNldFZlY3Rvcik7Ci0gICAgLy8gSW5pdGlh
bGl6ZSBvZmZzZXRWZWN0b3Igd2l0aCB0aGUgcmV0dXJuIHZhbHVlIChpbmRleCAwKSBhbmQgdGhl
IAotICAgIC8vIGZpcnN0IHN1YnBhdHRlcm4gc3RhcnQgaW5kaWNpZXMgKGV2ZW4gaW5kZXggdmFs
dWVzKSBzZXQgdG8gLTEuCi0gICAgLy8gTm8gbmVlZCB0byBpbml0IHRoZSBzdWJwYXR0ZXJuIGVu
ZCBpbmRpY2llcy4KLSAgICBmb3IgKHVuc2lnbmVkIGogPSAwLCBpID0gMDsgaSA8IG1fbnVtU3Vi
cGF0dGVybnMgKyAxOyBqICs9IDIsIGkrKykgICAgICAgICAgICAKLSAgICAgICAgb2Zmc2V0VmVj
dG9yW2pdID0gLTE7CiAKICAgICBpbnQgcmVzdWx0OwogI2lmIEVOQUJMRShZQVJSX0pJVCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCShyZXZpc2lvbiAxMDU0ODIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaAkod29ya2luZyBjb3B5
KQpAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gIW1fY29uc3RydWN0aW9uRXJyb3IgJiYgbV9mbGFncyAhPSBJbnZh
bGlkRmxhZ3M7IH0KICAgICAgICAgY29uc3QgY2hhciogZXJyb3JNZXNzYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb25zdHJ1Y3Rpb25FcnJvcjsgfQogCi0gICAgICAgIEpTX0VYUE9SVF9QUklWQVRF
IGludCBtYXRjaChKU0dsb2JhbERhdGEmLCBjb25zdCBVU3RyaW5nJiwgaW50IHN0YXJ0T2Zmc2V0
LCBWZWN0b3I8aW50LCAzMj4qIG92ZWN0b3IgPSAwKTsKKyAgICAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgaW50IG1hdGNoKEpTR2xvYmFsRGF0YSYsIGNvbnN0IFVTdHJpbmcmLCB1bnNpZ25lZCBzdGFy
dE9mZnNldCwgVmVjdG9yPGludCwgMzI+KiBvdmVjdG9yID0gMCk7CiAgICAgICAgIHVuc2lnbmVk
IG51bVN1YnBhdHRlcm5zKCkgY29uc3QgeyByZXR1cm4gbV9udW1TdWJwYXR0ZXJuczsgfQogCiAg
ICAgICAgIGJvb2wgaGFzQ29kZSgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95
YXJyL1lhcnJJbnRlcnByZXRlci5jcHAJKHJldmlzaW9uIDEwNTQ4MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
NDMsMTMgKzE0NDMsMTYgQEAgcHVibGljOgogCiAgICAgaW50IGludGVycHJldCgpCiAgICAgewor
ICAgICAgICBpZiAoaW5wdXQuaXNOb3RBdmFpbGFibGVJbnB1dCgwKSkKKyAgICAgICAgICAgIHJl
dHVybiAtMTsKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGF0dGVybi0+bV9i
b2R5LT5tX251bVN1YnBhdHRlcm5zICsgMTsgKytpKQorICAgICAgICAgICAgb3V0cHV0W2kgPDwg
MV0gPSAtMTsKKwogICAgICAgICBhbGxvY2F0b3JQb29sID0gcGF0dGVybi0+bV9hbGxvY2F0b3It
PnN0YXJ0QWxsb2NhdG9yKCk7CiAgICAgICAgIGlmICghYWxsb2NhdG9yUG9vbCkKICAgICAgICAg
ICAgIENSQVNIKCk7CiAKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8ICgocGF0dGVy
bi0+bV9ib2R5LT5tX251bVN1YnBhdHRlcm5zICsgMSkgPDwgMSk7ICsraSkKLSAgICAgICAgICAg
IG91dHB1dFtpXSA9IC0xOwotCiAgICAgICAgIERpc2p1bmN0aW9uQ29udGV4dCogY29udGV4dCA9
IGFsbG9jRGlzanVuY3Rpb25Db250ZXh0KHBhdHRlcm4tPm1fYm9keS5nZXQoKSk7CiAKICAgICAg
ICAgSlNSZWdFeHBSZXN1bHQgcmVzdWx0ID0gbWF0Y2hEaXNqdW5jdGlvbihwYXR0ZXJuLT5tX2Jv
ZHkuZ2V0KCksIGNvbnRleHQsIGZhbHNlKTsKQEAgLTE0NjIsNyArMTQ2NSw2IEBAIHB1YmxpYzoK
IAogICAgICAgICBwYXR0ZXJuLT5tX2FsbG9jYXRvci0+c3RvcEFsbG9jYXRvcigpOwogCi0gICAg
ICAgIC8vIFJlZ0V4cC5jcHAgY3VycmVudGx5IGV4cGVjdHMgYWxsIGVycm9yIHRvIGJlIGNvbnZl
cnRlZCB0byAtMS4KICAgICAgICAgQVNTRVJUKChyZXN1bHQgPT0gSlNSZWdFeHBNYXRjaCkgPT0g
KG91dHB1dFswXSAhPSAtMSkpOwogICAgICAgICByZXR1cm4gb3V0cHV0WzBdOwogICAgIH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCShyZXZpc2lvbiAxMDU0ODIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjQ3Nyw2ICsyNDc3LDE0IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGdlbmVyYXRl
RW50ZXIoKTsKIAorICAgICAgICBKdW1wIGhhc0lucHV0ID0gY2hlY2tJbnB1dCgpOworICAgICAg
ICBtb3ZlKFRydXN0ZWRJbW0zMigtMSksIHJldHVyblJlZ2lzdGVyKTsKKyAgICAgICAgZ2VuZXJh
dGVSZXR1cm4oKTsKKyAgICAgICAgaGFzSW5wdXQubGluayh0aGlzKTsKKworICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wYXR0ZXJuLm1fbnVtU3VicGF0dGVybnMgKyAxOyArK2kp
CisgICAgICAgICAgICBzdG9yZTMyKFRydXN0ZWRJbW0zMigtMSksIEFkZHJlc3Mob3V0cHV0LCAo
aSA8PCAxKSAqIHNpemVvZihpbnQpKSk7CisKICAgICAgICAgaWYgKCFtX3BhdHRlcm4ubV9ib2R5
LT5tX2hhc0ZpeGVkU2l6ZSkKICAgICAgICAgICAgIHN0b3JlMzIoaW5kZXgsIEFkZHJlc3Mob3V0
cHV0KSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>