<?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>122680</bug_id>
          
          <creation_ts>2013-10-11 15:29:02 -0700</creation_ts>
          <short_desc>Dramatically simplify calculateAdjustedNodes</short_desc>
          <delta_ts>2014-04-21 13:43:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</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>
          
          <blocked>131949</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>938985</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 15:29:02 -0700</bug_when>
    <thetext>Dramatically simplify calculateAdjustedNodes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938987</commentid>
    <comment_count>1</comment_count>
      <attachid>214028</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 15:33:50 -0700</bug_when>
    <thetext>Created attachment 214028
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938988</commentid>
    <comment_count>2</comment_count>
      <attachid>214029</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 15:34:24 -0700</bug_when>
    <thetext>Created attachment 214029
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938997</commentid>
    <comment_count>3</comment_count>
      <attachid>214032</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 15:59:27 -0700</bug_when>
    <thetext>Created attachment 214032
Minor tweaks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939019</commentid>
    <comment_count>4</comment_count>
      <attachid>214032</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-10-11 17:53:36 -0700</bug_when>
    <thetext>Comment on attachment 214032
Minor tweaks

Note that &lt;details&gt; element implementation still uses InsertionPoints. On the other hand we can assume that any functionality without tests is not working anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939028</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 19:02:35 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 214032 [details])
&gt; Note that &lt;details&gt; element implementation still uses InsertionPoints. On the other hand we can assume that any functionality without tests is not working anyway.

Maybe I didn&apos;t phrase it properly but having a single insertion point is okay as long as the content that got inserted into doesn&apos;t have a shadow tree.

Since we don&apos;t currently expose webkitCreateShadowRoot, this isn&apos;t an issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939029</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-11 19:07:17 -0700</bug_when>
    <thetext>Committed r157328: &lt;http://trac.webkit.org/changeset/157328&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214028</attachid>
            <date>2013-10-11 15:33:50 -0700</date>
            <delta_ts>2013-10-11 15:34:23 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-122680-20131011153349.patch</filename>
            <type>text/plain</type>
            <size>8389</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzMyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERyYW1hdGljYWxseSBzaW1wbGlm
eSBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjI2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaXRob3V0IGluc2VydGlvbiBwb2ludHMsIHdlIG5ldmVyIGhhdmUg
dG8gd29ycnkgYWJvdXQgZW50ZXJpbmcgYSBzaGFkb3cgRE9NIHdlJ3ZlIGFscmVhZHkgY2xpbWJl
ZCBvdXQgb2YuCisgICAgICAgIERlbGV0ZWQgdGhlIGxvZ2ljIHRvIGRlYWwgd2l0aCBpbnNlcnRp
b24gcG9pbnRzIGluIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMgYWNjb3JkaW5nbHkuCisKKyAgICAg
ICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0
aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQpOgorCiAyMDEzLTEwLTExICBab2x0YW4g
SG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBVc2Ug
dGhlIGZsb2F0aW5nT2JqZWN0J3MgbG9naWNhbCBjb29yZGluYXRlcyB0byBkZXRlcm1pbmUgaXRz
IHNpemUgaW4gY29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTU3MzE3KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsx
MDMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxF
dmVudENvbnRleHQ+LCAzMj4gbV9wYXRoOwotICAgIFJlZlB0cjxOb2RlPiBtX29yaWdpbjsKIH07
CiAKIGlubGluZSBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMo
Tm9kZSYgcmVmZXJlbmNlTm9kZSkKQEAgLTMyNiw3ICszMjUsNiBAQCBzdGF0aWMgTm9kZSogbm9k
ZU9ySG9zdElmUHNldWRvRWxlbWVudChOCiB9CiAKIEV2ZW50UGF0aDo6RXZlbnRQYXRoKE5vZGUm
IHRhcmdldE5vZGUsIEV2ZW50JiBldmVudCkKLSAgICA6IG1fb3JpZ2luKCZ0YXJnZXROb2RlKQog
ewogICAgIGJvb2wgaW5Eb2N1bWVudCA9IHRhcmdldE5vZGUuaW5Eb2N1bWVudCgpOwogICAgIGJv
b2wgaXNTVkdFbGVtZW50ID0gdGFyZ2V0Tm9kZS5pc1NWR0VsZW1lbnQoKTsKQEAgLTM2MSw4MyAr
MzU5LDQwIEBAIEV2ZW50UGF0aDo6RXZlbnRQYXRoKE5vZGUmIHRhcmdldE5vZGUsIEUKICAgICB9
CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkUmVsYXRlZE5vZGVNYXAoY29uc3QgTm9kZSogcmVsYXRl
ZE5vZGUsIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKK3N0YXRp
YyBzaXplX3QgY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhOb2RlKiByZWxhdGVkTm9kZSwgY29uc3Qg
RXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5vZGVz
KQogewotICAgIE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7Ci0gICAgVHJlZVNj
b3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBub2RlT3JIb3N0
SWZQc2V1ZG9FbGVtZW50KGNvbnN0X2Nhc3Q8Tm9kZSo+KHJlbGF0ZWROb2RlKSk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkpIHsKLSAgICAgICAgaWYgKCFyZWxh
dGVkTm9kZUluQ3VycmVudFRyZWUpCi0gICAgICAgICAgICByZWxhdGVkTm9kZUluQ3VycmVudFRy
ZWUgPSBub2RlOwotICAgICAgICBUcmVlU2NvcGUqIHNjb3BlID0gJm5vZGUtPnRyZWVTY29wZSgp
OwotICAgICAgICAvLyBTa2lwcyBhZGRpbmcgYSBub2RlIHRvIHRoZSBtYXAgaWYgdHJlZVNjb3Bl
IGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4K
LSAgICAgICAgaWYgKHNjb3BlICE9IGxhc3RUcmVlU2NvcGUpCi0gICAgICAgICAgICByZWxhdGVk
Tm9kZU1hcC5hZGQoc2NvcGUsIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSk7Ci0gICAgICAgIGxh
c3RUcmVlU2NvcGUgPSBzY29wZTsKLSAgICAgICAgaWYgKG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQocmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlKTsKLSAgICAgICAg
ICAgIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LXN0YXRpYyBOb2RlKiBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmVlU2NvcGVzKFRyZWVTY29w
ZSogc2NvcGUsIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKLXsK
LSAgICBOb2RlKiByZWxhdGVkTm9kZSA9IDA7Ci0gICAgVHJlZVNjb3BlKiBlbmRTY29wZSA9IDA7
Ci0gICAgZm9yIChUcmVlU2NvcGUqIGN1cnJlbnRTY29wZSA9IHNjb3BlOyBjdXJyZW50U2NvcGU7
IGN1cnJlbnRTY29wZSA9IGN1cnJlbnRTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkpIHsKLSAgICAg
ICAgYXV0byByZXN1bHQgPSByZWxhdGVkTm9kZU1hcC5maW5kKGN1cnJlbnRTY29wZSk7Ci0gICAg
ICAgIGlmIChyZXN1bHQgIT0gcmVsYXRlZE5vZGVNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIHJl
bGF0ZWROb2RlID0gcmVzdWx0LT52YWx1ZTsKLSAgICAgICAgICAgIGVuZFNjb3BlID0gY3VycmVu
dFNjb3BlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZm9yIChU
cmVlU2NvcGUqIGN1cnJlbnRTY29wZSA9IHNjb3BlOyBjdXJyZW50U2NvcGUgIT0gZW5kU2NvcGU7
IGN1cnJlbnRTY29wZSA9IGN1cnJlbnRTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkpCi0gICAgICAg
IHJlbGF0ZWROb2RlTWFwLmFkZChjdXJyZW50U2NvcGUsIHJlbGF0ZWROb2RlKTsKLSAgICByZXR1
cm4gcmVsYXRlZE5vZGU7Ci19Ci0KLWVudW0gRXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNo
QmVoYXZpb3IgewotICAgIFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsCi0gICAgRG9lc05vdFN0b3BB
dEJvdW5kYXJ5Ci19Owotc3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0
IE5vZGUqIG5vZGUsIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFy
Z2V0RGlzcGF0Y2hCZWhhdmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlv
ciwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1
c3RlZE5vZGVzKQotewotICAgIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+IHJlbGF0ZWROb2Rl
TWFwOwotICAgIGJ1aWxkUmVsYXRlZE5vZGVNYXAocmVsYXRlZE5vZGUsIHJlbGF0ZWROb2RlTWFw
KTsKLQotICAgIC8vIFN5bnRoZXRpYyBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFy
Z2V0IHdoaWNoIGlzIGlkZW50aWNhbCB0byB0aGUgdGFyZ2V0LgotICAgIGJvb2wgdGFyZ2V0SXNJ
ZGVudGljYWxUb1RvUmVsYXRlZFRhcmdldCA9IChub2RlID09IHJlbGF0ZWROb2RlKTsKKyAgICBU
cmVlU2NvcGUmIHJlbGF0ZWROb2RlVHJlZVNjb3BlID0gcmVsYXRlZE5vZGUtPnRyZWVTY29wZSgp
OwogCiAgICAgVHJlZVNjb3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBOb2RlKiBhZGp1c3Rl
ZE5vZGUgPSAwOworICAgIE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0gMDsK
ICAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyBpKyspIHsKICAgICAgICAgY29uc3QgRXZl
bnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChpKTsKLSAgICAgICAgVHJl
ZVNjb3BlKiBzY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJlZVNjb3BlKCk7CisgICAgICAgIFRy
ZWVTY29wZSogY3VycmVudFRyZWVTY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJlZVNjb3BlKCk7
CiAKICAgICAgICAgLy8gUmUtdXNlIHRoZSBwcmV2aW91cyBhZGp1c3RlZFJlbGF0ZWRUYXJnZXQg
aWYgdHJlZVNjb3BlIGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZvcm1hbmNlIG9w
dGltaXphdGlvbi4KLSAgICAgICAgaWYgKHNjb3BlICE9IGxhc3RUcmVlU2NvcGUpCi0gICAgICAg
ICAgICBhZGp1c3RlZE5vZGUgPSBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmVlU2NvcGVzKHNj
b3BlLCByZWxhdGVkTm9kZU1hcCk7Ci0gICAgICAgIGFkanVzdGVkTm9kZXMuYXBwZW5kKGFkanVz
dGVkTm9kZSk7Ci0KLSAgICAgICAgbGFzdFRyZWVTY29wZSA9IHNjb3BlOwotICAgICAgICBpZiAo
ZXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZpb3IgPT0gRG9lc05vdFN0b3BBdEJv
dW5kYXJ5KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICh0YXJnZXRJc0lkZW50
aWNhbFRvVG9SZWxhdGVkVGFyZ2V0KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+dHJlZVNjb3Bl
KCkucm9vdE5vZGUoKSA9PSBjb250ZXh0Lm5vZGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
aSArIDE7Ci0gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50YXJnZXQoKSA9PSBhZGp1c3RlZE5v
ZGUpIHsKLSAgICAgICAgICAgIC8vIEV2ZW50IGRpc3BhdGNoaW5nIHNob3VsZCBiZSBzdG9wcGVk
IGhlcmUuCi0gICAgICAgICAgICBhZGp1c3RlZE5vZGVzLnNocmluayhhZGp1c3RlZE5vZGVzLnNp
emUoKSAtIDEpOwotICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIGlmIChjdXJyZW50VHJl
ZVNjb3BlICE9IGxhc3RUcmVlU2NvcGUpIHsKKyAgICAgICAgICAgIGlmIChsYXN0VHJlZVNjb3Bl
KSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGxhc3RUcmVlU2NvcGUtPnJvb3ROb2RlKCktPmlz
U2hhZG93Um9vdCgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY29udGV4dC5ub2RlKCkgPT0g
dG9TaGFkb3dSb290KGxhc3RUcmVlU2NvcGUtPnJvb3ROb2RlKCkpLT5ob3N0RWxlbWVudCgpKTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQoIWxhc3RUcmVlU2NvcGUgfHwgbGFzdFRyZWVTY29wZS0+
cGFyZW50VHJlZVNjb3BlKCkgPT0gc2NvcGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBpZiAocmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUpIC8vIHJlbGF0ZWROb2RlIGlzIGlu
IHRoZSBsYXN0IHRyZWUgc2NvcGUKKyAgICAgICAgICAgICAgICByZWxhdGVkTm9kZUluQ3VycmVu
dFRyZWVTY29wZSA9IGNvbnRleHQubm9kZSgpOworICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVu
dFRyZWVTY29wZSA9PSAmcmVsYXRlZE5vZGVUcmVlU2NvcGUpIC8vIHJlbGF0ZWROb2RlIGlzIGlu
IHRoZSBjdXJyZW50IHRyZWUgc2NvcGU7CisgICAgICAgICAgICAgICAgcmVsYXRlZE5vZGVJbkN1
cnJlbnRUcmVlU2NvcGUgPSByZWxhdGVkTm9kZTsKKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSwg
d2UgaGF2ZW4ndCByZWFjaGVkIHRoZSB0cmVlIHNjb3BlIHRoYXQgY29udGFpbnMgcmVsYXRlZE5v
ZGUgeWV0LgogICAgICAgICB9CisgICAgICAgIGFkanVzdGVkTm9kZXMuYXBwZW5kKHJlbGF0ZWRO
b2RlSW5DdXJyZW50VHJlZVNjb3BlKTsKKworICAgICAgICBsYXN0VHJlZVNjb3BlID0gY3VycmVu
dFRyZWVTY29wZTsKICAgICB9CiAgICAgcmV0dXJuIGV2ZW50UGF0aFNpemU7CiB9CiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQotc3RhdGljIHZvaWQgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQ
YXRoKFZlY3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4mIHRvdWNoTGlzdHNJbkV2ZW50UGF0aCwgY29u
c3QgTm9kZSogbm9kZSwgY29uc3QgVG91Y2hMaXN0KiB0b3VjaExpc3QsIGNvbnN0IEV2ZW50UGF0
aCYgZXZlbnRQYXRoKQorc3RhdGljIHZvaWQgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKFZl
Y3RvcjxSZWZQdHI8VG91Y2hMaXN0Pj4mIHRvdWNoTGlzdHNJbkV2ZW50UGF0aCwgY29uc3QgVG91
Y2hMaXN0KiB0b3VjaExpc3QsIGNvbnN0IEV2ZW50UGF0aCYgZXZlbnRQYXRoKQogewogICAgIGlm
ICghdG91Y2hMaXN0KQogICAgICAgICByZXR1cm47CkBAIC00NDcsNyArNDAyLDcgQEAgc3RhdGlj
IHZvaWQgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKAogICAgICAgICBjb25zdCBUb3VjaCYg
dG91Y2ggPSAqdG91Y2hMaXN0LT5pdGVtKGkpOwogCiAgICAgICAgIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4+IGFkanVzdGVkTm9kZXM7Ci0gICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobm9kZSwg
dG91Y2gudGFyZ2V0KCktPnRvTm9kZSgpLCBEb2VzTm90U3RvcEF0Qm91bmRhcnksIGV2ZW50UGF0
aCwgYWRqdXN0ZWROb2Rlcyk7CisgICAgICAgIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXModG91Y2gu
dGFyZ2V0KCktPnRvTm9kZSgpLCBldmVudFBhdGgsIGFkanVzdGVkTm9kZXMpOwogCiAgICAgICAg
IEFTU0VSVChhZGp1c3RlZE5vZGVzLnNpemUoKSA9PSBldmVudFBhdGhTaXplKTsKICAgICAgICAg
Zm9yIChzaXplX3QgaiA9IDA7IGogPCBldmVudFBhdGhTaXplOyArK2opCkBAIC00NzAsOSArNDI1
LDkgQEAgdm9pZCBFdmVudFBhdGg6OnVwZGF0ZVRvdWNoTGlzdHMoY29uc3QgVAogICAgICAgICBj
aGFuZ2VkVG91Y2hlc0luRXZlbnRQYXRoW2ldID0gY29udGV4dC5jaGFuZ2VkVG91Y2hlcygpOwog
ICAgIH0KIAotICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0b3VjaGVzSW5FdmVudFBh
dGgsIG1fb3JpZ2luLmdldCgpLCB0b3VjaEV2ZW50LnRvdWNoZXMoKSwgKnRoaXMpOwotICAgIHVw
ZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0YXJnZXRUb3VjaGVzSW5FdmVudFBhdGgsIG1fb3Jp
Z2luLmdldCgpLCB0b3VjaEV2ZW50LnRhcmdldFRvdWNoZXMoKSwgKnRoaXMpOwotICAgIHVwZGF0
ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChjaGFuZ2VkVG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdp
bi5nZXQoKSwgdG91Y2hFdmVudC5jaGFuZ2VkVG91Y2hlcygpLCAqdGhpcyk7CisgICAgdXBkYXRl
VG91Y2hMaXN0c0luRXZlbnRQYXRoKHRvdWNoZXNJbkV2ZW50UGF0aCwgdG91Y2hFdmVudC50b3Vj
aGVzKCksICp0aGlzKTsKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgodGFyZ2V0VG91
Y2hlc0luRXZlbnRQYXRoLCB0b3VjaEV2ZW50LnRhcmdldFRvdWNoZXMoKSwgKnRoaXMpOworICAg
IHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChjaGFuZ2VkVG91Y2hlc0luRXZlbnRQYXRoLCB0
b3VjaEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksICp0aGlzKTsKIH0KICNlbmRpZgogCkBAIC00ODIs
NyArNDM3LDcgQEAgdm9pZCBFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQoRXZlbnRUYQogICAg
IGlmICghcmVsYXRlZE5vZGUpCiAgICAgICAgIHJldHVybjsKICAgICBWZWN0b3I8UmVmUHRyPE5v
ZGU+PiBhZGp1c3RlZE5vZGVzOwotICAgIG1fcGF0aC5zaHJpbmsoY2FsY3VsYXRlQWRqdXN0ZWRO
b2RlcyhtX29yaWdpbi5nZXQoKSwgcmVsYXRlZE5vZGUsIFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQs
ICp0aGlzLCBhZGp1c3RlZE5vZGVzKSk7CisgICAgbV9wYXRoLnNocmluayhjYWxjdWxhdGVBZGp1
c3RlZE5vZGVzKHJlbGF0ZWROb2RlLCAqdGhpcywgYWRqdXN0ZWROb2RlcykpOwogICAgIEFTU0VS
VChhZGp1c3RlZE5vZGVzLnNpemUoKSA8PSBtX3BhdGguc2l6ZSgpKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGFkanVzdGVkTm9kZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRvTW91c2VP
ckZvY3VzRXZlbnRDb250ZXh0KCptX3BhdGhbaV0pLnNldFJlbGF0ZWRUYXJnZXQoYWRqdXN0ZWRO
b2Rlc1tpXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214029</attachid>
            <date>2013-10-11 15:34:24 -0700</date>
            <delta_ts>2013-10-11 15:59:24 -0700</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-122680-20131011153423.patch</filename>
            <type>text/plain</type>
            <size>8429</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzMyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERyYW1hdGljYWxseSBzaW1wbGlm
eSBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjI2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaXRob3V0IGluc2VydGlvbiBwb2ludHMsIHdlIG5ldmVyIGhhdmUg
dG8gd29ycnkgYWJvdXQgZW50ZXJpbmcgYSBzaGFkb3cgRE9NIHdlJ3ZlIGFscmVhZHkgY2xpbWJl
ZCBvdXQgb2YuCisgICAgICAgIERlbGV0ZWQgdGhlIGxvZ2ljIHRvIGRlYWwgd2l0aCBpbnNlcnRp
b24gcG9pbnRzIGluIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMgYWNjb3JkaW5nbHkuCisKKyAgICAg
ICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0
aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQpOgorCiAyMDEzLTEwLTExICBab2x0YW4g
SG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBVc2Ug
dGhlIGZsb2F0aW5nT2JqZWN0J3MgbG9naWNhbCBjb29yZGluYXRlcyB0byBkZXRlcm1pbmUgaXRz
IHNpemUgaW4gY29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTU3MzE3KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsx
MDMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxF
dmVudENvbnRleHQ+LCAzMj4gbV9wYXRoOwotICAgIFJlZlB0cjxOb2RlPiBtX29yaWdpbjsKIH07
CiAKIGlubGluZSBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMo
Tm9kZSYgcmVmZXJlbmNlTm9kZSkKQEAgLTMyNiw3ICszMjUsNiBAQCBzdGF0aWMgTm9kZSogbm9k
ZU9ySG9zdElmUHNldWRvRWxlbWVudChOCiB9CiAKIEV2ZW50UGF0aDo6RXZlbnRQYXRoKE5vZGUm
IHRhcmdldE5vZGUsIEV2ZW50JiBldmVudCkKLSAgICA6IG1fb3JpZ2luKCZ0YXJnZXROb2RlKQog
ewogICAgIGJvb2wgaW5Eb2N1bWVudCA9IHRhcmdldE5vZGUuaW5Eb2N1bWVudCgpOwogICAgIGJv
b2wgaXNTVkdFbGVtZW50ID0gdGFyZ2V0Tm9kZS5pc1NWR0VsZW1lbnQoKTsKQEAgLTM2MSw4MyAr
MzU5LDQxIEBAIEV2ZW50UGF0aDo6RXZlbnRQYXRoKE5vZGUmIHRhcmdldE5vZGUsIEUKICAgICB9
CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkUmVsYXRlZE5vZGVNYXAoY29uc3QgTm9kZSogcmVsYXRl
ZE5vZGUsIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKK3N0YXRp
YyBzaXplX3QgY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhOb2RlKiByZWxhdGVkTm9kZSwgY29uc3Qg
RXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5vZGVz
KQogewotICAgIE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7Ci0gICAgVHJlZVNj
b3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBub2RlT3JIb3N0
SWZQc2V1ZG9FbGVtZW50KGNvbnN0X2Nhc3Q8Tm9kZSo+KHJlbGF0ZWROb2RlKSk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkpIHsKLSAgICAgICAgaWYgKCFyZWxh
dGVkTm9kZUluQ3VycmVudFRyZWUpCi0gICAgICAgICAgICByZWxhdGVkTm9kZUluQ3VycmVudFRy
ZWUgPSBub2RlOwotICAgICAgICBUcmVlU2NvcGUqIHNjb3BlID0gJm5vZGUtPnRyZWVTY29wZSgp
OwotICAgICAgICAvLyBTa2lwcyBhZGRpbmcgYSBub2RlIHRvIHRoZSBtYXAgaWYgdHJlZVNjb3Bl
IGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4K
LSAgICAgICAgaWYgKHNjb3BlICE9IGxhc3RUcmVlU2NvcGUpCi0gICAgICAgICAgICByZWxhdGVk
Tm9kZU1hcC5hZGQoc2NvcGUsIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSk7Ci0gICAgICAgIGxh
c3RUcmVlU2NvcGUgPSBzY29wZTsKLSAgICAgICAgaWYgKG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQocmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlKTsKLSAgICAgICAg
ICAgIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LXN0YXRpYyBOb2RlKiBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmVlU2NvcGVzKFRyZWVTY29w
ZSogc2NvcGUsIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKLXsK
LSAgICBOb2RlKiByZWxhdGVkTm9kZSA9IDA7Ci0gICAgVHJlZVNjb3BlKiBlbmRTY29wZSA9IDA7
Ci0gICAgZm9yIChUcmVlU2NvcGUqIGN1cnJlbnRTY29wZSA9IHNjb3BlOyBjdXJyZW50U2NvcGU7
IGN1cnJlbnRTY29wZSA9IGN1cnJlbnRTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkpIHsKLSAgICAg
ICAgYXV0byByZXN1bHQgPSByZWxhdGVkTm9kZU1hcC5maW5kKGN1cnJlbnRTY29wZSk7Ci0gICAg
ICAgIGlmIChyZXN1bHQgIT0gcmVsYXRlZE5vZGVNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIHJl
bGF0ZWROb2RlID0gcmVzdWx0LT52YWx1ZTsKLSAgICAgICAgICAgIGVuZFNjb3BlID0gY3VycmVu
dFNjb3BlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZm9yIChU
cmVlU2NvcGUqIGN1cnJlbnRTY29wZSA9IHNjb3BlOyBjdXJyZW50U2NvcGUgIT0gZW5kU2NvcGU7
IGN1cnJlbnRTY29wZSA9IGN1cnJlbnRTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkpCi0gICAgICAg
IHJlbGF0ZWROb2RlTWFwLmFkZChjdXJyZW50U2NvcGUsIHJlbGF0ZWROb2RlKTsKLSAgICByZXR1
cm4gcmVsYXRlZE5vZGU7Ci19Ci0KLWVudW0gRXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNo
QmVoYXZpb3IgewotICAgIFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsCi0gICAgRG9lc05vdFN0b3BB
dEJvdW5kYXJ5Ci19Owotc3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0
IE5vZGUqIG5vZGUsIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFy
Z2V0RGlzcGF0Y2hCZWhhdmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlv
ciwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1
c3RlZE5vZGVzKQotewotICAgIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+IHJlbGF0ZWROb2Rl
TWFwOwotICAgIGJ1aWxkUmVsYXRlZE5vZGVNYXAocmVsYXRlZE5vZGUsIHJlbGF0ZWROb2RlTWFw
KTsKLQotICAgIC8vIFN5bnRoZXRpYyBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFy
Z2V0IHdoaWNoIGlzIGlkZW50aWNhbCB0byB0aGUgdGFyZ2V0LgotICAgIGJvb2wgdGFyZ2V0SXNJ
ZGVudGljYWxUb1RvUmVsYXRlZFRhcmdldCA9IChub2RlID09IHJlbGF0ZWROb2RlKTsKKyAgICBU
cmVlU2NvcGUmIHJlbGF0ZWROb2RlVHJlZVNjb3BlID0gcmVsYXRlZE5vZGUtPnRyZWVTY29wZSgp
OwogCiAgICAgVHJlZVNjb3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBOb2RlKiBhZGp1c3Rl
ZE5vZGUgPSAwOworICAgIE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0gMDsK
ICAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyBpKyspIHsKICAgICAgICAgY29uc3QgRXZl
bnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChpKTsKLSAgICAgICAgVHJl
ZVNjb3BlKiBzY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJlZVNjb3BlKCk7CisgICAgICAgIFRy
ZWVTY29wZSogY3VycmVudFRyZWVTY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJlZVNjb3BlKCk7
CiAKICAgICAgICAgLy8gUmUtdXNlIHRoZSBwcmV2aW91cyBhZGp1c3RlZFJlbGF0ZWRUYXJnZXQg
aWYgdHJlZVNjb3BlIGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZvcm1hbmNlIG9w
dGltaXphdGlvbi4KLSAgICAgICAgaWYgKHNjb3BlICE9IGxhc3RUcmVlU2NvcGUpCi0gICAgICAg
ICAgICBhZGp1c3RlZE5vZGUgPSBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmVlU2NvcGVzKHNj
b3BlLCByZWxhdGVkTm9kZU1hcCk7Ci0gICAgICAgIGFkanVzdGVkTm9kZXMuYXBwZW5kKGFkanVz
dGVkTm9kZSk7Ci0KLSAgICAgICAgbGFzdFRyZWVTY29wZSA9IHNjb3BlOwotICAgICAgICBpZiAo
ZXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNoQmVoYXZpb3IgPT0gRG9lc05vdFN0b3BBdEJv
dW5kYXJ5KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICh0YXJnZXRJc0lkZW50
aWNhbFRvVG9SZWxhdGVkVGFyZ2V0KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+dHJlZVNjb3Bl
KCkucm9vdE5vZGUoKSA9PSBjb250ZXh0Lm5vZGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
aSArIDE7Ci0gICAgICAgIH0gZWxzZSBpZiAoY29udGV4dC50YXJnZXQoKSA9PSBhZGp1c3RlZE5v
ZGUpIHsKLSAgICAgICAgICAgIC8vIEV2ZW50IGRpc3BhdGNoaW5nIHNob3VsZCBiZSBzdG9wcGVk
IGhlcmUuCi0gICAgICAgICAgICBhZGp1c3RlZE5vZGVzLnNocmluayhhZGp1c3RlZE5vZGVzLnNp
emUoKSAtIDEpOwotICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgIGlmIChjdXJyZW50VHJl
ZVNjb3BlICE9IGxhc3RUcmVlU2NvcGUpIHsKKyAgICAgICAgICAgIGlmIChsYXN0VHJlZVNjb3Bl
KSB7CisgICAgICAgICAgICAgICAgQVNTRVJUKGxhc3RUcmVlU2NvcGUtPnJvb3ROb2RlKCktPmlz
U2hhZG93Um9vdCgpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQoY29udGV4dC5ub2RlKCkgPT0g
dG9TaGFkb3dSb290KGxhc3RUcmVlU2NvcGUtPnJvb3ROb2RlKCkpLT5ob3N0RWxlbWVudCgpKTsK
KyAgICAgICAgICAgICAgICBBU1NFUlQobGFzdFRyZWVTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkg
PT0gY3VycmVudFRyZWVTY29wZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChy
ZWxhdGVkTm9kZUluQ3VycmVudFRyZWVTY29wZSkgeyAvLyByZWxhdGVkTm9kZSBpcyB1bmRlciB0
aGUgbGFzdCB0cmVlIHNjb3BlCisgICAgICAgICAgICAgICAgQVNTRVJUKGxhc3RUcmVlU2NvcGUp
OworICAgICAgICAgICAgICAgIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0gY29udGV4
dC5ub2RlKCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRUcmVlU2NvcGUgPT0gJnJl
bGF0ZWROb2RlVHJlZVNjb3BlKSAvLyByZWxhdGVkTm9kZSBpcyBpbiB0aGUgY3VycmVudCB0cmVl
IHNjb3BlOworICAgICAgICAgICAgICAgIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0g
cmVsYXRlZE5vZGU7CisgICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdlIGhhdmVuJ3QgcmVhY2hl
ZCB0aGUgdHJlZSBzY29wZSB0aGF0IGNvbnRhaW5zIHJlbGF0ZWROb2RlIHlldC4KICAgICAgICAg
fQorICAgICAgICBhZGp1c3RlZE5vZGVzLmFwcGVuZChyZWxhdGVkTm9kZUluQ3VycmVudFRyZWVT
Y29wZSk7CisKKyAgICAgICAgbGFzdFRyZWVTY29wZSA9IGN1cnJlbnRUcmVlU2NvcGU7CiAgICAg
fQogICAgIHJldHVybiBldmVudFBhdGhTaXplOwogfQogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKLXN0YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChWZWN0b3I8UmVmUHRy
PFRvdWNoTGlzdD4+JiB0b3VjaExpc3RzSW5FdmVudFBhdGgsIGNvbnN0IE5vZGUqIG5vZGUsIGNv
bnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCkKK3N0
YXRpYyB2b2lkIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aChWZWN0b3I8UmVmUHRyPFRvdWNo
TGlzdD4+JiB0b3VjaExpc3RzSW5FdmVudFBhdGgsIGNvbnN0IFRvdWNoTGlzdCogdG91Y2hMaXN0
LCBjb25zdCBFdmVudFBhdGgmIGV2ZW50UGF0aCkKIHsKICAgICBpZiAoIXRvdWNoTGlzdCkKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDQ3LDcgKzQwMyw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZVRvdWNo
TGlzdHNJbkV2ZW50UGF0aCgKICAgICAgICAgY29uc3QgVG91Y2gmIHRvdWNoID0gKnRvdWNoTGlz
dC0+aXRlbShpKTsKIAogICAgICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+PiBhZGp1c3RlZE5vZGVz
OwotICAgICAgICBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKG5vZGUsIHRvdWNoLnRhcmdldCgpLT50
b05vZGUoKSwgRG9lc05vdFN0b3BBdEJvdW5kYXJ5LCBldmVudFBhdGgsIGFkanVzdGVkTm9kZXMp
OworICAgICAgICBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKHRvdWNoLnRhcmdldCgpLT50b05vZGUo
KSwgZXZlbnRQYXRoLCBhZGp1c3RlZE5vZGVzKTsKIAogICAgICAgICBBU1NFUlQoYWRqdXN0ZWRO
b2Rlcy5zaXplKCkgPT0gZXZlbnRQYXRoU2l6ZSk7CiAgICAgICAgIGZvciAoc2l6ZV90IGogPSAw
OyBqIDwgZXZlbnRQYXRoU2l6ZTsgKytqKQpAQCAtNDcwLDkgKzQyNiw5IEBAIHZvaWQgRXZlbnRQ
YXRoOjp1cGRhdGVUb3VjaExpc3RzKGNvbnN0IFQKICAgICAgICAgY2hhbmdlZFRvdWNoZXNJbkV2
ZW50UGF0aFtpXSA9IGNvbnRleHQuY2hhbmdlZFRvdWNoZXMoKTsKICAgICB9CiAKLSAgICB1cGRh
dGVUb3VjaExpc3RzSW5FdmVudFBhdGgodG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQo
KSwgdG91Y2hFdmVudC50b3VjaGVzKCksICp0aGlzKTsKLSAgICB1cGRhdGVUb3VjaExpc3RzSW5F
dmVudFBhdGgodGFyZ2V0VG91Y2hlc0luRXZlbnRQYXRoLCBtX29yaWdpbi5nZXQoKSwgdG91Y2hF
dmVudC50YXJnZXRUb3VjaGVzKCksICp0aGlzKTsKLSAgICB1cGRhdGVUb3VjaExpc3RzSW5FdmVu
dFBhdGgoY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aCwgbV9vcmlnaW4uZ2V0KCksIHRvdWNoRXZl
bnQuY2hhbmdlZFRvdWNoZXMoKSwgKnRoaXMpOworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50
UGF0aCh0b3VjaGVzSW5FdmVudFBhdGgsIHRvdWNoRXZlbnQudG91Y2hlcygpLCAqdGhpcyk7Cisg
ICAgdXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aCwg
dG91Y2hFdmVudC50YXJnZXRUb3VjaGVzKCksICp0aGlzKTsKKyAgICB1cGRhdGVUb3VjaExpc3Rz
SW5FdmVudFBhdGgoY2hhbmdlZFRvdWNoZXNJbkV2ZW50UGF0aCwgdG91Y2hFdmVudC5jaGFuZ2Vk
VG91Y2hlcygpLCAqdGhpcyk7CiB9CiAjZW5kaWYKIApAQCAtNDgyLDcgKzQzOCw3IEBAIHZvaWQg
RXZlbnRQYXRoOjpzZXRSZWxhdGVkVGFyZ2V0KEV2ZW50VGEKICAgICBpZiAoIXJlbGF0ZWROb2Rl
KQogICAgICAgICByZXR1cm47CiAgICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gYWRqdXN0ZWROb2Rl
czsKLSAgICBtX3BhdGguc2hyaW5rKGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMobV9vcmlnaW4uZ2V0
KCksIHJlbGF0ZWROb2RlLCBTdG9wQXRCb3VuZGFyeUlmTmVlZGVkLCAqdGhpcywgYWRqdXN0ZWRO
b2RlcykpOworICAgIG1fcGF0aC5zaHJpbmsoY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhyZWxhdGVk
Tm9kZSwgKnRoaXMsIGFkanVzdGVkTm9kZXMpKTsKICAgICBBU1NFUlQoYWRqdXN0ZWROb2Rlcy5z
aXplKCkgPD0gbV9wYXRoLnNpemUoKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhZGp1
c3RlZE5vZGVzLnNpemUoKTsgKytpKQogICAgICAgICB0b01vdXNlT3JGb2N1c0V2ZW50Q29udGV4
dCgqbV9wYXRoW2ldKS5zZXRSZWxhdGVkVGFyZ2V0KGFkanVzdGVkTm9kZXNbaV0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214032</attachid>
            <date>2013-10-11 15:59:27 -0700</date>
            <delta_ts>2013-10-11 17:53:35 -0700</delta_ts>
            <desc>Minor tweaks</desc>
            <filename>bug-122680-20131011155926.patch</filename>
            <type>text/plain</type>
            <size>8490</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzMyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTEwLTExICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERyYW1hdGljYWxseSBzaW1wbGlm
eSBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjI2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaXRob3V0IGluc2VydGlvbiBwb2ludHMsIHdlIG5ldmVyIGhhdmUg
dG8gd29ycnkgYWJvdXQgZW50ZXJpbmcgYSBzaGFkb3cgRE9NIHdlJ3ZlIGFscmVhZHkgY2xpbWJl
ZCBvdXQgb2YuCisgICAgICAgIERlbGV0ZWQgdGhlIGxvZ2ljIHRvIGRlYWwgd2l0aCBpbnNlcnRp
b24gcG9pbnRzIGluIGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMgYWNjb3JkaW5nbHkuCisKKyAgICAg
ICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UGF0
aDo6RXZlbnRQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmNhbGN1bGF0ZUFkanVzdGVkTm9kZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyk6CisgICAgICAgIChXZWJD
b3JlOjpFdmVudFBhdGg6OnNldFJlbGF0ZWRUYXJnZXQpOgorCiAyMDEzLTEwLTExICBab2x0YW4g
SG9ydmF0aCAgPHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBVc2Ug
dGhlIGZsb2F0aW5nT2JqZWN0J3MgbG9naWNhbCBjb29yZGluYXRlcyB0byBkZXRlcm1pbmUgaXRz
IHNpemUgaW4gY29tcHV0ZUxvZ2ljYWxMb2NhdGlvbkZvckZsb2F0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAkocmV2aXNpb24gMTU3MzIwKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsx
MDMsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxF
dmVudENvbnRleHQ+LCAzMj4gbV9wYXRoOwotICAgIFJlZlB0cjxOb2RlPiBtX29yaWdpbjsKIH07
CiAKIGlubGluZSBFdmVudFRhcmdldCYgZXZlbnRUYXJnZXRSZXNwZWN0aW5nVGFyZ2V0UnVsZXMo
Tm9kZSYgcmVmZXJlbmNlTm9kZSkKQEAgLTMyNiw3ICszMjUsNiBAQCBzdGF0aWMgTm9kZSogbm9k
ZU9ySG9zdElmUHNldWRvRWxlbWVudChOCiB9CiAKIEV2ZW50UGF0aDo6RXZlbnRQYXRoKE5vZGUm
IHRhcmdldE5vZGUsIEV2ZW50JiBldmVudCkKLSAgICA6IG1fb3JpZ2luKCZ0YXJnZXROb2RlKQog
ewogICAgIGJvb2wgaW5Eb2N1bWVudCA9IHRhcmdldE5vZGUuaW5Eb2N1bWVudCgpOwogICAgIGJv
b2wgaXNTVkdFbGVtZW50ID0gdGFyZ2V0Tm9kZS5pc1NWR0VsZW1lbnQoKTsKQEAgLTM2MSw4MyAr
MzU5LDQxIEBAIEV2ZW50UGF0aDo6RXZlbnRQYXRoKE5vZGUmIHRhcmdldE5vZGUsIEUKICAgICB9
CiB9CiAKLXN0YXRpYyB2b2lkIGJ1aWxkUmVsYXRlZE5vZGVNYXAoY29uc3QgTm9kZSogcmVsYXRl
ZE5vZGUsIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKK3N0YXRp
YyBzaXplX3QgY2FsY3VsYXRlQWRqdXN0ZWROb2RlcyhOb2RlKiByZWxhdGVkTm9kZSwgY29uc3Qg
RXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1c3RlZE5vZGVz
KQogewotICAgIE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7Ci0gICAgVHJlZVNj
b3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBmb3IgKE5vZGUqIG5vZGUgPSBub2RlT3JIb3N0
SWZQc2V1ZG9FbGVtZW50KGNvbnN0X2Nhc3Q8Tm9kZSo+KHJlbGF0ZWROb2RlKSk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5wYXJlbnRPclNoYWRvd0hvc3ROb2RlKCkpIHsKLSAgICAgICAgaWYgKCFyZWxh
dGVkTm9kZUluQ3VycmVudFRyZWUpCi0gICAgICAgICAgICByZWxhdGVkTm9kZUluQ3VycmVudFRy
ZWUgPSBub2RlOwotICAgICAgICBUcmVlU2NvcGUqIHNjb3BlID0gJm5vZGUtPnRyZWVTY29wZSgp
OwotICAgICAgICAvLyBTa2lwcyBhZGRpbmcgYSBub2RlIHRvIHRoZSBtYXAgaWYgdHJlZVNjb3Bl
IGRvZXMgbm90IGNoYW5nZS4gSnVzdCBmb3IgdGhlIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbi4K
LSAgICAgICAgaWYgKHNjb3BlICE9IGxhc3RUcmVlU2NvcGUpCi0gICAgICAgICAgICByZWxhdGVk
Tm9kZU1hcC5hZGQoc2NvcGUsIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSk7Ci0gICAgICAgIGxh
c3RUcmVlU2NvcGUgPSBzY29wZTsKLSAgICAgICAgaWYgKG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQocmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlKTsKLSAgICAgICAg
ICAgIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZSA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LXN0YXRpYyBOb2RlKiBhZGRSZWxhdGVkTm9kZUZvclVubWFwZWRUcmVlU2NvcGVzKFRyZWVTY29w
ZSogc2NvcGUsIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+JiByZWxhdGVkTm9kZU1hcCkKLXsK
LSAgICBOb2RlKiByZWxhdGVkTm9kZSA9IDA7Ci0gICAgVHJlZVNjb3BlKiBlbmRTY29wZSA9IDA7
Ci0gICAgZm9yIChUcmVlU2NvcGUqIGN1cnJlbnRTY29wZSA9IHNjb3BlOyBjdXJyZW50U2NvcGU7
IGN1cnJlbnRTY29wZSA9IGN1cnJlbnRTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkpIHsKLSAgICAg
ICAgYXV0byByZXN1bHQgPSByZWxhdGVkTm9kZU1hcC5maW5kKGN1cnJlbnRTY29wZSk7Ci0gICAg
ICAgIGlmIChyZXN1bHQgIT0gcmVsYXRlZE5vZGVNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIHJl
bGF0ZWROb2RlID0gcmVzdWx0LT52YWx1ZTsKLSAgICAgICAgICAgIGVuZFNjb3BlID0gY3VycmVu
dFNjb3BlOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZm9yIChU
cmVlU2NvcGUqIGN1cnJlbnRTY29wZSA9IHNjb3BlOyBjdXJyZW50U2NvcGUgIT0gZW5kU2NvcGU7
IGN1cnJlbnRTY29wZSA9IGN1cnJlbnRTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkpCi0gICAgICAg
IHJlbGF0ZWROb2RlTWFwLmFkZChjdXJyZW50U2NvcGUsIHJlbGF0ZWROb2RlKTsKLSAgICByZXR1
cm4gcmVsYXRlZE5vZGU7Ci19Ci0KLWVudW0gRXZlbnRXaXRoUmVsYXRlZFRhcmdldERpc3BhdGNo
QmVoYXZpb3IgewotICAgIFN0b3BBdEJvdW5kYXJ5SWZOZWVkZWQsCi0gICAgRG9lc05vdFN0b3BB
dEJvdW5kYXJ5Ci19Owotc3RhdGljIHNpemVfdCBjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKGNvbnN0
IE5vZGUqIG5vZGUsIGNvbnN0IE5vZGUqIHJlbGF0ZWROb2RlLCBFdmVudFdpdGhSZWxhdGVkVGFy
Z2V0RGlzcGF0Y2hCZWhhdmlvciBldmVudFdpdGhSZWxhdGVkVGFyZ2V0RGlzcGF0Y2hCZWhhdmlv
ciwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgsIFZlY3RvcjxSZWZQdHI8Tm9kZT4+JiBhZGp1
c3RlZE5vZGVzKQotewotICAgIEhhc2hNYXA8VHJlZVNjb3BlKiwgTm9kZSo+IHJlbGF0ZWROb2Rl
TWFwOwotICAgIGJ1aWxkUmVsYXRlZE5vZGVNYXAocmVsYXRlZE5vZGUsIHJlbGF0ZWROb2RlTWFw
KTsKLQotICAgIC8vIFN5bnRoZXRpYyBtb3VzZSBldmVudHMgY2FuIGhhdmUgYSByZWxhdGVkVGFy
Z2V0IHdoaWNoIGlzIGlkZW50aWNhbCB0byB0aGUgdGFyZ2V0LgotICAgIGJvb2wgdGFyZ2V0SXNJ
ZGVudGljYWxUb1RvUmVsYXRlZFRhcmdldCA9IChub2RlID09IHJlbGF0ZWROb2RlKTsKKyAgICBU
cmVlU2NvcGUmIHJlbGF0ZWROb2RlVHJlZVNjb3BlID0gcmVsYXRlZE5vZGUtPnRyZWVTY29wZSgp
OwogCiAgICAgVHJlZVNjb3BlKiBsYXN0VHJlZVNjb3BlID0gMDsKLSAgICBOb2RlKiBhZGp1c3Rl
ZE5vZGUgPSAwOworICAgIE5vZGUqIHJlbGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0gMDsK
ICAgICBzaXplX3QgZXZlbnRQYXRoU2l6ZSA9IGV2ZW50UGF0aC5zaXplKCk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBldmVudFBhdGhTaXplOyBpKyspIHsKLSAgICAgICAgY29uc3QgRXZl
bnRDb250ZXh0JiBjb250ZXh0ID0gZXZlbnRQYXRoLmNvbnRleHRBdChpKTsKLSAgICAgICAgVHJl
ZVNjb3BlKiBzY29wZSA9ICZjb250ZXh0Lm5vZGUoKS0+dHJlZVNjb3BlKCk7CisgICAgICAgIE5v
ZGUqIGN1cnJlbnRUYXJnZXQgPSBldmVudFBhdGguY29udGV4dEF0KGkpLm5vZGUoKTsKKyAgICAg
ICAgVHJlZVNjb3BlKiBjdXJyZW50VHJlZVNjb3BlID0gJmN1cnJlbnRUYXJnZXQtPnRyZWVTY29w
ZSgpOwogCiAgICAgICAgIC8vIFJlLXVzZSB0aGUgcHJldmlvdXMgYWRqdXN0ZWRSZWxhdGVkVGFy
Z2V0IGlmIHRyZWVTY29wZSBkb2VzIG5vdCBjaGFuZ2UuIEp1c3QgZm9yIHRoZSBwZXJmb3JtYW5j
ZSBvcHRpbWl6YXRpb24uCi0gICAgICAgIGlmIChzY29wZSAhPSBsYXN0VHJlZVNjb3BlKQotICAg
ICAgICAgICAgYWRqdXN0ZWROb2RlID0gYWRkUmVsYXRlZE5vZGVGb3JVbm1hcGVkVHJlZVNjb3Bl
cyhzY29wZSwgcmVsYXRlZE5vZGVNYXApOwotICAgICAgICBhZGp1c3RlZE5vZGVzLmFwcGVuZChh
ZGp1c3RlZE5vZGUpOworICAgICAgICBpZiAoY3VycmVudFRyZWVTY29wZSAhPSBsYXN0VHJlZVNj
b3BlKSB7CisgICAgICAgICAgICBpZiAobGFzdFRyZWVTY29wZSkgeworICAgICAgICAgICAgICAg
IEFTU0VSVChsYXN0VHJlZVNjb3BlLT5yb290Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAg
ICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRUYXJnZXQgPT0gdG9TaGFkb3dSb290KGxhc3RUcmVl
U2NvcGUtPnJvb3ROb2RlKCkpLT5ob3N0RWxlbWVudCgpKTsKKyAgICAgICAgICAgICAgICBBU1NF
UlQobGFzdFRyZWVTY29wZS0+cGFyZW50VHJlZVNjb3BlKCkgPT0gY3VycmVudFRyZWVTY29wZSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChyZWxhdGVkTm9kZUluQ3VycmVudFRy
ZWVTY29wZSkgeyAvLyByZWxhdGVkTm9kZSBpcyB1bmRlciB0aGUgbGFzdCB0cmVlIHNjb3BlCisg
ICAgICAgICAgICAgICAgQVNTRVJUKGxhc3RUcmVlU2NvcGUpOworICAgICAgICAgICAgICAgIHJl
bGF0ZWROb2RlSW5DdXJyZW50VHJlZVNjb3BlID0gY3VycmVudFRhcmdldDsKKyAgICAgICAgICAg
IH0gZWxzZSBpZiAoY3VycmVudFRyZWVTY29wZSA9PSAmcmVsYXRlZE5vZGVUcmVlU2NvcGUpIC8v
IHJlbGF0ZWROb2RlIGlzIGluIHRoZSBjdXJyZW50IHRyZWUgc2NvcGU7CisgICAgICAgICAgICAg
ICAgcmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUgPSByZWxhdGVkTm9kZTsKKyAgICAgICAg
ICAgIC8vIE90aGVyd2lzZSwgd2UgaGF2ZW4ndCByZWFjaGVkIHRoZSB0cmVlIHNjb3BlIHRoYXQg
Y29udGFpbnMgcmVsYXRlZE5vZGUgeWV0LgogCi0gICAgICAgIGxhc3RUcmVlU2NvcGUgPSBzY29w
ZTsKLSAgICAgICAgaWYgKGV2ZW50V2l0aFJlbGF0ZWRUYXJnZXREaXNwYXRjaEJlaGF2aW9yID09
IERvZXNOb3RTdG9wQXRCb3VuZGFyeSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBp
ZiAodGFyZ2V0SXNJZGVudGljYWxUb1RvUmVsYXRlZFRhcmdldCkgewotICAgICAgICAgICAgaWYg
KG5vZGUtPnRyZWVTY29wZSgpLnJvb3ROb2RlKCkgPT0gY29udGV4dC5ub2RlKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGkgKyAxOwotICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQudGFyZ2V0
KCkgPT0gYWRqdXN0ZWROb2RlKSB7Ci0gICAgICAgICAgICAvLyBFdmVudCBkaXNwYXRjaGluZyBz
aG91bGQgYmUgc3RvcHBlZCBoZXJlLgotICAgICAgICAgICAgYWRqdXN0ZWROb2Rlcy5zaHJpbmso
YWRqdXN0ZWROb2Rlcy5zaXplKCkgLSAxKTsKLSAgICAgICAgICAgIHJldHVybiBpOworICAgICAg
ICAgICAgbGFzdFRyZWVTY29wZSA9IGN1cnJlbnRUcmVlU2NvcGU7CiAgICAgICAgIH0KKyAgICAg
ICAgYWRqdXN0ZWROb2Rlcy5hcHBlbmQocmVsYXRlZE5vZGVJbkN1cnJlbnRUcmVlU2NvcGUpOwog
ICAgIH0KICAgICByZXR1cm4gZXZlbnRQYXRoU2l6ZTsKIH0KIAogI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCi1zdGF0aWMgdm9pZCB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoVmVjdG9yPFJl
ZlB0cjxUb3VjaExpc3Q+PiYgdG91Y2hMaXN0c0luRXZlbnRQYXRoLCBjb25zdCBOb2RlKiBub2Rl
LCBjb25zdCBUb3VjaExpc3QqIHRvdWNoTGlzdCwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgp
CitzdGF0aWMgdm9pZCB1cGRhdGVUb3VjaExpc3RzSW5FdmVudFBhdGgoVmVjdG9yPFJlZlB0cjxU
b3VjaExpc3Q+PiYgdG91Y2hMaXN0c0luRXZlbnRQYXRoLCBjb25zdCBUb3VjaExpc3QqIHRvdWNo
TGlzdCwgY29uc3QgRXZlbnRQYXRoJiBldmVudFBhdGgpCiB7CiAgICAgaWYgKCF0b3VjaExpc3Qp
CiAgICAgICAgIHJldHVybjsKQEAgLTQ0Nyw3ICs0MDMsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVU
b3VjaExpc3RzSW5FdmVudFBhdGgoCiAgICAgICAgIGNvbnN0IFRvdWNoJiB0b3VjaCA9ICp0b3Vj
aExpc3QtPml0ZW0oaSk7CiAKICAgICAgICAgVmVjdG9yPFJlZlB0cjxOb2RlPj4gYWRqdXN0ZWRO
b2RlczsKLSAgICAgICAgY2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyhub2RlLCB0b3VjaC50YXJnZXQo
KS0+dG9Ob2RlKCksIERvZXNOb3RTdG9wQXRCb3VuZGFyeSwgZXZlbnRQYXRoLCBhZGp1c3RlZE5v
ZGVzKTsKKyAgICAgICAgY2FsY3VsYXRlQWRqdXN0ZWROb2Rlcyh0b3VjaC50YXJnZXQoKS0+dG9O
b2RlKCksIGV2ZW50UGF0aCwgYWRqdXN0ZWROb2Rlcyk7CiAKICAgICAgICAgQVNTRVJUKGFkanVz
dGVkTm9kZXMuc2l6ZSgpID09IGV2ZW50UGF0aFNpemUpOwogICAgICAgICBmb3IgKHNpemVfdCBq
ID0gMDsgaiA8IGV2ZW50UGF0aFNpemU7ICsraikKQEAgLTQ3MCw5ICs0MjYsOSBAQCB2b2lkIEV2
ZW50UGF0aDo6dXBkYXRlVG91Y2hMaXN0cyhjb25zdCBUCiAgICAgICAgIGNoYW5nZWRUb3VjaGVz
SW5FdmVudFBhdGhbaV0gPSBjb250ZXh0LmNoYW5nZWRUb3VjaGVzKCk7CiAgICAgfQogCi0gICAg
dXBkYXRlVG91Y2hMaXN0c0luRXZlbnRQYXRoKHRvdWNoZXNJbkV2ZW50UGF0aCwgbV9vcmlnaW4u
Z2V0KCksIHRvdWNoRXZlbnQudG91Y2hlcygpLCAqdGhpcyk7Ci0gICAgdXBkYXRlVG91Y2hMaXN0
c0luRXZlbnRQYXRoKHRhcmdldFRvdWNoZXNJbkV2ZW50UGF0aCwgbV9vcmlnaW4uZ2V0KCksIHRv
dWNoRXZlbnQudGFyZ2V0VG91Y2hlcygpLCAqdGhpcyk7Ci0gICAgdXBkYXRlVG91Y2hMaXN0c0lu
RXZlbnRQYXRoKGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgsIG1fb3JpZ2luLmdldCgpLCB0b3Vj
aEV2ZW50LmNoYW5nZWRUb3VjaGVzKCksICp0aGlzKTsKKyAgICB1cGRhdGVUb3VjaExpc3RzSW5F
dmVudFBhdGgodG91Y2hlc0luRXZlbnRQYXRoLCB0b3VjaEV2ZW50LnRvdWNoZXMoKSwgKnRoaXMp
OworICAgIHVwZGF0ZVRvdWNoTGlzdHNJbkV2ZW50UGF0aCh0YXJnZXRUb3VjaGVzSW5FdmVudFBh
dGgsIHRvdWNoRXZlbnQudGFyZ2V0VG91Y2hlcygpLCAqdGhpcyk7CisgICAgdXBkYXRlVG91Y2hM
aXN0c0luRXZlbnRQYXRoKGNoYW5nZWRUb3VjaGVzSW5FdmVudFBhdGgsIHRvdWNoRXZlbnQuY2hh
bmdlZFRvdWNoZXMoKSwgKnRoaXMpOwogfQogI2VuZGlmCiAKQEAgLTQ4Miw3ICs0MzgsNyBAQCB2
b2lkIEV2ZW50UGF0aDo6c2V0UmVsYXRlZFRhcmdldChFdmVudFRhCiAgICAgaWYgKCFyZWxhdGVk
Tm9kZSkKICAgICAgICAgcmV0dXJuOwogICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4+IGFkanVzdGVk
Tm9kZXM7Ci0gICAgbV9wYXRoLnNocmluayhjYWxjdWxhdGVBZGp1c3RlZE5vZGVzKG1fb3JpZ2lu
LmdldCgpLCByZWxhdGVkTm9kZSwgU3RvcEF0Qm91bmRhcnlJZk5lZWRlZCwgKnRoaXMsIGFkanVz
dGVkTm9kZXMpKTsKKyAgICBtX3BhdGguc2hyaW5rKGNhbGN1bGF0ZUFkanVzdGVkTm9kZXMocmVs
YXRlZE5vZGUsICp0aGlzLCBhZGp1c3RlZE5vZGVzKSk7CiAgICAgQVNTRVJUKGFkanVzdGVkTm9k
ZXMuc2l6ZSgpIDw9IG1fcGF0aC5zaXplKCkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
YWRqdXN0ZWROb2Rlcy5zaXplKCk7ICsraSkKICAgICAgICAgdG9Nb3VzZU9yRm9jdXNFdmVudENv
bnRleHQoKm1fcGF0aFtpXSkuc2V0UmVsYXRlZFRhcmdldChhZGp1c3RlZE5vZGVzW2ldKTsK
</data>
<flag name="review"
          id="236511"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>