<?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>56482</bug_id>
          
          <creation_ts>2011-03-16 13:22:44 -0700</creation_ts>
          <short_desc>Make CSSMedia queries pass through Chrome and ChromeClient</short_desc>
          <delta_ts>2012-12-26 07:10:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50895</blocked>
    
    <blocked>56678</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hyatt</cc>
    
    <cc>mikeperry-webkit</cc>
    
    <cc>robert</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>368486</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-16 13:22:44 -0700</bug_when>
    <thetext>Make CSSMedia queries pass through Chrome and ChromeClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368489</commentid>
    <comment_count>1</comment_count>
      <attachid>85963</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-16 13:28:36 -0700</bug_when>
    <thetext>Created attachment 85963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368985</commentid>
    <comment_count>2</comment_count>
      <attachid>85963</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-17 04:28:47 -0700</bug_when>
    <thetext>Comment on attachment 85963
Patch

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

Why?  Please explain in your ChangeLog.

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:-232
&gt; -    if (!screenIsMonochrome(frame-&gt;page()-&gt;mainFrame()-&gt;view())) {

what happens to the screenIsMonochrome function?  Is it being removed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369025</commentid>
    <comment_count>3</comment_count>
      <attachid>86050</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-17 05:54:48 -0700</bug_when>
    <thetext>Created attachment 86050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369038</commentid>
    <comment_count>4</comment_count>
      <attachid>86050</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-17 07:35:14 -0700</bug_when>
    <thetext>Comment on attachment 86050
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:232
&gt; +    if (!frame-&gt;page()-&gt;chrome()-&gt;screenIsMonochrome()) {

No, it&apos;s not removed. It&apos;s called from Chrome instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369772</commentid>
    <comment_count>5</comment_count>
      <attachid>86050</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-18 11:59:53 -0700</bug_when>
    <thetext>Comment on attachment 86050
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:257
&gt; +        FloatRect sg = frame-&gt;page()-&gt;chrome()-&gt;pageRect();

Note to self: this should be windowRect() I think.

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:332
&gt; +    FloatRect sg = frame-&gt;page()-&gt;chrome()-&gt;pageRect();

Note to self: this should be windowRect() I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369779</commentid>
    <comment_count>6</comment_count>
      <attachid>86050</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-18 12:14:31 -0700</bug_when>
    <thetext>Comment on attachment 86050
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:86
&gt; +        int screenDepthPerComponent(int bitsPerComponent) { return bitsPerComponent; }
&gt; +        bool screenIsMonochrome(bool isMonochrome) { return isMonochrome; }
&gt; +        FloatRect screenRect(FloatRect rect) { return rect; }
&gt; +        FloatRect screenAvailableRect(FloatRect rect) { return rect; }

Oh, these should be virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369895</commentid>
    <comment_count>7</comment_count>
      <attachid>86050</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-18 14:33:00 -0700</bug_when>
    <thetext>Comment on attachment 86050
Patch

So is this only for fighting fingerprinting?  Shouldn&apos;t anti-fingerprinting measures be in WebCore directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369904</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-18 14:43:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 86050 [details])
&gt; So is this only for fighting fingerprinting?  Shouldn&apos;t anti-fingerprinting measures be in WebCore directly?

It isn&apos;t always the right place for them. 

See

https://trac.webkit.org/wiki/Fingerprinting#CreatingaCommonFingerprint

A browser needs the flexibility to create a common fingerprint for it&apos;s users - WebCore isn&apos;t always best placed to decide what this fingerprint should be.

I think the &apos;bare metal&apos; properties of the screen and viewport inspected by CSS media queries in PlatformScreen are a good example. A browser will often have to make a trade-off between user experience and a relatively common set of values for screen/chrome/window dimensions - it ensures these are respected by the Screen and Window DOM objects, and it needs to do the same with CSS media queries.

A good example of this is in the Torbutton design document referenced here:

https://trac.webkit.org/wiki/Fingerprinting#WindowObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369920</commentid>
    <comment_count>9</comment_count>
      <attachid>86217</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-18 14:56:03 -0700</bug_when>
    <thetext>Created attachment 86217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376544</commentid>
    <comment_count>10</comment_count>
      <attachid>86217</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-30 11:50:23 -0700</bug_when>
    <thetext>Comment on attachment 86217
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:222
&gt; -    int bitsPerComponent = screenDepthPerComponent(frame-&gt;page()-&gt;mainFrame()-&gt;view());
&gt; +    int bitsPerComponent = frame-&gt;page()-&gt;chrome()-&gt;screenDepthPerComponent();

What if page is null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408327</commentid>
    <comment_count>11</comment_count>
      <attachid>86217</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-23 14:49:14 -0700</bug_when>
    <thetext>Comment on attachment 86217
Patch

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

I disagree with this approach.  If we are doing this for fingerprinting avoidance, we should write the anti-fingerprinting code in WebCore instead of piping everything through WebKit.

&gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:222
&gt;&gt; +    int bitsPerComponent = frame-&gt;page()-&gt;chrome()-&gt;screenDepthPerComponent();
&gt; 
&gt; What if page is null?

frame-&gt;page() can only be null during teardown, or?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85963</attachid>
            <date>2011-03-16 13:28:36 -0700</date>
            <delta_ts>2011-03-17 05:54:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56482-20110316202833.patch</filename>
            <type>text/plain</type>
            <size>10824</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEwNDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ODJiOGRhY2U4MjJiYTQz
MjNmNzY4YWI0NWI3ZjZmM2RhYmJkOTQ0Li5kYmZmMmRjMDhmMmIzMmRiY2E2YjdiNTc1YzAzMWE1
NGUzMjhiY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDMtMTYgIFJvYmVy
dCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQ1NTTWVkaWEgcXVlcmllcyBwYXNzIHRocm91Z2gg
Q2hyb21lIGFuZCBDaHJvbWVDbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU2NDgyCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIC0gbm8gbmV3IGZ1
bmN0aW5hbGl0eS4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbG9yTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3Jl
Ojptb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpvcmllbnRh
dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6YXNwZWN0X3JhdGlvTWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VfYXNwZWN0X3JhdGlvTWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0
dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFs
KToKKyAgICAgICAgKFdlYkNvcmU6OmhlaWdodE1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAo
V2ViQ29yZTo6d2lkdGhNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuSXNNb25vY2hyb21lKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuSXNMYW5kc2NhcGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuQXZh
aWxhYmxlUmVjdCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0No
cm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3JlZW5EZXB0
aFBlckNvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNjcmVlbklz
TW9ub2Nocm9tZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNjcmVlblJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3JlZW5BdmFpbGFibGVSZWN0KToK
KwogMjAxMS0wMy0xMSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
dmFsdWF0b3IuY3BwCmluZGV4IGZhMmUwOTk3YmU1ZDlkZWM0MDhjYjcxYzY3NmNiM2E0Y2Q0ZTAy
ZWMuLjIzMWU1NjU1Njg0MzNhYmYwNmQwYmMyODUwMTRhZWY0MjQ1ZDlkNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTIxOSw3ICsyMTksNyBAQCBz
dGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQpCiAK
IHN0YXRpYyBib29sIGNvbG9yTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7Ci0gICAgaW50
IGJpdHNQZXJDb21wb25lbnQgPSBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChmcmFtZS0+cGFnZSgp
LT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICBpbnQgYml0c1BlckNvbXBvbmVudCA9IGZyYW1l
LT5wYWdlKCktPmNocm9tZSgpLT5zY3JlZW5EZXB0aFBlckNvbXBvbmVudCgpOwogICAgIGZsb2F0
IG51bWJlcjsKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVybiBudW1iZXJWYWx1ZSh2YWx1
ZSwgbnVtYmVyKSAmJiBjb21wYXJlVmFsdWUoYml0c1BlckNvbXBvbmVudCwgc3RhdGljX2Nhc3Q8
aW50PihudW1iZXIpLCBvcCk7CkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIGJvb2wgY29sb3JN
ZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJh
bWUsIE0KIAogc3RhdGljIGJvb2wgbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUq
IHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJl
Zml4IG9wKQogewotICAgIGlmICghc2NyZWVuSXNNb25vY2hyb21lKGZyYW1lLT5wYWdlKCktPm1h
aW5GcmFtZSgpLT52aWV3KCkpKSB7CisgICAgaWYgKCFmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+
c2NyZWVuSXNNb25vY2hyb21lKCkpIHsKICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgICAg
ICBmbG9hdCBudW1iZXI7CiAgICAgICAgICAgICByZXR1cm4gbnVtYmVyVmFsdWUodmFsdWUsIG51
bWJlcikgJiYgY29tcGFyZVZhbHVlKDAsIHN0YXRpY19jYXN0PGludD4obnVtYmVyKSwgb3ApOwpA
QCAtMjQ2LDEwICsyNDYsNyBAQCBzdGF0aWMgYm9vbCBvcmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2
YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcgogICAgIGlmICghdmFs
dWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1l
LT52aWV3KCk7Ci0gICAgaW50IHdpZHRoID0gdmlldy0+bGF5b3V0V2lkdGgoKTsKLSAgICBpbnQg
aGVpZ2h0ID0gdmlldy0+bGF5b3V0SGVpZ2h0KCk7Ci0gICAgaWYgKHdpZHRoID4gaGVpZ2h0KSAv
LyBTcXVhcmUgdmlld3BvcnQgaXMgcG9ydHJhaXQKKyAgICBpZiAoIWZyYW1lLT5wYWdlKCktPmNo
cm9tZSgpLT5zY3JlZW5Jc0xhbmRzY2FwZSgpKQogICAgICAgICByZXR1cm4gImxhbmRzY2FwZSIg
PT0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVl
KCk7CiAgICAgcmV0dXJuICJwb3J0cmFpdCIgPT0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWUqPih2YWx1ZSktPmdldFN0cmluZ1ZhbHVlKCk7CiB9CkBAIC0yNTcsMTMgKzI1NCwxMSBAQCBz
dGF0aWMgYm9vbCBvcmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBS
ZW5kZXJTdHlsZSosIEZyYW1lKiBmcgogc3RhdGljIGJvb2wgYXNwZWN0X3JhdGlvTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIEZyYW1lVmll
dyogdmlldyA9IGZyYW1lLT52aWV3KCk7Ci0gICAgICAgIGludCB3aWR0aCA9IHZpZXctPmxheW91
dFdpZHRoKCk7Ci0gICAgICAgIGludCBoZWlnaHQgPSB2aWV3LT5sYXlvdXRIZWlnaHQoKTsKKyAg
ICAgICAgRmxvYXRSZWN0IHNnID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnBhZ2VSZWN0KCk7
CiAgICAgICAgIGludCBoID0gMDsKICAgICAgICAgaW50IHYgPSAwOwogICAgICAgICBpZiAocGFy
c2VBc3BlY3RSYXRpbyh2YWx1ZSwgaCwgdikpCi0gICAgICAgICAgICByZXR1cm4gdiAhPSAwICYm
IGNvbXBhcmVWYWx1ZSh3aWR0aCAqIHYsIGhlaWdodCAqIGgsIG9wKTsKKyAgICAgICAgICAgIHJl
dHVybiB2ICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndpZHRoKCkpICogdiwg
c3RhdGljX2Nhc3Q8aW50PihzZy5oZWlnaHQoKSkgKiBoLCBvcCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKQEAgLTI3NSwxMSArMjcwLDExIEBAIHN0YXRpYyBib29sIGFzcGVjdF9y
YXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1l
KiBmCiBzdGF0aWMgYm9vbCBkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVm
aXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVl
blJlY3QoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CisgICAgICAgIEZsb2F0
UmVjdCBzZyA9IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zY3JlZW5SZWN0KCk7CiAgICAgICAg
IGludCBoID0gMDsKICAgICAgICAgaW50IHYgPSAwOwogICAgICAgICBpZiAocGFyc2VBc3BlY3RS
YXRpbyh2YWx1ZSwgaCwgdikpCi0gICAgICAgICAgICByZXR1cm4gdiAhPSAwICAmJiBjb21wYXJl
VmFsdWUoc3RhdGljX2Nhc3Q8aW50PihzZy53aWR0aCgpKSAqIHYsIHN0YXRpY19jYXN0PGludD4o
c2cuaGVpZ2h0KCkpICogaCwgb3ApOworICAgICAgICAgICAgcmV0dXJuIHYgICYmIGNvbXBhcmVW
YWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndpZHRoKCkpICogdiwgc3RhdGljX2Nhc3Q8aW50Pihz
Zy5oZWlnaHQoKSkgKiBoLCBvcCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAg
LTMwOSw3ICszMDQsNyBAQCBzdGF0aWMgYm9vbCBncmlkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRpYUZlYQogc3RhdGljIGJvb2wgZGV2
aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSog
c3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIGlmICh2
YWx1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2cgPSBzY3JlZW5SZWN0KGZyYW1lLT5wYWdlKCkt
Pm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgICAgICBGbG9hdFJlY3Qgc2cgPSBmcmFtZS0+cGFn
ZSgpLT5jaHJvbWUoKS0+c2NyZWVuUmVjdCgpOwogICAgICAgICBSZW5kZXJTdHlsZSogcm9vdFN0
eWxlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJTdHlsZSgp
OwogICAgICAgICByZXR1cm4gdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBjb21wYXJlVmFs
dWUoc3RhdGljX2Nhc3Q8aW50PihzZy5oZWlnaHQoKSksIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxlLCByb290U3R5bGUpLCBvcCk7
CiAgICAgfQpAQCAtMzIxLDcgKzMxNiw3IEBAIHN0YXRpYyBib29sIGRldmljZV9oZWlnaHRNZWRp
YUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGCiBzdGF0
aWMgYm9vbCBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsK
ICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgRmxvYXRSZWN0IHNnID0gc2NyZWVuUmVjdChmcmFt
ZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICAgICAgRmxvYXRSZWN0IHNnID0g
ZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnNjcmVlblJlY3QoKTsKICAgICAgICAgUmVuZGVyU3R5
bGUqIHJvb3RTdHlsZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKS0+cmVu
ZGVyU3R5bGUoKTsKICAgICAgICAgcmV0dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYg
Y29tcGFyZVZhbHVlKHN0YXRpY19jYXN0PGludD4oc2cud2lkdGgoKSksIHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxlLCByb290U3R5
bGUpLCBvcCk7CiAgICAgfQpAQCAtMzM0LDkgKzMyOSwxMCBAQCBzdGF0aWMgYm9vbCBoZWlnaHRN
ZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFt
ZSogZgogewogICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgUmVuZGVy
U3R5bGUqIHJvb3RTdHlsZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKS0+
cmVuZGVyU3R5bGUoKTsKKyAgICBGbG9hdFJlY3Qgc2cgPSBmcmFtZS0+cGFnZSgpLT5jaHJvbWUo
KS0+cGFnZVJlY3QoKTsKIAogICAgIGlmICh2YWx1ZSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLT5p
c1ByaW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKHZpZXctPmxheW91dEhlaWdodCgpLCBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0aEludChz
dHlsZSwgcm9vdFN0eWxlKSwgb3ApOworICAgICAgICByZXR1cm4gdmFsdWUtPmlzUHJpbWl0aXZl
VmFsdWUoKSAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50PihzZy5oZWlnaHQoKSksIHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRlTGVuZ3RoSW50KHN0
eWxlLCByb290U3R5bGUpLCBvcCk7CiAKICAgICByZXR1cm4gdmlldy0+bGF5b3V0SGVpZ2h0KCkg
IT0gMDsKIH0KQEAgLTM0NSw5ICszNDEsMTAgQEAgc3RhdGljIGJvb2wgd2lkdGhNZWRpYUZlYXR1
cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnIKIHsK
ICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwogICAgIFJlbmRlclN0eWxlKiBy
b290U3R5bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlclN0
eWxlKCk7CisgICAgRmxvYXRSZWN0IHNnID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnBhZ2VS
ZWN0KCk7CiAKICAgICBpZiAodmFsdWUpCi0gICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmltaXRp
dmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZSh2aWV3LT5sYXlvdXRXaWR0aCgpLCBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSwgcm9v
dFN0eWxlKSwgb3ApOworICAgICAgICByZXR1cm4gdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAm
JiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50PihzZy53aWR0aCgpKSwgc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUsIHJvb3RT
dHlsZSksIG9wKTsKIAogICAgIHJldHVybiB2aWV3LT5sYXlvdXRXaWR0aCgpICE9IDA7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNTg4MWQ1ZWE0NTg3MTg1MGZmYWFkMzMxNDMxNDc3YzUw
NzhjYWZmNy4uOWQxYmNlZTkxOTk1ZWRlZjUzOGQ0YjIyNWE3YTgyYWU4ODczNzY0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZpbGVMaXN0Lmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlv
bi5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVl
bi5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpAQCAtMTA5LDYgKzExMSwzNyBAQCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAg
IHJldHVybiBtX2NsaWVudC0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7CiB9CiAKK2ludCBDaHJvbWU6
OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KCkgY29uc3QKK3sKKyAgICBpbnQgYml0c1BlckNvbXBv
bmVudCA9IFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KG1fcGFnZS0+bWFpbkZyYW1l
KCktPnZpZXcoKSk7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zY3JlZW5EZXB0aFBlckNvbXBvbmVu
dChiaXRzUGVyQ29tcG9uZW50KTsKK30KKworYm9vbCBDaHJvbWU6OnNjcmVlbklzTW9ub2Nocm9t
ZSgpIGNvbnN0Cit7CisgICAgYm9vbCBpc01vbm9jaHJvbWUgPSBXZWJDb3JlOjpzY3JlZW5Jc01v
bm9jaHJvbWUobV9wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICByZXR1cm4gbV9jbGll
bnQtPnNjcmVlbklzTW9ub2Nocm9tZShpc01vbm9jaHJvbWUpOworfQorCitib29sIENocm9tZTo6
c2NyZWVuSXNMYW5kc2NhcGUoKSBjb25zdAoreworICAgIGludCB3aWR0aCA9IHBhZ2VSZWN0KCku
d2lkdGgoKTsKKyAgICBpbnQgaGVpZ2h0ID0gcGFnZVJlY3QoKS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gKHdpZHRoID4gaGVpZ2h0KTsgLy8gU3F1YXJlIHZpZXdwb3J0IGlzIHBvcnRyYWl0Cit9CisK
K0Zsb2F0UmVjdCBDaHJvbWU6OnNjcmVlblJlY3QoKSBjb25zdAoreworICAgIEZsb2F0UmVjdCBy
ZWN0ID0gV2ViQ29yZTo6c2NyZWVuUmVjdChtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOwor
ICAgIHJldHVybiBtX2NsaWVudC0+c2NyZWVuUmVjdChyZWN0KTsgLy8gU3F1YXJlIHZpZXdwb3J0
IGlzIHBvcnRyYWl0Cit9CisKK0Zsb2F0UmVjdCBDaHJvbWU6OnNjcmVlbkF2YWlsYWJsZVJlY3Qo
KSBjb25zdAoreworICAgIEZsb2F0UmVjdCByZWN0ID0gV2ViQ29yZTo6c2NyZWVuQXZhaWxhYmxl
UmVjdChtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgIHJldHVybiBtX2NsaWVudC0+
c2NyZWVuQXZhaWxhYmxlUmVjdChyZWN0KTsgLy8gU3F1YXJlIHZpZXdwb3J0IGlzIHBvcnRyYWl0
Cit9CisKIHZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBtX2NsaWVudC0+Y29udGVudHNTaXplQ2hh
bmdlZChmcmFtZSwgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA5OTg0YTdjYjk4MWViMTQ2
ZGYwYzhmNjUwYWI1N2FjMjNiMGRhNTAzLi5kZWM0M2NiY2JjYjMyNjFiZDcxNDkzYzI5ZDMyMDFi
OTAyOTZmNTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTgxLDYgKzgxLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpOwogI2VuZGlmCisgICAgICAgIGludCBz
Y3JlZW5EZXB0aFBlckNvbXBvbmVudCgpIGNvbnN0OworICAgICAgICBib29sIHNjcmVlbklzTW9u
b2Nocm9tZSgpIGNvbnN0OworICAgICAgICBib29sIHNjcmVlbklzTGFuZHNjYXBlKCkgY29uc3Q7
CisgICAgICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVj
dCBzY3JlZW5BdmFpbGFibGVSZWN0KCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBzY3JvbGxSZWN0
SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCBmY2NlNjkzZDZiODhmOGFmMWE0NDQxNzU0MTNmZmE5NTMzMmNiM2U4Li43ZDYw
YTk4NDJiZjc1NjE3ZWIzM2M5NjY3NjVmYjRiMjcxOTk3MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTgwLDYgKzgwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKICAgICAgICAgCiAgICAgICAg
IHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOworICAgICAgICBpbnQgc2NyZWVuRGVw
dGhQZXJDb21wb25lbnQoaW50IGJpdHNQZXJDb21wb25lbnQpIHsgcmV0dXJuIGJpdHNQZXJDb21w
b25lbnQ7IH0KKyAgICAgICAgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoYm9vbCBpc01vbm9jaHJv
bWUpIHsgcmV0dXJuIGlzTW9ub2Nocm9tZTsgfQorICAgICAgICBGbG9hdFJlY3Qgc2NyZWVuUmVj
dChGbG9hdFJlY3QgcmVjdCkgeyByZXR1cm4gcmVjdDsgfQorICAgICAgICBGbG9hdFJlY3Qgc2Ny
ZWVuQXZhaWxhYmxlUmVjdChGbG9hdFJlY3QgcmVjdCkgeyByZXR1cm4gcmVjdDsgfQogICAgICAg
ICAKICAgICAgICAgdmlydHVhbCBmbG9hdCBzY2FsZUZhY3RvcigpID0gMDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86050</attachid>
            <date>2011-03-17 05:54:48 -0700</date>
            <delta_ts>2011-03-18 14:55:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56482-20110317125443.patch</filename>
            <type>text/plain</type>
            <size>11337</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEwNDYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3ODJiOGRhY2U4MjJiYTQz
MjNmNzY4YWI0NWI3ZjZmM2RhYmJkOTQ0Li5kNzUxMjVlZGI1MzgwZWUxNGE1ZDAwYzllZDRlMGI2
OGFkYjJmYjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDMtMTYgIFJvYmVy
dCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQ1NTTWVkaWEgcXVlcmllcyBwYXNzIHRocm91Z2gg
Q2hyb21lIGFuZCBDaHJvbWVDbGllbnQuCisKKyAgICAgICAgQ2xpZW50cyBtYXkgd2FudCBjb250
cm9sIG92ZXIgdGhlIGluZm9ybWF0aW9uIHJldHVybmVkIHRvIENTUyBtZWRpYSBxdWVyaWVzLAor
ICAgICAgICBwYXJ0aWN1bGFybHkgaW4gY2FzZXMgd2hlcmUgdGhleSBhcmUgbWFza2luZyBvciBt
YW5pcHVsYXRpbmcgc2ltaWxhciBpbmZvcm1hdGlvbgorICAgICAgICBwcm92aWRlZCB0byB0aGUg
U2NyZWVuIGFuZCBXaW5kb3cgRE9NIG9iamVjdHMuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBx
dWVyeWluZyB0aGUgdXNlcidzIGVudmlyb25tZW50IGRpcmVjdGx5IG1ha2UgdGhlCisgICAgICAg
IENTUyBtZWRpYXF1ZXJ5IGV2YWx1YXRvciBwYXNzIHRoZSBjYWxscyB0aHJvdWdoIENocm9tZSBh
bmQgQ2hyb21lQ2xpZW50CisgICAgICAgIHNvIHRoYXQgcG9ydHMgY2FuIG9wdCB0byBkZWxlZ2F0
ZSBjb250cm9sIG92ZXIgdGhlIHJldHVybmVkIHZhbHVlcworICAgICAgICB0byB0aGUgY2xpZW50
LgorCisgICAgICAgIFNlZSBhbHNvIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL3dpa2kvRmluZ2Vy
cHJpbnRpbmcjaS5DU1NNZWRpYVF1ZXJpZXMKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0ODIKKworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBu
ZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChX
ZWJDb3JlOjptb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpv
cmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6YXNwZWN0X3Jh
dGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VfYXNwZWN0X3Jh
dGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VfaGVpZ2h0TWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1
cmVFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmhlaWdodE1lZGlhRmVhdHVyZUV2YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6d2lkdGhNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBwYWdlL0No
cm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcmVlbkRlcHRoUGVyQ29tcG9u
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuSXNNb25vY2hyb21lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuSXNMYW5kc2NhcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2Ny
ZWVuQXZhaWxhYmxlUmVjdCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3Jl
ZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNj
cmVlbklzTW9ub2Nocm9tZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNjcmVl
blJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3JlZW5BdmFpbGFibGVS
ZWN0KToKKwogMjAxMS0wMy0xMSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGZhMmUwOTk3YmU1ZDlkZWM0MDhjYjcxYzY3NmNiM2E0
Y2Q0ZTAyZWMuLjcxMTBjNDE0MzhmM2UwNTMwNDQ4MTI5M2JjM2NhZjQ3NjlkZDg1MGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTIxOSw3ICsyMTks
NyBAQCBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1
bHQpCiAKIHN0YXRpYyBib29sIGNvbG9yTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7Ci0g
ICAgaW50IGJpdHNQZXJDb21wb25lbnQgPSBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChmcmFtZS0+
cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICBpbnQgYml0c1BlckNvbXBvbmVudCA9
IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zY3JlZW5EZXB0aFBlckNvbXBvbmVudCgpOwogICAg
IGZsb2F0IG51bWJlcjsKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVybiBudW1iZXJWYWx1
ZSh2YWx1ZSwgbnVtYmVyKSAmJiBjb21wYXJlVmFsdWUoYml0c1BlckNvbXBvbmVudCwgc3RhdGlj
X2Nhc3Q8aW50PihudW1iZXIpLCBvcCk7CkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIGJvb2wg
Y29sb3JNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFt
ZSogZnJhbWUsIE0KIAogc3RhdGljIGJvb2wgbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0
dXJlUHJlZml4IG9wKQogewotICAgIGlmICghc2NyZWVuSXNNb25vY2hyb21lKGZyYW1lLT5wYWdl
KCktPm1haW5GcmFtZSgpLT52aWV3KCkpKSB7CisgICAgaWYgKCFmcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS0+c2NyZWVuSXNNb25vY2hyb21lKCkpIHsKICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAg
ICAgICAgICBmbG9hdCBudW1iZXI7CiAgICAgICAgICAgICByZXR1cm4gbnVtYmVyVmFsdWUodmFs
dWUsIG51bWJlcikgJiYgY29tcGFyZVZhbHVlKDAsIHN0YXRpY19jYXN0PGludD4obnVtYmVyKSwg
b3ApOwpAQCAtMjQ2LDEwICsyNDYsNyBAQCBzdGF0aWMgYm9vbCBvcmllbnRhdGlvbk1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcgogICAgIGlm
ICghdmFsdWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZyYW1lVmlldyogdmlldyA9
IGZyYW1lLT52aWV3KCk7Ci0gICAgaW50IHdpZHRoID0gdmlldy0+bGF5b3V0V2lkdGgoKTsKLSAg
ICBpbnQgaGVpZ2h0ID0gdmlldy0+bGF5b3V0SGVpZ2h0KCk7Ci0gICAgaWYgKHdpZHRoID4gaGVp
Z2h0KSAvLyBTcXVhcmUgdmlld3BvcnQgaXMgcG9ydHJhaXQKKyAgICBpZiAoZnJhbWUtPnBhZ2Uo
KS0+Y2hyb21lKCktPnNjcmVlbklzTGFuZHNjYXBlKCkpCiAgICAgICAgIHJldHVybiAibGFuZHNj
YXBlIiA9PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5n
VmFsdWUoKTsKICAgICByZXR1cm4gInBvcnRyYWl0IiA9PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKIH0KQEAgLTI1NywxMyArMjU0LDEx
IEBAIHN0YXRpYyBib29sIG9yaWVudGF0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFs
dWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyCiBzdGF0aWMgYm9vbCBhc3BlY3RfcmF0aW9NZWRp
YUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUs
IE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgRnJh
bWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKLSAgICAgICAgaW50IHdpZHRoID0gdmlldy0+
bGF5b3V0V2lkdGgoKTsKLSAgICAgICAgaW50IGhlaWdodCA9IHZpZXctPmxheW91dEhlaWdodCgp
OworICAgICAgICBGbG9hdFJlY3Qgc2cgPSBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cGFnZVJl
Y3QoKTsKICAgICAgICAgaW50IGggPSAwOwogICAgICAgICBpbnQgdiA9IDA7CiAgICAgICAgIGlm
IChwYXJzZUFzcGVjdFJhdGlvKHZhbHVlLCBoLCB2KSkKLSAgICAgICAgICAgIHJldHVybiB2ICE9
IDAgJiYgY29tcGFyZVZhbHVlKHdpZHRoICogdiwgaGVpZ2h0ICogaCwgb3ApOworICAgICAgICAg
ICAgcmV0dXJuIHYgJiYgY29tcGFyZVZhbHVlKHN0YXRpY19jYXN0PGludD4oc2cud2lkdGgoKSkg
KiB2LCBzdGF0aWNfY2FzdDxpbnQ+KHNnLmhlaWdodCgpKSAqIGgsIG9wKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjc1LDExICsyNzAsMTEgQEAgc3RhdGljIGJvb2wgYXNw
ZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwg
RnJhbWUqIGYKIHN0YXRpYyBib29sIGRldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFs
KENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgRmxvYXRSZWN0IHNnID0g
c2NyZWVuUmVjdChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICAgICAg
RmxvYXRSZWN0IHNnID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnNjcmVlblJlY3QoKTsKICAg
ICAgICAgaW50IGggPSAwOwogICAgICAgICBpbnQgdiA9IDA7CiAgICAgICAgIGlmIChwYXJzZUFz
cGVjdFJhdGlvKHZhbHVlLCBoLCB2KSkKLSAgICAgICAgICAgIHJldHVybiB2ICE9IDAgICYmIGNv
bXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndpZHRoKCkpICogdiwgc3RhdGljX2Nhc3Q8
aW50PihzZy5oZWlnaHQoKSkgKiBoLCBvcCk7CisgICAgICAgICAgICByZXR1cm4gdiAgJiYgY29t
cGFyZVZhbHVlKHN0YXRpY19jYXN0PGludD4oc2cud2lkdGgoKSkgKiB2LCBzdGF0aWNfY2FzdDxp
bnQ+KHNnLmhlaWdodCgpKSAqIGgsIG9wKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IApAQCAtMzA5LDcgKzMwNCw3IEBAIHN0YXRpYyBib29sIGdyaWRNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhCiBzdGF0aWMgYm9v
bCBkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0
eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAg
aWYgKHZhbHVlKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVlblJlY3QoZnJhbWUtPnBh
Z2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CisgICAgICAgIEZsb2F0UmVjdCBzZyA9IGZyYW1l
LT5wYWdlKCktPmNocm9tZSgpLT5zY3JlZW5SZWN0KCk7CiAgICAgICAgIFJlbmRlclN0eWxlKiBy
b290U3R5bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlclN0
eWxlKCk7CiAgICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIGNvbXBh
cmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLmhlaWdodCgpKSwgc3RhdGljX2Nhc3Q8Q1NTUHJp
bWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUsIHJvb3RTdHlsZSks
IG9wKTsKICAgICB9CkBAIC0zMjEsNyArMzE2LDcgQEAgc3RhdGljIGJvb2wgZGV2aWNlX2hlaWdo
dE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEYK
IHN0YXRpYyBib29sIGRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVl
LCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQogewogICAgIGlmICh2YWx1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2cgPSBzY3JlZW5SZWN0
KGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgICAgICBGbG9hdFJlY3Qg
c2cgPSBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+c2NyZWVuUmVjdCgpOwogICAgICAgICBSZW5k
ZXJTdHlsZSogcm9vdFN0eWxlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgp
LT5yZW5kZXJTdHlsZSgpOwogICAgICAgICByZXR1cm4gdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUo
KSAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50PihzZy53aWR0aCgpKSwgc3RhdGljX2Nh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVMZW5ndGhJbnQoc3R5bGUsIHJv
b3RTdHlsZSksIG9wKTsKICAgICB9CkBAIC0zMzQsOSArMzI5LDEwIEBAIHN0YXRpYyBib29sIGhl
aWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEZyYW1lKiBmCiB7CiAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBS
ZW5kZXJTdHlsZSogcm9vdFN0eWxlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVu
dCgpLT5yZW5kZXJTdHlsZSgpOworICAgIEZsb2F0UmVjdCBzZyA9IGZyYW1lLT5wYWdlKCktPmNo
cm9tZSgpLT5wYWdlUmVjdCgpOwogCiAgICAgaWYgKHZhbHVlKQotICAgICAgICByZXR1cm4gdmFs
dWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBjb21wYXJlVmFsdWUodmlldy0+bGF5b3V0SGVpZ2h0
KCksIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRlTGVuZ3Ro
SW50KHN0eWxlLCByb290U3R5bGUpLCBvcCk7CisgICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLmhlaWdodCgp
KSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmNvbXB1dGVMZW5ndGhJ
bnQoc3R5bGUsIHJvb3RTdHlsZSksIG9wKTsKIAogICAgIHJldHVybiB2aWV3LT5sYXlvdXRIZWln
aHQoKSAhPSAwOwogfQpAQCAtMzQ1LDkgKzM0MSwxMCBAQCBzdGF0aWMgYm9vbCB3aWR0aE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cgogewogICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CiAgICAgUmVuZGVyU3R5
bGUqIHJvb3RTdHlsZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKS0+cmVu
ZGVyU3R5bGUoKTsKKyAgICBGbG9hdFJlY3Qgc2cgPSBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+
cGFnZVJlY3QoKTsKIAogICAgIGlmICh2YWx1ZSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKHZpZXctPmxheW91dFdpZHRoKCksIHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRlTGVuZ3RoSW50KHN0eWxl
LCByb290U3R5bGUpLCBvcCk7CisgICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndpZHRoKCkpLCBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSwg
cm9vdFN0eWxlKSwgb3ApOwogCiAgICAgcmV0dXJuIHZpZXctPmxheW91dFdpZHRoKCkgIT0gMDsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA1ODgxZDVlYTQ1ODcxODUwZmZhYWQzMzE0MzE0
NzdjNTA3OGNhZmY3Li4xZWM4YzkzMDhhM2NkNDgwZTIwNzgyNDliNWMyY2U5NWI4OGJkOGNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRmlsZUxp
c3QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC0zNiw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJlci5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
U2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VI
YW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDksNiArMTExLDM3
IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fY2xpZW50LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKIH0KIAoraW50IENo
cm9tZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQoKSBjb25zdAoreworICAgIGludCBiaXRzUGVy
Q29tcG9uZW50ID0gV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQobV9wYWdlLT5tYWlu
RnJhbWUoKS0+dmlldygpKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnNjcmVlbkRlcHRoUGVyQ29t
cG9uZW50KGJpdHNQZXJDb21wb25lbnQpOworfQorCitib29sIENocm9tZTo6c2NyZWVuSXNNb25v
Y2hyb21lKCkgY29uc3QKK3sKKyAgICBib29sIGlzTW9ub2Nocm9tZSA9IFdlYkNvcmU6OnNjcmVl
bklzTW9ub2Nocm9tZShtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkpOworICAgIHJldHVybiBt
X2NsaWVudC0+c2NyZWVuSXNNb25vY2hyb21lKGlzTW9ub2Nocm9tZSk7Cit9CisKK2Jvb2wgQ2hy
b21lOjpzY3JlZW5Jc0xhbmRzY2FwZSgpIGNvbnN0Cit7CisgICAgaW50IHdpZHRoID0gcGFnZVJl
Y3QoKS53aWR0aCgpOworICAgIGludCBoZWlnaHQgPSBwYWdlUmVjdCgpLmhlaWdodCgpOworICAg
IHJldHVybiAod2lkdGggPiBoZWlnaHQpOyAvLyBTcXVhcmUgdmlld3BvcnQgaXMgcG9ydHJhaXQK
K30KKworRmxvYXRSZWN0IENocm9tZTo6c2NyZWVuUmVjdCgpIGNvbnN0Cit7CisgICAgRmxvYXRS
ZWN0IHJlY3QgPSBXZWJDb3JlOjpzY3JlZW5SZWN0KG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXco
KSk7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zY3JlZW5SZWN0KHJlY3QpOworfQorCitGbG9hdFJl
Y3QgQ2hyb21lOjpzY3JlZW5BdmFpbGFibGVSZWN0KCkgY29uc3QKK3sKKyAgICBGbG9hdFJlY3Qg
cmVjdCA9IFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QobV9wYWdlLT5tYWluRnJhbWUoKS0+
dmlldygpKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnNjcmVlbkF2YWlsYWJsZVJlY3QocmVjdCk7
Cit9CisKIHZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBtX2NsaWVudC0+Y29udGVudHNTaXplQ2hh
bmdlZChmcmFtZSwgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA5OTg0YTdjYjk4MWViMTQ2
ZGYwYzhmNjUwYWI1N2FjMjNiMGRhNTAzLi5kZWM0M2NiY2JjYjMyNjFiZDcxNDkzYzI5ZDMyMDFi
OTAyOTZmNTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTgxLDYgKzgxLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpOwogI2VuZGlmCisgICAgICAgIGludCBz
Y3JlZW5EZXB0aFBlckNvbXBvbmVudCgpIGNvbnN0OworICAgICAgICBib29sIHNjcmVlbklzTW9u
b2Nocm9tZSgpIGNvbnN0OworICAgICAgICBib29sIHNjcmVlbklzTGFuZHNjYXBlKCkgY29uc3Q7
CisgICAgICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0KCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVj
dCBzY3JlZW5BdmFpbGFibGVSZWN0KCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBzY3JvbGxSZWN0
SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAppbmRleCBmY2NlNjkzZDZiODhmOGFmMWE0NDQxNzU0MTNmZmE5NTMzMmNiM2U4Li43ZDYw
YTk4NDJiZjc1NjE3ZWIzM2M5NjY3NjVmYjRiMjcxOTk3MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKQEAgLTgwLDYgKzgwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKICAgICAgICAgCiAgICAgICAg
IHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOworICAgICAgICBpbnQgc2NyZWVuRGVw
dGhQZXJDb21wb25lbnQoaW50IGJpdHNQZXJDb21wb25lbnQpIHsgcmV0dXJuIGJpdHNQZXJDb21w
b25lbnQ7IH0KKyAgICAgICAgYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoYm9vbCBpc01vbm9jaHJv
bWUpIHsgcmV0dXJuIGlzTW9ub2Nocm9tZTsgfQorICAgICAgICBGbG9hdFJlY3Qgc2NyZWVuUmVj
dChGbG9hdFJlY3QgcmVjdCkgeyByZXR1cm4gcmVjdDsgfQorICAgICAgICBGbG9hdFJlY3Qgc2Ny
ZWVuQXZhaWxhYmxlUmVjdChGbG9hdFJlY3QgcmVjdCkgeyByZXR1cm4gcmVjdDsgfQogICAgICAg
ICAKICAgICAgICAgdmlydHVhbCBmbG9hdCBzY2FsZUZhY3RvcigpID0gMDsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86217</attachid>
            <date>2011-03-18 14:56:03 -0700</date>
            <delta_ts>2011-05-23 14:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56482-20110318215559.patch</filename>
            <type>text/plain</type>
            <size>11398</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE0OTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlODg4YTI5OWYzMDliY2Mw
YzExNjBjN2FhOTZhY2QyYWRhNmU2YzQxLi45ZjA0ODJmMmI4YWQ2OGI2Y2FlNzNiNmI3NTNmOWI0
ODc0NDg4NjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDMtMTYgIFJvYmVy
dCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQ1NTTWVkaWEgcXVlcmllcyBwYXNzIHRocm91Z2gg
Q2hyb21lIGFuZCBDaHJvbWVDbGllbnQuCisKKyAgICAgICAgQ2xpZW50cyBtYXkgd2FudCBjb250
cm9sIG92ZXIgdGhlIGluZm9ybWF0aW9uIHJldHVybmVkIHRvIENTUyBtZWRpYSBxdWVyaWVzLAor
ICAgICAgICBwYXJ0aWN1bGFybHkgaW4gY2FzZXMgd2hlcmUgdGhleSBhcmUgbWFza2luZyBvciBt
YW5pcHVsYXRpbmcgc2ltaWxhciBpbmZvcm1hdGlvbgorICAgICAgICBwcm92aWRlZCB0byB0aGUg
U2NyZWVuIGFuZCBXaW5kb3cgRE9NIG9iamVjdHMuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBx
dWVyeWluZyB0aGUgdXNlcidzIGVudmlyb25tZW50IGRpcmVjdGx5IG1ha2UgdGhlCisgICAgICAg
IENTUyBtZWRpYXF1ZXJ5IGV2YWx1YXRvciBwYXNzIHRoZSBjYWxscyB0aHJvdWdoIENocm9tZSBh
bmQgQ2hyb21lQ2xpZW50CisgICAgICAgIHNvIHRoYXQgcG9ydHMgY2FuIG9wdCB0byBkZWxlZ2F0
ZSBjb250cm9sIG92ZXIgdGhlIHJldHVybmVkIHZhbHVlcworICAgICAgICB0byB0aGUgY2xpZW50
LgorCisgICAgICAgIFNlZSBhbHNvIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL3dpa2kvRmluZ2Vy
cHJpbnRpbmcjaS5DU1NNZWRpYVF1ZXJpZXMKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0ODIKKworICAgICAgICBObyBuZXcgdGVzdHMgLSBubyBu
ZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbG9yTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChX
ZWJDb3JlOjptb25vY2hyb21lTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpv
cmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6YXNwZWN0X3Jh
dGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VfYXNwZWN0X3Jh
dGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VfaGVpZ2h0TWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1
cmVFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6OmhlaWdodE1lZGlhRmVhdHVyZUV2YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6d2lkdGhNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKiBwYWdlL0No
cm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcmVlbkRlcHRoUGVyQ29tcG9u
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuSXNNb25vY2hyb21lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2NyZWVuSXNMYW5kc2NhcGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lOjpzY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2Ny
ZWVuQXZhaWxhYmxlUmVjdCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3Jl
ZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNj
cmVlbklzTW9ub2Nocm9tZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNjcmVl
blJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3JlZW5BdmFpbGFibGVS
ZWN0KToKKwogMjAxMS0wMy0xOCAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGZhMmUwOTk3YmU1ZDlkZWM0MDhjYjcx
YzY3NmNiM2E0Y2Q0ZTAyZWMuLjJmMTNlMTYzNzEzMjkwNTViMzFlMTFmYmZkOTdlYTQzOWYwZTI2
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTIx
OSw3ICsyMTksNyBAQCBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZs
b2F0JiByZXN1bHQpCiAKIHN0YXRpYyBib29sIGNvbG9yTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCiB7Ci0gICAgaW50IGJpdHNQZXJDb21wb25lbnQgPSBzY3JlZW5EZXB0aFBlckNvbXBvbmVu
dChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICBpbnQgYml0c1BlckNv
bXBvbmVudCA9IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zY3JlZW5EZXB0aFBlckNvbXBvbmVu
dCgpOwogICAgIGZsb2F0IG51bWJlcjsKICAgICBpZiAodmFsdWUpCiAgICAgICAgIHJldHVybiBu
dW1iZXJWYWx1ZSh2YWx1ZSwgbnVtYmVyKSAmJiBjb21wYXJlVmFsdWUoYml0c1BlckNvbXBvbmVu
dCwgc3RhdGljX2Nhc3Q8aW50PihudW1iZXIpLCBvcCk7CkBAIC0yMjksNyArMjI5LDcgQEAgc3Rh
dGljIGJvb2wgY29sb3JNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqLCBGcmFtZSogZnJhbWUsIE0KIAogc3RhdGljIGJvb2wgbW9ub2Nocm9tZU1lZGlhRmVhdHVy
ZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwg
TWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewotICAgIGlmICghc2NyZWVuSXNNb25vY2hyb21lKGZy
YW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpKSB7CisgICAgaWYgKCFmcmFtZS0+cGFn
ZSgpLT5jaHJvbWUoKS0+c2NyZWVuSXNNb25vY2hyb21lKCkpIHsKICAgICAgICAgaWYgKHZhbHVl
KSB7CiAgICAgICAgICAgICBmbG9hdCBudW1iZXI7CiAgICAgICAgICAgICByZXR1cm4gbnVtYmVy
VmFsdWUodmFsdWUsIG51bWJlcikgJiYgY29tcGFyZVZhbHVlKDAsIHN0YXRpY19jYXN0PGludD4o
bnVtYmVyKSwgb3ApOwpAQCAtMjQ2LDEwICsyNDYsNyBAQCBzdGF0aWMgYm9vbCBvcmllbnRhdGlv
bk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBm
cgogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEZyYW1lVmll
dyogdmlldyA9IGZyYW1lLT52aWV3KCk7Ci0gICAgaW50IHdpZHRoID0gdmlldy0+bGF5b3V0V2lk
dGgoKTsKLSAgICBpbnQgaGVpZ2h0ID0gdmlldy0+bGF5b3V0SGVpZ2h0KCk7Ci0gICAgaWYgKHdp
ZHRoID4gaGVpZ2h0KSAvLyBTcXVhcmUgdmlld3BvcnQgaXMgcG9ydHJhaXQKKyAgICBpZiAoZnJh
bWUtPnBhZ2UoKS0+Y2hyb21lKCktPnNjcmVlbklzTGFuZHNjYXBlKCkpCiAgICAgICAgIHJldHVy
biAibGFuZHNjYXBlIiA9PSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+
Z2V0U3RyaW5nVmFsdWUoKTsKICAgICByZXR1cm4gInBvcnRyYWl0IiA9PSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0U3RyaW5nVmFsdWUoKTsKIH0KQEAgLTI1Nywx
MyArMjU0LDExIEBAIHN0YXRpYyBib29sIG9yaWVudGF0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyCiBzdGF0aWMgYm9vbCBhc3BlY3Rf
cmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFt
ZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKLSAg
ICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKTsKLSAgICAgICAgaW50IHdpZHRo
ID0gdmlldy0+bGF5b3V0V2lkdGgoKTsKLSAgICAgICAgaW50IGhlaWdodCA9IHZpZXctPmxheW91
dEhlaWdodCgpOworICAgICAgICBGbG9hdFJlY3Qgc2cgPSBmcmFtZS0+cGFnZSgpLT5jaHJvbWUo
KS0+d2luZG93UmVjdCgpOwogICAgICAgICBpbnQgaCA9IDA7CiAgICAgICAgIGludCB2ID0gMDsK
ICAgICAgICAgaWYgKHBhcnNlQXNwZWN0UmF0aW8odmFsdWUsIGgsIHYpKQotICAgICAgICAgICAg
cmV0dXJuIHYgIT0gMCAmJiBjb21wYXJlVmFsdWUod2lkdGggKiB2LCBoZWlnaHQgKiBoLCBvcCk7
CisgICAgICAgICAgICByZXR1cm4gdiAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50Pihz
Zy53aWR0aCgpKSAqIHYsIHN0YXRpY19jYXN0PGludD4oc2cuaGVpZ2h0KCkpICogaCwgb3ApOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yNzUsMTEgKzI3MCwxMSBAQCBzdGF0
aWMgYm9vbCBhc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZgogc3RhdGljIGJvb2wgZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwg
TWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIGlmICh2YWx1ZSkgewotICAgICAgICBGbG9h
dFJlY3Qgc2cgPSBzY3JlZW5SZWN0KGZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkp
OworICAgICAgICBGbG9hdFJlY3Qgc2cgPSBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+c2NyZWVu
UmVjdCgpOwogICAgICAgICBpbnQgaCA9IDA7CiAgICAgICAgIGludCB2ID0gMDsKICAgICAgICAg
aWYgKHBhcnNlQXNwZWN0UmF0aW8odmFsdWUsIGgsIHYpKQotICAgICAgICAgICAgcmV0dXJuIHYg
IT0gMCAgJiYgY29tcGFyZVZhbHVlKHN0YXRpY19jYXN0PGludD4oc2cud2lkdGgoKSkgKiB2LCBz
dGF0aWNfY2FzdDxpbnQ+KHNnLmhlaWdodCgpKSAqIGgsIG9wKTsKKyAgICAgICAgICAgIHJldHVy
biB2ICAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50PihzZy53aWR0aCgpKSAqIHYsIHN0
YXRpY19jYXN0PGludD4oc2cuaGVpZ2h0KCkpICogaCwgb3ApOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCkBAIC0zMDksNyArMzA0LDcgQEAgc3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWEK
IHN0YXRpYyBib29sIGRldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBv
cCkKIHsKICAgICBpZiAodmFsdWUpIHsKLSAgICAgICAgRmxvYXRSZWN0IHNnID0gc2NyZWVuUmVj
dChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICAgICAgRmxvYXRSZWN0
IHNnID0gZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCktPnNjcmVlblJlY3QoKTsKICAgICAgICAgUmVu
ZGVyU3R5bGUqIHJvb3RTdHlsZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQo
KS0+cmVuZGVyU3R5bGUoKTsKICAgICAgICAgcmV0dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVl
KCkgJiYgY29tcGFyZVZhbHVlKHN0YXRpY19jYXN0PGludD4oc2cuaGVpZ2h0KCkpLCBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0aEludChzdHlsZSwg
cm9vdFN0eWxlKSwgb3ApOwogICAgIH0KQEAgLTMyMSw3ICszMTYsNyBAQCBzdGF0aWMgYm9vbCBk
ZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiBzdHlsZSwgRgogc3RhdGljIGJvb2wgZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1
cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIEZsb2F0UmVjdCBzZyA9
IHNjcmVlblJlY3QoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CisgICAgICAg
IEZsb2F0UmVjdCBzZyA9IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLT5zY3JlZW5SZWN0KCk7CiAg
ICAgICAgIFJlbmRlclN0eWxlKiByb290U3R5bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1l
bnRFbGVtZW50KCktPnJlbmRlclN0eWxlKCk7CiAgICAgICAgIHJldHVybiB2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndpZHRoKCkp
LCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxlbmd0aElu
dChzdHlsZSwgcm9vdFN0eWxlKSwgb3ApOwogICAgIH0KQEAgLTMzNCw5ICszMjksMTAgQEAgc3Rh
dGljIGJvb2wgaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0
eWxlKiBzdHlsZSwgRnJhbWUqIGYKIHsKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmll
dygpOwogICAgIFJlbmRlclN0eWxlKiByb290U3R5bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9j
dW1lbnRFbGVtZW50KCktPnJlbmRlclN0eWxlKCk7CisgICAgRmxvYXRSZWN0IHNnID0gZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKIAogICAgIGlmICh2YWx1ZSkKLSAgICAg
ICAgcmV0dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKHZpZXct
PmxheW91dEhlaWdodCgpLCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+
Y29tcHV0ZUxlbmd0aEludChzdHlsZSwgcm9vdFN0eWxlKSwgb3ApOworICAgICAgICByZXR1cm4g
dmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBjb21wYXJlVmFsdWUoc3RhdGljX2Nhc3Q8aW50
PihzZy5oZWlnaHQoKSksIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5j
b21wdXRlTGVuZ3RoSW50KHN0eWxlLCByb290U3R5bGUpLCBvcCk7CiAKICAgICByZXR1cm4gdmll
dy0+bGF5b3V0SGVpZ2h0KCkgIT0gMDsKIH0KQEAgLTM0NSw5ICszNDEsMTAgQEAgc3RhdGljIGJv
b2wgd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBGcmFtZSogZnIKIHsKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS0+dmlldygpOwog
ICAgIFJlbmRlclN0eWxlKiByb290U3R5bGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRF
bGVtZW50KCktPnJlbmRlclN0eWxlKCk7CisgICAgRmxvYXRSZWN0IHNnID0gZnJhbWUtPnBhZ2Uo
KS0+Y2hyb21lKCktPndpbmRvd1JlY3QoKTsKIAogICAgIGlmICh2YWx1ZSkKLSAgICAgICAgcmV0
dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKHZpZXctPmxheW91
dFdpZHRoKCksIHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5jb21wdXRl
TGVuZ3RoSW50KHN0eWxlLCByb290U3R5bGUpLCBvcCk7CisgICAgICAgIHJldHVybiB2YWx1ZS0+
aXNQcmltaXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShzdGF0aWNfY2FzdDxpbnQ+KHNnLndp
ZHRoKCkpLCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Y29tcHV0ZUxl
bmd0aEludChzdHlsZSwgcm9vdFN0eWxlKSwgb3ApOwogCiAgICAgcmV0dXJuIHZpZXctPmxheW91
dFdpZHRoKCkgIT0gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA1ODgxZDVlYTQ1ODcx
ODUwZmZhYWQzMzE0MzE0NzdjNTA3OGNhZmY3Li4xZWM4YzkzMDhhM2NkNDgwZTIwNzgyNDliNWMy
Y2U5NWI4OGJkOGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBA
IC0zNiw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJlci5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBA
IC0xMDksNiArMTExLDM3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50LT5wbGF0Zm9ybVBhZ2VDbGllbnQo
KTsKIH0KIAoraW50IENocm9tZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQoKSBjb25zdAorewor
ICAgIGludCBiaXRzUGVyQ29tcG9uZW50ID0gV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25l
bnQobV9wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnNj
cmVlbkRlcHRoUGVyQ29tcG9uZW50KGJpdHNQZXJDb21wb25lbnQpOworfQorCitib29sIENocm9t
ZTo6c2NyZWVuSXNNb25vY2hyb21lKCkgY29uc3QKK3sKKyAgICBib29sIGlzTW9ub2Nocm9tZSA9
IFdlYkNvcmU6OnNjcmVlbklzTW9ub2Nocm9tZShtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkp
OworICAgIHJldHVybiBtX2NsaWVudC0+c2NyZWVuSXNNb25vY2hyb21lKGlzTW9ub2Nocm9tZSk7
Cit9CisKK2Jvb2wgQ2hyb21lOjpzY3JlZW5Jc0xhbmRzY2FwZSgpIGNvbnN0Cit7CisgICAgaW50
IHdpZHRoID0gcGFnZVJlY3QoKS53aWR0aCgpOworICAgIGludCBoZWlnaHQgPSBwYWdlUmVjdCgp
LmhlaWdodCgpOworICAgIHJldHVybiAod2lkdGggPiBoZWlnaHQpOyAvLyBTcXVhcmUgdmlld3Bv
cnQgaXMgcG9ydHJhaXQKK30KKworRmxvYXRSZWN0IENocm9tZTo6c2NyZWVuUmVjdCgpIGNvbnN0
Cit7CisgICAgRmxvYXRSZWN0IHJlY3QgPSBXZWJDb3JlOjpzY3JlZW5SZWN0KG1fcGFnZS0+bWFp
bkZyYW1lKCktPnZpZXcoKSk7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zY3JlZW5SZWN0KHJlY3Qp
OworfQorCitGbG9hdFJlY3QgQ2hyb21lOjpzY3JlZW5BdmFpbGFibGVSZWN0KCkgY29uc3QKK3sK
KyAgICBGbG9hdFJlY3QgcmVjdCA9IFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QobV9wYWdl
LT5tYWluRnJhbWUoKS0+dmlldygpKTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnNjcmVlbkF2YWls
YWJsZVJlY3QocmVjdCk7Cit9CisKIHZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZy
YW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBtX2NsaWVudC0+
Y29udGVudHNTaXplQ2hhbmdlZChmcmFtZSwgc2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA5
OTg0YTdjYjk4MWViMTQ2ZGYwYzhmNjUwYWI1N2FjMjNiMGRhNTAzLi5kZWM0M2NiY2JjYjMyNjFi
ZDcxNDkzYzI5ZDMyMDFiOTAyOTZmNTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTgxLDYgKzgx
LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpOwogI2VuZGlm
CisgICAgICAgIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCgpIGNvbnN0OworICAgICAgICBi
b29sIHNjcmVlbklzTW9ub2Nocm9tZSgpIGNvbnN0OworICAgICAgICBib29sIHNjcmVlbklzTGFu
ZHNjYXBlKCkgY29uc3Q7CisgICAgICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0KCkgY29uc3Q7Cisg
ICAgICAgIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0KCkgY29uc3Q7CiAKICAgICAgICAg
dm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBmY2NlNjkzZDZiODhmOGFmMWE0NDQxNzU0MTNmZmE5
NTMzMmNiM2U4Li44NWNmNjkzZGVkODI3OWVjMGMwOTk1OGQwN2ZmNDI2ZGFhNTA0NzllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTgwLDYgKzgwLDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBGbG9hdFJlY3Qgd2luZG93UmVjdCgpID0gMDsKICAg
ICAgICAgCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHBhZ2VSZWN0KCkgPSAwOworICAgICAg
ICB2aXJ0dWFsIGludCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudChpbnQgYml0c1BlckNvbXBvbmVu
dCkgeyByZXR1cm4gYml0c1BlckNvbXBvbmVudDsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2Ny
ZWVuSXNNb25vY2hyb21lKGJvb2wgaXNNb25vY2hyb21lKSB7IHJldHVybiBpc01vbm9jaHJvbWU7
IH0KKyAgICAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2NyZWVuUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpIHsgcmV0dXJuIHJlY3Q7IH0KKyAgICAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc2NyZWVu
QXZhaWxhYmxlUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpIHsgcmV0dXJuIHJlY3Q7IH0KICAg
ICAgICAgCiAgICAgICAgIHZpcnR1YWwgZmxvYXQgc2NhbGVGYWN0b3IoKSA9IDA7CiAgICAgCg==
</data>
<flag name="review"
          id="78451"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>