<?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>110137</bug_id>
          
          <creation_ts>2013-02-18 09:47:44 -0800</creation_ts>
          <short_desc>Add scroll view for new calendar picker</short_desc>
          <delta_ts>2013-02-22 05:45:55 -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>Forms</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>
          <dependson>110132</dependson>
          <blocked>109439</blocked>
    
    <blocked>110140</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835577</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-18 09:47:44 -0800</bug_when>
    <thetext>Add scroll view for new calendar picker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835588</commentid>
    <comment_count>1</comment_count>
      <attachid>188913</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-18 10:00:47 -0800</bug_when>
    <thetext>Created attachment 188913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838369</commentid>
    <comment_count>2</comment_count>
      <attachid>188913</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-21 06:08:55 -0800</bug_when>
    <thetext>Comment on attachment 188913
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        No new tests. Code not yet used.

Please mention this is a part of Bug 109439.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:895
&gt; +    this.element.$view = this;

I don&apos;t like to add non-standard property to the standard DOM node.  However it would be acceptable if there are no other efficient ways.
Anyway, you should mention this trick in a comment.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:966
&gt; +    this.contentElement = createElement(&quot;div&quot;, &quot;scroll-view-content&quot;);
&gt; +    this.element.appendChild(this.contentElement);
&gt; +    this.minimumContentOffset = -Infinity;
&gt; +    this.maximumContentOffset = Infinity;
&gt; +    this._contentOffset = 0;
&gt; +    this._width = 0;
&gt; +    this._height = 0;
&gt; +    this._scrollAnimator = new Animator();
&gt; +    this._scrollAnimator.step = this.onScrollAnimatorStep;
&gt; +
&gt; +    this.element.addEventListener(&quot;mousewheel&quot;, this.onMouseWheel, false);
&gt; +
&gt; +    // The content offset is partitioned so the it can go beyond the CSS limit
&gt; +    // of 33554433px.
&gt; +    this._partitionNumber = 0;

* should declare this.delegate in the constructor.
* I recommend to add JsDoc comments to each of data members.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:982
&gt; +    this.element.style.width = width + &quot;px&quot;;
&gt; +    if (this._width === width)
&gt; +        return;
&gt; +    this._width = width;
&gt; +    this.element.style.width = this._width + &quot;px&quot;;

You update this.element.style.width twice.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1078
&gt; +    if (this.delegate)
&gt; +        this.delegate.scrollViewDidChangeContentOffset(this);
&gt; +    if (partitionChanged) {
&gt; +        if (this.delegate)
&gt; +            this.delegate.scrollViewDidChangePartition(this);
&gt; +    }

You can wrap this block by one &quot;if (this.delegate)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839412</commentid>
    <comment_count>3</comment_count>
      <attachid>189727</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-22 02:30:09 -0800</bug_when>
    <thetext>Created attachment 189727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839449</commentid>
    <comment_count>4</comment_count>
      <attachid>189727</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-22 04:03:13 -0800</bug_when>
    <thetext>Comment on attachment 189727
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +
&gt; +        No new tests. Code not yet used.

Please mention this is a part of Bug 109439.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:906
&gt; +    // Adding property to DOM node so we can access the View instance from Event.target.

This information should be provided to users of this class. So you should add this comment to the JsDoc comment.

&gt; Source/WebCore/Resources/pagepopups/calendarPicker.js:1003
&gt; +     this.delegate = null;

wrong indentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839462</commentid>
    <comment_count>5</comment_count>
      <attachid>189746</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2013-02-22 04:38:49 -0800</bug_when>
    <thetext>Created attachment 189746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839513</commentid>
    <comment_count>6</comment_count>
      <attachid>189746</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 05:45:52 -0800</bug_when>
    <thetext>Comment on attachment 189746
Patch

Clearing flags on attachment: 189746

Committed r143723: &lt;http://trac.webkit.org/changeset/143723&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839514</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-22 05:45:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188913</attachid>
            <date>2013-02-18 10:00:47 -0800</date>
            <delta_ts>2013-02-22 02:30:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>scrollfield.diff</filename>
            <type>text/plain</type>
            <size>7734</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZGE3ZTg3Li43MTYwOTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTMtMDItMTggIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWRkIHNjcm9sbCB2aWV3IGZvciBuZXcgY2FsZW5kYXIgcGlja2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvZGUg
bm90IHlldCB1c2VkLgorCisgICAgICAgICogUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQ
aWNrZXIuanM6CisgICAgICAgIChWaWV3KToKKyAgICAgICAgKFZpZXcucHJvdG90eXBlLm9mZnNl
dFJlbGF0aXZlVG8pOiBSZXR1cm5zIHRoZSBvZmZzZXQgcG9zaXRpb24gb2YgdGhpcyB2aWV3IHJl
bGF0aXZlIHRvIHRoZSBnaXZlbiBhbmNlc3RvciBlbGVtZW50LgorICAgICAgICAoVmlldy5wcm90
b3R5cGUuYXR0YWNoVG8pOiBBdHRhY2hlcyB2aWV3IHRvIGEgbm9kZSBvciB2aWV3LgorICAgICAg
ICAoVmlldy5wcm90b3R5cGUuYmluZENhbGxiYWNrTWV0aG9kcyk6IEJpbmRzIGFsbCBtZXRob2Rz
IHN0YXJ0aW5nIHdpdGggIm9uIiB0byB0aGlzLgorICAgICAgICAoU2Nyb2xsVmlldyk6IEEgY3Vz
dG9tIHNjcm9sbCB2aWV3IHRoYXQgY2FuIGNvbnRhaW4gZXh0cmVtZWx5IGxvbmcgY29udGVudC4g
Q1NTIHZhbHVlcworICAgICAgICBoYXZlIGEgbGltaXQuIFRoaXMgZ29lcyBiZXlvbmQgdGhhdCAK
KyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLnNldFdpZHRoKTogU2V0cyB0aGUgdmlldyB3
aWR0aC4KKyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLndpZHRoKToKKyAgICAgICAgKFNj
cm9sbFZpZXcucHJvdG90eXBlLnNldEhlaWdodCk6IFNldHMgdGhlIHZpZXcgaGVpZ2h0LgorICAg
ICAgICAoU2Nyb2xsVmlldy5wcm90b3R5cGUuaGVpZ2h0KToKKyAgICAgICAgKFNjcm9sbFZpZXcu
cHJvdG90eXBlLm9uU2Nyb2xsQW5pbWF0b3JTdGVwKTogQ2FsbGJhY2sgZm9yIHNjcm9sbCBhbmlt
YXRvciBzdGVwLgorICAgICAgICAoU2Nyb2xsVmlldy5wcm90b3R5cGUuc2Nyb2xsVG8pOiBTY3Jv
bGxzIHRvIGEgY2VydGFpbiBvZmZzZXQuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5z
Y3JvbGxCeSk6IFNjcm9sbHMgYnkgYSBjZXJ0YWluIGFtb3VudC4KKyAgICAgICAgKFNjcm9sbFZp
ZXcucHJvdG90eXBlLmNvbnRlbnRPZmZzZXQpOiBDdXJyZW50IGNvbnRlbnQgb2Zmc2V0LgorICAg
ICAgICAoU2Nyb2xsVmlldy5wcm90b3R5cGUub25Nb3VzZVdoZWVsKTogU2Nyb2xsIHdpdGggdGhl
IG1vdXNlIHdoZWVsLgorICAgICAgICAoU2Nyb2xsVmlldy5wcm90b3R5cGUuc2V0Q29udGVudE9m
ZnNldCk6IFNldHMgdGhlIGNvbnRlbnQgb2Zmc2V0LgorICAgICAgICAoU2Nyb2xsVmlldy5wcm90
b3R5cGUuY29udGVudFBvc2l0aW9uRm9yQ29udGVudE9mZnNldCk6IFJldHVybnMgd2hlcmUgdGhl
IGNvbnRlbnQgZWxlbWVudCBzaG91bGQgYmUgcG9zaXRpb25lZC4KKwogMjAxMy0wMi0xOSAgS2Vp
c2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgYW5pbWF0aW9u
IGNsYXNzIGZvciBuZXcgY2FsZW5kYXIgcGlja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IDA5MDBjYjAuLjNj
NGFmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2Nh
bGVuZGFyUGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBz
L2NhbGVuZGFyUGlja2VyLmpzCkBAIC04ODYsNiArODg2LDIwNyBAQCBBbmltYXRvci5wcm90b3R5
cGUub25BbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uKG5vdykgewogCiAvKioKICAqIEBjb25zdHJ1
Y3RvcgorICogQGV4dGVuZHMgRXZlbnRFbWl0dGVyCisgKiBAcGFyYW0gez9FbGVtZW50fSBlbGVt
ZW50CisgKi8KK2Z1bmN0aW9uIFZpZXcoZWxlbWVudCkgeworICAgIEV2ZW50RW1pdHRlci5jYWxs
KHRoaXMpOworICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQgfHwgY3JlYXRlRWxlbWVudCgiZGl2
Iik7CisgICAgdGhpcy5lbGVtZW50LiR2aWV3ID0gdGhpczsKKyAgICB0aGlzLmJpbmRDYWxsYmFj
a01ldGhvZHMoKTsKK30KKworVmlldy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEV2ZW50RW1p
dHRlci5wcm90b3R5cGUpOworCisvKioKKyAqIEBwYXJhbSB7IUVsZW1lbnR9IGFuY2VzdG9yRWxl
bWVudAorICogQHJldHVybiB7P09iamVjdH0KKyAqLworVmlldy5wcm90b3R5cGUub2Zmc2V0UmVs
YXRpdmVUbyA9IGZ1bmN0aW9uKGFuY2VzdG9yRWxlbWVudCkgeworICAgIHZhciB4ID0gMDsKKyAg
ICB2YXIgeSA9IDA7CisgICAgdmFyIGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQ7CisgICAgd2hpbGUg
KGVsZW1lbnQpIHsKKyAgICAgICAgeCArPSBlbGVtZW50Lm9mZnNldExlZnQgIHx8IDA7CisgICAg
ICAgIHkgKz0gZWxlbWVudC5vZmZzZXRUb3AgfHwgMDsKKyAgICAgICAgZWxlbWVudCA9IGVsZW1l
bnQub2Zmc2V0UGFyZW50OworICAgICAgICBpZiAoZWxlbWVudCA9PT0gYW5jZXN0b3JFbGVtZW50
KQorICAgICAgICAgICAgcmV0dXJuIHt4OiB4LCB5OiB5fTsKKyAgICB9CisgICAgcmV0dXJuIG51
bGw7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IVZpZXd8Tm9kZX0gcGFyZW50CisgKiBAcGFyYW0g
ez9WaWV3fE5vZGU9fSBiZWZvcmUKKyAqLworVmlldy5wcm90b3R5cGUuYXR0YWNoVG8gPSBmdW5j
dGlvbihwYXJlbnQsIGJlZm9yZSkgeworICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBWaWV3KQor
ICAgICAgICByZXR1cm4gdGhpcy5hdHRhY2hUbyhwYXJlbnQuZWxlbWVudCwgYmVmb3JlKTsKKyAg
ICBpZiAodHlwZW9mIGJlZm9yZSA9PT0gInVuZGVmaW5lZCIpCisgICAgICAgIGJlZm9yZSA9IG51
bGw7CisgICAgaWYgKGJlZm9yZSBpbnN0YW5jZW9mIFZpZXcpCisgICAgICAgIGJlZm9yZSA9IGJl
Zm9yZS5lbGVtZW50OworICAgIHBhcmVudC5pbnNlcnRCZWZvcmUodGhpcy5lbGVtZW50LCBiZWZv
cmUpOworfTsKKworVmlldy5wcm90b3R5cGUuYmluZENhbGxiYWNrTWV0aG9kcyA9IGZ1bmN0aW9u
KCkgeworICAgIGZvciAodmFyIG1ldGhvZE5hbWUgaW4gdGhpcykgeworICAgICAgICBpZiAoIS9e
b25bQS1aXS8udGVzdChtZXRob2ROYW1lKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBpZiAodGhpcy5oYXNPd25Qcm9wZXJ0eShtZXRob2ROYW1lKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICB2YXIgbWV0aG9kID0gdGhpc1ttZXRob2ROYW1lXTsKKyAgICAgICAgaWYg
KCEobWV0aG9kIGluc3RhbmNlb2YgRnVuY3Rpb24pKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIHRoaXNbbWV0aG9kTmFtZV0gPSBtZXRob2QuYmluZCh0aGlzKTsKKyAgICB9Cit9Owor
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMgVmlldworICovCitmdW5jdGlvbiBT
Y3JvbGxWaWV3KCkgeworICAgIFZpZXcuY2FsbCh0aGlzLCBjcmVhdGVFbGVtZW50KCJkaXYiLCAi
c2Nyb2xsLXZpZXciKSk7CisgICAgdGhpcy5jb250ZW50RWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQo
ImRpdiIsICJzY3JvbGwtdmlldy1jb250ZW50Iik7CisgICAgdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuY29udGVudEVsZW1lbnQpOworICAgIHRoaXMubWluaW11bUNvbnRlbnRPZmZzZXQg
PSAtSW5maW5pdHk7CisgICAgdGhpcy5tYXhpbXVtQ29udGVudE9mZnNldCA9IEluZmluaXR5Owor
ICAgIHRoaXMuX2NvbnRlbnRPZmZzZXQgPSAwOworICAgIHRoaXMuX3dpZHRoID0gMDsKKyAgICB0
aGlzLl9oZWlnaHQgPSAwOworICAgIHRoaXMuX3Njcm9sbEFuaW1hdG9yID0gbmV3IEFuaW1hdG9y
KCk7CisgICAgdGhpcy5fc2Nyb2xsQW5pbWF0b3Iuc3RlcCA9IHRoaXMub25TY3JvbGxBbmltYXRv
clN0ZXA7CisKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIs
IHRoaXMub25Nb3VzZVdoZWVsLCBmYWxzZSk7CisKKyAgICAvLyBUaGUgY29udGVudCBvZmZzZXQg
aXMgcGFydGl0aW9uZWQgc28gdGhlIGl0IGNhbiBnbyBiZXlvbmQgdGhlIENTUyBsaW1pdAorICAg
IC8vIG9mIDMzNTU0NDMzcHguCisgICAgdGhpcy5fcGFydGl0aW9uTnVtYmVyID0gMDsKK30KKwor
U2Nyb2xsVmlldy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFZpZXcucHJvdG90eXBlKTsKKwor
U2Nyb2xsVmlldy5QYXJ0aXRpb25IZWlnaHQgPSAxMDAwMDA7CisKKy8qKgorICogQHBhcmFtIHsh
bnVtYmVyfSB3aWR0aAorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5zZXRXaWR0aCA9IGZ1bmN0
aW9uKHdpZHRoKSB7CisgICAgY29uc29sZS5hc3NlcnQoaXNGaW5pdGUod2lkdGgpKTsKKyAgICB0
aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICJweCI7CisgICAgaWYgKHRoaXMuX3dp
ZHRoID09PSB3aWR0aCkKKyAgICAgICAgcmV0dXJuOworICAgIHRoaXMuX3dpZHRoID0gd2lkdGg7
CisgICAgdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5fd2lkdGggKyAicHgiOworfTsK
KworLyoqCisgKiBAcmV0dXJuIHshbnVtYmVyfQorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS53
aWR0aCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLl93aWR0aDsKK307CisKKy8qKgor
ICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQKKyAqLworU2Nyb2xsVmlldy5wcm90b3R5cGUuc2V0
SGVpZ2h0ID0gZnVuY3Rpb24oaGVpZ2h0KSB7CisgICAgY29uc29sZS5hc3NlcnQoaXNGaW5pdGUo
aGVpZ2h0KSk7CisgICAgaWYgKHRoaXMuX2hlaWdodCA9PT0gaGVpZ2h0KQorICAgICAgICByZXR1
cm47CisgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgIHRoaXMuZWxlbWVudC5zdHlsZS5o
ZWlnaHQgPSBoZWlnaHQgKyAicHgiOworICAgIGlmICh0aGlzLmRlbGVnYXRlKQorICAgICAgICB0
aGlzLmRlbGVnYXRlLnNjcm9sbFZpZXdEaWRDaGFuZ2VIZWlnaHQodGhpcyk7Cit9OworCisvKioK
KyAqIEByZXR1cm4geyFudW1iZXJ9CisgKi8KK1Njcm9sbFZpZXcucHJvdG90eXBlLmhlaWdodCA9
IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7Cit9OworCisvKioKKyAqIEBw
YXJhbSB7IUFuaW1hdG9yfSBhbmltYXRvcgorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5vblNj
cm9sbEFuaW1hdG9yU3RlcCA9IGZ1bmN0aW9uKGFuaW1hdG9yKSB7CisgICAgdGhpcy5zZXRDb250
ZW50T2Zmc2V0KGFuaW1hdG9yLmN1cnJlbnRWYWx1ZSk7Cit9OworCisvKioKKyAqIEBwYXJhbSB7
IW51bWJlcn0gb2Zmc2V0CisgKiBAcGFyYW0gez9ib29sZWFufSBhbmltYXRlCisgKi8KK1Njcm9s
bFZpZXcucHJvdG90eXBlLnNjcm9sbFRvID0gZnVuY3Rpb24ob2Zmc2V0LCBhbmltYXRlKSB7Cisg
ICAgY29uc29sZS5hc3NlcnQoaXNGaW5pdGUob2Zmc2V0KSk7CisgICAgaWYgKCFhbmltYXRlKSB7
CisgICAgICAgIHRoaXMuc2V0Q29udGVudE9mZnNldChvZmZzZXQpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIHRoaXMuX3Njcm9sbEFuaW1hdG9yLnNldEZyb20odGhpcy5fY29udGVudE9m
ZnNldCk7CisgICAgdGhpcy5fc2Nyb2xsQW5pbWF0b3Iuc2V0VG8ob2Zmc2V0KTsKKyAgICB0aGlz
Ll9zY3JvbGxBbmltYXRvci5kdXJhdGlvbiA9IDMwMDsKKyAgICB0aGlzLl9zY3JvbGxBbmltYXRv
ci5zdGFydCgpOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IG9mZnNldAorICogQHBh
cmFtIHs/Ym9vbGVhbn0gYW5pbWF0ZQorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5zY3JvbGxC
eSA9IGZ1bmN0aW9uKG9mZnNldCwgYW5pbWF0ZSkgeworICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5f
Y29udGVudE9mZnNldCArIG9mZnNldCwgYW5pbWF0ZSk7Cit9OworCisvKioKKyAqIEByZXR1cm4g
eyFudW1iZXJ9CisgKi8KK1Njcm9sbFZpZXcucHJvdG90eXBlLmNvbnRlbnRPZmZzZXQgPSBmdW5j
dGlvbigpIHsKKyAgICByZXR1cm4gdGhpcy5fY29udGVudE9mZnNldDsKK307CisKKy8qKgorICog
QHBhcmFtIHs/RXZlbnR9IGV2ZW50CisgKi8KK1Njcm9sbFZpZXcucHJvdG90eXBlLm9uTW91c2VX
aGVlbCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdGhpcy5zZXRDb250ZW50T2Zmc2V0KHRoaXMu
X2NvbnRlbnRPZmZzZXQgLSBldmVudC53aGVlbERlbHRhIC8gMzApOworICAgIGV2ZW50LnN0b3BQ
cm9wYWdhdGlvbigpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9OworCisKKy8qKgor
ICogQHBhcmFtIHshbnVtYmVyfSB2YWx1ZQorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5zZXRD
b250ZW50T2Zmc2V0ID0gZnVuY3Rpb24odmFsdWUpIHsKKyAgICBjb25zb2xlLmFzc2VydChpc0Zp
bml0ZSh2YWx1ZSkpOworICAgIHZhbHVlID0gTWF0aC5taW4odGhpcy5tYXhpbXVtQ29udGVudE9m
ZnNldCAtIHRoaXMuX2hlaWdodCwgTWF0aC5tYXgodGhpcy5taW5pbXVtQ29udGVudE9mZnNldCwg
TWF0aC5mbG9vcih2YWx1ZSkpKTsKKyAgICBpZiAodGhpcy5fY29udGVudE9mZnNldCA9PT0gdmFs
dWUpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgbmV3UGFydGl0aW9uTnVtYmVyID0gTWF0aC5m
bG9vcih2YWx1ZSAvIFNjcm9sbFZpZXcuUGFydGl0aW9uSGVpZ2h0KTsgICAgCisgICAgdmFyIHBh
cnRpdGlvbkNoYW5nZWQgPSB0aGlzLl9wYXJ0aXRpb25OdW1iZXIgIT09IG5ld1BhcnRpdGlvbk51
bWJlcjsKKyAgICB0aGlzLl9wYXJ0aXRpb25OdW1iZXIgPSBuZXdQYXJ0aXRpb25OdW1iZXI7Cisg
ICAgdGhpcy5fY29udGVudE9mZnNldCA9IHZhbHVlOworICAgIHRoaXMuY29udGVudEVsZW1lbnQu
c3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZSgwLCAiICsgKC10aGlzLmNvbnRlbnRQ
b3NpdGlvbkZvckNvbnRlbnRPZmZzZXQodGhpcy5fY29udGVudE9mZnNldCkpICsgInB4KSI7Cisg
ICAgaWYgKHRoaXMuZGVsZWdhdGUpCisgICAgICAgIHRoaXMuZGVsZWdhdGUuc2Nyb2xsVmlld0Rp
ZENoYW5nZUNvbnRlbnRPZmZzZXQodGhpcyk7CisgICAgaWYgKHBhcnRpdGlvbkNoYW5nZWQpIHsK
KyAgICAgICAgaWYgKHRoaXMuZGVsZWdhdGUpCisgICAgICAgICAgICB0aGlzLmRlbGVnYXRlLnNj
cm9sbFZpZXdEaWRDaGFuZ2VQYXJ0aXRpb24odGhpcyk7CisgICAgfQorfTsKKworLyoqCisgKiBA
cGFyYW0geyFudW1iZXJ9IG9mZnNldAorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5jb250ZW50
UG9zaXRpb25Gb3JDb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CisgICAgcmV0dXJu
IG9mZnNldCAtIHRoaXMuX3BhcnRpdGlvbk51bWJlciAqIFNjcm9sbFZpZXcuUGFydGl0aW9uSGVp
Z2h0OworfTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7IUVsZW1lbnR9IGVs
ZW1lbnQKICAqIEBwYXJhbSB7IU9iamVjdH0gY29uZmlnCiAgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189727</attachid>
            <date>2013-02-22 02:30:09 -0800</date>
            <delta_ts>2013-02-22 04:38:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110137-20130222192628.patch</filename>
            <type>text/plain</type>
            <size>8640</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg5NmNlNDNiODI0NmIy
YTE5MDI0NDBiMzhlZWVkMjE2MzA1NWRjYS4uYzQxZmIxMjdkZWFmMTk0NmUyNjYzNjJhOWVlMGM3
MTZjMzg0YjU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTIyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzY3JvbGwgdmll
dyBmb3IgbmV3IGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb2RlIG5vdCB5ZXQgdXNlZC4KKworICAg
ICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAo
Vmlldyk6CisgICAgICAgIChWaWV3LnByb3RvdHlwZS5vZmZzZXRSZWxhdGl2ZVRvKTogUmV0dXJu
cyB0aGUgb2Zmc2V0IHBvc2l0aW9uIG9mIHRoaXMgdmlldyByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4g
YW5jZXN0b3IgZWxlbWVudC4KKyAgICAgICAgKFZpZXcucHJvdG90eXBlLmF0dGFjaFRvKTogQXR0
YWNoZXMgdmlldyB0byBhIG5vZGUgb3Igdmlldy4KKyAgICAgICAgKFZpZXcucHJvdG90eXBlLmJp
bmRDYWxsYmFja01ldGhvZHMpOiBCaW5kcyBhbGwgbWV0aG9kcyBzdGFydGluZyB3aXRoICJvbiIg
dG8gdGhpcy4KKyAgICAgICAgKFNjcm9sbFZpZXcpOiBBIGN1c3RvbSBzY3JvbGwgdmlldyB0aGF0
IGNhbiBjb250YWluIGV4dHJlbWVseSBsb25nIGNvbnRlbnQuIENTUyB2YWx1ZXMgaGF2ZSBhIGxp
bWl0LiBUaGlzIGNhbiBnbyBiZXlvbmQgdGhhdC4KKyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90
eXBlLnNldFdpZHRoKTogU2V0cyB0aGUgdmlldyB3aWR0aC4KKyAgICAgICAgKFNjcm9sbFZpZXcu
cHJvdG90eXBlLndpZHRoKToKKyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLnNldEhlaWdo
dCk6U2V0cyB0aGUgdmlldyBoZWlnaHQuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5o
ZWlnaHQpOgorICAgICAgICAoU2Nyb2xsVmlldy5wcm90b3R5cGUub25TY3JvbGxBbmltYXRvclN0
ZXApOiBDYWxsYmFjayBmb3Igc2Nyb2xsIGFuaW1hdG9yIHN0ZXAuCisgICAgICAgIChTY3JvbGxW
aWV3LnByb3RvdHlwZS5zY3JvbGxUbyk6IFNjcm9sbHMgdG8gYSBjZXJ0YWluIG9mZnNldC4KKyAg
ICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLnNjcm9sbEJ5KTogU2Nyb2xscyBieSBhIGNlcnRh
aW4gYW1vdW50LgorICAgICAgICAoU2Nyb2xsVmlldy5wcm90b3R5cGUuY29udGVudE9mZnNldCk6
IEN1cnJlbnQgY29udGVudCBvZmZzZXQuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5v
bk1vdXNlV2hlZWwpOiBTY3JvbGwgd2l0aCB0aGUgbW91c2Ugd2hlZWwuCisgICAgICAgIChTY3Jv
bGxWaWV3LnByb3RvdHlwZS5zZXRDb250ZW50T2Zmc2V0KTogU2V0cyB0aGUgY29udGVudCBvZmZz
ZXQuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5jb250ZW50UG9zaXRpb25Gb3JDb250
ZW50T2Zmc2V0KTogUmV0dXJucyB3aGVyZSB0aGUgY29udGVudCBlbGVtZW50IHNob3VsZCBiZSBw
b3NpdGlvbmVkLgorCiAyMDEzLTAyLTIxICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4K
IAogICAgICAgICBGb2xsb3d1cCBjb21taXQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTA1NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNl
cy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2Vz
L3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKaW5kZXggYzEyMjk1Y2YzMWJiODlmZGFlZDdi
OGE1MTc3ODVkZmQ2MjY4MGY5Ny4uZTVkODJlZjkxZWQxODg1NTUzZjI3OTZjN2ZlMzZiZjIxZDM4
MWNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2Fs
ZW5kYXJQaWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMv
Y2FsZW5kYXJQaWNrZXIuanMKQEAgLTg5Myw2ICs4OTMsMjQ3IEBAIEFuaW1hdG9yLnByb3RvdHlw
ZS5vbkFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24obm93KSB7CiAKIC8qKgogICogQGNvbnN0cnVj
dG9yCisgKiBAZXh0ZW5kcyBFdmVudEVtaXR0ZXIKKyAqIEBwYXJhbSB7P0VsZW1lbnR9IGVsZW1l
bnQKKyAqLworZnVuY3Rpb24gVmlldyhlbGVtZW50KSB7CisgICAgRXZlbnRFbWl0dGVyLmNhbGwo
dGhpcyk7CisgICAgLyoqCisgICAgICogQHR5cGUge0VsZW1lbnR9CisgICAgICogQGNvbnN0Cisg
ICAgICovCisgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudCB8fCBjcmVhdGVFbGVtZW50KCJkaXYi
KTsKKyAgICAvLyBBZGRpbmcgcHJvcGVydHkgdG8gRE9NIG5vZGUgc28gd2UgY2FuIGFjY2VzcyB0
aGUgVmlldyBpbnN0YW5jZSBmcm9tIEV2ZW50LnRhcmdldC4KKyAgICB0aGlzLmVsZW1lbnQuJHZp
ZXcgPSB0aGlzOworICAgIHRoaXMuYmluZENhbGxiYWNrTWV0aG9kcygpOworfQorCitWaWV3LnBy
b3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoRXZlbnRFbWl0dGVyLnByb3RvdHlwZSk7CisKKy8qKgor
ICogQHBhcmFtIHshRWxlbWVudH0gYW5jZXN0b3JFbGVtZW50CisgKiBAcmV0dXJuIHs/T2JqZWN0
fQorICovCitWaWV3LnByb3RvdHlwZS5vZmZzZXRSZWxhdGl2ZVRvID0gZnVuY3Rpb24oYW5jZXN0
b3JFbGVtZW50KSB7CisgICAgdmFyIHggPSAwOworICAgIHZhciB5ID0gMDsKKyAgICB2YXIgZWxl
bWVudCA9IHRoaXMuZWxlbWVudDsKKyAgICB3aGlsZSAoZWxlbWVudCkgeworICAgICAgICB4ICs9
IGVsZW1lbnQub2Zmc2V0TGVmdCAgfHwgMDsKKyAgICAgICAgeSArPSBlbGVtZW50Lm9mZnNldFRv
cCB8fCAwOworICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQ7CisgICAgICAg
IGlmIChlbGVtZW50ID09PSBhbmNlc3RvckVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm4ge3g6
IHgsIHk6IHl9OworICAgIH0KKyAgICByZXR1cm4gbnVsbDsKK307CisKKy8qKgorICogQHBhcmFt
IHshVmlld3xOb2RlfSBwYXJlbnQKKyAqIEBwYXJhbSB7P1ZpZXd8Tm9kZT19IGJlZm9yZQorICov
CitWaWV3LnByb3RvdHlwZS5hdHRhY2hUbyA9IGZ1bmN0aW9uKHBhcmVudCwgYmVmb3JlKSB7Cisg
ICAgaWYgKHBhcmVudCBpbnN0YW5jZW9mIFZpZXcpCisgICAgICAgIHJldHVybiB0aGlzLmF0dGFj
aFRvKHBhcmVudC5lbGVtZW50LCBiZWZvcmUpOworICAgIGlmICh0eXBlb2YgYmVmb3JlID09PSAi
dW5kZWZpbmVkIikKKyAgICAgICAgYmVmb3JlID0gbnVsbDsKKyAgICBpZiAoYmVmb3JlIGluc3Rh
bmNlb2YgVmlldykKKyAgICAgICAgYmVmb3JlID0gYmVmb3JlLmVsZW1lbnQ7CisgICAgcGFyZW50
Lmluc2VydEJlZm9yZSh0aGlzLmVsZW1lbnQsIGJlZm9yZSk7Cit9OworCitWaWV3LnByb3RvdHlw
ZS5iaW5kQ2FsbGJhY2tNZXRob2RzID0gZnVuY3Rpb24oKSB7CisgICAgZm9yICh2YXIgbWV0aG9k
TmFtZSBpbiB0aGlzKSB7CisgICAgICAgIGlmICghL15vbltBLVpdLy50ZXN0KG1ldGhvZE5hbWUp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICh0aGlzLmhhc093blByb3BlcnR5
KG1ldGhvZE5hbWUpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHZhciBtZXRob2Qg
PSB0aGlzW21ldGhvZE5hbWVdOworICAgICAgICBpZiAoIShtZXRob2QgaW5zdGFuY2VvZiBGdW5j
dGlvbikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgdGhpc1ttZXRob2ROYW1lXSA9
IG1ldGhvZC5iaW5kKHRoaXMpOworICAgIH0KK307CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisg
KiBAZXh0ZW5kcyBWaWV3CisgKi8KK2Z1bmN0aW9uIFNjcm9sbFZpZXcoKSB7CisgICAgVmlldy5j
YWxsKHRoaXMsIGNyZWF0ZUVsZW1lbnQoImRpdiIsIFNjcm9sbFZpZXcuQ2xhc3NOYW1lU2Nyb2xs
VmlldykpOworICAgIC8qKgorICAgICAqIEB0eXBlIHtFbGVtZW50fQorICAgICAqIEBjb25zdAor
ICAgICAqLworICAgIHRoaXMuY29udGVudEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCJkaXYiLCBT
Y3JvbGxWaWV3LkNsYXNzTmFtZVNjcm9sbFZpZXdDb250ZW50KTsKKyAgICB0aGlzLmVsZW1lbnQu
YXBwZW5kQ2hpbGQodGhpcy5jb250ZW50RWxlbWVudCk7CisgICAgLyoqCisgICAgICogQHR5cGUg
e251bWJlcn0KKyAgICAgKi8KKyAgICB0aGlzLm1pbmltdW1Db250ZW50T2Zmc2V0ID0gLUluZmlu
aXR5OworICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICovCisgICAgdGhpcy5t
YXhpbXVtQ29udGVudE9mZnNldCA9IEluZmluaXR5OworICAgIC8qKgorICAgICAqIEB0eXBlIHtu
dW1iZXJ9CisgICAgICogQHByb3RlY3RlZAorICAgICAqLworICAgIHRoaXMuX2NvbnRlbnRPZmZz
ZXQgPSAwOworICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICogQHByb3RlY3Rl
ZAorICAgICAqLworICAgIHRoaXMuX3dpZHRoID0gMDsKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7
bnVtYmVyfQorICAgICAqIEBwcm90ZWN0ZWQKKyAgICAgKi8KKyAgICB0aGlzLl9oZWlnaHQgPSAw
OworICAgIC8qKgorICAgICAqIEB0eXBlIHtBbmltYXRvcn0KKyAgICAgKiBAcHJvdGVjdGVkCisg
ICAgICovCisgICAgdGhpcy5fc2Nyb2xsQW5pbWF0b3IgPSBuZXcgQW5pbWF0b3IoKTsKKyAgICB0
aGlzLl9zY3JvbGxBbmltYXRvci5zdGVwID0gdGhpcy5vblNjcm9sbEFuaW1hdG9yU3RlcDsKKwor
ICAgIC8qKgorICAgICAqIEB0eXBlIHs/T2JqZWN0fQorICAgICAqLworICAgICB0aGlzLmRlbGVn
YXRlID0gbnVsbDsKKworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXdo
ZWVsIiwgdGhpcy5vbk1vdXNlV2hlZWwsIGZhbHNlKTsKKworICAgIC8qKgorICAgICAqIFRoZSBj
b250ZW50IG9mZnNldCBpcyBwYXJ0aXRpb25lZCBzbyB0aGUgaXQgY2FuIGdvIGJleW9uZCB0aGUg
Q1NTIGxpbWl0CisgICAgICogb2YgMzM1NTQ0MzNweC4KKyAgICAgKiBAdHlwZSB7bnVtYmVyfQor
ICAgICAqIEBwcm90ZWN0ZWQKKyAgICAgKi8KKyAgICB0aGlzLl9wYXJ0aXRpb25OdW1iZXIgPSAw
OworfQorCitTY3JvbGxWaWV3LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoVmlldy5wcm90b3R5
cGUpOworCitTY3JvbGxWaWV3LlBhcnRpdGlvbkhlaWdodCA9IDEwMDAwMDsKK1Njcm9sbFZpZXcu
Q2xhc3NOYW1lU2Nyb2xsVmlldyA9ICJzY3JvbGwtdmlldyI7CitTY3JvbGxWaWV3LkNsYXNzTmFt
ZVNjcm9sbFZpZXdDb250ZW50ID0gInNjcm9sbC12aWV3LWNvbnRlbnQiOworCisvKioKKyAqIEBw
YXJhbSB7IW51bWJlcn0gd2lkdGgKKyAqLworU2Nyb2xsVmlldy5wcm90b3R5cGUuc2V0V2lkdGgg
PSBmdW5jdGlvbih3aWR0aCkgeworICAgIGNvbnNvbGUuYXNzZXJ0KGlzRmluaXRlKHdpZHRoKSk7
CisgICAgaWYgKHRoaXMuX3dpZHRoID09PSB3aWR0aCkKKyAgICAgICAgcmV0dXJuOworICAgIHRo
aXMuX3dpZHRoID0gd2lkdGg7CisgICAgdGhpcy5lbGVtZW50LnN0eWxlLndpZHRoID0gdGhpcy5f
d2lkdGggKyAicHgiOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshbnVtYmVyfQorICovCitTY3Jv
bGxWaWV3LnByb3RvdHlwZS53aWR0aCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLl93
aWR0aDsKK307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQKKyAqLworU2Nyb2xs
Vmlldy5wcm90b3R5cGUuc2V0SGVpZ2h0ID0gZnVuY3Rpb24oaGVpZ2h0KSB7CisgICAgY29uc29s
ZS5hc3NlcnQoaXNGaW5pdGUoaGVpZ2h0KSk7CisgICAgaWYgKHRoaXMuX2hlaWdodCA9PT0gaGVp
Z2h0KQorICAgICAgICByZXR1cm47CisgICAgdGhpcy5faGVpZ2h0ID0gaGVpZ2h0OworICAgIHRo
aXMuZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBoZWlnaHQgKyAicHgiOworICAgIGlmICh0aGlzLmRl
bGVnYXRlKQorICAgICAgICB0aGlzLmRlbGVnYXRlLnNjcm9sbFZpZXdEaWRDaGFuZ2VIZWlnaHQo
dGhpcyk7Cit9OworCisvKioKKyAqIEByZXR1cm4geyFudW1iZXJ9CisgKi8KK1Njcm9sbFZpZXcu
cHJvdG90eXBlLmhlaWdodCA9IGZ1bmN0aW9uKCkgeworICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7
Cit9OworCisvKioKKyAqIEBwYXJhbSB7IUFuaW1hdG9yfSBhbmltYXRvcgorICovCitTY3JvbGxW
aWV3LnByb3RvdHlwZS5vblNjcm9sbEFuaW1hdG9yU3RlcCA9IGZ1bmN0aW9uKGFuaW1hdG9yKSB7
CisgICAgdGhpcy5zZXRDb250ZW50T2Zmc2V0KGFuaW1hdG9yLmN1cnJlbnRWYWx1ZSk7Cit9Owor
CisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gb2Zmc2V0CisgKiBAcGFyYW0gez9ib29sZWFufSBh
bmltYXRlCisgKi8KK1Njcm9sbFZpZXcucHJvdG90eXBlLnNjcm9sbFRvID0gZnVuY3Rpb24ob2Zm
c2V0LCBhbmltYXRlKSB7CisgICAgY29uc29sZS5hc3NlcnQoaXNGaW5pdGUob2Zmc2V0KSk7Cisg
ICAgaWYgKCFhbmltYXRlKSB7CisgICAgICAgIHRoaXMuc2V0Q29udGVudE9mZnNldChvZmZzZXQp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHRoaXMuX3Njcm9sbEFuaW1hdG9yLnNldEZy
b20odGhpcy5fY29udGVudE9mZnNldCk7CisgICAgdGhpcy5fc2Nyb2xsQW5pbWF0b3Iuc2V0VG8o
b2Zmc2V0KTsKKyAgICB0aGlzLl9zY3JvbGxBbmltYXRvci5kdXJhdGlvbiA9IDMwMDsKKyAgICB0
aGlzLl9zY3JvbGxBbmltYXRvci5zdGFydCgpOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1i
ZXJ9IG9mZnNldAorICogQHBhcmFtIHs/Ym9vbGVhbn0gYW5pbWF0ZQorICovCitTY3JvbGxWaWV3
LnByb3RvdHlwZS5zY3JvbGxCeSA9IGZ1bmN0aW9uKG9mZnNldCwgYW5pbWF0ZSkgeworICAgIHRo
aXMuc2Nyb2xsVG8odGhpcy5fY29udGVudE9mZnNldCArIG9mZnNldCwgYW5pbWF0ZSk7Cit9Owor
CisvKioKKyAqIEByZXR1cm4geyFudW1iZXJ9CisgKi8KK1Njcm9sbFZpZXcucHJvdG90eXBlLmNv
bnRlbnRPZmZzZXQgPSBmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gdGhpcy5fY29udGVudE9mZnNl
dDsKK307CisKKy8qKgorICogQHBhcmFtIHs/RXZlbnR9IGV2ZW50CisgKi8KK1Njcm9sbFZpZXcu
cHJvdG90eXBlLm9uTW91c2VXaGVlbCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgdGhpcy5zZXRD
b250ZW50T2Zmc2V0KHRoaXMuX2NvbnRlbnRPZmZzZXQgLSBldmVudC53aGVlbERlbHRhIC8gMzAp
OworICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7Cit9OworCisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSB2YWx1ZQorICovCitTY3JvbGxW
aWV3LnByb3RvdHlwZS5zZXRDb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24odmFsdWUpIHsKKyAgICBj
b25zb2xlLmFzc2VydChpc0Zpbml0ZSh2YWx1ZSkpOworICAgIHZhbHVlID0gTWF0aC5taW4odGhp
cy5tYXhpbXVtQ29udGVudE9mZnNldCAtIHRoaXMuX2hlaWdodCwgTWF0aC5tYXgodGhpcy5taW5p
bXVtQ29udGVudE9mZnNldCwgTWF0aC5mbG9vcih2YWx1ZSkpKTsKKyAgICBpZiAodGhpcy5fY29u
dGVudE9mZnNldCA9PT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICB2YXIgbmV3UGFydGl0
aW9uTnVtYmVyID0gTWF0aC5mbG9vcih2YWx1ZSAvIFNjcm9sbFZpZXcuUGFydGl0aW9uSGVpZ2h0
KTsgICAgCisgICAgdmFyIHBhcnRpdGlvbkNoYW5nZWQgPSB0aGlzLl9wYXJ0aXRpb25OdW1iZXIg
IT09IG5ld1BhcnRpdGlvbk51bWJlcjsKKyAgICB0aGlzLl9wYXJ0aXRpb25OdW1iZXIgPSBuZXdQ
YXJ0aXRpb25OdW1iZXI7CisgICAgdGhpcy5fY29udGVudE9mZnNldCA9IHZhbHVlOworICAgIHRo
aXMuY29udGVudEVsZW1lbnQuc3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZSgwLCAi
ICsgKC10aGlzLmNvbnRlbnRQb3NpdGlvbkZvckNvbnRlbnRPZmZzZXQodGhpcy5fY29udGVudE9m
ZnNldCkpICsgInB4KSI7CisgICAgaWYgKHRoaXMuZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5k
ZWxlZ2F0ZS5zY3JvbGxWaWV3RGlkQ2hhbmdlQ29udGVudE9mZnNldCh0aGlzKTsKKyAgICAgICAg
aWYgKHBhcnRpdGlvbkNoYW5nZWQpCisgICAgICAgICAgICB0aGlzLmRlbGVnYXRlLnNjcm9sbFZp
ZXdEaWRDaGFuZ2VQYXJ0aXRpb24odGhpcyk7CisgICAgfQorfTsKKworLyoqCisgKiBAcGFyYW0g
eyFudW1iZXJ9IG9mZnNldAorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5jb250ZW50UG9zaXRp
b25Gb3JDb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24ob2Zmc2V0KSB7CisgICAgcmV0dXJuIG9mZnNl
dCAtIHRoaXMuX3BhcnRpdGlvbk51bWJlciAqIFNjcm9sbFZpZXcuUGFydGl0aW9uSGVpZ2h0Owor
fTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7IUVsZW1lbnR9IGVsZW1lbnQK
ICAqIEBwYXJhbSB7IU9iamVjdH0gY29uZmlnCiAgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189746</attachid>
            <date>2013-02-22 04:38:49 -0800</date>
            <delta_ts>2013-02-22 05:45:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110137-20130222213508.patch</filename>
            <type>text/plain</type>
            <size>8722</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjg5NmNlNDNiODI0NmIy
YTE5MDI0NDBiMzhlZWVkMjE2MzA1NWRjYS4uODA5MmNiYjA5OTBiZmIxZDBlMjFkYTRlMjU4OWVk
NDZlZmEzYzU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTIyICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzY3JvbGwgdmll
dyBmb3IgbmV3IGNhbGVuZGFyIHBpY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMTM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11
cmEuCisKKyAgICAgICAgQWRkaW5nIGEgc2Nyb2xsIHZpZXcgY2xhc3MgYXMgcGFydCBvZiB0aGUg
bmV3IGNhbGVuZGFyIHBpY2tlciAoQnVnIDEwOTQzOSkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBDb2RlIG5vdCB5ZXQgdXNlZC4KKworICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBzL2Nh
bGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoVmlldyk6CisgICAgICAgIChWaWV3LnByb3RvdHlw
ZS5vZmZzZXRSZWxhdGl2ZVRvKTogUmV0dXJucyB0aGUgb2Zmc2V0IHBvc2l0aW9uIG9mIHRoaXMg
dmlldyByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gYW5jZXN0b3IgZWxlbWVudC4KKyAgICAgICAgKFZp
ZXcucHJvdG90eXBlLmF0dGFjaFRvKTogQXR0YWNoZXMgdmlldyB0byBhIG5vZGUgb3Igdmlldy4K
KyAgICAgICAgKFZpZXcucHJvdG90eXBlLmJpbmRDYWxsYmFja01ldGhvZHMpOiBCaW5kcyBhbGwg
bWV0aG9kcyBzdGFydGluZyB3aXRoICJvbiIgdG8gdGhpcy4KKyAgICAgICAgKFNjcm9sbFZpZXcp
OiBBIGN1c3RvbSBzY3JvbGwgdmlldyB0aGF0IGNhbiBjb250YWluIGV4dHJlbWVseSBsb25nIGNv
bnRlbnQuIENTUyB2YWx1ZXMgaGF2ZSBhIGxpbWl0LiBUaGlzIGNhbiBnbyBiZXlvbmQgdGhhdC4K
KyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLnNldFdpZHRoKTogU2V0cyB0aGUgdmlldyB3
aWR0aC4KKyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLndpZHRoKToKKyAgICAgICAgKFNj
cm9sbFZpZXcucHJvdG90eXBlLnNldEhlaWdodCk6U2V0cyB0aGUgdmlldyBoZWlnaHQuCisgICAg
ICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5oZWlnaHQpOgorICAgICAgICAoU2Nyb2xsVmlldy5w
cm90b3R5cGUub25TY3JvbGxBbmltYXRvclN0ZXApOiBDYWxsYmFjayBmb3Igc2Nyb2xsIGFuaW1h
dG9yIHN0ZXAuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5zY3JvbGxUbyk6IFNjcm9s
bHMgdG8gYSBjZXJ0YWluIG9mZnNldC4KKyAgICAgICAgKFNjcm9sbFZpZXcucHJvdG90eXBlLnNj
cm9sbEJ5KTogU2Nyb2xscyBieSBhIGNlcnRhaW4gYW1vdW50LgorICAgICAgICAoU2Nyb2xsVmll
dy5wcm90b3R5cGUuY29udGVudE9mZnNldCk6IEN1cnJlbnQgY29udGVudCBvZmZzZXQuCisgICAg
ICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5vbk1vdXNlV2hlZWwpOiBTY3JvbGwgd2l0aCB0aGUg
bW91c2Ugd2hlZWwuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3RvdHlwZS5zZXRDb250ZW50T2Zm
c2V0KTogU2V0cyB0aGUgY29udGVudCBvZmZzZXQuCisgICAgICAgIChTY3JvbGxWaWV3LnByb3Rv
dHlwZS5jb250ZW50UG9zaXRpb25Gb3JDb250ZW50T2Zmc2V0KTogUmV0dXJucyB3aGVyZSB0aGUg
Y29udGVudCBlbGVtZW50IHNob3VsZCBiZSBwb3NpdGlvbmVkLgorCiAyMDEzLTAyLTIxICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBGb2xsb3d1cCBjb21taXQgZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA1NDEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpz
IGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMK
aW5kZXggYzEyMjk1Y2YzMWJiODlmZGFlZDdiOGE1MTc3ODVkZmQ2MjY4MGY5Ny4uNmM5MDE2N2Jl
ZTI0NzE3M2FlZGY5MDE4ZWNiOTM4ODg2Y2M0Yzc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKQEAgLTg5Myw2ICs4
OTMsMjQ3IEBAIEFuaW1hdG9yLnByb3RvdHlwZS5vbkFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24o
bm93KSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyBFdmVudEVtaXR0ZXIK
KyAqIEBwYXJhbSB7P0VsZW1lbnR9IGVsZW1lbnQKKyAqIFZpZXcgYWRkcyBpdHNlbGYgYXMgYSBw
cm9wZXJ0eSBvbiB0aGUgZWxlbWVudCBzbyB3ZSBjYW4gYWNjZXNzIGl0IGZyb20gRXZlbnQudGFy
Z2V0LgorICovCitmdW5jdGlvbiBWaWV3KGVsZW1lbnQpIHsKKyAgICBFdmVudEVtaXR0ZXIuY2Fs
bCh0aGlzKTsKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7RWxlbWVudH0KKyAgICAgKiBAY29uc3QK
KyAgICAgKi8KKyAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50IHx8IGNyZWF0ZUVsZW1lbnQoImRp
diIpOworICAgIHRoaXMuZWxlbWVudC4kdmlldyA9IHRoaXM7CisgICAgdGhpcy5iaW5kQ2FsbGJh
Y2tNZXRob2RzKCk7Cit9CisKK1ZpZXcucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShFdmVudEVt
aXR0ZXIucHJvdG90eXBlKTsKKworLyoqCisgKiBAcGFyYW0geyFFbGVtZW50fSBhbmNlc3RvckVs
ZW1lbnQKKyAqIEByZXR1cm4gez9PYmplY3R9CisgKi8KK1ZpZXcucHJvdG90eXBlLm9mZnNldFJl
bGF0aXZlVG8gPSBmdW5jdGlvbihhbmNlc3RvckVsZW1lbnQpIHsKKyAgICB2YXIgeCA9IDA7Cisg
ICAgdmFyIHkgPSAwOworICAgIHZhciBlbGVtZW50ID0gdGhpcy5lbGVtZW50OworICAgIHdoaWxl
IChlbGVtZW50KSB7CisgICAgICAgIHggKz0gZWxlbWVudC5vZmZzZXRMZWZ0ICB8fCAwOworICAg
ICAgICB5ICs9IGVsZW1lbnQub2Zmc2V0VG9wIHx8IDA7CisgICAgICAgIGVsZW1lbnQgPSBlbGVt
ZW50Lm9mZnNldFBhcmVudDsKKyAgICAgICAgaWYgKGVsZW1lbnQgPT09IGFuY2VzdG9yRWxlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybiB7eDogeCwgeTogeX07CisgICAgfQorICAgIHJldHVybiBu
dWxsOworfTsKKworLyoqCisgKiBAcGFyYW0geyFWaWV3fE5vZGV9IHBhcmVudAorICogQHBhcmFt
IHs/Vmlld3xOb2RlPX0gYmVmb3JlCisgKi8KK1ZpZXcucHJvdG90eXBlLmF0dGFjaFRvID0gZnVu
Y3Rpb24ocGFyZW50LCBiZWZvcmUpIHsKKyAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgVmlldykK
KyAgICAgICAgcmV0dXJuIHRoaXMuYXR0YWNoVG8ocGFyZW50LmVsZW1lbnQsIGJlZm9yZSk7Cisg
ICAgaWYgKHR5cGVvZiBiZWZvcmUgPT09ICJ1bmRlZmluZWQiKQorICAgICAgICBiZWZvcmUgPSBu
dWxsOworICAgIGlmIChiZWZvcmUgaW5zdGFuY2VvZiBWaWV3KQorICAgICAgICBiZWZvcmUgPSBi
ZWZvcmUuZWxlbWVudDsKKyAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMuZWxlbWVudCwgYmVm
b3JlKTsKK307CisKK1ZpZXcucHJvdG90eXBlLmJpbmRDYWxsYmFja01ldGhvZHMgPSBmdW5jdGlv
bigpIHsKKyAgICBmb3IgKHZhciBtZXRob2ROYW1lIGluIHRoaXMpIHsKKyAgICAgICAgaWYgKCEv
Xm9uW0EtWl0vLnRlc3QobWV0aG9kTmFtZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkobWV0aG9kTmFtZSkpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgdmFyIG1ldGhvZCA9IHRoaXNbbWV0aG9kTmFtZV07CisgICAgICAgIGlm
ICghKG1ldGhvZCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB0aGlzW21ldGhvZE5hbWVdID0gbWV0aG9kLmJpbmQodGhpcyk7CisgICAgfQorfTsK
KworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIFZpZXcKKyAqLworZnVuY3Rpb24g
U2Nyb2xsVmlldygpIHsKKyAgICBWaWV3LmNhbGwodGhpcywgY3JlYXRlRWxlbWVudCgiZGl2Iiwg
U2Nyb2xsVmlldy5DbGFzc05hbWVTY3JvbGxWaWV3KSk7CisgICAgLyoqCisgICAgICogQHR5cGUg
e0VsZW1lbnR9CisgICAgICogQGNvbnN0CisgICAgICovCisgICAgdGhpcy5jb250ZW50RWxlbWVu
dCA9IGNyZWF0ZUVsZW1lbnQoImRpdiIsIFNjcm9sbFZpZXcuQ2xhc3NOYW1lU2Nyb2xsVmlld0Nv
bnRlbnQpOworICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRFbGVtZW50
KTsKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7bnVtYmVyfQorICAgICAqLworICAgIHRoaXMubWlu
aW11bUNvbnRlbnRPZmZzZXQgPSAtSW5maW5pdHk7CisgICAgLyoqCisgICAgICogQHR5cGUge251
bWJlcn0KKyAgICAgKi8KKyAgICB0aGlzLm1heGltdW1Db250ZW50T2Zmc2V0ID0gSW5maW5pdHk7
CisgICAgLyoqCisgICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKiBAcHJvdGVjdGVkCisgICAg
ICovCisgICAgdGhpcy5fY29udGVudE9mZnNldCA9IDA7CisgICAgLyoqCisgICAgICogQHR5cGUg
e251bWJlcn0KKyAgICAgKiBAcHJvdGVjdGVkCisgICAgICovCisgICAgdGhpcy5fd2lkdGggPSAw
OworICAgIC8qKgorICAgICAqIEB0eXBlIHtudW1iZXJ9CisgICAgICogQHByb3RlY3RlZAorICAg
ICAqLworICAgIHRoaXMuX2hlaWdodCA9IDA7CisgICAgLyoqCisgICAgICogQHR5cGUge0FuaW1h
dG9yfQorICAgICAqIEBwcm90ZWN0ZWQKKyAgICAgKi8KKyAgICB0aGlzLl9zY3JvbGxBbmltYXRv
ciA9IG5ldyBBbmltYXRvcigpOworICAgIHRoaXMuX3Njcm9sbEFuaW1hdG9yLnN0ZXAgPSB0aGlz
Lm9uU2Nyb2xsQW5pbWF0b3JTdGVwOworCisgICAgLyoqCisgICAgICogQHR5cGUgez9PYmplY3R9
CisgICAgICovCisgICAgdGhpcy5kZWxlZ2F0ZSA9IG51bGw7CisKKyAgICB0aGlzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2V3aGVlbCIsIHRoaXMub25Nb3VzZVdoZWVsLCBmYWxzZSk7
CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29udGVudCBvZmZzZXQgaXMgcGFydGl0aW9uZWQgc28g
dGhlIGl0IGNhbiBnbyBiZXlvbmQgdGhlIENTUyBsaW1pdAorICAgICAqIG9mIDMzNTU0NDMzcHgu
CisgICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKiBAcHJvdGVjdGVkCisgICAgICovCisgICAg
dGhpcy5fcGFydGl0aW9uTnVtYmVyID0gMDsKK30KKworU2Nyb2xsVmlldy5wcm90b3R5cGUgPSBP
YmplY3QuY3JlYXRlKFZpZXcucHJvdG90eXBlKTsKKworU2Nyb2xsVmlldy5QYXJ0aXRpb25IZWln
aHQgPSAxMDAwMDA7CitTY3JvbGxWaWV3LkNsYXNzTmFtZVNjcm9sbFZpZXcgPSAic2Nyb2xsLXZp
ZXciOworU2Nyb2xsVmlldy5DbGFzc05hbWVTY3JvbGxWaWV3Q29udGVudCA9ICJzY3JvbGwtdmll
dy1jb250ZW50IjsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IHdpZHRoCisgKi8KK1Njcm9s
bFZpZXcucHJvdG90eXBlLnNldFdpZHRoID0gZnVuY3Rpb24od2lkdGgpIHsKKyAgICBjb25zb2xl
LmFzc2VydChpc0Zpbml0ZSh3aWR0aCkpOworICAgIGlmICh0aGlzLl93aWR0aCA9PT0gd2lkdGgp
CisgICAgICAgIHJldHVybjsKKyAgICB0aGlzLl93aWR0aCA9IHdpZHRoOworICAgIHRoaXMuZWxl
bWVudC5zdHlsZS53aWR0aCA9IHRoaXMuX3dpZHRoICsgInB4IjsKK307CisKKy8qKgorICogQHJl
dHVybiB7IW51bWJlcn0KKyAqLworU2Nyb2xsVmlldy5wcm90b3R5cGUud2lkdGggPSBmdW5jdGlv
bigpIHsKKyAgICByZXR1cm4gdGhpcy5fd2lkdGg7Cit9OworCisvKioKKyAqIEBwYXJhbSB7IW51
bWJlcn0gaGVpZ2h0CisgKi8KK1Njcm9sbFZpZXcucHJvdG90eXBlLnNldEhlaWdodCA9IGZ1bmN0
aW9uKGhlaWdodCkgeworICAgIGNvbnNvbGUuYXNzZXJ0KGlzRmluaXRlKGhlaWdodCkpOworICAg
IGlmICh0aGlzLl9oZWlnaHQgPT09IGhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIHRoaXMu
X2hlaWdodCA9IGhlaWdodDsKKyAgICB0aGlzLmVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0
ICsgInB4IjsKKyAgICBpZiAodGhpcy5kZWxlZ2F0ZSkKKyAgICAgICAgdGhpcy5kZWxlZ2F0ZS5z
Y3JvbGxWaWV3RGlkQ2hhbmdlSGVpZ2h0KHRoaXMpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHsh
bnVtYmVyfQorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5oZWlnaHQgPSBmdW5jdGlvbigpIHsK
KyAgICByZXR1cm4gdGhpcy5faGVpZ2h0OworfTsKKworLyoqCisgKiBAcGFyYW0geyFBbmltYXRv
cn0gYW5pbWF0b3IKKyAqLworU2Nyb2xsVmlldy5wcm90b3R5cGUub25TY3JvbGxBbmltYXRvclN0
ZXAgPSBmdW5jdGlvbihhbmltYXRvcikgeworICAgIHRoaXMuc2V0Q29udGVudE9mZnNldChhbmlt
YXRvci5jdXJyZW50VmFsdWUpOworfTsKKworLyoqCisgKiBAcGFyYW0geyFudW1iZXJ9IG9mZnNl
dAorICogQHBhcmFtIHs/Ym9vbGVhbn0gYW5pbWF0ZQorICovCitTY3JvbGxWaWV3LnByb3RvdHlw
ZS5zY3JvbGxUbyA9IGZ1bmN0aW9uKG9mZnNldCwgYW5pbWF0ZSkgeworICAgIGNvbnNvbGUuYXNz
ZXJ0KGlzRmluaXRlKG9mZnNldCkpOworICAgIGlmICghYW5pbWF0ZSkgeworICAgICAgICB0aGlz
LnNldENvbnRlbnRPZmZzZXQob2Zmc2V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB0
aGlzLl9zY3JvbGxBbmltYXRvci5zZXRGcm9tKHRoaXMuX2NvbnRlbnRPZmZzZXQpOworICAgIHRo
aXMuX3Njcm9sbEFuaW1hdG9yLnNldFRvKG9mZnNldCk7CisgICAgdGhpcy5fc2Nyb2xsQW5pbWF0
b3IuZHVyYXRpb24gPSAzMDA7CisgICAgdGhpcy5fc2Nyb2xsQW5pbWF0b3Iuc3RhcnQoKTsKK307
CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSBvZmZzZXQKKyAqIEBwYXJhbSB7P2Jvb2xlYW59
IGFuaW1hdGUKKyAqLworU2Nyb2xsVmlldy5wcm90b3R5cGUuc2Nyb2xsQnkgPSBmdW5jdGlvbihv
ZmZzZXQsIGFuaW1hdGUpIHsKKyAgICB0aGlzLnNjcm9sbFRvKHRoaXMuX2NvbnRlbnRPZmZzZXQg
KyBvZmZzZXQsIGFuaW1hdGUpOworfTsKKworLyoqCisgKiBAcmV0dXJuIHshbnVtYmVyfQorICov
CitTY3JvbGxWaWV3LnByb3RvdHlwZS5jb250ZW50T2Zmc2V0ID0gZnVuY3Rpb24oKSB7CisgICAg
cmV0dXJuIHRoaXMuX2NvbnRlbnRPZmZzZXQ7Cit9OworCisvKioKKyAqIEBwYXJhbSB7P0V2ZW50
fSBldmVudAorICovCitTY3JvbGxWaWV3LnByb3RvdHlwZS5vbk1vdXNlV2hlZWwgPSBmdW5jdGlv
bihldmVudCkgeworICAgIHRoaXMuc2V0Q29udGVudE9mZnNldCh0aGlzLl9jb250ZW50T2Zmc2V0
IC0gZXZlbnQud2hlZWxEZWx0YSAvIDMwKTsKKyAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsK
KyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfTsKKworCisvKioKKyAqIEBwYXJhbSB7IW51
bWJlcn0gdmFsdWUKKyAqLworU2Nyb2xsVmlldy5wcm90b3R5cGUuc2V0Q29udGVudE9mZnNldCA9
IGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgY29uc29sZS5hc3NlcnQoaXNGaW5pdGUodmFsdWUpKTsK
KyAgICB2YWx1ZSA9IE1hdGgubWluKHRoaXMubWF4aW11bUNvbnRlbnRPZmZzZXQgLSB0aGlzLl9o
ZWlnaHQsIE1hdGgubWF4KHRoaXMubWluaW11bUNvbnRlbnRPZmZzZXQsIE1hdGguZmxvb3IodmFs
dWUpKSk7CisgICAgaWYgKHRoaXMuX2NvbnRlbnRPZmZzZXQgPT09IHZhbHVlKQorICAgICAgICBy
ZXR1cm47CisgICAgdmFyIG5ld1BhcnRpdGlvbk51bWJlciA9IE1hdGguZmxvb3IodmFsdWUgLyBT
Y3JvbGxWaWV3LlBhcnRpdGlvbkhlaWdodCk7ICAgIAorICAgIHZhciBwYXJ0aXRpb25DaGFuZ2Vk
ID0gdGhpcy5fcGFydGl0aW9uTnVtYmVyICE9PSBuZXdQYXJ0aXRpb25OdW1iZXI7CisgICAgdGhp
cy5fcGFydGl0aW9uTnVtYmVyID0gbmV3UGFydGl0aW9uTnVtYmVyOworICAgIHRoaXMuX2NvbnRl
bnRPZmZzZXQgPSB2YWx1ZTsKKyAgICB0aGlzLmNvbnRlbnRFbGVtZW50LnN0eWxlLndlYmtpdFRy
YW5zZm9ybSA9ICJ0cmFuc2xhdGUoMCwgIiArICgtdGhpcy5jb250ZW50UG9zaXRpb25Gb3JDb250
ZW50T2Zmc2V0KHRoaXMuX2NvbnRlbnRPZmZzZXQpKSArICJweCkiOworICAgIGlmICh0aGlzLmRl
bGVnYXRlKSB7CisgICAgICAgIHRoaXMuZGVsZWdhdGUuc2Nyb2xsVmlld0RpZENoYW5nZUNvbnRl
bnRPZmZzZXQodGhpcyk7CisgICAgICAgIGlmIChwYXJ0aXRpb25DaGFuZ2VkKQorICAgICAgICAg
ICAgdGhpcy5kZWxlZ2F0ZS5zY3JvbGxWaWV3RGlkQ2hhbmdlUGFydGl0aW9uKHRoaXMpOworICAg
IH0KK307CisKKy8qKgorICogQHBhcmFtIHshbnVtYmVyfSBvZmZzZXQKKyAqLworU2Nyb2xsVmll
dy5wcm90b3R5cGUuY29udGVudFBvc2l0aW9uRm9yQ29udGVudE9mZnNldCA9IGZ1bmN0aW9uKG9m
ZnNldCkgeworICAgIHJldHVybiBvZmZzZXQgLSB0aGlzLl9wYXJ0aXRpb25OdW1iZXIgKiBTY3Jv
bGxWaWV3LlBhcnRpdGlvbkhlaWdodDsKK307CisKKy8qKgorICogQGNvbnN0cnVjdG9yCiAgKiBA
cGFyYW0geyFFbGVtZW50fSBlbGVtZW50CiAgKiBAcGFyYW0geyFPYmplY3R9IGNvbmZpZwogICov
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>