<?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>63678</bug_id>
          
          <creation_ts>2011-06-29 18:19:12 -0700</creation_ts>
          <short_desc>More ScrollableArea scaffolding</short_desc>
          <delta_ts>2011-06-30 12:40:59 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>430065</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-29 18:19:12 -0700</bug_when>
    <thetext>More ScrollableArea scaffolding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430069</commentid>
    <comment_count>1</comment_count>
      <attachid>99198</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-29 18:21:23 -0700</bug_when>
    <thetext>Created attachment 99198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430072</commentid>
    <comment_count>2</comment_count>
      <attachid>99198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-29 18:27:26 -0700</bug_when>
    <thetext>Comment on attachment 99198
Patch

Attachment 99198 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8962275</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430073</commentid>
    <comment_count>3</comment_count>
      <attachid>99198</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-06-29 18:29:30 -0700</bug_when>
    <thetext>Comment on attachment 99198
Patch

Fresh.  (/me is totally not reviewing this while on vacation.)  I think some other ports may have other classes that derive from ScrollView, so you will probably have to patch them too (or just add a default implementation to ScrollView.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430542</commentid>
    <comment_count>4</comment_count>
      <attachid>99333</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-30 10:52:20 -0700</bug_when>
    <thetext>Created attachment 99333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430548</commentid>
    <comment_count>5</comment_count>
      <attachid>99333</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 11:01:37 -0700</bug_when>
    <thetext>Comment on attachment 99333
Patch

Attachment 99333 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/8962544</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430550</commentid>
    <comment_count>6</comment_count>
      <attachid>99336</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-30 11:04:58 -0700</bug_when>
    <thetext>Created attachment 99336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430602</commentid>
    <comment_count>7</comment_count>
      <attachid>99352</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-30 12:02:45 -0700</bug_when>
    <thetext>Created attachment 99352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430612</commentid>
    <comment_count>8</comment_count>
      <attachid>99352</attachid>
    <who name="">mitz</who>
    <bug_when>2011-06-30 12:13:20 -0700</bug_when>
    <thetext>Comment on attachment 99352
Patch

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

&gt; Source/WebCore/platform/ScrollableArea.cpp:208
&gt; +bool ScrollableArea::isPinnedInDirectionOfScrollDelta(const IntSize&amp; scrollDelta) const

You can drop “OfScrollDelta” from the name.

&gt; Source/WebCore/platform/chromium/FramelessScrollView.cpp:62
&gt; +    // FIXME

Can you elaborate?

&gt; Source/WebCore/rendering/RenderLayer.cpp:797
&gt; +    RenderObject* nextRenderer = renderer()-&gt;parent();
&gt; +
&gt; +    while (nextRenderer) {
&gt; +        if (nextRenderer-&gt;isBox() &amp;&amp; toRenderBox(nextRenderer)-&gt;canBeScrolledAndHasScrollableArea())
&gt; +            return nextRenderer-&gt;enclosingLayer();
&gt; +
&gt; +        nextRenderer = nextRenderer-&gt;parent();
&gt; +    }
&gt; +
&gt; +    return 0;

Looks like a for() loop.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2002
&gt; +    // FIXME: We should return the frame view here (or possibly a parent frame view,

s/parent/ancestor/?

&gt; Source/WebKit/chromium/src/WebScrollbarImpl.cpp:295
&gt; +    // FIXME

More detail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430628</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-06-30 12:40:59 -0700</bug_when>
    <thetext>Committed r90152: &lt;http://trac.webkit.org/changeset/90152&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99198</attachid>
            <date>2011-06-29 18:21:23 -0700</date>
            <delta_ts>2011-06-30 10:52:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63678-20110629182122.patch</filename>
            <type>text/plain</type>
            <size>9561</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwMDc2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDYtMjkgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3JlIFNjcm9sbGFibGVBcmVhIHNjYWZmb2xkaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY3OAorCisg
ICAgICAgIEFkZCBhIHdheSB0byBnZXQgdGhlIGVuY2xvc2luZyBzY3JvbGxhYmxlIGFyZWEgZm9y
IGEgZ2l2ZW4gc2Nyb2xsYWJsZSBhcmVhLgorICAgICAgICBBbHNvLCBhZGQgU2Nyb2xsYWJsZUFy
ZWE6OmlzUGlubmVkSW5EaXJlY3Rpb25PZlNjcm9sbERlbHRhLgorCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiAwIGZvciBub3cuCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICBBZGQgRnJhbWVWaWV3OjplbmNsb3NpbmdTY3JvbGxhYmxl
QXJlYS4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0
YSk6CisgICAgICAgIFJldHVybiB3aGV0aGVyIHRoZSBhcmVhIGlzIHBpbm5lZCBpbiB0aGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGVsdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OmVuY2xvc2luZ1Njcm9sbGFibGVMYXllcik6CisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rp
b24uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5
KToKKyAgICAgICAgVXNlIHRoZSBuZXcgZW5jbG9zaW5nU2Nyb2xsYWJsZUxheWVyIGhlbHBlciBm
dW5jdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1Njcm9s
bGFibGVBcmVhKToKKyAgICAgICAgUmV0dXJuIHRoZSBlbmNsb3Npbmcgc2Nyb2xsYWJsZSBhcmVh
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIEFkZCBuZXcg
bWVtYmVyIGZ1bmN0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFy
ZWEpOgorICAgICAgICBSZXR1cm4gMCBmb3Igbm93LgorICAgICAgICAKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbi4K
KwogMjAxMS0wNi0yOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1dpbkNFXSBDb3JyZWN0IGxvZ2ljYWwgc3RhdGUgb2YgV0lOQ0UgdGVzdC4KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDkwMDY5KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjM4LDYgKzIyMzgs
MTIgQEAgYm9vbCBGcmFtZVZpZXc6OmlzT25BY3RpdmVQYWdlKCkgY29uc3QKICAgICByZXR1cm4g
IW1fZnJhbWUtPmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCk7CiB9CiAKK1Njcm9sbGFibGVBcmVh
KiBGcmFtZVZpZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKK3sKKyAgICAvLyBG
SVhNRTogV2FsayB1cCB0aGUgZnJhbWUgdHJlZSBhbmQgbG9vayBmb3IgYSBzY3JvbGxhYmxlIHBh
cmVudCBmcmFtZS4KKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBGcmFtZVZpZXc6OnNob3VsZFN1
c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZS0+bG9h
ZGVyKCktPnN0YXRlKCkgIT0gRnJhbWVTdGF0ZUNvbXBsZXRlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCShyZXZpc2lvbiA5MDA2OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzNiw2ICszMzYsOCBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRDb21wbGV0ZUFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIHNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0Jik7CiAgICAg
dmlydHVhbCBib29sIGlzT25BY3RpdmVQYWdlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTY3JvbGxh
YmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsKKwogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5ZXIqIGxheWVyRm9y
SG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIHZpcnR1YWwgR3JhcGhpY3NMYXllciog
bGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAkocmV2aXNpb24gOTAwNjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
NSw2ICsyMDUsMjEgQEAgYm9vbCBTY3JvbGxhYmxlQXJlYTo6aGFzT3ZlcmxheVNjcm9sbGJhcgog
ICAgICAgICB8fCAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmIGhvcml6b250YWxTY3JvbGxiYXIo
KS0+aXNPdmVybGF5U2Nyb2xsYmFyKCkpOwogfQogCitib29sIFNjcm9sbGFibGVBcmVhOjppc1Bp
bm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkg
Y29uc3QKK3sKKyAgICBpZiAoc2Nyb2xsRGVsdGEud2lkdGgoKSA8IDAgJiYgaXNIb3Jpem9udGFs
U2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAoc2Nyb2xsRGVsdGEud2lkdGgoKSA+IDAgJiYgaXNIb3Jpem9udGFsU2Nyb2xsZXJQ
aW5uZWRUb01heGltdW1Qb3NpdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlm
IChzY3JvbGxEZWx0YS5oZWlnaHQoKSA8IDAgJiYgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9N
aW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHNjcm9sbERl
bHRhLmhlaWdodCgpID4gMCAmJiBpc1ZlcnRpY2FsU2Nyb2xsZXJQaW5uZWRUb01heGltdW1Qb3Np
dGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBTY3JvbGxhYmxlQXJlYTo6aW52YWxpZGF0ZVNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9s
bGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgJKHJl
dmlzaW9uIDkwMDY5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c1ZlcnRpY2FsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
ICF2ZXJ0aWNhbFNjcm9sbGJhcigpIHx8IHNjcm9sbFBvc2l0aW9uKHZlcnRpY2FsU2Nyb2xsYmFy
KCkpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLnkoKTsgfQogICAgIGJvb2wgaXNWZXJ0aWNh
bFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiAhdmVydGlj
YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbih2ZXJ0aWNhbFNjcm9sbGJhcigpKSA+PSBt
YXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7IH0KIAorICAgIC8vIE5vdGUgdGhhdCB0aGlzIG9u
bHkgcmV0dXJucyBzY3JvbGxhYmxlIGFyZWFzIHRoYXQgY2FuIGFjdHVhbGx5IGJlIHNjcm9sbGVk
LgorICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkg
Y29uc3QgPSAwOworCisgICAgYm9vbCBpc1Bpbm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0YShj
b25zdCBJbnRTaXplJikgY29uc3Q7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFu
ZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgfQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiA5MDA2OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4
Myw2ICs3ODMsMjAgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdQb3NpdAog
ICAgIHJldHVybiBjdXJyOwogfQogCitSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2lu
Z1Njcm9sbGFibGVMYXllcigpIGNvbnN0Cit7CisgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVy
ZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKKworICAgIHdoaWxlIChuZXh0UmVuZGVyZXIpIHsK
KyAgICAgICAgaWYgKG5leHRSZW5kZXJlci0+aXNCb3goKSAmJiB0b1JlbmRlckJveChuZXh0UmVu
ZGVyZXIpLT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSkKKyAgICAgICAgICAg
IHJldHVybiBuZXh0UmVuZGVyZXItPmVuY2xvc2luZ0xheWVyKCk7CisKKyAgICAgICAgbmV4dFJl
bmRlcmVyID0gbmV4dFJlbmRlcmVyLT5wYXJlbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKwogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdUcmFuc2Zvcm1lZEFuY2Vz
dG9yKCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllciogY3VyciA9IHBhcmVudCgpOwpAQCAtMTI1
OCwxNCArMTI3Miw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW4K
ICAgICAgICAgaW50IGxlZnRUb1Njcm9sbFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xsWE9mZnNldCgp
OwogICAgICAgICBpbnQgbGVmdFRvU2Nyb2xsWSA9IG5ld09mZnNldFkgLSBzY3JvbGxZT2Zmc2V0
KCk7CiAgICAgICAgIGlmICgobGVmdFRvU2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZKSAmJiByZW5k
ZXJlcigpLT5wYXJlbnQoKSkgewotICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBuZXh0UmVuZGVy
ZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKLSAgICAgICAgICAgIHdoaWxlIChuZXh0UmVuZGVy
ZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAobmV4dFJlbmRlcmVyLT5pc0JveCgpICYmIHRvUmVu
ZGVyQm94KG5leHRSZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRBbmRIYXNTY3JvbGxhYmxlQXJlYSgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHRSZW5kZXJlci0+ZW5jbG9zaW5nTGF5ZXIoKS0+
c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBsZWZ0VG9TY3JvbGxZKTsKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IG5leHRSZW5kZXJlciA9IG5leHRSZW5kZXJlci0+cGFyZW50KCk7Ci0gICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHNjcm9sbGFibGVMYXllciA9IGVuY2xvc2luZ1Nj
cm9sbGFibGVMYXllcigpKQorICAgICAgICAgICAgICAgIHNjcm9sbGFibGVMYXllci0+c2Nyb2xs
QnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBsZWZ0VG9TY3JvbGxZKTsKIAogICAgICAgICAg
ICAgRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlmIChm
cmFtZSkKQEAgLTE5ODYsNiArMTk5NCwxNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRIYXNWZXJ0
aWNhbFNjcm9sbGJhCiAjZW5kaWYKIH0KIAorU2Nyb2xsYWJsZUFyZWEqIFJlbmRlckxheWVyOjpl
bmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAgaWYgKFJlbmRlckxheWVyKiBz
Y3JvbGxhYmxlTGF5ZXIgPSBlbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIoKSkKKyAgICAgICAgcmV0
dXJuIHNjcm9sbGFibGVMYXllcjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmV0dXJuIHRo
ZSBmcmFtZSB2aWV3IGhlcmUgKG9yIHBvc3NpYmx5IGEgcGFyZW50IGZyYW1lIHZpZXcsCisgICAg
Ly8gaWYgdGhlIGZyYW1lIHZpZXcgaXNuJ3Qgc2Nyb2xsYWJsZS4KKyAgICByZXR1cm4gMDsKK30K
KwogaW50IFJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKE92ZXJsYXlTY3JvbGxi
YXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkgY29uc3QKIHsKICAgICBpZiAoIW1fdkJhciB8fCAo
bV92QmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSAmJiByZWxldmFuY3kgPT0gSWdub3JlT3Zlcmxh
eVNjcm9sbGJhclNpemUpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgJKHJldmlzaW9uIDkwMDY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw2ICsyNTksNyBAQCBwdWJsaWM6CiAgICAgLy8g
U2Nyb2xsYWJsZUFyZWEgb3ZlcnJpZGVzCiAgICAgdmlydHVhbCBTY3JvbGxiYXIqIGhvcml6b250
YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX2hCYXIuZ2V0KCk7IH0KICAgICB2aXJ0dWFs
IFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3ZCYXIuZ2V0
KCk7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJl
YSgpIGNvbnN0OwogCiAgICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoT3ZlcmxheVNjcm9s
bGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CiAg
ICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoT3ZlcmxheVNjcm9sbGJhclNpemVSZWxl
dmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CkBAIC0zNDQsNiArMzQ1
LDkgQEAgcHVibGljOgogICAgIC8vIHRoZSA8aHRtbD4gbGF5ZXIgYW5kIHRoZSByb290IGxheWVy
KS4KICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nUG9zaXRpb25lZEFuY2VzdG9yKCkgY29uc3Q7
CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBsYXllciB0aGF0IGlzIHNj
cm9sbGFibGUuCisgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpIGNv
bnN0OworCiAgICAgLy8gVGhlIGxheWVyIHJlbGF0aXZlIHRvIHdoaWNoIGNsaXBwaW5nIHJlY3Rz
IGZvciB0aGlzIGxheWVyIGFyZSBjb21wdXRlZC4KICAgICBSZW5kZXJMYXllciogY2xpcHBpbmdS
b290KCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAJKHJldmlzaW9uIDkwMDY5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDgsNiArODA4LDEyIEBAIGJvb2wg
UmVuZGVyTGlzdEJveDo6aXNPbkFjdGl2ZVBhZ2UoKSBjb24KICAgICByZXR1cm4gIWRvY3VtZW50
KCktPmluUGFnZUNhY2hlKCk7CiB9CiAKK1Njcm9sbGFibGVBcmVhKiBSZW5kZXJMaXN0Qm94Ojpl
bmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IFJldHVybiBh
IFJlbmRlckxheWVyIHRoYXQncyBzY3JvbGxhYmxlLgorICAgIHJldHVybiAwOworfQorCiBQYXNz
UmVmUHRyPFNjcm9sbGJhcj4gUmVuZGVyTGlzdEJveDo6Y3JlYXRlU2Nyb2xsYmFyKCkKIHsKICAg
ICBSZWZQdHI8U2Nyb2xsYmFyPiB3aWRnZXQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmgJKHJldmlzaW9uIDkwMDY5KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25z
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzT25BY3RpdmVQYWdlKCkgY29uc3Q7CiAKKyAg
ICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0
OworCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgbV9wYWdlID0gMDsg
fQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgYnkgdGhlIG92ZXJy
aWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxlQXJlYS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99333</attachid>
            <date>2011-06-30 10:52:20 -0700</date>
            <delta_ts>2011-06-30 11:04:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63678-20110630105220.patch</filename>
            <type>text/plain</type>
            <size>10950</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDYtMzAgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3JlIFNjcm9sbGFibGVBcmVhIHNjYWZmb2xkaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY3OAorCisg
ICAgICAgIEFkZCBhIHdheSB0byBnZXQgdGhlIGVuY2xvc2luZyBzY3JvbGxhYmxlIGFyZWEgZm9y
IGEgZ2l2ZW4gc2Nyb2xsYWJsZSBhcmVhLgorICAgICAgICBBbHNvLCBhZGQgU2Nyb2xsYWJsZUFy
ZWE6OmlzUGlubmVkSW5EaXJlY3Rpb25PZlNjcm9sbERlbHRhLgorCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiAwIGZvciBub3cuCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICBBZGQgRnJhbWVWaWV3OjplbmNsb3NpbmdTY3JvbGxhYmxl
QXJlYS4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0
YSk6CisgICAgICAgIFJldHVybiB3aGV0aGVyIHRoZSBhcmVhIGlzIHBpbm5lZCBpbiB0aGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGVsdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3Lmg6CisgICAgICAg
IEFkZCBzdHViLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIpOgorICAg
ICAgICBBZGQgaGVscGVyIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsQnlSZWN1cnNpdmVseSk6CisgICAgICAgIFVzZSB0aGUgbmV3IGVuY2xvc2luZ1Nj
cm9sbGFibGVMYXllciBoZWxwZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiB0aGUgZW5j
bG9zaW5nIHNjcm9sbGFibGUgYXJlYS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbi4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6
OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKToKKyAgICAgICAgUmV0dXJuIDAgZm9yIG5vdy4KKyAg
ICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgQWRk
IG5ldyBtZW1iZXIgZnVuY3Rpb24uCisKIDIwMTEtMDYtMzAgIEFiaGlzaGVrIEFyeWEgIDxpbmZl
cm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIzOCw2ICsy
MjM4LDEyIEBAIGJvb2wgRnJhbWVWaWV3Ojppc09uQWN0aXZlUGFnZSgpIGNvbnN0CiAgICAgcmV0
dXJuICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpOwogfQogCitTY3JvbGxhYmxl
QXJlYSogRnJhbWVWaWV3OjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAg
Ly8gRklYTUU6IFdhbGsgdXAgdGhlIGZyYW1lIHRyZWUgYW5kIGxvb2sgZm9yIGEgc2Nyb2xsYWJs
ZSBwYXJlbnQgZnJhbWUuCisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgRnJhbWVWaWV3OjpzaG91
bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZnJhbWUt
PmxvYWRlcigpLT5zdGF0ZSgpICE9IEZyYW1lU3RhdGVDb21wbGV0ZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gOTAxMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNiArMzM2LDggQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVBbmltYXRlZFNjcm9sbCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpOwog
ICAgIHZpcnR1YWwgYm9vbCBpc09uQWN0aXZlUGFnZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU2Ny
b2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3Q7CisKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5
ZXIqIGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAJKHJldmlzaW9uIDkwMTMyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDUsNiArMjA1LDIxIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhhc092ZXJsYXlTY3JvbGxi
YXIKICAgICAgICAgfHwgKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiBob3Jpem9udGFsU2Nyb2xs
YmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKTsKIH0KIAorYm9vbCBTY3JvbGxhYmxlQXJlYTo6
aXNQaW5uZWRJbkRpcmVjdGlvbk9mU2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpIGNvbnN0Cit7CisgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkgPCAwICYmIGlzSG9yaXpv
bnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkgPiAwICYmIGlzSG9yaXpvbnRhbFNjcm9s
bGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBpZiAoc2Nyb2xsRGVsdGEuaGVpZ2h0KCkgPCAwICYmIGlzVmVydGljYWxTY3JvbGxlclBpbm5l
ZFRvTWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChzY3Jv
bGxEZWx0YS5oZWlnaHQoKSA+IDAgJiYgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVt
UG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OmludmFsaWRhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw2ICsxNDQsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbih2ZXJ0aWNhbFNjcm9s
bGJhcigpKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7IH0KICAgICBib29sIGlzVmVy
dGljYWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIXZl
cnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsUG9zaXRpb24odmVydGljYWxTY3JvbGxiYXIoKSkg
Pj0gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpOyB9CiAKKyAgICAvLyBOb3RlIHRoYXQgdGhp
cyBvbmx5IHJldHVybnMgc2Nyb2xsYWJsZSBhcmVhcyB0aGF0IGNhbiBhY3R1YWxseSBiZSBzY3Jv
bGxlZC4KKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJl
YSgpIGNvbnN0ID0gMDsKKworICAgIGJvb2wgaXNQaW5uZWRJbkRpcmVjdGlvbk9mU2Nyb2xsRGVs
dGEoY29uc3QgSW50U2l6ZSYpIGNvbnN0OworCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9s
bFZpZXcuY3BwCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1
NywxMiBAQCBib29sIEZyYW1lbGVzc1Njcm9sbFZpZXc6OmlzQWN0aXZlKCkgY29uCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK1Njcm9sbGFibGVBcmVhKiBGcmFtZWxlc3NTY3JvbGxWaWV3OjplbmNs
b3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUUKKyAgICByZXR1cm4g
MDsKK30KKwogdm9pZCBGcmFtZWxlc3NTY3JvbGxWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJ
bnRSZWN0JiByZWN0KQogewogICAgIGlmIChIb3N0V2luZG93KiBoID0gaG9zdFdpbmRvdygpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Nyb2xsVmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1l
bGVzc1Njcm9sbFZpZXcuaAkocmV2aXNpb24gOTAxMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0
LDYgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBTY3JvbGxhYmxlQXJl
YSBwdWJsaWMgbWV0aG9kczoKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGlzQWN0aXZlKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xv
c2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3Q7CiAKICAgICAgICAgLy8gV2lkZ2V0IHB1YmxpYyBt
ZXRob2RzOgogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVj
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZp
c2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4Myw2ICs3ODMsMjAgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxh
eWVyOjplbmNsb3NpbmdQb3NpdAogICAgIHJldHVybiBjdXJyOwogfQogCitSZW5kZXJMYXllciog
UmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpIGNvbnN0Cit7CisgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKKworICAgIHdo
aWxlIChuZXh0UmVuZGVyZXIpIHsKKyAgICAgICAgaWYgKG5leHRSZW5kZXJlci0+aXNCb3goKSAm
JiB0b1JlbmRlckJveChuZXh0UmVuZGVyZXIpLT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJs
ZUFyZWEoKSkKKyAgICAgICAgICAgIHJldHVybiBuZXh0UmVuZGVyZXItPmVuY2xvc2luZ0xheWVy
KCk7CisKKyAgICAgICAgbmV4dFJlbmRlcmVyID0gbmV4dFJlbmRlcmVyLT5wYXJlbnQoKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNs
b3NpbmdUcmFuc2Zvcm1lZEFuY2VzdG9yKCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllciogY3Vy
ciA9IHBhcmVudCgpOwpAQCAtMTI1OCwxNCArMTI3Miw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbEJ5UmVjdXJzaXZlbHkoaW4KICAgICAgICAgaW50IGxlZnRUb1Njcm9sbFggPSBuZXdPZmZz
ZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwogICAgICAgICBpbnQgbGVmdFRvU2Nyb2xsWSA9IG5ld09m
ZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7CiAgICAgICAgIGlmICgobGVmdFRvU2Nyb2xsWCB8fCBs
ZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewotICAgICAgICAgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKLSAgICAgICAg
ICAgIHdoaWxlIChuZXh0UmVuZGVyZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAobmV4dFJlbmRl
cmVyLT5pc0JveCgpICYmIHRvUmVuZGVyQm94KG5leHRSZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRB
bmRIYXNTY3JvbGxhYmxlQXJlYSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHRSZW5kZXJl
ci0+ZW5jbG9zaW5nTGF5ZXIoKS0+c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBs
ZWZ0VG9TY3JvbGxZKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIG5leHRSZW5kZXJlciA9IG5leHRSZW5kZXJlci0+cGFyZW50
KCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHNjcm9sbGFi
bGVMYXllciA9IGVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpKQorICAgICAgICAgICAgICAgIHNj
cm9sbGFibGVMYXllci0+c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBsZWZ0VG9T
Y3JvbGxZKTsKIAogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZnJhbWUo
KTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKQEAgLTE5ODYsNiArMTk5NCwxNiBAQCB2b2lkIFJl
bmRlckxheWVyOjpzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhCiAjZW5kaWYKIH0KIAorU2Nyb2xsYWJs
ZUFyZWEqIFJlbmRlckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7Cisg
ICAgaWYgKFJlbmRlckxheWVyKiBzY3JvbGxhYmxlTGF5ZXIgPSBlbmNsb3NpbmdTY3JvbGxhYmxl
TGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVMYXllcjsKKworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmV0dXJuIHRoZSBmcmFtZSB2aWV3IGhlcmUgKG9yIHBvc3NpYmx5IGEgcGFy
ZW50IGZyYW1lIHZpZXcsCisgICAgLy8gaWYgdGhlIGZyYW1lIHZpZXcgaXNuJ3Qgc2Nyb2xsYWJs
ZS4KKyAgICByZXR1cm4gMDsKK30KKwogaW50IFJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkgY29uc3QKIHsK
ICAgICBpZiAoIW1fdkJhciB8fCAobV92QmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSAmJiByZWxl
dmFuY3kgPT0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw2ICsyNTks
NyBAQCBwdWJsaWM6CiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgb3ZlcnJpZGVzCiAgICAgdmlydHVh
bCBTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX2hCYXIu
Z2V0KCk7IH0KICAgICB2aXJ0dWFsIFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25z
dCB7IHJldHVybiBtX3ZCYXIuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBl
bmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0OwogCiAgICAgaW50IHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Ny
b2xsYmFyU2l6ZSkgY29uc3Q7CiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoT3Zl
cmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkg
Y29uc3Q7CkBAIC0zNDQsNiArMzQ1LDkgQEAgcHVibGljOgogICAgIC8vIHRoZSA8aHRtbD4gbGF5
ZXIgYW5kIHRoZSByb290IGxheWVyKS4KICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nUG9zaXRp
b25lZEFuY2VzdG9yKCkgY29uc3Q7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBuZWFyZXN0IGVuY2xv
c2luZyBsYXllciB0aGF0IGlzIHNjcm9sbGFibGUuCisgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2lu
Z1Njcm9sbGFibGVMYXllcigpIGNvbnN0OworCiAgICAgLy8gVGhlIGxheWVyIHJlbGF0aXZlIHRv
IHdoaWNoIGNsaXBwaW5nIHJlY3RzIGZvciB0aGlzIGxheWVyIGFyZSBjb21wdXRlZC4KICAgICBS
ZW5kZXJMYXllciogY2xpcHBpbmdSb290KCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
MDgsNiArODA4LDEyIEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNPbkFjdGl2ZVBhZ2UoKSBjb24K
ICAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCk7CiB9CiAKK1Njcm9sbGFibGVB
cmVhKiBSZW5kZXJMaXN0Qm94OjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IFJldHVybiBhIFJlbmRlckxheWVyIHRoYXQncyBzY3JvbGxhYmxlLgorICAg
IHJldHVybiAwOworfQorCiBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gUmVuZGVyTGlzdEJveDo6Y3Jl
YXRlU2Nyb2xsYmFyKCkKIHsKICAgICBSZWZQdHI8U2Nyb2xsYmFyPiB3aWRnZXQ7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgJKHJldmlzaW9uIDkwMTMyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAkod29ya2luZyBjb3B5
KQpAQCAtMTE5LDYgKzExOSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1
c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzT25BY3Rp
dmVQYWdlKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdT
Y3JvbGxhYmxlQXJlYSgpIGNvbnN0OworCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9t
UGFnZSgpIHsgbV9wYWdlID0gMDsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBi
ZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxl
QXJlYS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99336</attachid>
            <date>2011-06-30 11:04:58 -0700</date>
            <delta_ts>2011-06-30 12:02:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63678-20110630110458.patch</filename>
            <type>text/plain</type>
            <size>12905</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMDYtMzAgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3JlIFNjcm9sbGFibGVBcmVhIHNjYWZmb2xkaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY3OAorCisg
ICAgICAgIEFkZCBhIHdheSB0byBnZXQgdGhlIGVuY2xvc2luZyBzY3JvbGxhYmxlIGFyZWEgZm9y
IGEgZ2l2ZW4gc2Nyb2xsYWJsZSBhcmVhLgorICAgICAgICBBbHNvLCBhZGQgU2Nyb2xsYWJsZUFy
ZWE6OmlzUGlubmVkSW5EaXJlY3Rpb25PZlNjcm9sbERlbHRhLgorCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiAwIGZvciBub3cuCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICBBZGQgRnJhbWVWaWV3OjplbmNsb3NpbmdTY3JvbGxhYmxl
QXJlYS4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0
YSk6CisgICAgICAgIFJldHVybiB3aGV0aGVyIHRoZSBhcmVhIGlzIHBpbm5lZCBpbiB0aGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGVsdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3Lmg6CisgICAgICAg
IEFkZCBzdHViLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIpOgorICAg
ICAgICBBZGQgaGVscGVyIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsQnlSZWN1cnNpdmVseSk6CisgICAgICAgIFVzZSB0aGUgbmV3IGVuY2xvc2luZ1Nj
cm9sbGFibGVMYXllciBoZWxwZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiB0aGUgZW5j
bG9zaW5nIHNjcm9sbGFibGUgYXJlYS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbi4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6
OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKToKKyAgICAgICAgUmV0dXJuIDAgZm9yIG5vdy4KKyAg
ICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgQWRk
IG5ldyBtZW1iZXIgZnVuY3Rpb24uCisKIDIwMTEtMDYtMzAgIEFiaGlzaGVrIEFyeWEgIDxpbmZl
cm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIzOCw2ICsy
MjM4LDEyIEBAIGJvb2wgRnJhbWVWaWV3Ojppc09uQWN0aXZlUGFnZSgpIGNvbnN0CiAgICAgcmV0
dXJuICFtX2ZyYW1lLT5kb2N1bWVudCgpLT5pblBhZ2VDYWNoZSgpOwogfQogCitTY3JvbGxhYmxl
QXJlYSogRnJhbWVWaWV3OjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAg
Ly8gRklYTUU6IFdhbGsgdXAgdGhlIGZyYW1lIHRyZWUgYW5kIGxvb2sgZm9yIGEgc2Nyb2xsYWJs
ZSBwYXJlbnQgZnJhbWUuCisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgRnJhbWVWaWV3OjpzaG91
bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZnJhbWUt
PmxvYWRlcigpLT5zdGF0ZSgpICE9IEZyYW1lU3RhdGVDb21wbGV0ZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuaAkocmV2aXNpb24gOTAxMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzYsNiArMzM2LDggQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVBbmltYXRlZFNjcm9sbCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpOwog
ICAgIHZpcnR1YWwgYm9vbCBpc09uQWN0aXZlUGFnZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU2Ny
b2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3Q7CisKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCBHcmFwaGljc0xheWVyKiBsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5
ZXIqIGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAJKHJldmlzaW9uIDkwMTMyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDUsNiArMjA1LDIxIEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6Omhhc092ZXJsYXlTY3JvbGxi
YXIKICAgICAgICAgfHwgKGhvcml6b250YWxTY3JvbGxiYXIoKSAmJiBob3Jpem9udGFsU2Nyb2xs
YmFyKCktPmlzT3ZlcmxheVNjcm9sbGJhcigpKTsKIH0KIAorYm9vbCBTY3JvbGxhYmxlQXJlYTo6
aXNQaW5uZWRJbkRpcmVjdGlvbk9mU2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpIGNvbnN0Cit7CisgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkgPCAwICYmIGlzSG9yaXpv
bnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgaWYgKHNjcm9sbERlbHRhLndpZHRoKCkgPiAwICYmIGlzSG9yaXpvbnRhbFNjcm9s
bGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICBpZiAoc2Nyb2xsRGVsdGEuaGVpZ2h0KCkgPCAwICYmIGlzVmVydGljYWxTY3JvbGxlclBpbm5l
ZFRvTWluaW11bVBvc2l0aW9uKCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChzY3Jv
bGxEZWx0YS5oZWlnaHQoKSA+IDAgJiYgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVt
UG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OmludmFsaWRhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw2ICsxNDQsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbih2ZXJ0aWNhbFNjcm9s
bGJhcigpKSA8PSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7IH0KICAgICBib29sIGlzVmVy
dGljYWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIXZl
cnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsUG9zaXRpb24odmVydGljYWxTY3JvbGxiYXIoKSkg
Pj0gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkueSgpOyB9CiAKKyAgICAvLyBOb3RlIHRoYXQgdGhp
cyBvbmx5IHJldHVybnMgc2Nyb2xsYWJsZSBhcmVhcyB0aGF0IGNhbiBhY3R1YWxseSBiZSBzY3Jv
bGxlZC4KKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJl
YSgpIGNvbnN0ID0gMDsKKworICAgIGJvb2wgaXNQaW5uZWRJbkRpcmVjdGlvbk9mU2Nyb2xsRGVs
dGEoY29uc3QgSW50U2l6ZSYpIGNvbnN0OworCiAgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJl
ckJhbmRJbkRpcmVjdGlvbihTY3JvbGxEaXJlY3Rpb24pIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9s
bFZpZXcuY3BwCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1
NywxMiBAQCBib29sIEZyYW1lbGVzc1Njcm9sbFZpZXc6OmlzQWN0aXZlKCkgY29uCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK1Njcm9sbGFibGVBcmVhKiBGcmFtZWxlc3NTY3JvbGxWaWV3OjplbmNs
b3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUUKKyAgICByZXR1cm4g
MDsKK30KKwogdm9pZCBGcmFtZWxlc3NTY3JvbGxWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJ
bnRSZWN0JiByZWN0KQogewogICAgIGlmIChIb3N0V2luZG93KiBoID0gaG9zdFdpbmRvdygpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Nyb2xsVmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1l
bGVzc1Njcm9sbFZpZXcuaAkocmV2aXNpb24gOTAxMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0
LDYgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBTY3JvbGxhYmxlQXJl
YSBwdWJsaWMgbWV0aG9kczoKICAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29s
IGlzQWN0aXZlKCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xv
c2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3Q7CiAKICAgICAgICAgLy8gV2lkZ2V0IHB1YmxpYyBt
ZXRob2RzOgogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVj
dCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZp
c2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4Myw2ICs3ODMsMjAgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxh
eWVyOjplbmNsb3NpbmdQb3NpdAogICAgIHJldHVybiBjdXJyOwogfQogCitSZW5kZXJMYXllciog
UmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpIGNvbnN0Cit7CisgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKKworICAgIHdo
aWxlIChuZXh0UmVuZGVyZXIpIHsKKyAgICAgICAgaWYgKG5leHRSZW5kZXJlci0+aXNCb3goKSAm
JiB0b1JlbmRlckJveChuZXh0UmVuZGVyZXIpLT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJs
ZUFyZWEoKSkKKyAgICAgICAgICAgIHJldHVybiBuZXh0UmVuZGVyZXItPmVuY2xvc2luZ0xheWVy
KCk7CisKKyAgICAgICAgbmV4dFJlbmRlcmVyID0gbmV4dFJlbmRlcmVyLT5wYXJlbnQoKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNs
b3NpbmdUcmFuc2Zvcm1lZEFuY2VzdG9yKCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllciogY3Vy
ciA9IHBhcmVudCgpOwpAQCAtMTI1OCwxNCArMTI3Miw4IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbEJ5UmVjdXJzaXZlbHkoaW4KICAgICAgICAgaW50IGxlZnRUb1Njcm9sbFggPSBuZXdPZmZz
ZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwogICAgICAgICBpbnQgbGVmdFRvU2Nyb2xsWSA9IG5ld09m
ZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7CiAgICAgICAgIGlmICgobGVmdFRvU2Nyb2xsWCB8fCBs
ZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewotICAgICAgICAgICAgUmVu
ZGVyT2JqZWN0KiBuZXh0UmVuZGVyZXIgPSByZW5kZXJlcigpLT5wYXJlbnQoKTsKLSAgICAgICAg
ICAgIHdoaWxlIChuZXh0UmVuZGVyZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAobmV4dFJlbmRl
cmVyLT5pc0JveCgpICYmIHRvUmVuZGVyQm94KG5leHRSZW5kZXJlciktPmNhbkJlU2Nyb2xsZWRB
bmRIYXNTY3JvbGxhYmxlQXJlYSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5leHRSZW5kZXJl
ci0+ZW5jbG9zaW5nTGF5ZXIoKS0+c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBs
ZWZ0VG9TY3JvbGxZKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIG5leHRSZW5kZXJlciA9IG5leHRSZW5kZXJlci0+cGFyZW50
KCk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHNjcm9sbGFi
bGVMYXllciA9IGVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpKQorICAgICAgICAgICAgICAgIHNj
cm9sbGFibGVMYXllci0+c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBsZWZ0VG9T
Y3JvbGxZKTsKIAogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZnJhbWUo
KTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKQEAgLTE5ODYsNiArMTk5NCwxNiBAQCB2b2lkIFJl
bmRlckxheWVyOjpzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhCiAjZW5kaWYKIH0KIAorU2Nyb2xsYWJs
ZUFyZWEqIFJlbmRlckxheWVyOjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7Cisg
ICAgaWYgKFJlbmRlckxheWVyKiBzY3JvbGxhYmxlTGF5ZXIgPSBlbmNsb3NpbmdTY3JvbGxhYmxl
TGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVMYXllcjsKKworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmV0dXJuIHRoZSBmcmFtZSB2aWV3IGhlcmUgKG9yIHBvc3NpYmx5IGEgcGFy
ZW50IGZyYW1lIHZpZXcsCisgICAgLy8gaWYgdGhlIGZyYW1lIHZpZXcgaXNuJ3Qgc2Nyb2xsYWJs
ZS4KKyAgICByZXR1cm4gMDsKK30KKwogaW50IFJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJh
cldpZHRoKE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkgY29uc3QKIHsK
ICAgICBpZiAoIW1fdkJhciB8fCAobV92QmFyLT5pc092ZXJsYXlTY3JvbGxiYXIoKSAmJiByZWxl
dmFuY3kgPT0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw2ICsyNTks
NyBAQCBwdWJsaWM6CiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgb3ZlcnJpZGVzCiAgICAgdmlydHVh
bCBTY3JvbGxiYXIqIGhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX2hCYXIu
Z2V0KCk7IH0KICAgICB2aXJ0dWFsIFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIoKSBjb25z
dCB7IHJldHVybiBtX3ZCYXIuZ2V0KCk7IH0KKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBl
bmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0OwogCiAgICAgaW50IHZlcnRpY2FsU2Nyb2xs
YmFyV2lkdGgoT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Ny
b2xsYmFyU2l6ZSkgY29uc3Q7CiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoT3Zl
cmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkg
Y29uc3Q7CkBAIC0zNDQsNiArMzQ1LDkgQEAgcHVibGljOgogICAgIC8vIHRoZSA8aHRtbD4gbGF5
ZXIgYW5kIHRoZSByb290IGxheWVyKS4KICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nUG9zaXRp
b25lZEFuY2VzdG9yKCkgY29uc3Q7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBuZWFyZXN0IGVuY2xv
c2luZyBsYXllciB0aGF0IGlzIHNjcm9sbGFibGUuCisgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2lu
Z1Njcm9sbGFibGVMYXllcigpIGNvbnN0OworCiAgICAgLy8gVGhlIGxheWVyIHJlbGF0aXZlIHRv
IHdoaWNoIGNsaXBwaW5nIHJlY3RzIGZvciB0aGlzIGxheWVyIGFyZSBjb21wdXRlZC4KICAgICBS
ZW5kZXJMYXllciogY2xpcHBpbmdSb290KCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
MDgsNiArODA4LDEyIEBAIGJvb2wgUmVuZGVyTGlzdEJveDo6aXNPbkFjdGl2ZVBhZ2UoKSBjb24K
ICAgICByZXR1cm4gIWRvY3VtZW50KCktPmluUGFnZUNhY2hlKCk7CiB9CiAKK1Njcm9sbGFibGVB
cmVhKiBSZW5kZXJMaXN0Qm94OjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IFJldHVybiBhIFJlbmRlckxheWVyIHRoYXQncyBzY3JvbGxhYmxlLgorICAg
IHJldHVybiAwOworfQorCiBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gUmVuZGVyTGlzdEJveDo6Y3Jl
YXRlU2Nyb2xsYmFyKCkKIHsKICAgICBSZWZQdHI8U2Nyb2xsYmFyPiB3aWRnZXQ7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgJKHJldmlzaW9uIDkwMTMyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAkod29ya2luZyBjb3B5
KQpAQCAtMTE5LDYgKzExOSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNob3VsZFN1
c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzT25BY3Rp
dmVQYWdlKCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdT
Y3JvbGxhYmxlQXJlYSgpIGNvbnN0OworCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9t
UGFnZSgpIHsgbV9wYWdlID0gMDsgfQogCiAgICAgLy8gTk9URTogVGhpcyBzaG91bGQgb25seSBi
ZSBjYWxsZWQgYnkgdGhlIG92ZXJyaWRlbiBzZXRTY3JvbGxPZmZzZXQgZnJvbSBTY3JvbGxhYmxl
QXJlYS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5MDEzNCkKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMDYtMzAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Jl
IFNjcm9sbGFibGVBcmVhIHNjYWZmb2xkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MzY3OAorCisgICAgICAgIEFkZCBhbiBlbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSBzdHViLgorCisgICAgICAgICogc3JjL1dlYlNjcm9sbGJhckltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTY3JvbGxiYXJJbXBsOjplbmNsb3NpbmdTY3JvbGxhYmxlQXJl
YSk6CisgICAgICAgICogc3JjL1dlYlNjcm9sbGJhckltcGwuaDoKKwogMjAxMS0wNi0zMCAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbnQgVGFtdXJhLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Ny
b2xsYmFySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2Nyb2xsYmFySW1wbC5jcHAJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw2
ICsyOTAsMTIgQEAgYm9vbCBXZWJTY3JvbGxiYXJJbXBsOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK1Njcm9sbGFibGVBcmVhKiBXZWJTY3JvbGxiYXJJbXBsOjplbmNs
b3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUUKKyAgICByZXR1cm4g
MDsKK30KKwogYm9vbCBXZWJTY3JvbGxiYXJJbXBsOjppc1Njcm9sbENvcm5lclZpc2libGUoKSBj
b25zdAogewogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNjcm9sbGJhckltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTY3JvbGxiYXJJbXBsLmgJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2Nyb2xsYmFySW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJh
clJlY3QoV2ViQ29yZTo6U2Nyb2xsYmFyKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisgICAgdmlydHVh
bCBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsKICAgICB2
aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IFdlYkNvcmU6OkludFJlY3QoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Njcm9sbENvcm5lclZp
c2libGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0VGlja21hcmtzKFZlY3RvcjxXZWJD
b3JlOjpJbnRSZWN0PiYpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99352</attachid>
            <date>2011-06-30 12:02:45 -0700</date>
            <delta_ts>2011-06-30 12:13:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63678-20110630120245.patch</filename>
            <type>text/plain</type>
            <size>13794</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwMTQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTEtMDYtMzAgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3JlIFNjcm9sbGFibGVBcmVhIHNjYWZmb2xkaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzY3OAorCisg
ICAgICAgIEFkZCBhIHdheSB0byBnZXQgdGhlIGVuY2xvc2luZyBzY3JvbGxhYmxlIGFyZWEgZm9y
IGEgZ2l2ZW4gc2Nyb2xsYWJsZSBhcmVhLgorICAgICAgICBBbHNvLCBhZGQgU2Nyb2xsYWJsZUFy
ZWE6OmlzUGlubmVkSW5EaXJlY3Rpb25PZlNjcm9sbERlbHRhLgorCisgICAgICAgICogcGFnZS9G
cmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjplbmNsb3NpbmdTY3Jv
bGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiAwIGZvciBub3cuCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICBBZGQgRnJhbWVWaWV3OjplbmNsb3NpbmdTY3JvbGxhYmxl
QXJlYS4KKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0
YSk6CisgICAgICAgIFJldHVybiB3aGV0aGVyIHRoZSBhcmVhIGlzIHBpbm5lZCBpbiB0aGUgZGly
ZWN0aW9uIG9mIHRoZSBzY3JvbGwgZGVsdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oOgorICAgICAgICBBZGQgbmV3IG1lbWJlciBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lbGVzc1Njcm9sbFZpZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3Lmg6CisgICAgICAg
IEFkZCBzdHViLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSk6Cisg
ICAgICAgIEFsd2F5cyByZXR1cm4gMC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZW5jbG9zaW5nU2Nyb2xsYWJs
ZUxheWVyKToKKyAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbi4KKworICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkpOgorICAgICAgICBVc2UgdGhlIG5l
dyBlbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIgaGVscGVyIGZ1bmN0aW9uLgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICBS
ZXR1cm4gdGhlIGVuY2xvc2luZyBzY3JvbGxhYmxlIGFyZWEuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgQWRkIG5ldyBtZW1iZXIgZnVuY3Rpb24uCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMaXN0Qm94OjplbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSk6CisgICAgICAgIFJldHVybiAw
IGZvciBub3cuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6
CisgICAgICAgIEFkZCBuZXcgbWVtYmVyIGZ1bmN0aW9uLgorCiAyMDExLTA2LTMwICBUYWIgQXRr
aW5zICA8amFja2FsbWFnZUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDkwMTMyKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjM4LDYgKzIyMzgsMTIgQEAgYm9vbCBGcmFtZVZpZXc6OmlzT25BY3RpdmVQYWdlKCkgY29uc3QK
ICAgICByZXR1cm4gIW1fZnJhbWUtPmRvY3VtZW50KCktPmluUGFnZUNhY2hlKCk7CiB9CiAKK1Nj
cm9sbGFibGVBcmVhKiBGcmFtZVZpZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QK
K3sKKyAgICAvLyBGSVhNRTogV2FsayB1cCB0aGUgZnJhbWUgdHJlZSBhbmQgbG9vayBmb3IgYSBz
Y3JvbGxhYmxlIHBhcmVudCBmcmFtZS4KKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBGcmFtZVZp
ZXc6OnNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9mcmFtZS0+bG9hZGVyKCktPnN0YXRlKCkgIT0gRnJhbWVTdGF0ZUNvbXBsZXRlOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzNiw2ICszMzYsOCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZUFuaW1hdGVkU2Nyb2xsKCkgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc2libGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRS
ZWN0Jik7CiAgICAgdmlydHVhbCBib29sIGlzT25BY3RpdmVQYWdlKCkgY29uc3Q7CisgICAgdmly
dHVhbCBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsKKwog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICB2aXJ0dWFsIEdyYXBoaWNzTGF5
ZXIqIGxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0OwogICAgIHZpcnR1YWwgR3Jh
cGhpY3NMYXllciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAkocmV2aXNpb24gOTAxMzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwNSw2ICsyMDUsMjEgQEAgYm9vbCBTY3JvbGxhYmxlQXJlYTo6aGFzT3Zlcmxh
eVNjcm9sbGJhcgogICAgICAgICB8fCAoaG9yaXpvbnRhbFNjcm9sbGJhcigpICYmIGhvcml6b250
YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xsYmFyKCkpOwogfQogCitib29sIFNjcm9sbGFi
bGVBcmVhOjppc1Bpbm5lZEluRGlyZWN0aW9uT2ZTY3JvbGxEZWx0YShjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSkgY29uc3QKK3sKKyAgICBpZiAoc2Nyb2xsRGVsdGEud2lkdGgoKSA8IDAgJiYg
aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbigpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoc2Nyb2xsRGVsdGEud2lkdGgoKSA+IDAgJiYgaXNIb3Jpem9u
dGFsU2Nyb2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIGlmIChzY3JvbGxEZWx0YS5oZWlnaHQoKSA8IDAgJiYgaXNWZXJ0aWNhbFNjcm9s
bGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
aWYgKHNjcm9sbERlbHRhLmhlaWdodCgpID4gMCAmJiBpc1ZlcnRpY2FsU2Nyb2xsZXJQaW5uZWRU
b01heGltdW1Qb3NpdGlvbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBm
YWxzZTsKK30KKwogdm9pZCBTY3JvbGxhYmxlQXJlYTo6aW52YWxpZGF0ZVNjcm9sbGJhcihTY3Jv
bGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxh
YmxlQXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmgJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCwxMSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc1ZlcnRpY2FsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuICF2ZXJ0aWNhbFNjcm9sbGJhcigpIHx8IHNjcm9sbFBvc2l0aW9uKHZlcnRp
Y2FsU2Nyb2xsYmFyKCkpIDw9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpLnkoKTsgfQogICAgIGJv
b2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxQb3NpdGlvbih2ZXJ0aWNhbFNjcm9s
bGJhcigpKSA+PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKS55KCk7IH0KIAorICAgIC8vIE5vdGUg
dGhhdCB0aGlzIG9ubHkgcmV0dXJucyBzY3JvbGxhYmxlIGFyZWFzIHRoYXQgY2FuIGFjdHVhbGx5
IGJlIHNjcm9sbGVkLgorICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9s
bGFibGVBcmVhKCkgY29uc3QgPSAwOworCisgICAgYm9vbCBpc1Bpbm5lZEluRGlyZWN0aW9uT2ZT
Y3JvbGxEZWx0YShjb25zdCBJbnRTaXplJikgY29uc3Q7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tUGFnZSgpIHsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Nyb2xsVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRnJhbWVs
ZXNzU2Nyb2xsVmlldy5jcHAJKHJldmlzaW9uIDkwMTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRnJhbWVsZXNzU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDYgKzU3LDEyIEBAIGJvb2wgRnJhbWVsZXNzU2Nyb2xsVmlldzo6aXNBY3RpdmUoKSBjb24K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorU2Nyb2xsYWJsZUFyZWEqIEZyYW1lbGVzc1Njcm9sbFZp
ZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRQorICAg
IHJldHVybiAwOworfQorCiB2b2lkIEZyYW1lbGVzc1Njcm9sbFZpZXc6OmludmFsaWRhdGVSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKEhvc3RXaW5kb3cqIGggPSBob3N0V2lu
ZG93KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NT
Y3JvbGxWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vRnJhbWVsZXNzU2Nyb2xsVmlldy5oCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtNjQsNiArNjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFNjcm9s
bGFibGVBcmVhIHB1YmxpYyBtZXRob2RzOgogICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0
dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJl
YSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsKIAogICAgICAgICAvLyBXaWRnZXQg
cHVibGljIG1ldGhvZHM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUmVjdChjb25z
dCBJbnRSZWN0Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5oCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
b3B1cE1lbnVXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqLCBjb25z
dCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Nj
cm9sbGFibGVBcmVhKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1Nj
cm9sbENvcm5lclZpc2libGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
V2ViQ29yZTo6SW50UmVjdCBzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gV2ViQ29y
ZTo6SW50UmVjdCgpOyB9CiAgICAgdmlydHVhbCBTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFy
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXIuZ2V0KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gOTAxMzIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03ODMs
NiArNzgzLDIwIEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nUG9zaXQKICAg
ICByZXR1cm4gY3VycjsKIH0KIAorUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdT
Y3JvbGxhYmxlTGF5ZXIoKSBjb25zdAoreworICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVy
ID0gcmVuZGVyZXIoKS0+cGFyZW50KCk7CisKKyAgICB3aGlsZSAobmV4dFJlbmRlcmVyKSB7Cisg
ICAgICAgIGlmIChuZXh0UmVuZGVyZXItPmlzQm94KCkgJiYgdG9SZW5kZXJCb3gobmV4dFJlbmRl
cmVyKS0+Y2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkpCisgICAgICAgICAgICBy
ZXR1cm4gbmV4dFJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpOworCisgICAgICAgIG5leHRSZW5k
ZXJlciA9IG5leHRSZW5kZXJlci0+cGFyZW50KCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9
CisKIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nVHJhbnNmb3JtZWRBbmNlc3Rv
cigpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXIqIGN1cnIgPSBwYXJlbnQoKTsKQEAgLTEyNTgs
MTQgKzEyNzIsOCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KGluCiAg
ICAgICAgIGludCBsZWZ0VG9TY3JvbGxYID0gbmV3T2Zmc2V0WCAtIHNjcm9sbFhPZmZzZXQoKTsK
ICAgICAgICAgaW50IGxlZnRUb1Njcm9sbFkgPSBuZXdPZmZzZXRZIC0gc2Nyb2xsWU9mZnNldCgp
OwogICAgICAgICBpZiAoKGxlZnRUb1Njcm9sbFggfHwgbGVmdFRvU2Nyb2xsWSkgJiYgcmVuZGVy
ZXIoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVy
ID0gcmVuZGVyZXIoKS0+cGFyZW50KCk7Ci0gICAgICAgICAgICB3aGlsZSAobmV4dFJlbmRlcmVy
KSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5leHRSZW5kZXJlci0+aXNCb3goKSAmJiB0b1JlbmRl
ckJveChuZXh0UmVuZGVyZXIpLT5jYW5CZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSkg
ewotICAgICAgICAgICAgICAgICAgICBuZXh0UmVuZGVyZXItPmVuY2xvc2luZ0xheWVyKCktPnNj
cm9sbEJ5UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7Ci0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBu
ZXh0UmVuZGVyZXIgPSBuZXh0UmVuZGVyZXItPnBhcmVudCgpOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBzY3JvbGxhYmxlTGF5ZXIgPSBlbmNsb3NpbmdTY3Jv
bGxhYmxlTGF5ZXIoKSkKKyAgICAgICAgICAgICAgICBzY3JvbGxhYmxlTGF5ZXItPnNjcm9sbEJ5
UmVjdXJzaXZlbHkobGVmdFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7CiAKICAgICAgICAgICAg
IEZyYW1lKiBmcmFtZSA9IHJlbmRlcmVyKCktPmZyYW1lKCk7CiAgICAgICAgICAgICBpZiAoZnJh
bWUpCkBAIC0xOTg2LDYgKzE5OTQsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzVmVydGlj
YWxTY3JvbGxiYQogI2VuZGlmCiB9CiAKK1Njcm9sbGFibGVBcmVhKiBSZW5kZXJMYXllcjo6ZW5j
bG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdAoreworICAgIGlmIChSZW5kZXJMYXllciogc2Ny
b2xsYWJsZUxheWVyID0gZW5jbG9zaW5nU2Nyb2xsYWJsZUxheWVyKCkpCisgICAgICAgIHJldHVy
biBzY3JvbGxhYmxlTGF5ZXI7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJldHVybiB0aGUg
ZnJhbWUgdmlldyBoZXJlIChvciBwb3NzaWJseSBhIHBhcmVudCBmcmFtZSB2aWV3LAorICAgIC8v
IGlmIHRoZSBmcmFtZSB2aWV3IGlzbid0IHNjcm9sbGFibGUuCisgICAgcmV0dXJuIDA7Cit9CisK
IGludCBSZW5kZXJMYXllcjo6dmVydGljYWxTY3JvbGxiYXJXaWR0aChPdmVybGF5U2Nyb2xsYmFy
U2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3ZCYXIgfHwgKG1f
dkJhci0+aXNPdmVybGF5U2Nyb2xsYmFyKCkgJiYgcmVsZXZhbmN5ID09IElnbm9yZU92ZXJsYXlT
Y3JvbGxiYXJTaXplKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNiArMjU5LDcgQEAgcHVibGljOgogICAgIC8vIFNj
cm9sbGFibGVBcmVhIG92ZXJyaWRlcwogICAgIHZpcnR1YWwgU2Nyb2xsYmFyKiBob3Jpem9udGFs
U2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV9oQmFyLmdldCgpOyB9CiAgICAgdmlydHVhbCBT
Y3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gbV92QmFyLmdldCgp
OyB9CisgICAgdmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEo
KSBjb25zdDsKIAogICAgIGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKE92ZXJsYXlTY3JvbGxi
YXJTaXplUmVsZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAg
IGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZh
bmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwpAQCAtMzQ0LDYgKzM0NSw5
IEBAIHB1YmxpYzoKICAgICAvLyB0aGUgPGh0bWw+IGxheWVyIGFuZCB0aGUgcm9vdCBsYXllciku
CiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1Bvc2l0aW9uZWRBbmNlc3RvcigpIGNvbnN0Owog
CisgICAgLy8gUmV0dXJucyB0aGUgbmVhcmVzdCBlbmNsb3NpbmcgbGF5ZXIgdGhhdCBpcyBzY3Jv
bGxhYmxlLgorICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIoKSBjb25z
dDsKKwogICAgIC8vIFRoZSBsYXllciByZWxhdGl2ZSB0byB3aGljaCBjbGlwcGluZyByZWN0cyBm
b3IgdGhpcyBsYXllciBhcmUgY29tcHV0ZWQuCiAgICAgUmVuZGVyTGF5ZXIqIGNsaXBwaW5nUm9v
dCgpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA4LDYgKzgwOCwxMiBAQCBib29sIFJl
bmRlckxpc3RCb3g6OmlzT25BY3RpdmVQYWdlKCkgY29uCiAgICAgcmV0dXJuICFkb2N1bWVudCgp
LT5pblBhZ2VDYWNoZSgpOwogfQogCitTY3JvbGxhYmxlQXJlYSogUmVuZGVyTGlzdEJveDo6ZW5j
bG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBSZXR1cm4gYSBS
ZW5kZXJMYXllciB0aGF0J3Mgc2Nyb2xsYWJsZS4KKyAgICByZXR1cm4gMDsKK30KKwogUGFzc1Jl
ZlB0cjxTY3JvbGxiYXI+IFJlbmRlckxpc3RCb3g6OmNyZWF0ZVNjcm9sbGJhcigpCiB7CiAgICAg
UmVmUHRyPFNjcm9sbGJhcj4gd2lkZ2V0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0Qm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09uQWN0aXZlUGFnZSgpIGNvbnN0OwogCisgICAg
dmlydHVhbCBTY3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsK
KwogICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbVBhZ2UoKSB7IG1fcGFnZSA9IDA7IH0K
IAogICAgIC8vIE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvdmVycmlk
ZW4gc2V0U2Nyb2xsT2Zmc2V0IGZyb20gU2Nyb2xsYWJsZUFyZWEuCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTAxMzQpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTA2LTMwICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9yZSBTY3JvbGxhYmxlQXJlYSBzY2FmZm9s
ZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjM2
NzgKKworICAgICAgICBBZGQgYW4gZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEgc3R1Yi4KKworICAg
ICAgICAqIHNyYy9XZWJTY3JvbGxiYXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2Ny
b2xsYmFySW1wbDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAqIHNyYy9XZWJT
Y3JvbGxiYXJJbXBsLmg6CisKIDIwMTEtMDYtMzAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcm9sbGJhckltcGwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcm9sbGJhckltcGwuY3BwCShy
ZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcm9sbGJh
ckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDEyIEBAIGJvb2wgV2ViU2Ny
b2xsYmFySW1wbDo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitTY3Jv
bGxhYmxlQXJlYSogV2ViU2Nyb2xsYmFySW1wbDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBj
b25zdAoreworICAgIC8vIEZJWE1FCisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgV2ViU2Nyb2xs
YmFySW1wbDo6aXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFs
c2U7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JvbGxiYXJJbXBsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Nyb2xsYmFySW1w
bC5oCShyZXZpc2lvbiA5MDEzMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNj
cm9sbGJhckltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFdlYkNvcmU6OlNjcm9sbGJh
ciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBpc0FjdGl2ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xv
c2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0
IHNjcm9sbENvcm5lclJlY3QoKSBjb25zdCB7IHJldHVybiBXZWJDb3JlOjpJbnRSZWN0KCk7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIGdldFRpY2ttYXJrcyhWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mKSBjb25zdDsK
</data>
<flag name="review"
          id="93808"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>