<?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>90538</bug_id>
          
          <creation_ts>2012-07-04 03:12:03 -0700</creation_ts>
          <short_desc>[chromium] Re-enable Battery Status API</short_desc>
          <delta_ts>2013-05-06 17:35:03 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sadrul Habib Chowdhury">sadrul</reporter>
          <assigned_to name="Sadrul Habib Chowdhury">sadrul</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ericbidelman</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>miguelg</cc>
    
    <cc>syoichi</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>ultravistor</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>662817</commentid>
    <comment_count>0</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-04 03:12:03 -0700</bug_when>
    <thetext>[chromium] Re-enable Battery Status API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662818</commentid>
    <comment_count>1</comment_count>
      <attachid>150757</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-04 03:13:31 -0700</bug_when>
    <thetext>Created attachment 150757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662821</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 03:15:57 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662824</commentid>
    <comment_count>3</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-07-04 03:20:02 -0700</bug_when>
    <thetext>This patch addresses https://bugs.webkit.org/show_bug.cgi?id=83284#c50. I have also updated the corresponding chromium CL: http://codereview.chromium.org/10024013/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666900</commentid>
    <comment_count>4</comment_count>
      <attachid>150757</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-07-11 11:25:37 -0700</bug_when>
    <thetext>Comment on attachment 150757
Patch

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

If you start by thinking of the battery status as a global property of the computer, then it should be possible to deduce a simpler interface...

&gt; Source/WebKit/chromium/public/WebBatteryMonitor.h:33
&gt; +class WebBatteryMonitorClient {

please use a separate file for each top-level type

&gt; Source/WebKit/chromium/public/WebBatteryMonitor.h:44
&gt; +    virtual void start(WebBatteryMonitorClient*) = 0;

why does the client interface need to be passed to both start and stop methods?

why do we need the client interface at all?  couldn&apos;t the webkit API just
export a static function to receive updates to the battery status?  perhaps
we don&apos;t even need WebBatteryMonitor?  or is it important to have some way
to limit the frequency of updates?  maybe you only want to push updates to
renderers that have an interest in receiving them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758804</commentid>
    <comment_count>5</comment_count>
      <attachid>150757</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-05 12:49:27 -0800</bug_when>
    <thetext>Comment on attachment 150757
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebBatteryMonitor.h:44
&gt;&gt; +    virtual void start(WebBatteryMonitorClient*) = 0;
&gt; 
&gt; why does the client interface need to be passed to both start and stop methods?
&gt; 
&gt; why do we need the client interface at all?  couldn&apos;t the webkit API just
&gt; export a static function to receive updates to the battery status?  perhaps
&gt; we don&apos;t even need WebBatteryMonitor?  or is it important to have some way
&gt; to limit the frequency of updates?  maybe you only want to push updates to
&gt; renderers that have an interest in receiving them?

Yes. The purpose here is to send the battery-status updates only when a client explicitly requests for them. This is why we send the client as a parameter to start and stop, so that the monitor can keep track of the clients correctly, and also notify the browser-process when to start/stop sending the updates (and what renderers to send the updates to).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770885</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-11-19 11:25:34 -0800</bug_when>
    <thetext>Since battery status is a global property of the device, I think the Platform interface should only support a single client.  Multi-plexing multiple interested consumers should be the job of WebCore.  The platform layer is just an OS abstraction.  Therefore, a Platform API like this makes more sense to me:

  class WebBatteryStatus {
  public:
      // member variables and constructor
  };

  class WebBatteryMonitorClient {
  public:
      virtual void didChangeBatteryStatus(const WebBatteryStatus&amp;) = 0;
  };

  class WebBatteryMonitor {
  public:
      virtual void start(WebBatteryMonitorClient*) { }
      virtual void stop() { }
  };

This means that WebCore will need to maintain a list of folks who are ultimately interested in battery status notifications.  WebBatteryStatus also needs to be moved to the Platform API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771669</commentid>
    <comment_count>7</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-20 01:43:37 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Since battery status is a global property of the device, I think the Platform interface should only support a single client.  Multi-plexing multiple interested consumers should be the job of WebCore.  The platform layer is just an OS abstraction.  Therefore, a Platform API like this makes more sense to me:
&gt; 
&gt;   class WebBatteryStatus {
&gt;   public:
&gt;       // member variables and constructor
&gt;   };
&gt; 
&gt;   class WebBatteryMonitorClient {
&gt;   public:
&gt;       virtual void didChangeBatteryStatus(const WebBatteryStatus&amp;) = 0;
&gt;   };
&gt; 
&gt;   class WebBatteryMonitor {
&gt;   public:
&gt;       virtual void start(WebBatteryMonitorClient*) { }
&gt;       virtual void stop() { }
&gt;   };
&gt; 
&gt; This means that WebCore will need to maintain a list of folks who are ultimately interested in battery status notifications.  WebBatteryStatus also needs to be moved to the Platform API.

Right now, a WebCore::BatteryController is created for each page (WebViewImpl), in WebCore::BatteryController::provideBatteryTo. If I understand correctly, you are suggesting that instead of this, there should be a single BatteryController in a renderer-process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872444</commentid>
    <comment_count>8</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2013-04-09 17:06:35 -0700</bug_when>
    <thetext>Marked LayoutTest bugs, bugs with Chromium IDs, and some others as WontFix. Test failure bugs still are trackable via TestExpectations or disabled unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885525</commentid>
    <comment_count>9</comment_count>
    <who name="Takahiro Ichihashi">ultravistor</who>
    <bug_when>2013-05-06 17:35:03 -0700</bug_when>
    <thetext>What is the status of battery API for chromium/webkit? 

I saw below issue as &quot;Resolved&quot;, but now we don&apos;t see any relevant methods/properties in Chrome/Chromium.
https://bugs.webkit.org/show_bug.cgi?id=62698

Monitoring battery status might become important for web application, especially for those generate high CPU loads (WebRTC for example). Probably developers would become want to change behavior of the application depending on the battery status - disable peer to peer connections and switch to server-to-client model with low resolution for laptops not charging battery, for example.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150757</attachid>
            <date>2012-07-04 03:13:31 -0700</date>
            <delta_ts>2012-11-05 12:49:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90538-20120704061330.patch</filename>
            <type>text/plain</type>
            <size>17799</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwN2U0MDUyZjBjMTJk
Njg2M2I1NDA3ZjA0ZTA4MWMwMGFhZTg1ZjM3Li5iMzk4NGE5NjY2MGExMzZiMTViZWVjYjUxYmMw
YjA2MTkyZjgxYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNy0wNCAg
U2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W2Nocm9taXVtXSBSZS1lbmFibGUgQmF0dGVyeSBTdGF0dXMgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1BsYXRmb3Jt
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGxhdGZvcm0pOgorICAgICAgICAoV2Vi
S2l0OjpQbGF0Zm9ybTo6YmF0dGVyeU1vbml0b3IpOgorCiAyMDEyLTA3LTAyICBUb21teSBXaWRl
bmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTog
VXBkYXRlIE1lZGlhU3RyZWFtVHJhY2tMaXN0IHRvIG1hdGNoIHRoZSBzcGVjaWZpY2F0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDg1NGRhNWE3OTUyNjY0NTg3MGE2ODZlMDM5N2Yy
NDQwODE4MTlmYmEuLjM2MTk1ZWY1YzdiODE0YWU3NWQ5YmUwYWEwODNiMDYwMGIwZWRkMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDctMDQgIFNh
ZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtj
aHJvbWl1bV0gUmUtZW5hYmxlIEJhdHRlcnkgU3RhdHVzIEFQSQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MzgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGhhdmluZyB0aGUgYmF0dGVy
eS1zdGF0dXMgc3VwcG9ydCBleHBvc2VkIHRocm91Z2ggdGhlIFZpZXcsIGV4cG9zZSBpdCB0aHJv
dWdoIHRoZSBQbGF0Zm9ybS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogZmVh
dHVyZXMuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2ViQmF0dGVyeU1vbml0b3IuaDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJhdHRlcnlTdGF0dXNDbGll
bnQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJCYXR0ZXJ5TW9uaXRvckNsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNb25pdG9yQ2xpZW50Ojp+V2ViQmF0dGVy
eU1vbml0b3JDbGllbnQpOgorICAgICAgICAoV2ViQmF0dGVyeU1vbml0b3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCYXR0ZXJ5TW9uaXRvcjo6fldlYkJhdHRlcnlNb25pdG9yKToKKyAgICAgICAg
KiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisgICAgICAgICogcHVibGlj
L1dlYlZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0JhdHRl
cnlDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QmF0dGVyeUNsaWVudEltcGw6OkJh
dHRlcnlDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6QmF0dGVyeUNsaWVudEltcGw6OnN0
YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpCYXR0ZXJ5Q2xpZW50SW1wbDo6c3RvcFVw
ZGF0aW5nKToKKyAgICAgICAgKiBzcmMvQmF0dGVyeUNsaWVudEltcGwuaDoKKyAgICAgICAgKEJh
dHRlcnlDbGllbnRJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJW
aWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA3LTAyICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1BsYXRmb3JtLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1BsYXRmb3Jt
LmgKaW5kZXggNGI3NDVhYjExYzZiYmUxNTU4NjIwZTQxODg3ZmZhYWM5ZjNlYTA4Zi4uMjA0ZjJi
N2IyMjhhMTdjNzk4NDYzMGY4OGY5NzA2ZTk0MWY5NTM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1Bs
YXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaApAQCAtNDMsNiArNDMsNyBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIFdlYkF1ZGlvQnVzOworY2xhc3MgV2ViQmF0dGVyeU1vbml0b3I7CiBj
bGFzcyBXZWJCbG9iUmVnaXN0cnk7CiBjbGFzcyBXZWJDbGlwYm9hcmQ7CiBjbGFzcyBXZWJDb29r
aWVKYXI7CkBAIC0zOTIsNiArMzkzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RhcnRXb3JrZXJSdW5Mb29wKGNvbnN0IFdlYldvcmtlclJ1bkxvb3AmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGlkU3RvcFdvcmtlclJ1bkxvb3AoY29uc3QgV2ViV29ya2VyUnVuTG9vcCYpIHsg
fQogCisKKyAgICAvLyBCYXR0ZXJ5IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvLyBNYXkgcmV0dXJuIG51bGwg
aWYgc3VwcG9ydCBmb3IgYmF0dGVyeSBzdGF0dXMgaXMgbm90IGF2YWlsYWJsZS4KKyAgICB2aXJ0
dWFsIFdlYkJhdHRlcnlNb25pdG9yKiBiYXR0ZXJ5TW9uaXRvcigpIHsgcmV0dXJuIDA7IH0KKwog
cHJvdGVjdGVkOgogICAgIH5QbGF0Zm9ybSgpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAppbmRleCA3OGU0MjhiMjI4NWQzNjNlNTQ3OGRmN2ZhMjM4ZjM2ZjNlYmVmOTA3Li5iYWUx
OWUwMWIyZThlYjA4ZDYxNzI3MmRkYWMxYzAyNzM5YzU1NmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCkBAIC0xMDIsOCArMTAyLDggQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQXV0
b2ZpbGxDbGllbnQuaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJCYXR0ZXJ5TW9uaXRv
ci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkJhdHRlcnlTdGF0dXMuaCcsCi0gICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJCYXR0ZXJ5U3RhdHVzQ2xpZW50LmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViQmluZGluZ3MuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJCbG9iLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ2FjaGUuaCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggY2FhNDFkYWUzN2FhODM5NzNkYThmNjQxNTk1
YTBmOTU5MjdmZTI4Ni4uYTFkZDU1ZGM0Mzc4M2Q2MGRmNDk3ZTcwYzUyNDRkZGRjMmMyZmIwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMzMsNyArMzMsNyBAQAogICAn
dmFyaWFibGVzJzogewogICAgICdmZWF0dXJlX2RlZmluZXMnOiBbCiAgICAgICAnRU5BQkxFXzNE
X1BMVUdJTj0xJywKLSAgICAgICdFTkFCTEVfQkFUVEVSWV9TVEFUVVM9MCcsCisgICAgICAnRU5B
QkxFX0JBVFRFUllfU1RBVFVTPTEnLAogICAgICAgJ0VOQUJMRV9CTE9CPTEnLAogICAgICAgJ0VO
QUJMRV9CTE9CX1NMSUNFPTEnLAogICAgICAgJ0VOQUJMRV9DSEFOTkVMX01FU1NBR0lORz0xJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJhdHRlcnlNb25p
dG9yLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCYXR0ZXJ5TW9uaXRvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmY3YTBiZWM4ZmE5NjU5YTgwZTViOGRlYjY5NmUxYWU4MDRlYWRkZWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCYXR0ZXJ5
TW9uaXRvci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkJhdHRlcnlNb25p
dG9yX2gKKyNkZWZpbmUgV2ViQmF0dGVyeU1vbml0b3JfaAorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViQmF0dGVyeVN0YXR1czsKKworY2xhc3MgV2ViQmF0dGVyeU1vbml0b3JDbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkJhdHRlcnlNb25pdG9yQ2xpZW50KCkgeyB9
CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmF0dGVyeVN0YXR1cyhjb25zdCBXZWJCYXR0ZXJ5
U3RhdHVzJikgPSAwOworfTsKKworY2xhc3MgV2ViQmF0dGVyeU1vbml0b3IgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfldlYkJhdHRlcnlNb25pdG9yKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
c3RhcnQoV2ViQmF0dGVyeU1vbml0b3JDbGllbnQqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
b3AoV2ViQmF0dGVyeU1vbml0b3JDbGllbnQqKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFdlYkJhdHRlcnlNb25pdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJhdHRlcnlTdGF0dXNDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkJhdHRlcnlTdGF0dXNDbGllbnQuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWEyYTE1YjAwMjU3MDE2YzgzMDcwNTgzZDdhNDViMzUx
MmNiZTgzNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJCYXR0ZXJ5U3RhdHVzQ2xpZW50LmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJCYXR0ZXJ5U3Rh
dHVzQ2xpZW50X2gKLSNkZWZpbmUgV2ViQmF0dGVyeVN0YXR1c0NsaWVudF9oCi0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBXZWJCYXR0ZXJ5U3RhdHVzQ2xpZW50IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5XZWJCYXR0ZXJ5U3RhdHVzQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRVcGRhdGluZygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkg
PSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJCYXR0ZXJ5
U3RhdHVzQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRl
eCA5NjY0MmY2NjY4ZGZkNTgzMzgzMTBmM2YwYmY1ZjI4YmJhOGY2MWVhLi4zODk5YjM0YTI5YTA3
NGJjY2I5YTJlZjIwM2ExOTI3MDYzZTExZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCkBAIC00ODEsMTMgKzQ4MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgYWRkUGFnZU92ZXJsYXkoV2ViUGFnZU92ZXJsYXkqLCBpbnQgLyp6LW9yZGVyKi8pID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGFnZU92ZXJsYXkoV2ViUGFnZU92ZXJsYXkqKSA9IDA7
CiAKLSAgICAvLyBCYXR0ZXJ5IHN0YXR1cyBBUEkgc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgICAvLyBVcGRhdGVzIHRoZSBiYXR0ZXJ5IHN0
YXR1cyBpbiB0aGUgQmF0dGVyeUNsaWVudC4gVGhpcyBhbHNvIHRyaWdnZXJzIHRoZQotICAgIC8v
IGFwcHJvcHJpYXRlIEpTIGV2ZW50cyAoZS5nLiBzZW5kcyBhICdsZXZlbGNoYW5nZScgZXZlbnQg
dG8gSlMgaWYgdGhlCi0gICAgLy8gbGV2ZWwgaXMgY2hhbmdlZCBpbiB0aGlzIHVwZGF0ZSBmcm9t
IHRoZSBwcmV2aW91cyB1cGRhdGUpLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYXR0ZXJ5U3Rh
dHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXMmKSB7IH0KLQogICAgIC8vIFRlc3RpbmcgZnVuY3Rp
b25hbGl0eSBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAogICAgIC8vIFNpbXVsYXRlcyBhIGNvbXBvc2l0b3IgbG9zdCBjb250ZXh0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IDYzOTNhMDc0MWNm
MGQzMzQzZDRlOTIyOTYzYTcxMjRiN2VlM2I4NDIuLjRmNTg1MTQ0OGFjZGNiNWZkZDIyZWE1ODlh
ZWYyM2Y4OTg1YmFlNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJW
aWV3Q2xpZW50LmgKQEAgLTUwLDcgKzUwLDYgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OwotY2xhc3MgV2ViQmF0dGVyeVN0YXR1c0NsaWVudDsK
IGNsYXNzIFdlYkNvbG9yQ2hvb3NlcjsKIGNsYXNzIFdlYkNvbG9yQ2hvb3NlckNsaWVudDsKIGNs
YXNzIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50OwpAQCAtMzMyLDExICszMzEsNiBAQCBwdWJs
aWM6CiAgICAgLy8gQWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIGRldmljZSBvcmllbnRhdGlv
biBzZXJ2aWNlcy4KICAgICB2aXJ0dWFsIFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KiBkZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCgpIHsgcmV0dXJuIDA7IH0KIAotICAgIC8vIEJhdHRlcnkgU3Rh
dHVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0gICAgLy8gQWNjZXNzIHRoZSBlbWJlZGRlciBBUEkgZm9yIGJhdHRlcnkgc3RhdHVzIHNl
cnZpY2VzLgotICAgIHZpcnR1YWwgV2ViQmF0dGVyeVN0YXR1c0NsaWVudCogYmF0dGVyeVN0YXR1
c0NsaWVudCgpIHsgcmV0dXJuIDA7IH0KLQogICAgIC8vIFpvb20gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAgICAgLy8g
SW5mb3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB6b29tIGxldmVscyBmb3IgdGhpcyBmcmFtZSBo
YXZlIGNoYW5nZWQgZnJvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QmF0dGVyeUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQmF0dGVy
eUNsaWVudEltcGwuY3BwCmluZGV4IDEzNmM5MTIzZGJmOGJkOTc4YjAwODI5YzIyZDk5MGVhYzIx
NzEyZTguLmRmZmUzYWJlMGU1NDA0N2EwYjY3MWE4MjRjM2M1NDllOTE4MWFmY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0JhdHRlcnlDbGllbnRJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9CYXR0ZXJ5Q2xpZW50SW1wbC5jcHAKQEAgLTM2
LDEzICszNiwxMiBAQAogI2luY2x1ZGUgIkJhdHRlcnlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
QmF0dGVyeVN0YXR1cy5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJXZWJC
YXR0ZXJ5U3RhdHVzQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotQmF0dGVyeUNsaWVudEltcGw6OkJhdHRlcnlDbGllbnRJbXBsKFdlYkJh
dHRlcnlTdGF0dXNDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fY2xpZW50KGNsaWVudCkKK0JhdHRl
cnlDbGllbnRJbXBsOjpCYXR0ZXJ5Q2xpZW50SW1wbChXZWJCYXR0ZXJ5TW9uaXRvciogbW9uaXRv
cikKKyAgICA6IG1fbW9uaXRvcihtb25pdG9yKQogICAgICwgbV9jb250cm9sbGVyKDApCiB7CiB9
CkBAIC02MiwxNCArNjEsMTQgQEAgdm9pZCBCYXR0ZXJ5Q2xpZW50SW1wbDo6c2V0Q29udHJvbGxl
cihXZWJDb3JlOjpCYXR0ZXJ5Q29udHJvbGxlciogY29udHJvbGxlcikKIAogdm9pZCBCYXR0ZXJ5
Q2xpZW50SW1wbDo6c3RhcnRVcGRhdGluZygpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAg
ICBtX2NsaWVudC0+c3RhcnRVcGRhdGluZygpOworICAgIGlmIChtX21vbml0b3IpCisgICAgICAg
IG1fbW9uaXRvci0+c3RhcnQodGhpcyk7CiB9CiAKIHZvaWQgQmF0dGVyeUNsaWVudEltcGw6OnN0
b3BVcGRhdGluZygpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c3Rv
cFVwZGF0aW5nKCk7CisgICAgaWYgKG1fbW9uaXRvcikKKyAgICAgICAgbV9tb25pdG9yLT5zdG9w
KHRoaXMpOwogfQogCiB2b2lkIEJhdHRlcnlDbGllbnRJbXBsOjpiYXR0ZXJ5Q29udHJvbGxlckRl
c3Ryb3llZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9CYXR0ZXJ5
Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQmF0dGVyeUNsaWVudElt
cGwuaAppbmRleCBhM2IxZmE1ZDg3ZDVlZDQwYzVhOTFkNGRkNDJmYWZhNjUxYTk5ZGQ4Li5iY2U2
ZTk5ODczMGIzZWNkZTViMGQ3NjhjMjFjMDMzZDA2N2JlMTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9CYXR0ZXJ5Q2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0JhdHRlcnlDbGllbnRJbXBsLmgKQEAgLTM0LDE4ICszNCwxOSBAQAog
I2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKIAogI2luY2x1ZGUgIkJhdHRlcnlDbGllbnQuaCIK
KyNpbmNsdWRlICJXZWJCYXR0ZXJ5TW9uaXRvci5oIgogI2luY2x1ZGUgIldlYkJhdHRlcnlTdGF0
dXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkJhdHRlcnlTdGF0dXNDbGll
bnQ7Ci0KLWNsYXNzIEJhdHRlcnlDbGllbnRJbXBsIDogcHVibGljIFdlYkNvcmU6OkJhdHRlcnlD
bGllbnQgeworY2xhc3MgQmF0dGVyeUNsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6QmF0dGVy
eUNsaWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFdlYktpdDo6V2ViQmF0
dGVyeU1vbml0b3JDbGllbnQgewogcHVibGljOgotICAgIGV4cGxpY2l0IEJhdHRlcnlDbGllbnRJ
bXBsKFdlYkJhdHRlcnlTdGF0dXNDbGllbnQqKTsKKyAgICBleHBsaWNpdCBCYXR0ZXJ5Q2xpZW50
SW1wbChXZWJCYXR0ZXJ5TW9uaXRvciopOwogICAgIHZpcnR1YWwgfkJhdHRlcnlDbGllbnRJbXBs
KCkgeyB9CiAKLSAgICB2b2lkIHVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0
YXR1cyYpOworICAgIC8vIFdlYkJhdHRlcnlNb25pdG9yQ2xpZW50IG1ldGhvZHM6CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0YXR1cyYpIE9W
RVJSSURFOwogCiAgICAgLy8gV2ViQ29yZTo6QmF0dGVyeUNsaWVudCBtZXRob2RzOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKFdlYkNvcmU6OkJhdHRlcnlDb250cm9sbGVyKikgT1ZF
UlJJREU7CkBAIC01NCw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYmF0dGVy
eUNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBXZWJCYXR0
ZXJ5U3RhdHVzQ2xpZW50KiBtX2NsaWVudDsKKyAgICBXZWJCYXR0ZXJ5TW9uaXRvciogbV9tb25p
dG9yOwogICAgIFdlYkNvcmU6OkJhdHRlcnlDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjNmZGRl
ZjFlN2EwYWEwNjkxNDg3MGJlZTUxOWZhZDM3M2U3MGYwNy4uNGUyMjExYmNkMGM5ODVmOTVmMDBk
ODA2NzZhMjdkMWVjMzhiNTVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtNDIwLDcgKzQyMCw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChX
ZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50UHJv
eHkoYWRvcHRQdHIobmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkoY2xpZW50ID8gY2xp
ZW50LT5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIDogMCkpKQogICAgICwgbV9nZW9sb2NhdGlv
bkNsaWVudFByb3h5KGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvbkNsaWVudFByb3h5KGNsaWVudCA/
IGNsaWVudC0+Z2VvbG9jYXRpb25DbGllbnQoKSA6IDApKSkKICNpZiBFTkFCTEUoQkFUVEVSWV9T
VEFUVVMpCi0gICAgLCBtX2JhdHRlcnlDbGllbnQoYWRvcHRQdHIobmV3IEJhdHRlcnlDbGllbnRJ
bXBsKGNsaWVudCA/IGNsaWVudC0+YmF0dGVyeVN0YXR1c0NsaWVudCgpIDogMCkpKQorICAgICwg
bV9iYXR0ZXJ5Q2xpZW50KGFkb3B0UHRyKG5ldyBCYXR0ZXJ5Q2xpZW50SW1wbChXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmJhdHRlcnlNb25pdG9yKCkpKSkKICNlbmRpZgogICAgICwgbV9l
bXVsYXRlZFRleHRab29tRmFjdG9yKDEpCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTE1
MDksMTMgKzE1MDksNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50Q2FuY2VsRnJhbWUo
KQogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsRnJhbWUobV9wYWdlLmdl
dCgpKTsKIH0KIAotI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKLXZvaWQgV2ViVmlld0ltcGw6
OnVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0YXR1cyYgc3RhdHVzKQotewot
ICAgIG1fYmF0dGVyeUNsaWVudC0+dXBkYXRlQmF0dGVyeVN0YXR1cyhzdGF0dXMpOwotfQotI2Vu
ZGlmCi0KIHZvaWQgV2ViVmlld0ltcGw6OnNldENvbXBvc2l0b3JTdXJmYWNlUmVhZHkoKQogewog
ICAgIG1fY29tcG9zaXRvclN1cmZhY2VSZWFkeSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBmNjU3NTA0ZjJhZGRkZGViZGEyMGJjODJmMjdlYmE1
YjNhZjgyODgzLi5mYWRlYTJmZGNiMjA2NDNlZjViMWVmZWFjZTJhNWM1N2IxOWFhZmI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTI5MCw5ICsyOTAsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1DdXN0b21Db250ZXh0TWVudUFjdGlv
bih1bnNpZ25lZCBhY3Rpb24pOwogICAgIHZpcnR1YWwgdm9pZCBhZGRQYWdlT3ZlcmxheShXZWJQ
YWdlT3ZlcmxheSosIGludCAvKiB6T3JkZXIgKi8pOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQ
YWdlT3ZlcmxheShXZWJQYWdlT3ZlcmxheSopOwotI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmF0dGVyeVN0YXR1cyhjb25zdCBXZWJCYXR0ZXJ5U3Rh
dHVzJik7Ci0jZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgdHJhbnNmZXJBY3RpdmVXaGVlbEZsaW5n
QW5pbWF0aW9uKGNvbnN0IFdlYkFjdGl2ZVdoZWVsRmxpbmdQYXJhbWV0ZXJzJik7CiAgICAgdmly
dHVhbCB2b2lkIHJlbmRlcmluZ1N0YXRzKFdlYlJlbmRlcmluZ1N0YXRzJikgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA3YjkxZGNkZmQ4MTY0MzA0YmM2NTA4MjFkNjk3NzhmYmNiNmYyYzljLi40MTczNzY1ZGJh
MTg1ZjRmYWVkMzA3ODRkYzBiNmE3ZjMwZTY2MDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMDctMDQgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gUmUtZW5hYmxlIEJhdHRlcnkgU3RhdHVzIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9k
b20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dDoKKwogMjAxMi0wNy0w
MiAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIExheW91
dCBUZXN0IGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1yZWNlaXZlLXJlc3BvbnNlLWV2ZW50
Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNGJmNzNjYjcwZjk5OTU4YTZlYWU5NzgwMGYyN2JjYzUxZDllNGFk
My4uNGE2OWEwNDUxMGYxNDYyNDZjZDI1NTkwODU5MTYxN2YxNTk4Yzc1ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNDIsOSArMTQy
LDYgQEAgQlVHQ1IxMDM5MzkgU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvd3JvbmctY29udGVu
dC10eXBlLmh0bWwgPSBURVhUCiAvLyBWaWJyYXRpb24gQVBJIGlzIG5vdCBzdXBwb3J0ZWQgeWV0
IGluIHRoZSBjaHJvbWl1bSBwb3J0LgogQlVHV0s3MjAxMCBTS0lQIDogZmFzdC9kb20vbmF2aWdh
dG9yLXZpYnJhdGlvbi5odG1sID0gUEFTUwogCi0vLyBCYXR0ZXJ5IFN0YXR1cyBBUEkgaXMgbm90
IHN1cHBvcnRlZCB5ZXQgaW4gdGhlIGNocm9taXVtIHBvcnQuCi1CVUdXSzYyNjk4IFNLSVAgOiBi
YXR0ZXJ5c3RhdHVzID0gUEFTUwotCiAvLyBOZXR3b3JrIEluZm9ybWF0aW9uIEFQSSBpcyBub3Qg
c3VwcG9ydGVkIHlldCBpbiB0aGUgY2hyb21pdW0gcG9ydC4KIEJVR1dLNzM1MjggU0tJUCA6IG5l
dHdvcmtpbmZvcm1hdGlvbiA9IFBBU1MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vZmFzdC9kb20vbmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL25hdmlnYXRvci1k
ZXRhY2hlZC1uby1jcmFzaC1leHBlY3RlZC50eHQKaW5kZXggYTRlNDM5NTc3ZGMwOTUzZGQ0YWUw
YjE1MDYyN2NmNTYxOTU1Njk1MS4uNGM2NzgyZGQxYjE4Y2I0NGY0N2U4ZGQyNzE0MjFlZDY0YWUz
ZmNjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20v
bmF2aWdhdG9yLWRldGFjaGVkLW5vLWNyYXNoLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9uYXZpZ2F0b3ItZGV0YWNoZWQtbm8tY3Jhc2gt
ZXhwZWN0ZWQudHh0CkBAIC0xNyw2ICsxNyw3IEBAIG5hdmlnYXRvci5yZWdpc3RlclByb3RvY29s
SGFuZGxlcigpIHRocmV3IGVyciBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzCiBuYXZp
Z2F0b3IudXNlckFnZW50IGlzIE9LCiBuYXZpZ2F0b3IudmVuZG9yIGlzIE9LCiBuYXZpZ2F0b3Iu
dmVuZG9yU3ViIGlzIE9LCituYXZpZ2F0b3Iud2Via2l0QmF0dGVyeSBpcyBPSwogbmF2aWdhdG9y
LndlYmtpdEdhbWVwYWRzIGlzIE9LCiBuYXZpZ2F0b3Iud2Via2l0UG9pbnRlciBpcyBPSwogbmF2
aWdhdG9yLndlYmtpdFN0YXJ0QWN0aXZpdHkoKSB0aHJldyBlcnIgVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cwpAQCAtMzcsNiArMzgsNyBAQCBuYXZpZ2F0b3IucmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXIoKSB0aHJldyBlcnIgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cwogbmF2
aWdhdG9yLnVzZXJBZ2VudCBpcyBPSwogbmF2aWdhdG9yLnZlbmRvciBpcyBPSwogbmF2aWdhdG9y
LnZlbmRvclN1YiBpcyBPSworbmF2aWdhdG9yLndlYmtpdEJhdHRlcnkgaXMgT0sKIG5hdmlnYXRv
ci53ZWJraXRHYW1lcGFkcyBpcyBPSwogbmF2aWdhdG9yLndlYmtpdFBvaW50ZXIgaXMgT0sKIG5h
dmlnYXRvci53ZWJraXRTdGFydEFjdGl2aXR5KCkgdGhyZXcgZXJyIFR5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMK
</data>
<flag name="review"
          id="159050"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>