<?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>120136</bug_id>
          
          <creation_ts>2013-08-21 13:49:05 -0700</creation_ts>
          <short_desc>[WK2] Add didChangeEnableHighAccuracy callback to WK2 geolocation API</short_desc>
          <delta_ts>2013-11-04 21:08:46 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>123786</dup_id>
          
          <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="Hugo Parente Lima">hugo.lima</reporter>
          <assigned_to name="Hugo Parente Lima">hugo.lima</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>919614</commentid>
    <comment_count>0</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-21 13:49:05 -0700</bug_when>
    <thetext>This GeolocationProvider callback is needed if the application want to use e.g. a low power method of acquiring geopositon when the web author don&apos;t need high accuracy.

This API was added to Nix, I&apos;m upstreaming it just in case you guys have interest and/or feel this is useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919636</commentid>
    <comment_count>1</comment_count>
      <attachid>209304</attachid>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-21 14:24:32 -0700</bug_when>
    <thetext>Created attachment 209304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919639</commentid>
    <comment_count>2</comment_count>
      <attachid>209304</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-21 14:30:23 -0700</bug_when>
    <thetext>Comment on attachment 209304
Patch

Attachment 209304 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1516860</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919643</commentid>
    <comment_count>3</comment_count>
      <attachid>209304</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-21 14:57:15 -0700</bug_when>
    <thetext>Comment on attachment 209304
Patch

Attachment 209304 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1528200</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919644</commentid>
    <comment_count>4</comment_count>
      <attachid>209304</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-21 15:05:10 -0700</bug_when>
    <thetext>Comment on attachment 209304
Patch

Attachment 209304 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1516862</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919650</commentid>
    <comment_count>5</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-21 15:20:38 -0700</bug_when>
    <thetext>I can fix the Qt-wk2 and maybe the mac build errors if some wk2-owner show interest about land this patch, if there&apos;s no interest anyone feel free to mark the bug as WONTFIX.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919744</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-22 00:11:21 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I can fix the Qt-wk2 and maybe the mac build errors if some wk2-owner show interest about land this patch, if there&apos;s no interest anyone feel free to mark the bug as WONTFIX.

I am interested in this, this seems great.

The WebKit1 code for EnableHighAccuracy is quite wrong. I need to go through the code again to remember the problems and see if this patch avoids them.

Please give me a couple of days before I check this, maybe the weekend. If I did not review by Monday, feel free to nag me on IRC.
Do not land if another reviewer r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919841</commentid>
    <comment_count>7</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-22 06:28:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; I can fix the Qt-wk2 and maybe the mac build errors if some wk2-owner show interest about land this patch, if there&apos;s no interest anyone feel free to mark the bug as WONTFIX.
&gt; 
&gt; I am interested in this, this seems great.
&gt; 
&gt; The WebKit1 code for EnableHighAccuracy is quite wrong. I need to go through the code again to remember the problems and see if this patch avoids them.

One problem I noticed is that setEnableHighAccuracy is called before startUpdating(), so the first update will not consider the highaccuracy setting.
 
&gt; Please give me a couple of days before I check this, maybe the weekend. If I did not review by Monday, feel free to nag me on IRC.
&gt; Do not land if another reviewer r+.

No problem, I&apos;m not in a hurry :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919848</commentid>
    <comment_count>8</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-22 06:40:33 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; One problem I noticed is that setEnableHighAccuracy is called before startUpdating(), so the first update will not consider the highaccuracy setting.

Oops, I was wrong, they are called in the right order, sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921758</commentid>
    <comment_count>9</comment_count>
      <attachid>209304</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-27 17:47:30 -0700</bug_when>
    <thetext>Comment on attachment 209304
Patch

I finally spent the time to read this. The patch is not correct.

WebGeolocationClient is per page. WebGeolocationManager is a WebProcess concept. WebGeolocationManagerProxy is WebContext concept.
You cannot just mix everything. When the message go to a more general concept, you need to keep track of the details of the smaller scope.

For example:
- Take a process Alpha with the page A and B. Page A ask for HighAccuracy=true, page B ask for HighAccuracy=false. With your patch, the last one wins. What should happen is HighAccuracy should be kept to true because one of the two live Geolocation object is in that mode.
- Take a UIProcess Beta with two web processes A and B. Same reasoning as above.
etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922049</commentid>
    <comment_count>10</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-28 09:38:12 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 209304 [details])
&gt; I finally spent the time to read this. The patch is not correct.
&gt; 
&gt; WebGeolocationClient is per page. WebGeolocationManager is a WebProcess concept. WebGeolocationManagerProxy is WebContext concept.
&gt; You cannot just mix everything. When the message go to a more general concept, you need to keep track of the details of the smaller scope.
&gt; 
&gt; For example:
&gt; - Take a process Alpha with the page A and B. Page A ask for HighAccuracy=true, page B ask for HighAccuracy=false. With your patch, the last one wins. What should happen is HighAccuracy should be kept to true because one of the two live Geolocation object is in that mode.
&gt; - Take a UIProcess Beta with two web processes A and B. Same reasoning as above.
&gt; etc.

Got it, with the current patch the application still can solve this issue, but I think is better to solve it somehow on WebKit2 UIProcess level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922220</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-28 15:35:28 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Got it, with the current patch the application still can solve this issue, but I think is better to solve it somehow on WebKit2 UIProcess level.

I am not sure to follow you here. How can the application solve the issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922223</commentid>
    <comment_count>12</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-28 15:54:58 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Got it, with the current patch the application still can solve this issue, but I think is better to solve it somehow on WebKit2 UIProcess level.
&gt; 
&gt; I am not sure to follow you here. How can the application solve the issues?

It knows about all start/stop geolocations requests and about all enable/disable high accuracy from all pages, so it have all the information to not turn off the high accuracy when it can&apos;t because there are some page using high accuracy. But I think the application shouldn&apos;t worry about this logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922229</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-28 16:20:44 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; It knows about all start/stop geolocations requests and about all enable/disable high accuracy from all pages, so it have all the information to not turn off the high accuracy when it can&apos;t because there are some page using high accuracy. But I think the application shouldn&apos;t worry about this logic.

That is simply not possible. The informations about the Geolocation objects never leaves the WebProcess.

The best you can do is never go back from high accuracy until you stop updating geolocation. That would terribly bad for battery on mobile devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922236</commentid>
    <comment_count>14</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-08-28 16:27:55 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; That is simply not possible. The informations about the Geolocation objects never leaves the WebProcess.

Doesn&apos;t Webcore call stopUpdate when a Geolocation object requesting positions is destroyed?

Better to have this conversation on IRC btw.
 
&gt; The best you can do is never go back from high accuracy until you stop updating geolocation. That would terribly bad for battery on mobile devices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>947004</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-11-04 21:08:46 -0800</bug_when>
    <thetext>I will add this on https://bugs.webkit.org/show_bug.cgi?id=123786.

*** This bug has been marked as a duplicate of bug 123786 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209304</attachid>
            <date>2013-08-21 14:24:32 -0700</date>
            <delta_ts>2013-08-27 17:47:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120136-20130821182549.patch</filename>
            <type>text/plain</type>
            <size>16043</size>
            <attacher name="Hugo Parente Lima">hugo.lima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjIxNmQyZjQ2NzcyM2Vj
YjhjMjVkMzAzZDAzOTk0M2Y3ZWNmYzYxYi4uYjUxOWE5YjU1NWU1MjI4OTM1MzU1NTQ5MGY3OTk0
NDUyNjFkMTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTA4LTIxICBIdWdv
IFBhcmVudGUgTGltYSAgPGh1Z28ubGltYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFtXSzJd
IEFkZCBkaWRDaGFuZ2VFbmFibGVIaWdoQWNjdXJhY3kgY2FsbGJhY2sgdG8gV0syIGdlb2xvY2F0
aW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIwMTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkZWQgZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5IGNhbGxiYWNrIHRvIFdLR2VvbG9jYXRp
b25Qcm92aWRlciBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRz
LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk6OmRpZENoYW5nZUVuYWJsZUhpZ2hBY2N1cmFjeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViR2VvbG9jYXRpb25Qcm92aWRlcjo6ZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VFbmFibGVIaWdoQWNj
dXJhY3kpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25N
YW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uQ2xpZW50Ojpz
ZXRFbmFibGVIaWdoQWNjdXJhY3kpOgorCiAyMDEzLTA4LTIxICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNDU0NTg/KTogV2ViUHJv
Y2VzcyBkb2Vzbid0IHJlc3BlY3QgVUkgcHJvY2VzcyBsb2NhbGl6YXRpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKaW5kZXggZmU2OGQ2OTZlMzhkOTMxYWM3MjU2
ZGQ5MDcyOGYxNDg1NTMyYTBiOC4uMjkzMmFmMWJhOGM0MDgwZTllMGI5MDM1ZmZiZGYwYzIzNGIz
YzMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKQEAgLTEw
Miw0ICsxMDIsOSBAQCBjb25zdCBzaXplX3QgQVBJQ2xpZW50VHJhaXRzPFdLSWNvbkRhdGFiYXNl
Q2xpZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bXSA9CiAgICAgc2l6ZW9mKFdLSWNvbkRh
dGFiYXNlQ2xpZW50KQogfTsKIAorY29uc3Qgc2l6ZV90IEFQSUNsaWVudFRyYWl0czxXS0dlb2xv
Y2F0aW9uUHJvdmlkZXI+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvbltdID0geworICAgIG9mZnNl
dG9mKFdLR2VvbG9jYXRpb25Qcm92aWRlciwgZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5KSwK
KyAgICBzaXplb2YoV0tHZW9sb2NhdGlvblByb3ZpZGVyKQorfTsKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKaW5kZXggNDYyMjk3
OGNkODU3MmE4YjI4OWQ3ZjE0Y2ZkOWFkNzdkNmUyZWEyYS4uODU5YzJmNjMzMTU0ZGE2YTAyYjMz
NzI1Y2ZhMDI4NmEzOWViZWViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SUNsaWVudFRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFp
dHMuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldLQnVuZGxlLmgiCiAjaW5jbHVkZSAi
V0tCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0LmgiCisjaW5jbHVkZSAiV0tHZW9s
b2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXS0ljb25EYXRhYmFzZS5oIgogI2luY2x1ZGUg
IldLUGFnZS5oIgogCkBAIC04Nyw2ICs4OCwxMCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElDbGll
bnRUcmFpdHM8V0tJY29uRGF0YWJhc2VDbGllbnQ+IHsKICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGludGVyZmFjZVNpemVzQnlWZXJzaW9uWzJdOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQVBJ
Q2xpZW50VHJhaXRzPFdLR2VvbG9jYXRpb25Qcm92aWRlcj4geworICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bMl07Cit9OworCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIEFQSUNsaWVudFRyYWl0c19oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDdmOWNi
Njg5MTA5YTM5NzcwZmYxMmEwNTJlZmUxM2FjNjI3MmUzYTQuLjVjNmFiYjI0Y2IxNDY1NDFlNzhm
YWYwOGViNjc5ZjhlMDdhMzAwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uTWFuYWdlci5oCkBAIC0zNSwxNiArMzUsMjIgQEAgZXh0
ZXJuICJDIiB7CiAvLyBQcm92aWRlci4KIHR5cGVkZWYgdm9pZCAoKldLR2VvbG9jYXRpb25Qcm92
aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjaykoV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9j
YXRpb25NYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
R2VvbG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrKShXS0dlb2xvY2F0aW9uTWFu
YWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlw
ZWRlZiB2b2lkICgqV0tHZW9sb2NhdGlvblByb3ZpZGVyRGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3Vy
YWN5KShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1hbmFnZXIsIGJvb2wsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tHZW9sb2NhdGlvblByb3ZpZGVyIHsK
ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworCisg
ICAgLy8gVmVyc2lvbiAwCiAgICAgV0tHZW9sb2NhdGlvblByb3ZpZGVyU3RhcnRVcGRhdGluZ0Nh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFVwZGF0aW5nOwogICAgIFdLR2Vv
bG9jYXRpb25Qcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RvcFVwZGF0aW5nOworCisgICAgLy8gVmVyc2lvbiAxCisgICAgV0tHZW9sb2NhdGlv
blByb3ZpZGVyRGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5ICAgICAgICAgICAgICAgICAgICBk
aWRDaGFuZ2VFbmFibGVIaWdoQWNjdXJhY3k7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tHZW9sb2Nh
dGlvblByb3ZpZGVyIFdLR2VvbG9jYXRpb25Qcm92aWRlcjsKIAotZW51bSB7IGtXS0dlb2xvY2F0
aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKK2VudW0geyBrV0tHZW9sb2NhdGlvblBy
b3ZpZGVyQ3VycmVudFZlcnNpb24gPSAxIH07CiAKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS0dlb2xv
Y2F0aW9uTWFuYWdlckdldFR5cGVJRCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA1ZjU0MDgwMjQx
MGI2NDQxMmRjZDQ5NTQwZGU3ZTZhZTQwYTI4NDZlLi44YTRmMjZjMDY2NjMyNzFhODVkMjMwZmM5
N2ZhNjViMzdhNGVmZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5jcHAKQEAgLTExNCw0ICsxMTQsOSBAQCB2b2lk
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpzdG9wVXBkYXRpbmcoKQogICAgIG1faXNVcGRh
dGluZyA9IGZhbHNlOwogfQogCit2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpkaWRD
aGFuZ2VFbmFibGVIaWdoQWNjdXJhY3koYm9vbCB2YWx1ZSkKK3sKKyAgICBtX3Byb3ZpZGVyLmRp
ZENoYW5nZUVuYWJsZUhpZ2hBY2N1cmFjeSh0aGlzLCB2YWx1ZSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkuaAppbmRleCBhMmQ5N2M2ZWExMDY2N2Q2NjkyNTEzNjFmMjliZjA2
MzZjNzA0ZGJhLi44YzNjYThlOTk3ZWI3MTJhODk0MjdhNjA3MzNiMjE4OWY2YTIxNGFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHkuaApAQCAtNjYsNiArNjYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydFVwZGF0
aW5nKCk7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICB2b2lkIGRpZENoYW5nZUVuYWJs
ZUhpZ2hBY2N1cmFjeShib29sKTsKIAogICAgIGJvb2wgbV9pc1VwZGF0aW5nOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZmU1YTI3MzAwZDNiYmUxNzNmYTUwNzJlMzkyMmFh
YTlhM2NkOTk3Ny4uNGNjMWRmZjBhNTQxMjNkOTdlNDU3YjUwN2ZiYjYwZGU3ZTE5YjZlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNCArMjMsNSBAQAogbWVzc2FnZXMg
LT4gV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkgewogICAgIFN0YXJ0VXBkYXRpbmcoKTsKICAg
ICBTdG9wVXBkYXRpbmcoKTsKKyAgICBEaWRDaGFuZ2VFbmFibGVIaWdoQWNjdXJhY3koYm9vbCB2
YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9j
YXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRp
b25Qcm92aWRlci5jcHAKaW5kZXggYzM4MjIzNWM3Y2QzNzlhMDJiMDVhZWVhMzI5ZmRkYTBhYjYz
MDg2Ni4uNDg0Y2JkMGQ3Mjg0MjgwMWRmZDdlNmQyMjBhZTI5NzhiNzEzOWYwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3ZpZGVyLmNwcApA
QCAtNDcsNCArNDcsMTIgQEAgdm9pZCBXZWJHZW9sb2NhdGlvblByb3ZpZGVyOjpzdG9wVXBkYXRp
bmcoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW8KICAgICBtX2NsaWVudC5z
dG9wVXBkYXRpbmcodG9BUEkoZ2VvbG9jYXRpb25NYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5m
byk7CiB9CiAKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qcm92aWRlcjo6ZGlkQ2hhbmdlRW5hYmxlSGln
aEFjY3VyYWN5KFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXIs
IGJvb2wgdmFsdWUpCit7CisgICAgaWYgKCFtX2NsaWVudC5kaWRDaGFuZ2VFbmFibGVIaWdoQWNj
dXJhY3kgfHwgbV9jbGllbnQudmVyc2lvbiA8IDEpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
Y2xpZW50LmRpZENoYW5nZUVuYWJsZUhpZ2hBY2N1cmFjeSh0b0FQSShnZW9sb2NhdGlvbk1hbmFn
ZXIpLCB2YWx1ZSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9u
UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJHZW9sb2NhdGlvblByb3Zp
ZGVyLmgKaW5kZXggMTc3Njg3OWQ1Y2Q2NWNlYjBjZmFhZTRkYzhjNTlhZTYzNjNiY2QzOC4uNWQ5
YjIyN2VmNmIzZGIyMGJmMjkzZWQ1NmM1MzdmYjc1NWNiNTBlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViR2VvbG9jYXRpb25Qcm92aWRlci5oCkBAIC0zOCw2ICszOCw3
IEBAIGNsYXNzIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIgOiBwdWJsaWMgQVBJQ2xpZW50PFdLR2Vv
bG9jYXRpb25Qcm92aWRlciwga1dLR2VvbG9jCiBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFVwZGF0
aW5nKFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Kik7CiAgICAgdm9pZCBzdG9wVXBkYXRpbmco
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqKTsKKyAgICB2b2lkIGRpZENoYW5nZUVuYWJsZUhp
Z2hBY2N1cmFjeShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSosIGJvb2wpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggYWE0
MmY1YTZkZGYwNTcyOGRhM2E5ZDEwMmVmYmU5NGRiOTM0ZDc2Zi4uODY2ZmFmYTY1YTU1NDIyOWFl
NzU5Y2E3MTllMDE1NmY1OTE2N2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcApA
QCAtNzMsNiArNzMsMTEgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJX
ZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCiAgICAgICAgIG1fcHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0
b3BVcGRhdGluZygpLCAwKTsKIH0KIAordm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENo
YW5nZUVuYWJsZUhpZ2hBY2N1cmFjeShib29sIHZhbHVlKQoreworICAgIG1fcHJvY2Vzcy0+cGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk6OkRpZENoYW5nZUVuYWJsZUhpZ2hBY2N1cmFjeSh2YWx1ZSksIDApOworfQorCiB2
b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6RGF0YSYgZGF0YSkKIHsKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
bi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAppbmRleCA0YTFkNzNhZTBmZjA4ZWJiZDVhYTFiZTZm
ODI3Y2YzYmUwNGIyNTMyLi40Yjc1OGU4Yjc4MTQzOTFkYWY0NjBmOWE1MzY3ODBiMDhlYTg4ODUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9j
YXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKQEAgLTUzLDYgKzUzLDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCByZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOwogICAgIHZvaWQgdW5yZWdpc3Rl
cldlYlBhZ2UoV2ViUGFnZSopOworICAgIHZvaWQgZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5
KGJvb2wpOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlv
biopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IGY5YTM2ZGRhNmVh
Zjk2MTk4ODIzZjFhYjYxNDkwNGY2MDg0NWZjOTkuLmNmOWFjMjg5ZDY2Y2QwNmIwZjQyYjZiNjJl
YWY5ZTI3MjIxZTE5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC01
OCw4ICs1OCw5IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCiAg
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFnZXI+
KCktPnVucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7CiB9CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25D
bGllbnQ6OnNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKQordm9pZCBXZWJHZW9sb2NhdGlvbkNs
aWVudDo6c2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wgdmFsdWUpCiB7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkuc3VwcGxlbWVudDxXZWJHZW9sb2NhdGlvbk1hbmFnZXI+KCktPmRpZENoYW5n
ZUVuYWJsZUhpZ2hBY2N1cmFjeSh2YWx1ZSk7CiB9CiAKIEdlb2xvY2F0aW9uUG9zaXRpb24qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU3NTlhMjQ5NGFiOWNmOTQ5ZTJlZGFlODRk
MTNiNWEwZWM2OWU1YzYuLjgzY2UyMGM3YmQ4OGZiZmI3ZTJlZWYyMmI2MGI3Y2QxZjI5OTI5Mzcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxMy0wOC0yMSAgSHVnbyBQYXJlbnRlIExpbWEgIDxodWdvLmxpbWFAb3Bl
bmJvc3NhLm9yZz4KKworICAgICAgICBbV0syXSBBZGQgZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3Vy
YWN5IGNhbGxiYWNrIHRvIFdLMiBnZW9sb2NhdGlvbiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDEzNgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QgZm9yIGRpZENoYW5nZUVuYWJs
ZUhpZ2hBY2N1cmFjeSBXS0dlb2xvY2F0aW9uUHJvdmlkZXIgY2FsbGJhY2suCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2NhdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6ZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL2dlb2xvY2F0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA4LTIxICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzEyMDEzND4gW1Rvb2xzXSBsbGRiX3dlYmtpdC5weSBoZWxwZXJzIGlzIGluY29ycmVj
dGx5IHByaW50aW5nIDhiaXQgU3RyaW5ncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1FZmwuY21h
a2UKaW5kZXggZGZjYTQwOTkzOTc2OGFkOTJjOWQ0OGZjYmY0NDQ0YjRmMDAwY2E2Mi4uYmY4ZDlm
YTg5MjAwNzg5MDY5NGMwNmM1NWE5YzZkMDA4NjhlYjRiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtRWZsLmNtYWtlCkBAIC03MSw2ICs3MSw3IEBAIHNldCh0ZXN0X3dlYmtpdDJfYXBpX0JJ
TkFSSUVTCiAgICAgRm9yY2VSZXBhaW50CiAgICAgRnJhbWVNSU1FVHlwZUhUTUwKICAgICBGcmFt
ZU1JTUVUeXBlUE5HCisgICAgR2VvbG9jYXRpb24KICAgICBHZXRJbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGFDYWxsYmFjawogICAgIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlCiAg
ICAgSW5qZWN0ZWRCdW5kbGVCYXNpYwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL0dlb2xvY2F0aW9uLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9HZW9sb2NhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJmMzRhYzA5ZGE4OTY5OTlhM2Nl
MTI0OTRhMDM2MzI0MTQ1ODRmZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9HZW9sb2NhdGlvbi5jcHAKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlh
cnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJU
ZXN0LmgiCisKKyNpbmNsdWRlIDxjc3RyaW5nPgorI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9sb2Nh
dGlvbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZS5oPgorI2luY2x1ZGUgPFdl
YktpdDIvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0
aWMgYm9vbCBoaWdoQWNjdXJhY3lDaGFuZ2VkOworc3RhdGljIGJvb2wgaGlnaEFjY3VyYWN5VmFs
dWU7CitzdGF0aWMgY29uc3Qgdm9pZCogY2xpZW50SW5mb1ZhbHVlOworc3RhdGljIFdLR2VvbG9j
YXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9ubWFuYWdlclZhbHVlOworCitzdGF0aWMgdm9pZCBk
aWRDaGFuZ2VFbmFibGVIaWdoQWNjdXJhY3koV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgZ2VvbG9j
YXRpb25NYW5hZ2VyLCBib29sIHZhbHVlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IGhpZ2hBY2N1cmFjeUNoYW5nZWQgPSB0cnVlOworICAgIGdlb2xvY2F0aW9ubWFuYWdlclZhbHVl
ID0gZ2VvbG9jYXRpb25NYW5hZ2VyOworICAgIGhpZ2hBY2N1cmFjeVZhbHVlID0gdmFsdWU7Cisg
ICAgY2xpZW50SW5mb1ZhbHVlID0gY2xpZW50SW5mbzsKK30KKworc3RhdGljIHZvaWQgZGVjaWRl
UG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJl
ZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCopCit7CisgICAgV0tHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0QWxsb3cocGVybWlzc2lvblJlcXVlc3QpOworfQorCitURVNUKFdlYktp
dDIsIEdlb2xvY2F0aW9uKQoreworICAgIGhpZ2hBY2N1cmFjeUNoYW5nZWQgPSBmYWxzZTsKKyAg
ICBoaWdoQWNjdXJhY3lWYWx1ZSA9IGZhbHNlOworICAgIGNsaWVudEluZm9WYWx1ZSA9IDA7Cisg
ICAgZ2VvbG9jYXRpb25tYW5hZ2VyVmFsdWUgPSAwOworCisgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS0dlb2xv
Y2F0aW9uTWFuYWdlclJlZj4gZ2VvbG9jYXRpb25NYW5hZ2VyKEFkb3B0V0ssIFdLQ29udGV4dEdl
dEdlb2xvY2F0aW9uTWFuYWdlcihjb250ZXh0LmdldCgpKSk7CisKKyAgICBXS0dlb2xvY2F0aW9u
UHJvdmlkZXIgcHJvdmlkZXI7CisgICAgbWVtc2V0KCZwcm92aWRlciwgMCwgc2l6ZW9mKFdLR2Vv
bG9jYXRpb25Qcm92aWRlcikpOworCisgICAgcHJvdmlkZXIudmVyc2lvbiA9IGtXS0dlb2xvY2F0
aW9uUHJvdmlkZXJDdXJyZW50VmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiBkdW1teVZhbHVlID0g
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oMSk7CisgICAgcHJvdmlkZXIuY2xpZW50SW5mbyA9IGR1
bW15VmFsdWU7CisgICAgcHJvdmlkZXIuZGlkQ2hhbmdlRW5hYmxlSGlnaEFjY3VyYWN5ID0gJmRp
ZENoYW5nZUVuYWJsZUhpZ2hBY2N1cmFjeTsKKyAgICBXS0dlb2xvY2F0aW9uTWFuYWdlclNldFBy
b3ZpZGVyKGdlb2xvY2F0aW9uTWFuYWdlci5nZXQoKSwgJnByb3ZpZGVyKTsKKworICAgIFdLUGFn
ZVVJQ2xpZW50IHVpQ2xpZW50OworICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZihXS1Bh
Z2VVSUNsaWVudCkpOworCisgICAgdWlDbGllbnQudmVyc2lvbiA9IGtXS1BhZ2VVSUNsaWVudEN1
cnJlbnRWZXJzaW9uOworICAgIHVpQ2xpZW50LmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QgPSAmZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdDsKKyAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVu
dCk7CisKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0
ZVVSTEZvclJlc291cmNlKCJnZW9sb2NhdGlvbiIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRV
Ukwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJmhpZ2hBY2N1
cmFjeUNoYW5nZWQpOworCisgICAgRVhQRUNUX1RSVUUoaGlnaEFjY3VyYWN5VmFsdWUpOworICAg
IEVYUEVDVF9UUlVFKGNsaWVudEluZm9WYWx1ZSA9PSBkdW1teVZhbHVlKTsKKyAgICBFWFBFQ1Rf
VFJVRShnZW9sb2NhdGlvbk1hbmFnZXIuZ2V0KCkgPT0gZ2VvbG9jYXRpb25tYW5hZ2VyVmFsdWUp
OworfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Z2VvbG9jYXRpb24uaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9nZW9s
b2NhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0MThiMjhkOTRlY2Q5NjJjN2FhNzY3ZThmNzdjNWRh
ZWU3NTMxNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvZ2VvbG9jYXRpb24uaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0PgorZnVuY3Rpb24gZm9vKGJhcikge30KK25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRD
dXJyZW50UG9zaXRpb24oZm9vLCBmb28sIHtlbmFibGVIaWdoQWNjdXJhY3k6IHRydWV9KTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="231302"
          type_id="1"
          status="-"
          setter="benjamin"
    />
    <flag name="commit-queue"
          id="231304"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>