<?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>74346</bug_id>
          
          <creation_ts>2011-12-12 14:52:48 -0800</creation_ts>
          <short_desc>Text selection in text area in auto scroll mode goes wrong.</short_desc>
          <delta_ts>2012-08-15 01:06:13 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.7</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>
          <dependson>94076</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Misha">mtutunik</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>max.hong.shen</cc>
    
    <cc>mifenton</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>sukolsak</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>519515</commentid>
    <comment_count>0</comment_count>
    <who name="Misha">mtutunik</who>
    <bug_when>2011-12-12 14:52:48 -0800</bug_when>
    <thetext>In order to reproduce have a text area filled with a text long enough to be able to scroll the text area up and down.

- Scroll the text area down to the end.
- Slowly start dragging your mouse starting from the some place in the line closets to the upper edge of the text area.
- Once the contents of the text area get scrolled a little notice that the selection jumped down to the end.

The selection is not following the current scroll position of the text. If mouse is moved slightly down auto scrolling stops and selection is getting updated to the correct position. If mouse position is not changed then when left button is released the end of the selection can be either at the end of the text or closer to the correct position (where mouse down happened) depending on how much scrolling was done.



When auto scrolling is on updateSelectionForMouseDrag() is invoked. Inside we call:
VisiblePosition targetPosition = selectionExtentRespectingEditingBoundary(m_frame-&gt;selection()-&gt;selection(), hitTestResult.localPoint(), target);
From what I could see when we start dragging mouse up the offset of the targetPosition is pointing to the end of the text. 

Reproducible on Mac with Chrome version 15.0.874.121

It might me the same issue as https://bugs.webkit.org/show_bug.cgi?id=31581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692486</commentid>
    <comment_count>1</comment_count>
      <attachid>157713</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-10 05:29:03 -0700</bug_when>
    <thetext>Created attachment 157713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695654</commentid>
    <comment_count>2</comment_count>
      <attachid>157713</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-14 19:01:39 -0700</bug_when>
    <thetext>Comment on attachment 157713
Patch

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

R- for the 100ms timeout. The C++ side looks good to me.

&gt; LayoutTests/fast/events/autoscroll-in-textarea.html:57
&gt; +        var x = textarea.offsetLeft + 20;
&gt; +        var y = textarea.offsetTop + 8;

Can you make these less magic? For x, you can do textarea.offsetLeft + textarea.offsetWidth / 2.

For y, would adding 1 be enough?

&gt; LayoutTests/fast/events/autoscroll-in-textarea.html:63
&gt; +    setTimeout(autoscrollTestPart2, 100);

Do you need this 100ms? 0 should be sufficient I would think. No need to make the test take ~100ms longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695719</commentid>
    <comment_count>3</comment_count>
      <attachid>158495</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-14 21:08:58 -0700</bug_when>
    <thetext>Created attachment 158495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695720</commentid>
    <comment_count>4</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-14 21:10:25 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 157713 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=157713&amp;action=review
&gt; 
&gt; R- for the 100ms timeout. The C++ side looks good to me.
&gt; 
&gt; &gt; LayoutTests/fast/events/autoscroll-in-textarea.html:57
&gt; &gt; +        var x = textarea.offsetLeft + 20;
&gt; &gt; +        var y = textarea.offsetTop + 8;
&gt; 
&gt; Can you make these less magic? For x, you can do textarea.offsetLeft + textarea.offsetWidth / 2.
&gt; 
&gt; For y, would adding 1 be enough?
&gt; 
&gt; &gt; LayoutTests/fast/events/autoscroll-in-textarea.html:63
&gt; &gt; +    setTimeout(autoscrollTestPart2, 100);
&gt; 
&gt; Do you need this 100ms? 0 should be sufficient I would think. No need to make the test take ~100ms longer.

Fixed. Thank you for the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695722</commentid>
    <comment_count>5</comment_count>
      <attachid>158495</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-08-14 21:18:21 -0700</bug_when>
    <thetext>Comment on attachment 158495
Patch

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

Looks great. Please address my last comments on the test and then feel free to commit.

Just to be sure, you verified that the test still fails without your fix and without the setTimeout, right? :)

&gt; LayoutTests/fast/events/autoscroll-in-textarea.html:1
&gt; +&lt;!doctype html&gt;

Nit: typically we uppercase doctype:
&lt;!DOCTYPE html&gt;

&gt; LayoutTests/fast/events/autoscroll-in-textarea.html:42
&gt; +    testRunner.waitUntilDone();

Now that you don&apos;t have the setTimeout, you don&apos;t need this line.

&gt; LayoutTests/fast/events/autoscroll-in-textarea.html:69
&gt; +if (window.testRunner)
&gt; +    testRunner.notifyDone();

and without the waitUntilDone call above, you don&apos;t need to notifyDone either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695726</commentid>
    <comment_count>6</comment_count>
      <attachid>158497</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-14 21:29:59 -0700</bug_when>
    <thetext>Created attachment 158497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695727</commentid>
    <comment_count>7</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-14 21:33:11 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 158495 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158495&amp;action=review
&gt; 
&gt; Looks great. Please address my last comments on the test and then feel free to commit.
&gt; 
&gt; Just to be sure, you verified that the test still fails without your fix and without the setTimeout, right? :)

Yes, I&apos;ve verified that case.

&gt; &gt; LayoutTests/fast/events/autoscroll-in-textarea.html:1
&gt; &gt; +&lt;!doctype html&gt;
&gt; 
&gt; Nit: typically we uppercase doctype:
&gt; &lt;!DOCTYPE html&gt;
&gt; 
&gt; &gt; LayoutTests/fast/events/autoscroll-in-textarea.html:42
&gt; &gt; +    testRunner.waitUntilDone();
&gt; 
&gt; Now that you don&apos;t have the setTimeout, you don&apos;t need this line.
&gt; 
&gt; &gt; LayoutTests/fast/events/autoscroll-in-textarea.html:69
&gt; &gt; +if (window.testRunner)
&gt; &gt; +    testRunner.notifyDone();
&gt; 
&gt; and without the waitUntilDone call above, you don&apos;t need to notifyDone either.

Done. Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695738</commentid>
    <comment_count>8</comment_count>
      <attachid>158497</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 22:21:02 -0700</bug_when>
    <thetext>Comment on attachment 158497
Patch

Clearing flags on attachment: 158497

Committed r125648: &lt;http://trac.webkit.org/changeset/125648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695739</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 22:21:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157713</attachid>
            <date>2012-08-10 05:29:03 -0700</date>
            <delta_ts>2012-08-14 21:08:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74346-20120810052835.patch</filename>
            <type>text/plain</type>
            <size>9373</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTEwICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IHNlbGVj
dGlvbiBpbiB0ZXh0IGFyZWEgaW4gYXV0byBzY3JvbGwgbW9kZSBnb2VzIHdyb25nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzNDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgdHJpZ2dlcnMg
YXV0b3Njcm9sbCBpbiB0ZXh0IGFyZWEgd2hlbiB0aGUgdXNlciBkcmFncyB0aGUgY3Vyc29yIGZy
b20gaW5zaWRlCisgICAgICAgIHRoZSB0ZXh0IGFyZWEgdG8gdGhlIG91dHNpZGUuIFdoZW4gdGhh
dCBoYXBwZW5zLCBpdCBnZXRzIHRoZSBsb2NhbCBjdXJzb3IgcG9zaXRpb24KKyAgICAgICAgcmVs
YXRpdmUgdG8gdGhlIG5vZGUgdW5kZXIgdGhlIGN1cnNvciBmcm9tIGhpdC10ZXN0aW5nLCBjb252
ZXJ0cyBpdCB0bworICAgICAgICB0aGUgYWJzb2x1dGUgcG9zaXRpb24sIGFuZCB0aGVuIGNvbnZl
cnRzIGl0IHRvIHRoZSBsb2NhbCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgdGV4
dCBhcmVhLiBIb3dldmVyLCB0aGUgaGl0LXRlc3RpbmcgbWV0aG9kIG9mIHRleHQgYXJlYSBkaWQg
bm90IHRha2Ugc2Nyb2xsaW5nCisgICAgICAgIG9mZnNldCBpbnRvIGFjY291bnQuIFRoaXMgY2F1
c2VkIGl0IHRvIGdpdmUgYW4gaW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBsb2NhbCBjdXJzb3IKKyAg
ICAgICAgcG9zaXRpb24uIE1ha2UgdGhlIGhpdC10ZXN0aW5nIHRha2Ugc2Nyb2xsaW5nIG9mZnNl
dCBpbnRvIGFjY291bnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1p
bi10ZXh0YXJlYS5odG1sCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpoaXRJbm5lclRl
eHRFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6aGFzTGluZUlmRW1wdHkpOgorCiAy
MDEyLTA4LTEwICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAgICAg
IFtDU1MgUmVnaW9uc10gcmVnaW9uLW92ZXJmbG93OiBicmVhayBzdGlsbCByZW5kZXJzIHRoZSBj
b250ZW50IHRoYXQgZG9lcyBub3QgZml0IGluIHRoZSBsYXN0IHJlZ2lvbi4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcAkocmV2aXNpb24gMTI1MjcxKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDEzICsx
MDEsNyBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6ZGVmYXVsCiAKIFJlbmRl
ck9iamVjdCogVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKIHsKLSAgICBib29sIG11bHRpTGluZSA9IGZh
bHNlOwotICAgIEVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yID0gc2hhZG93SG9zdCgpOwotICAgIGlm
IChzaGFkb3dBbmNlc3RvciAmJiBzaGFkb3dBbmNlc3Rvci0+cmVuZGVyZXIoKSkgewotICAgICAg
ICBBU1NFUlQoc2hhZG93QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkgfHwgc2hh
ZG93QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEFyZWEoKSk7Ci0gICAgICAgIG11bHRpTGlu
ZSA9IHNoYWRvd0FuY2VzdG9yLT5yZW5kZXJlcigpLT5pc1RleHRBcmVhKCk7Ci0gICAgfQotICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sodGhpcywgbXVs
dGlMaW5lKTsKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKHRoaXMpOwogfQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVy
VGV4dEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCShyZXZpc2lvbiAxMjUyNzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTUsMTEgKzE1NSwxNCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpj
b21wdXRlTG9naWNhbEhlCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmhpdElubmVyVGV4dEVs
ZW1lbnQoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KQogewotICAgIExh
eW91dFBvaW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNldCArIGxvY2F0aW9u
KCk7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1lbnQoKTsKKyAg
ICBMYXlvdXRQb2ludCBhZGp1c3RlZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2Nh
dGlvbigpOworICAgIExheW91dFBvaW50IGxvY2FsUG9pbnQgPSBwb2ludEluQ29udGFpbmVyIC0g
dG9MYXlvdXRTaXplKGFkanVzdGVkTG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5s
b2NhdGlvbigpKTsKKyAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkpCisgICAgICAgIGxvY2FsUG9p
bnQgKz0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgcmVzdWx0LnNldElubmVyTm9kZShp
bm5lclRleHQpOwogICAgIHJlc3VsdC5zZXRJbm5lck5vblNoYXJlZE5vZGUoaW5uZXJUZXh0KTsK
LSAgICByZXN1bHQuc2V0TG9jYWxQb2ludChwb2ludEluQ29udGFpbmVyIC0gdG9MYXlvdXRTaXpl
KGFkanVzdGVkTG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5sb2NhdGlvbigpKSk7
CisgICAgcmVzdWx0LnNldExvY2FsUG9pbnQobG9jYWxQb2ludCk7CiB9CiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aFtdID0gewpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAJKHJldmlzaW9uIDEyNTI3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSwy
MyArNDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLVZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s6OnBvc2l0
aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQotewotICAgIExheW91dFBvaW50
IGNvbnRlbnRzUG9pbnQocG9pbnQpOwotCi0gICAgLy8gTXVsdGlsaW5lIHRleHQgY29udHJvbHMg
aGF2ZSB0aGUgc2Nyb2xsIG9uIHNoYWRvd0hvc3QsIHNvIHdlIG5lZWQgdG8gdGFrZQotICAgIC8v
IHRoYXQgaW50byBhY2NvdW50IGhlcmUuCi0gICAgaWYgKG1fbXVsdGlMaW5lKSB7Ci0gICAgICAg
IFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZSgp
LT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCkpOwotICAgICAgICBpZiAocmVuZGVyZXItPmhhc092
ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgY29udGVudHNQb2ludCArPSByZW5kZXJlci0+c2Ny
b2xsZWRDb250ZW50T2Zmc2V0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFJlbmRlckJsb2NrOjpw
b3NpdGlvbkZvclBvaW50KGNvbnRlbnRzUG9pbnQpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lKE5vZGUqIG5vZGUpCiAgICAgOiBSZW5kZXJUZXh0Q29udHJvbChub2Rl
KQogICAgICwgbV9zaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IoZmFsc2UpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oCShyZXZpc2lvbiAxMjUyNzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCwxMyArMTEw
LDEwIEBAIHZvaWQgdG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoY29uc3QKIAogY2xhc3Mg
UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soTm9kZSogbm9kZSwgYm9vbCBpc011
bHRpTGluZSkgOiBSZW5kZXJCbG9jayhub2RlKSwgbV9tdWx0aUxpbmUoaXNNdWx0aUxpbmUpIHsg
fQorICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayhOb2RlKiBub2RlKSA6IFJlbmRlckJs
b2NrKG5vZGUpIHsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNMaW5lSWZFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBw
b3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7Ci0KLSAgICBib29sIG1fbXVsdGlM
aW5lOwogfTsKIAogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTI1MjcxKQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDgtMTAgIFN1
a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFRleHQg
c2VsZWN0aW9uIGluIHRleHQgYXJlYSBpbiBhdXRvIHNjcm9sbCBtb2RlIGdvZXMgd3JvbmcuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDM0NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJlYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL2F1dG9zY3JvbGwtaW4tdGV4dGFyZWEuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDgtMTAgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgW0NT
UyBSZWdpb25zXSByZWdpb24tb3ZlcmZsb3c6IGJyZWFrIHN0aWxsIHJlbmRlcnMgdGhlIGNvbnRl
bnQgdGhhdCBkb2VzIG5vdCBmaXQgaW4gdGhlIGxhc3QgcmVnaW9uLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJlYS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJlYS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRv
c2Nyb2xsLWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3
IEBACisKKworCisKK1RoaXMgdGVzdHMgYXV0b3Njcm9sbCBpbiB0ZXh0IGFyZWEgY29ycmVjdGx5
IHNob3dzIHNlbGVjdGlvbiBoaWdobGlnaHQuIFRvIG1hbnVhbGx5IHRlc3QsIHNjcm9sbCB0aGUg
dGV4dCBhcmVhIGRvd24gdG8gdGhlIGVuZC4gU2xvd2x5IGRyYWcgeW91ciBtb3VzZSB1cCBzdGFy
dGluZyBmcm9tIHRoZSBsaW5lIGNsb3Nlc3QgdG8gdGhlIHVwcGVyIGVkZ2Ugb2YgdGhlIHRleHQg
YXJlYS4gT25jZSB0aGUgY29udGVudHMgb2YgdGhlIHRleHQgYXJlYSBnZXQgc2Nyb2xsZWQgYSBs
aXR0bGUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIG5vdCBqdW1wIGRvd24gdG8gdGhlIGVuZC4KKwor
UEFTU0VEIHRoZSBzZWxlY3Rpb24gZGlkIG5vdCBqdW1wIGRvd24uCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLXRleHRhcmVhLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJlYS5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJl
YS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjdGV4dGFyZWEgeworICAgIGZvbnQtc2l6ZTogMThweDsK
KyAgICB3aWR0aDogNDAwcHg7CisgICAgbWFyZ2luOiAwOworICAgIHBhZGRpbmc6IDA7Cit9Cis8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8YnI+PGJyPjxicj4KKzx0ZXh0YXJlYSBpZD0idGV4
dGFyZWEiIHJvd3M9IjYiPgorYQorYgorYworZAorZQorZgorZworaAoraQoragoraworbAorbQor
bgorbworcDwvdGV4dGFyZWE+CisKKzxwPlRoaXMgdGVzdHMgYXV0b3Njcm9sbCBpbiB0ZXh0IGFy
ZWEgY29ycmVjdGx5IHNob3dzIHNlbGVjdGlvbiBoaWdobGlnaHQuCitUbyBtYW51YWxseSB0ZXN0
LCBzY3JvbGwgdGhlIHRleHQgYXJlYSBkb3duIHRvIHRoZSBlbmQuCitTbG93bHkgZHJhZyB5b3Vy
IG1vdXNlIHVwIHN0YXJ0aW5nIGZyb20gdGhlIGxpbmUgY2xvc2VzdCB0byB0aGUgdXBwZXIgZWRn
ZSBvZiB0aGUgdGV4dCBhcmVhLgorT25jZSB0aGUgY29udGVudHMgb2YgdGhlIHRleHQgYXJlYSBn
ZXQgc2Nyb2xsZWQgYSBsaXR0bGUsCit0aGUgc2VsZWN0aW9uIHNob3VsZCBub3QganVtcCBkb3du
IHRvIHRoZSBlbmQuPC9wPgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKworPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgYXV0b3Njcm9sbFRlc3RQYXJ0MSgpOworICAgIH0KK30KKworZnVuY3Rpb24gYXV0
b3Njcm9sbFRlc3RQYXJ0MSgpIHsKKyAgICAvLyBUaGUgdGV4dCBhcmVhIGRpc3BsYXlzIDYgbGlu
ZXMgb2YgdGV4dC4gV2Ugc2Nyb2xsIGRvd24gdG8gdGhlIGVuZAorICAgIC8vIGFuZCBzdGFydCBk
cmFnZ2luZyB0aGUgY3Vyc29yIHVwIGZyb20gdGhlIGZpcnN0IGxpbmUgdGhhdCBhcHBlYXJzICh0
aGUgayBsaW5lKS4KKyAgICAvLyBUaGVyZWZvcmUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIGNvbnRh
aW4gdGhlIGxldHRlciBrLgorICAgIHZhciB0ZXh0YXJlYSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXh0YXJlYSIpOworICAgIHRleHRhcmVhLnNjcm9sbFRvcCA9IHRleHRhcmVhLnNjcm9s
bEhlaWdodDsKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIHZhciB4ID0g
dGV4dGFyZWEub2Zmc2V0TGVmdCArIDIwOworICAgICAgICB2YXIgeSA9IHRleHRhcmVhLm9mZnNl
dFRvcCArIDg7CisgICAgICAgIGV2ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgMCk7CisgICAgfQor
ICAgIHNldFRpbWVvdXQoYXV0b3Njcm9sbFRlc3RQYXJ0MiwgMTAwKTsKK30KKworZnVuY3Rpb24g
YXV0b3Njcm9sbFRlc3RQYXJ0MigpIHsKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImxvZyIpOworICAgIHZhciBzZWxlY3RlZFRleHQgPSB3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKTsKKyAgICBpZiAoc2VsZWN0ZWRUZXh0LmluZGV4T2YoImsiKSAh
PSAtMSkKKyAgICAgICAgbG9nLmlubmVyVGV4dCA9ICJQQVNTRUQgdGhlIHNlbGVjdGlvbiBkaWQg
bm90IGp1bXAgZG93bi4iOworICAgIGVsc2UKKyAgICAgICAgbG9nLmlubmVyVGV4dCA9ICJGQUlM
RUQgdGhlIHNlbGVjdGlvbiBqdW1wZWQgZG93bi4iOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordGVzdCgpOworPC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158495</attachid>
            <date>2012-08-14 21:08:58 -0700</date>
            <delta_ts>2012-08-14 21:29:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74346-20120814211037.patch</filename>
            <type>text/plain</type>
            <size>9066</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTY0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTE0ICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IHNlbGVj
dGlvbiBpbiB0ZXh0IGFyZWEgaW4gYXV0byBzY3JvbGwgbW9kZSBnb2VzIHdyb25nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzNDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgdHJpZ2dlcnMg
YXV0b3Njcm9sbCBpbiB0ZXh0IGFyZWEgd2hlbiB0aGUgdXNlciBkcmFncyB0aGUgY3Vyc29yIGZy
b20gaW5zaWRlCisgICAgICAgIHRoZSB0ZXh0IGFyZWEgdG8gdGhlIG91dHNpZGUuIFdoZW4gdGhh
dCBoYXBwZW5zLCBpdCBnZXRzIHRoZSBsb2NhbCBjdXJzb3IgcG9zaXRpb24KKyAgICAgICAgcmVs
YXRpdmUgdG8gdGhlIG5vZGUgdW5kZXIgdGhlIGN1cnNvciBmcm9tIGhpdC10ZXN0aW5nLCBjb252
ZXJ0cyBpdCB0bworICAgICAgICB0aGUgYWJzb2x1dGUgcG9zaXRpb24sIGFuZCB0aGVuIGNvbnZl
cnRzIGl0IHRvIHRoZSBsb2NhbCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgdGV4
dCBhcmVhLiBIb3dldmVyLCB0aGUgaGl0LXRlc3RpbmcgbWV0aG9kIG9mIHRleHQgYXJlYSBkaWQg
bm90IHRha2Ugc2Nyb2xsaW5nCisgICAgICAgIG9mZnNldCBpbnRvIGFjY291bnQuIFRoaXMgY2F1
c2VkIGl0IHRvIGdpdmUgYW4gaW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBsb2NhbCBjdXJzb3IKKyAg
ICAgICAgcG9zaXRpb24uIE1ha2UgdGhlIGhpdC10ZXN0aW5nIHRha2Ugc2Nyb2xsaW5nIG9mZnNl
dCBpbnRvIGFjY291bnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1p
bi10ZXh0YXJlYS5odG1sCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpoaXRJbm5lclRl
eHRFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6aGFzTGluZUlmRW1wdHkpOgorCiAy
MDEyLTA4LTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbUmVmYWN0b3JpbmddIFJlbmRlck1lbnVMaXN0IGFuZCBSZW5kZXJMaXN0Qm94IHNob3Vs
ZCBoYXZlIGEgbWV0aG9kIHRvIHJldHVybiBIVE1MU2VsZWN0RWxlbWVudC4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcAkocmV2aXNpb24gMTI1NjQ0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDEzICsx
MDIsNyBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6ZGVmYXVsCiAKIFJlbmRl
ck9iamVjdCogVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKIHsKLSAgICBib29sIG11bHRpTGluZSA9IGZh
bHNlOwotICAgIEVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yID0gc2hhZG93SG9zdCgpOwotICAgIGlm
IChzaGFkb3dBbmNlc3RvciAmJiBzaGFkb3dBbmNlc3Rvci0+cmVuZGVyZXIoKSkgewotICAgICAg
ICBBU1NFUlQoc2hhZG93QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkgfHwgc2hh
ZG93QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEFyZWEoKSk7Ci0gICAgICAgIG11bHRpTGlu
ZSA9IHNoYWRvd0FuY2VzdG9yLT5yZW5kZXJlcigpLT5pc1RleHRBcmVhKCk7Ci0gICAgfQotICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sodGhpcywgbXVs
dGlMaW5lKTsKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKHRoaXMpOwogfQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVy
VGV4dEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCShyZXZpc2lvbiAxMjU2NDQp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTUsMTEgKzE1NSwxNCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpj
b21wdXRlTG9naWNhbEhlCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmhpdElubmVyVGV4dEVs
ZW1lbnQoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KQogewotICAgIExh
eW91dFBvaW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNldCArIGxvY2F0aW9u
KCk7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1lbnQoKTsKKyAg
ICBMYXlvdXRQb2ludCBhZGp1c3RlZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2Nh
dGlvbigpOworICAgIExheW91dFBvaW50IGxvY2FsUG9pbnQgPSBwb2ludEluQ29udGFpbmVyIC0g
dG9MYXlvdXRTaXplKGFkanVzdGVkTG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5s
b2NhdGlvbigpKTsKKyAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkpCisgICAgICAgIGxvY2FsUG9p
bnQgKz0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgcmVzdWx0LnNldElubmVyTm9kZShp
bm5lclRleHQpOwogICAgIHJlc3VsdC5zZXRJbm5lck5vblNoYXJlZE5vZGUoaW5uZXJUZXh0KTsK
LSAgICByZXN1bHQuc2V0TG9jYWxQb2ludChwb2ludEluQ29udGFpbmVyIC0gdG9MYXlvdXRTaXpl
KGFkanVzdGVkTG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5sb2NhdGlvbigpKSk7
CisgICAgcmVzdWx0LnNldExvY2FsUG9pbnQobG9jYWxQb2ludCk7CiB9CiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aFtdID0gewpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAJKHJldmlzaW9uIDEyNTY0NCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSwy
MyArNDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLVZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s6OnBvc2l0
aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQotewotICAgIExheW91dFBvaW50
IGNvbnRlbnRzUG9pbnQocG9pbnQpOwotCi0gICAgLy8gTXVsdGlsaW5lIHRleHQgY29udHJvbHMg
aGF2ZSB0aGUgc2Nyb2xsIG9uIHNoYWRvd0hvc3QsIHNvIHdlIG5lZWQgdG8gdGFrZQotICAgIC8v
IHRoYXQgaW50byBhY2NvdW50IGhlcmUuCi0gICAgaWYgKG1fbXVsdGlMaW5lKSB7Ci0gICAgICAg
IFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZSgp
LT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCkpOwotICAgICAgICBpZiAocmVuZGVyZXItPmhhc092
ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgY29udGVudHNQb2ludCArPSByZW5kZXJlci0+c2Ny
b2xsZWRDb250ZW50T2Zmc2V0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFJlbmRlckJsb2NrOjpw
b3NpdGlvbkZvclBvaW50KGNvbnRlbnRzUG9pbnQpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lKE5vZGUqIG5vZGUpCiAgICAgOiBSZW5kZXJUZXh0Q29udHJvbChub2Rl
KQogICAgICwgbV9zaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IoZmFsc2UpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oCShyZXZpc2lvbiAxMjU2NDQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCwxMyArMTEw
LDEwIEBAIHZvaWQgdG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoY29uc3QKIAogY2xhc3Mg
UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soTm9kZSogbm9kZSwgYm9vbCBpc011
bHRpTGluZSkgOiBSZW5kZXJCbG9jayhub2RlKSwgbV9tdWx0aUxpbmUoaXNNdWx0aUxpbmUpIHsg
fQorICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayhOb2RlKiBub2RlKSA6IFJlbmRlckJs
b2NrKG5vZGUpIHsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNMaW5lSWZFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBw
b3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7Ci0KLSAgICBib29sIG1fbXVsdGlM
aW5lOwogfTsKIAogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTI1NjQ0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDgtMTQgIFN1
a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFRleHQg
c2VsZWN0aW9uIGluIHRleHQgYXJlYSBpbiBhdXRvIHNjcm9sbCBtb2RlIGdvZXMgd3JvbmcuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDM0NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJlYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL2F1dG9zY3JvbGwtaW4tdGV4dGFyZWEuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDgtMTAgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZp
bGVXcml0ZXIgZmFpbHMgd2l0aCBhc3NlcnRpb24gd2hlbiB0cnlpbmcgdG8gd3JpdGUgZW1wdHkg
QmxvYgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJl
YS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0
b3Njcm9sbC1pbi10ZXh0YXJlYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACisKKworCisKK1RoaXMgdGVzdHMgYXV0b3Njcm9sbCBp
biB0ZXh0IGFyZWEgY29ycmVjdGx5IHNob3dzIHNlbGVjdGlvbiBoaWdobGlnaHQuIFRvIG1hbnVh
bGx5IHRlc3QsIHNjcm9sbCB0aGUgdGV4dCBhcmVhIGRvd24gdG8gdGhlIGVuZC4gU2xvd2x5IGRy
YWcgdXAgeW91ciBtb3VzZSBzdGFydGluZyBmcm9tIHRoZSBsaW5lIGNsb3Nlc3QgdG8gdGhlIHVw
cGVyIGVkZ2Ugb2YgdGhlIHRleHQgYXJlYS4gT25jZSB0aGUgY29udGVudHMgb2YgdGhlIHRleHQg
YXJlYSBnZXQgc2Nyb2xsZWQgYSBsaXR0bGUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIG5vdCBqdW1w
IGRvd24gdG8gdGhlIGVuZC4KKworUEFTU0VEIHRoZSBzZWxlY3Rpb24gZGlkIG5vdCBqdW1wIGRv
d24uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLXRleHRhcmVh
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1p
bi10ZXh0YXJlYS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
YXV0b3Njcm9sbC1pbi10ZXh0YXJlYS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcyIEBA
Cis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjdGV4dGFyZWEgewor
ICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgbWFyZ2luOiAwOwor
ICAgIHBhZGRpbmc6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8YnI+PGJyPjxi
cj4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIHJvd3M9IjYiPgorYQorYgorYworZAorZQorZgor
ZworaAoraQoragoraworbAorbQorbgorbworcDwvdGV4dGFyZWE+CisKKzxwPlRoaXMgdGVzdHMg
YXV0b3Njcm9sbCBpbiB0ZXh0IGFyZWEgY29ycmVjdGx5IHNob3dzIHNlbGVjdGlvbiBoaWdobGln
aHQuCitUbyBtYW51YWxseSB0ZXN0LCBzY3JvbGwgdGhlIHRleHQgYXJlYSBkb3duIHRvIHRoZSBl
bmQuCitTbG93bHkgZHJhZyB1cCB5b3VyIG1vdXNlIHN0YXJ0aW5nIGZyb20gdGhlIGxpbmUgY2xv
c2VzdCB0byB0aGUgdXBwZXIgZWRnZSBvZiB0aGUgdGV4dCBhcmVhLgorT25jZSB0aGUgY29udGVu
dHMgb2YgdGhlIHRleHQgYXJlYSBnZXQgc2Nyb2xsZWQgYSBsaXR0bGUsCit0aGUgc2VsZWN0aW9u
IHNob3VsZCBub3QganVtcCBkb3duIHRvIHRoZSBlbmQuPC9wPgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorCisvLyBU
aGUgdGV4dCBhcmVhIGRpc3BsYXlzIDYgbGluZXMgb2YgdGV4dC4gV2Ugc2Nyb2xsIGRvd24gdG8g
dGhlIGVuZAorLy8gYW5kIHN0YXJ0IGRyYWdnaW5nIHRoZSBjdXJzb3IgdXAgZnJvbSB0aGUgZmly
c3QgbGluZSB0aGF0IGFwcGVhcnMgKHRoZSBrIGxpbmUpLgorLy8gVGhlcmVmb3JlLCB0aGUgc2Vs
ZWN0aW9uIHNob3VsZCBjb250YWluIHRoZSBsZXR0ZXIgay4KK3ZhciB0ZXh0YXJlYSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpOwordGV4dGFyZWEuc2Nyb2xsVG9wID0gdGV4
dGFyZWEuc2Nyb2xsSGVpZ2h0OworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIHZhciB4
ID0gdGV4dGFyZWEub2Zmc2V0TGVmdCArIHRleHRhcmVhLm9mZnNldFdpZHRoIC8gMjsKKyAgICB2
YXIgeSA9IHRleHRhcmVhLm9mZnNldFRvcCArIDE7CisgICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUg
PSBmYWxzZTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCAwKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICB2YXIgbG9nID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImxvZyIpOworICAgIHZhciBzZWxlY3RlZFRleHQgPSB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKTsKKyAgICBpZiAoc2VsZWN0ZWRUZXh0LmluZGV4T2YoImsiKSAhPSAt
MSkKKyAgICAgICAgbG9nLmlubmVyVGV4dCA9ICJQQVNTRUQgdGhlIHNlbGVjdGlvbiBkaWQgbm90
IGp1bXAgZG93bi4iOworICAgIGVsc2UKKyAgICAgICAgbG9nLmlubmVyVGV4dCA9ICJGQUlMRUQg
dGhlIHNlbGVjdGlvbiBqdW1wZWQgZG93bi4iOworfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158497</attachid>
            <date>2012-08-14 21:29:59 -0700</date>
            <delta_ts>2012-08-14 22:21:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74346-20120814213138.patch</filename>
            <type>text/plain</type>
            <size>8972</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTY0NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTE0ICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBUZXh0IHNlbGVj
dGlvbiBpbiB0ZXh0IGFyZWEgaW4gYXV0byBzY3JvbGwgbW9kZSBnb2VzIHdyb25nLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQzNDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgdHJpZ2dlcnMg
YXV0b3Njcm9sbCBpbiB0ZXh0IGFyZWEgd2hlbiB0aGUgdXNlciBkcmFncyB0aGUgY3Vyc29yIGZy
b20gaW5zaWRlCisgICAgICAgIHRoZSB0ZXh0IGFyZWEgdG8gdGhlIG91dHNpZGUuIFdoZW4gdGhh
dCBoYXBwZW5zLCBpdCBnZXRzIHRoZSBsb2NhbCBjdXJzb3IgcG9zaXRpb24KKyAgICAgICAgcmVs
YXRpdmUgdG8gdGhlIG5vZGUgdW5kZXIgdGhlIGN1cnNvciBmcm9tIGhpdC10ZXN0aW5nLCBjb252
ZXJ0cyBpdCB0bworICAgICAgICB0aGUgYWJzb2x1dGUgcG9zaXRpb24sIGFuZCB0aGVuIGNvbnZl
cnRzIGl0IHRvIHRoZSBsb2NhbCBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgdGV4
dCBhcmVhLiBIb3dldmVyLCB0aGUgaGl0LXRlc3RpbmcgbWV0aG9kIG9mIHRleHQgYXJlYSBkaWQg
bm90IHRha2Ugc2Nyb2xsaW5nCisgICAgICAgIG9mZnNldCBpbnRvIGFjY291bnQuIFRoaXMgY2F1
c2VkIGl0IHRvIGdpdmUgYW4gaW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBsb2NhbCBjdXJzb3IKKyAg
ICAgICAgcG9zaXRpb24uIE1ha2UgdGhlIGhpdC10ZXN0aW5nIHRha2Ugc2Nyb2xsaW5nIG9mZnNl
dCBpbnRvIGFjY291bnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1p
bi10ZXh0YXJlYS5odG1sCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvbnRyb2xJbm5lclRleHRFbGVt
ZW50OjpjcmVhdGVSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpoaXRJbm5lclRl
eHRFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sSW5uZXJCbG9jazo6UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jazo6aGFzTGluZUlmRW1wdHkpOgorCiAy
MDEyLTA4LTE0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbUmVmYWN0b3JpbmddIFJlbmRlck1lbnVMaXN0IGFuZCBSZW5kZXJMaXN0Qm94IHNob3Vs
ZCBoYXZlIGEgbWV0aG9kIHRvIHJldHVybiBIVE1MU2VsZWN0RWxlbWVudC4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcAkocmV2aXNpb24gMTI1NjQ1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDEzICsx
MDIsNyBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudDo6ZGVmYXVsCiAKIFJlbmRl
ck9iamVjdCogVGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKIHsKLSAgICBib29sIG11bHRpTGluZSA9IGZh
bHNlOwotICAgIEVsZW1lbnQqIHNoYWRvd0FuY2VzdG9yID0gc2hhZG93SG9zdCgpOwotICAgIGlm
IChzaGFkb3dBbmNlc3RvciAmJiBzaGFkb3dBbmNlc3Rvci0+cmVuZGVyZXIoKSkgewotICAgICAg
ICBBU1NFUlQoc2hhZG93QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkgfHwgc2hh
ZG93QW5jZXN0b3ItPnJlbmRlcmVyKCktPmlzVGV4dEFyZWEoKSk7Ci0gICAgICAgIG11bHRpTGlu
ZSA9IHNoYWRvd0FuY2VzdG9yLT5yZW5kZXJlcigpLT5pc1RleHRBcmVhKCk7Ci0gICAgfQotICAg
IHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2sodGhpcywgbXVs
dGlMaW5lKTsKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyVGV4dENvbnRyb2xJbm5lckJs
b2NrKHRoaXMpOwogfQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBUZXh0Q29udHJvbElubmVy
VGV4dEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCShyZXZpc2lvbiAxMjU2NDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTUsMTEgKzE1NSwxNCBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpj
b21wdXRlTG9naWNhbEhlCiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmhpdElubmVyVGV4dEVs
ZW1lbnQoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNv
bnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KQogewotICAgIExh
eW91dFBvaW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNldCArIGxvY2F0aW9u
KCk7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1lbnQoKTsKKyAg
ICBMYXlvdXRQb2ludCBhZGp1c3RlZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2Nh
dGlvbigpOworICAgIExheW91dFBvaW50IGxvY2FsUG9pbnQgPSBwb2ludEluQ29udGFpbmVyIC0g
dG9MYXlvdXRTaXplKGFkanVzdGVkTG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5s
b2NhdGlvbigpKTsKKyAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkpCisgICAgICAgIGxvY2FsUG9p
bnQgKz0gc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgcmVzdWx0LnNldElubmVyTm9kZShp
bm5lclRleHQpOwogICAgIHJlc3VsdC5zZXRJbm5lck5vblNoYXJlZE5vZGUoaW5uZXJUZXh0KTsK
LSAgICByZXN1bHQuc2V0TG9jYWxQb2ludChwb2ludEluQ29udGFpbmVyIC0gdG9MYXlvdXRTaXpl
KGFkanVzdGVkTG9jYXRpb24gKyBpbm5lclRleHQtPnJlbmRlckJveCgpLT5sb2NhdGlvbigpKSk7
CisgICAgcmVzdWx0LnNldExvY2FsUG9pbnQobG9jYWxQb2ludCk7CiB9CiAKIHN0YXRpYyBjb25z
dCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aFtdID0gewpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAJKHJldmlzaW9uIDEyNTY0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSwy
MyArNDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLVZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2s6OnBvc2l0
aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQotewotICAgIExheW91dFBvaW50
IGNvbnRlbnRzUG9pbnQocG9pbnQpOwotCi0gICAgLy8gTXVsdGlsaW5lIHRleHQgY29udHJvbHMg
aGF2ZSB0aGUgc2Nyb2xsIG9uIHNoYWRvd0hvc3QsIHNvIHdlIG5lZWQgdG8gdGFrZQotICAgIC8v
IHRoYXQgaW50byBhY2NvdW50IGhlcmUuCi0gICAgaWYgKG1fbXVsdGlMaW5lKSB7Ci0gICAgICAg
IFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlciA9IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZSgp
LT5zaGFkb3dIb3N0KCktPnJlbmRlcmVyKCkpOwotICAgICAgICBpZiAocmVuZGVyZXItPmhhc092
ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgY29udGVudHNQb2ludCArPSByZW5kZXJlci0+c2Ny
b2xsZWRDb250ZW50T2Zmc2V0KCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFJlbmRlckJsb2NrOjpw
b3NpdGlvbkZvclBvaW50KGNvbnRlbnRzUG9pbnQpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6UmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lKE5vZGUqIG5vZGUpCiAgICAgOiBSZW5kZXJUZXh0Q29udHJvbChub2Rl
KQogICAgICwgbV9zaG91bGREcmF3Q2Fwc0xvY2tJbmRpY2F0b3IoZmFsc2UpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xl
TGluZS5oCShyZXZpc2lvbiAxMjU2NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTExMCwxMyArMTEw
LDEwIEBAIHZvaWQgdG9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUoY29uc3QKIAogY2xhc3Mg
UmVuZGVyVGV4dENvbnRyb2xJbm5lckJsb2NrIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1Ymxp
YzoKLSAgICBSZW5kZXJUZXh0Q29udHJvbElubmVyQmxvY2soTm9kZSogbm9kZSwgYm9vbCBpc011
bHRpTGluZSkgOiBSZW5kZXJCbG9jayhub2RlKSwgbV9tdWx0aUxpbmUoaXNNdWx0aUxpbmUpIHsg
fQorICAgIFJlbmRlclRleHRDb250cm9sSW5uZXJCbG9jayhOb2RlKiBub2RlKSA6IFJlbmRlckJs
b2NrKG5vZGUpIHsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNMaW5lSWZFbXB0
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBw
b3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7Ci0KLSAgICBib29sIG1fbXVsdGlM
aW5lOwogfTsKIAogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTI1NjQ1KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDgtMTQgIFN1
a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFRleHQg
c2VsZWN0aW9uIGluIHRleHQgYXJlYSBpbiBhdXRvIHNjcm9sbCBtb2RlIGdvZXMgd3JvbmcuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDM0NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJlYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL2F1dG9zY3JvbGwtaW4tdGV4dGFyZWEuaHRtbDogQWRkZWQuCisKIDIwMTIt
MDgtMTAgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZp
bGVXcml0ZXIgZmFpbHMgd2l0aCBhc3NlcnRpb24gd2hlbiB0cnlpbmcgdG8gd3JpdGUgZW1wdHkg
QmxvYgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1pbi10ZXh0YXJl
YS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0
b3Njcm9sbC1pbi10ZXh0YXJlYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLXRleHRhcmVhLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACisKKworCisKK1RoaXMgdGVzdHMgYXV0b3Njcm9sbCBp
biB0ZXh0IGFyZWEgY29ycmVjdGx5IHNob3dzIHNlbGVjdGlvbiBoaWdobGlnaHQuIFRvIG1hbnVh
bGx5IHRlc3QsIHNjcm9sbCB0aGUgdGV4dCBhcmVhIGRvd24gdG8gdGhlIGVuZC4gU2xvd2x5IGRy
YWcgdXAgeW91ciBtb3VzZSBzdGFydGluZyBmcm9tIHRoZSBsaW5lIGNsb3Nlc3QgdG8gdGhlIHVw
cGVyIGVkZ2Ugb2YgdGhlIHRleHQgYXJlYS4gT25jZSB0aGUgY29udGVudHMgb2YgdGhlIHRleHQg
YXJlYSBnZXQgc2Nyb2xsZWQgYSBsaXR0bGUsIHRoZSBzZWxlY3Rpb24gc2hvdWxkIG5vdCBqdW1w
IGRvd24gdG8gdGhlIGVuZC4KKworUEFTU0VEIHRoZSBzZWxlY3Rpb24gZGlkIG5vdCBqdW1wIGRv
d24uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLWluLXRleHRhcmVh
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1p
bi10ZXh0YXJlYS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
YXV0b3Njcm9sbC1pbi10ZXh0YXJlYS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjdGV4dGFyZWEgewor
ICAgIGZvbnQtc2l6ZTogMThweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgbWFyZ2luOiAwOwor
ICAgIHBhZGRpbmc6IDA7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8YnI+PGJyPjxi
cj4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIHJvd3M9IjYiPgorYQorYgorYworZAorZQorZgor
ZworaAoraQoragoraworbAorbQorbgorbworcDwvdGV4dGFyZWE+CisKKzxwPlRoaXMgdGVzdHMg
YXV0b3Njcm9sbCBpbiB0ZXh0IGFyZWEgY29ycmVjdGx5IHNob3dzIHNlbGVjdGlvbiBoaWdobGln
aHQuCitUbyBtYW51YWxseSB0ZXN0LCBzY3JvbGwgdGhlIHRleHQgYXJlYSBkb3duIHRvIHRoZSBl
bmQuCitTbG93bHkgZHJhZyB1cCB5b3VyIG1vdXNlIHN0YXJ0aW5nIGZyb20gdGhlIGxpbmUgY2xv
c2VzdCB0byB0aGUgdXBwZXIgZWRnZSBvZiB0aGUgdGV4dCBhcmVhLgorT25jZSB0aGUgY29udGVu
dHMgb2YgdGhlIHRleHQgYXJlYSBnZXQgc2Nyb2xsZWQgYSBsaXR0bGUsCit0aGUgc2VsZWN0aW9u
IHNob3VsZCBub3QganVtcCBkb3duIHRvIHRoZSBlbmQuPC9wPgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKworLy8gVGhlIHRleHQgYXJlYSBkaXNwbGF5cyA2IGxpbmVzIG9mIHRleHQu
IFdlIHNjcm9sbCBkb3duIHRvIHRoZSBlbmQKKy8vIGFuZCBzdGFydCBkcmFnZ2luZyB0aGUgY3Vy
c29yIHVwIGZyb20gdGhlIGZpcnN0IGxpbmUgdGhhdCBhcHBlYXJzICh0aGUgayBsaW5lKS4KKy8v
IFRoZXJlZm9yZSwgdGhlIHNlbGVjdGlvbiBzaG91bGQgY29udGFpbiB0aGUgbGV0dGVyIGsuCit2
YXIgdGV4dGFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKTsKK3RleHRh
cmVhLnNjcm9sbFRvcCA9IHRleHRhcmVhLnNjcm9sbEhlaWdodDsKK2lmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICB2YXIgeCA9IHRleHRhcmVhLm9mZnNldExlZnQgKyB0ZXh0YXJlYS5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgdmFyIHkgPSB0ZXh0YXJlYS5vZmZzZXRUb3AgKyAxOworICAgIGV2
ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgMCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgdmFyIGxv
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKTsKKyAgICB2YXIgc2VsZWN0ZWRUZXh0
ID0gd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7CisgICAgaWYgKHNlbGVjdGVkVGV4
dC5pbmRleE9mKCJrIikgIT0gLTEpCisgICAgICAgIGxvZy5pbm5lclRleHQgPSAiUEFTU0VEIHRo
ZSBzZWxlY3Rpb24gZGlkIG5vdCBqdW1wIGRvd24uIjsKKyAgICBlbHNlCisgICAgICAgIGxvZy5p
bm5lclRleHQgPSAiRkFJTEVEIHRoZSBzZWxlY3Rpb24ganVtcGVkIGRvd24uIjsKK30KKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>