<?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>27853</bug_id>
          
          <creation_ts>2009-07-30 13:44:50 -0700</creation_ts>
          <short_desc>Make Chrome::requestGeolocationPermissionForFrame() into a synchronous call</short_desc>
          <delta_ts>2009-07-31 15:13:04 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>
          <dependson>26993</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Greg Bolsinga">bolsinga</reporter>
          <assigned_to name="Greg Bolsinga">bolsinga</assigned_to>
          <cc>abarth</cc>
    
    <cc>fishd</cc>
    
    <cc>sam</cc>
    
    <cc>staikos</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135987</commentid>
    <comment_count>0</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 13:44:50 -0700</bug_when>
    <thetext>It is currently in WebKit as an asynchronous call, but that was bogus. To make iPhone&apos;s implementation, it should be synchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136015</commentid>
    <comment_count>1</comment_count>
      <attachid>33841</attachid>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 14:41:42 -0700</bug_when>
    <thetext>Created attachment 33841
patch to implement bug fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136019</commentid>
    <comment_count>2</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 14:44:48 -0700</bug_when>
    <thetext>Make that &quot;to match iPhone&apos;s implementation&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136020</commentid>
    <comment_count>3</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-07-30 14:45:59 -0700</bug_when>
    <thetext>Please also see 26993, waiting for quite some time for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136022</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-30 14:48:13 -0700</bug_when>
    <thetext>What is the technical advantage of having synchronous call?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136023</commentid>
    <comment_count>5</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 14:49:23 -0700</bug_when>
    <thetext>Well, it simply doesn&apos;t make much sense to have it be asynchronous. WebCore is all on one thread, and the UI is the same thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136025</commentid>
    <comment_count>6</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 14:50:21 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Please also see 26993, waiting for quite some time for review.

Bug 26993 will be obsolete if this change is taken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136028</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-30 14:53:23 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Well, it simply doesn&apos;t make much sense to have it be asynchronous. WebCore is
&gt; all on one thread, and the UI is the same thread.

WebCore doesn&apos;t have any UI.  The UI is handled by the WebKit port.  Not all ports are single threaded.  For example, the Chromium port is multiprocess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136031</commentid>
    <comment_count>8</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-30 14:54:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #3)
&gt; &gt; Please also see 26993, waiting for quite some time for review.
&gt; 
&gt; Bug 26993 will be obsolete if this change is taken.

The patch for Bug 26993 simply makes it work for both async and sync cases. It&apos;s up to the implementation of m_client-&gt;requestGeolocationPermissionForFrame()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136032</commentid>
    <comment_count>9</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 14:55:26 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; ports are single threaded.  For example, the Chromium port is multiprocess.

Nothing else in WebCore is asynchronous on this type of stuff. The ChomeClient object is UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136033</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-30 14:56:52 -0700</bug_when>
    <thetext>&gt; The patch for Bug 26993 simply makes it work for both async and sync cases.
&gt; It&apos;s up to the implementation of
&gt; m_client-&gt;requestGeolocationPermissionForFrame()

That sounds like a better fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136034</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-30 14:57:32 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 26993 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136036</commentid>
    <comment_count>12</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 14:58:54 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; 
&gt; *** This bug has been marked as a duplicate of bug 26993 ***

I disagree with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136037</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-30 15:00:23 -0700</bug_when>
    <thetext>&gt; I disagree with this.

Why not make the API work for both synchronous and asynchronous use cases?  For example, in Firefox, this UI is handled by a non-modal infobar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136038</commentid>
    <comment_count>14</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 15:02:16 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; I disagree with this.
&gt; 
&gt; Why not make the API work for both synchronous and asynchronous use cases?  For
&gt; example, in Firefox, this UI is handled by a non-modal infobar.

Is there another example in WebCore I can follow? If not, I&apos;d prefer to keep it synchronous, like all other ChromeClient calls I can find.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136041</commentid>
    <comment_count>15</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 15:03:39 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; I disagree with this.
&gt; &gt; 
&gt; &gt; Why not make the API work for both synchronous and asynchronous use cases?  For
&gt; &gt; example, in Firefox, this UI is handled by a non-modal infobar.
&gt; 
&gt; Is there another example in WebCore I can follow? If not, I&apos;d prefer to keep it
&gt; synchronous, like all other ChromeClient calls I can find.

This way the ChromeClient can handle the asynchronousness itself if it needs it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136042</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-30 15:07:00 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; This way the ChromeClient can handle the asynchronousness itself if it needs
&gt; it?

Yes.  I believe after the patch in Bug 26993, you can call just call Geolocation::setIsAllowed synchronously if you like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136052</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-07-30 15:38:24 -0700</bug_when>
    <thetext>I think we should keep this asynchronous from WebCores prospective and fix any issues specific to the iPhone at a different level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136053</commentid>
    <comment_count>18</comment_count>
    <who name="Greg Bolsinga">bolsinga</who>
    <bug_when>2009-07-30 15:39:23 -0700</bug_when>
    <thetext>OK. This will be the first. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136264</commentid>
    <comment_count>19</comment_count>
      <attachid>33841</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-31 15:13:04 -0700</bug_when>
    <thetext>Comment on attachment 33841
patch to implement bug fix

Clearing review flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33841</attachid>
            <date>2009-07-30 14:41:42 -0700</date>
            <delta_ts>2009-07-31 15:13:04 -0700</delta_ts>
            <desc>patch to implement bug fix</desc>
            <filename>0001-WebCore.patch</filename>
            <type>text/plain</type>
            <size>23747</size>
            <attacher name="Greg Bolsinga">bolsinga</attacher>
            
              <data encoding="base64">RnJvbSBmM2ZlZmI4Y2U4NzNjNWRhM2JmNWMwZTNlMGFmNTYyZDlmYWJiM2VmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJvbHNpbmdhIDxib2xzaW5nYUBhcHBsZS5jb20+CkRh
dGU6IFRodSwgMzAgSnVsIDIwMDkgMTQ6Mzk6MDkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBXZWJD
b3JlOgoKMjAwOS0wNy0zMCAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KCiAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIE1ha2UgQ2hyb21lOjpy
ZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoKSBpbnRvIGEgc3luY2hyb25vdXMg
Y2FsbAogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg1
MwoKICAgICAgICBDaHJvbWVDbGllbnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZSBub3cgcmV0dXJucyBhIGJvb2wuCiAgICAgICAgVGhlIEdlb0xvY2F0aW9uICdJblByb2dy
ZXNzJyBzdGF0ZSBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LgoKICAgICAgICAqIGxvYWRlci9FbXB0
eUNsaWVudHMuaDoKICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnJlcXVlc3RH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CiAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6
CiAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKToKICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CiAgICAgICAgKiBwYWdlL0Nocm9tZUNs
aWVudC5oOgogICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5jcHA6CiAgICAgICAgKFdlYkNvcmU6
Okdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQpOgogICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlv
bjo6cmVxdWVzdFBlcm1pc3Npb24pOgogICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOgogICAg
ICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6KToKCldlYktpdC9ndGs6CgoyMDA5LTA3LTMwICBH
cmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FAYXBwbGUuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiAgICAgICAgTWFrZSBDaHJvbWU6OnJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZSgpIGludG8gYSBzeW5jaHJvbm91cyBjYWxsCiAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODUzCgogICAgICAgIENvbnZlcnQg
dG8gcmV0dXJuaW5nIGEgYm9vbCAobm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBpbiB0aGlzIHBv
cnQpLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CiAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUpOgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CgpXZWJL
aXQvaGFpa3U6CgoyMDA5LTA3LTMwICBHcmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FAYXBwbGUuY29t
PgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgTWFrZSBDaHJv
bWU6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSgpIGludG8gYSBzeW5jaHJv
bm91cyBjYWxsCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3ODUzCgogICAgICAgIENvbnZlcnQgdG8gcmV0dXJuaW5nIGEgYm9vbCAobm90IGN1cnJlbnRs
eSBpbXBsZW1lbnRlZCBpbiB0aGlzIHBvcnQpLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEhhaWt1LmNwcDoKICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6
OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CiAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgoKV2ViS2l0L21hYzoKCjIwMDktMDctMzAgIEdy
ZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBNYWtlIENocm9tZTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKCkgaW50byBhIHN5bmNocm9ub3VzIGNhbGwKICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc4NTMKCiAgICAgICAgVGhlIENocm9t
ZUNsaWVudCBub3cgY2FsbHMgYSBVSSBkZWxlZ2F0ZSB3aXRoIHRoZSBzaWduYXR1cmU6CiAgICAg
ICAgLXdlYlZpZXc6ZnJhbWU6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbjpzZWN1cml0eU9y
aWdpbjoKCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUpOgoKV2ViS2l0L3F0
OgoKMjAwOS0wNy0zMCAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KCiAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIE1ha2UgQ2hyb21lOjpyZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoKSBpbnRvIGEgc3luY2hyb25vdXMgY2Fs
bAogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg1MwoK
ICAgICAgICBDb252ZXJ0IHRvIHJldHVybmluZyBhIGJvb2wgKG5vdCBjdXJyZW50bHkgaW1wbGVt
ZW50ZWQgaW4gdGhpcyBwb3J0KS4KCiAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpyZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUpOgogICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuaDoKCldlYktpdC93aW46CgoyMDA5LTA3LTMwICBHcmVnIEJvbHNpbmdhICA8Ym9s
c2luZ2FAYXBwbGUuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgTWFrZSBDaHJvbWU6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSgp
IGludG8gYSBzeW5jaHJvbm91cyBjYWxsCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI3ODUzCgogICAgICAgIENvbnZlcnQgdG8gcmV0dXJuaW5nIGEgYm9v
bCAobm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBpbiB0aGlzIHBvcnQpLgoKICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CiAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKToKICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgoKV2ViS2l0L3d4OgoKMjAwOS0wNy0zMCAgR3Jl
ZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIE1ha2UgQ2hyb21lOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yRnJhbWUoKSBpbnRvIGEgc3luY2hyb25vdXMgY2FsbAogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg1MwoKICAgICAgICBDb252ZXJ0IHRv
IHJldHVybmluZyBhIGJvb2wgKG5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgaW4gdGhpcyBwb3J0
KS4KCiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZSk6CiAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6Ci0tLQogV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysr
KysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAg
ICAgICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcGFnZS9DaHJvbWUuaCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uLmNwcCAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysrKy0tLS0tCiBXZWJDb3JlL3Bh
Z2UvR2VvbG9jYXRpb24uaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAtCiBXZWJLaXQv
Z3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysr
KysrKysKIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCAgICAg
fCAgICAzICstCiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oICAg
ICAgIHwgICAgMiArLQogV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMTMgKysrKysrKysrKysrCiBXZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuY3BwIHwgICAgMyArLQogV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmggICB8ICAgIDQgKy0KIFdlYktpdC9tYWMvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrKysrKysrKysKIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgICAgfCAgICAyICstCiBX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSAgICAgIHwgICAgOCAr
KystLS0KIFdlYktpdC9xdC9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDEzICsrKysrKysrKysrKwogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcCAgICAgICB8ICAgIDMgKy0KIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oICAgICAgICAgfCAgICAyICstCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysrKysrKysKIFdlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgICAgfCAgICAzICstCiBXZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oICAgICAgIHwgICAgMiArLQogV2ViS2l0
L3d4L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysr
KysrKysrCiBXZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgICAgICAg
IHwgICAgMyArLQogV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCAgICAg
ICAgICB8ICAgIDIgKy0KIDI1IGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspLCAyOSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGUyZGNkYTMuLmNmNzkyODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMDctMzAg
IEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaHJvbWU6OnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZSgpIGludG8gYSBzeW5jaHJvbm91cyBjYWxsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg1MworCisgICAgICAg
IENocm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lIG5vdyBy
ZXR1cm5zIGEgYm9vbC4KKyAgICAgICAgVGhlIEdlb0xvY2F0aW9uICdJblByb2dyZXNzJyBzdGF0
ZSBpcyBubyBsb25nZXIgbmVjZXNzYXJ5LgorICAgICAgICAKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6cmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZSk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0No
cm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R2VvbG9jYXRpb246OnNldElzQWxsb3dlZCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRp
b24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjopOgorCiAyMDA5LTA3LTMwICBE
ZWFuIE1jTmFtZWUgIDxkZWFubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MzIxOGM2Li5iMzA0NGJi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTUwLDcgKzE1MCw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IFNj
cm9sbFZpZXcqKSBjb25zdCB7fQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikge30KKyAgICB2aXJ0dWFs
IGJvb2wgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9j
YXRpb24qKSB7IHJldHVybiBmYWxzZTsgfQogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdy
YXBoaWNzTGF5ZXIqKSB7fTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNWE1NjcwZS4uN2FmM2M1NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
QEAgLTM4MywxNCArMzgzLDE0IEBAIHZvaWQgQ2hyb21lOjpwcmludChGcmFtZSogZnJhbWUpCiAg
ICAgbV9jbGllbnQtPnByaW50KGZyYW1lKTsKIH0KIAotdm9pZCBDaHJvbWU6OnJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSogZnJhbWUsIEdlb2xvY2F0aW9uKiBnZW9s
b2NhdGlvbikKK2Jvb2wgQ2hyb21lOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWUoRnJhbWUqIGZyYW1lLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7CiAgICAgLy8gRGVm
ZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3Ag
dGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3
aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBh
Z2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCiAgICAgQVNTRVJU
KGZyYW1lKTsKLSAgICBtX2NsaWVudC0+cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKGZyYW1lLCBnZW9sb2NhdGlvbik7CisgICAgcmV0dXJuIG1fY2xpZW50LT5yZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoZnJhbWUsIGdlb2xvY2F0aW9uKTsKIH0KIAogdm9p
ZCBDaHJvbWU6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29z
ZXI+IGZpbGVDaG9vc2VyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IGMyNmU0NTAuLmFiZTgxZDQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTExOCw3
ICsxMTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdm9pZCBwcmludChGcmFt
ZSopOwogCi0gICAgICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1l
KEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKKyAgICAgICAgYm9vbCByZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogCiAgICAgICAgIHZvaWQg
cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggMmE5MDYxMS4uNjVlNjYzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTY2LDkg
KzE2Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsb2F0IHZhbHVlLCBmbG9hdCBwcm9wb3J0aW9uLCBTY3JvbGxiYXJD
b250cm9sUGFydE1hc2spOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21TY3JvbGxD
b3JuZXIoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0Jik7CiAKLSAgICAgICAgLy8g
VGhpcyBpcyBhbiBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxh
eSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KKyAgICAgICAgLy8gVGhpcyBpcyBh
IHN5bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkgYXNraW5n
IHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uCiAgICAgICAgIC8vIHRvIHVzZSBHZW9sb2NvY2F0aW9u
LiBUaGUgQ2hyb21lQ2xpZW50IG11c3QgY2FsbCBHZW9sb2NhdGlvbjo6c2V0U2hvdWxkQ2xlYXJD
YWNoZSgpIGFwcHJvcHJpYXRlbHkuCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopID0gMDsKKyAgICAg
ICAgdmlydHVhbCBib29sIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikgPSAwOwogICAgICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwIGIvV2ViQ29yZS9wYWdlL0dl
b2xvY2F0aW9uLmNwcAppbmRleCA4YWJlOGE2Li5hYjgzYWViIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvR2VvbG9jYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5jcHAK
QEAgLTEzMCwxMSArMTMwLDExIEBAIHZvaWQgR2VvbG9jYXRpb246OnJlc3VtZSgpCiAgICAgICAg
IG1fc2VydmljZS0+cmVzdW1lKCk7CiB9CiAKLXZvaWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dl
ZChib29sIGFsbG93ZWQpCit2b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCBpc0Fs
bG93ZWQpCiB7Ci0gICAgbV9hbGxvd0dlb2xvY2F0aW9uID0gYWxsb3dlZCA/IFllcyA6IE5vOwor
ICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IGlzQWxsb3dlZCA/IFllcyA6IE5vOwogICAgIAotICAg
IGlmIChpc0FsbG93ZWQoKSkgeworICAgIGlmIChtX2FsbG93R2VvbG9jYXRpb24gPT0gWWVzKSB7
CiAgICAgICAgIHN0YXJ0VGltZXJzKCk7CiAgICAgICAgIGdlb2xvY2F0aW9uU2VydmljZVBvc2l0
aW9uQ2hhbmdlZChtX3NlcnZpY2UuZ2V0KCkpOwogICAgIH0gZWxzZSB7CkBAIC0yNjUsOSArMjY1
LDggQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oKQogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgLy8gQXNrIHRoZSBjaHJvbWU6IGl0IG1haW50YWlucyB0aGUgZ2VvbG9j
YXRpb24gY2hhbGxlbmdlIHBvbGljeSBpdHNlbGYuCi0gICAgcGFnZS0+Y2hyb21lKCktPnJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShtX2ZyYW1lLCB0aGlzKTsKLSAgICAKLSAg
ICBtX2FsbG93R2VvbG9jYXRpb24gPSBJblByb2dyZXNzOworICAgIGJvb2wgcmVzdWx0ID0gcGFn
ZS0+Y2hyb21lKCktPnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShtX2ZyYW1l
LCB0aGlzKTsKKyAgICBzZXRJc0FsbG93ZWQocmVzdWx0KTsKIH0KIAogdm9pZCBHZW9sb2NhdGlv
bjo6Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSog
c2VydmljZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oIGIvV2ViQ29y
ZS9wYWdlL0dlb2xvY2F0aW9uLmgKaW5kZXggYWUyNGJkZC4uZGFjMzcwZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmgKKysrIGIvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9u
LmgKQEAgLTExNyw3ICsxMTcsNiBAQCBwcml2YXRlOgogCiAgICAgZW51bSB7CiAgICAgICAgIFVu
a25vd24sCi0gICAgICAgIEluUHJvZ3Jlc3MsCiAgICAgICAgIFllcywKICAgICAgICAgTm8KICAg
ICB9IG1fYWxsb3dHZW9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYzBmZmEzMi4uZmZjMGFlOCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAwOS0wNy0zMCAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IENocm9tZTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKCkgaW50byBhIHN5
bmNocm9ub3VzIGNhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI3ODUzCisKKyAgICAgICAgQ29udmVydCB0byByZXR1cm5pbmcgYSBib29sIChub3Qg
Y3VycmVudGx5IGltcGxlbWVudGVkIGluIHRoaXMgcG9ydCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGll
bnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMDktMDctMjkgIEtldmluIE1jQ3Vs
bG91Z2ggIDxrbWNjdWxsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKaW5kZXggMTI5MmU5OS4uNzQyNWRhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtNTE4LDEwICs1MTgsMTEgQEAgYm9vbCBDaHJvbWVD
bGllbnQ6OnNldEN1cnNvcihQbGF0Zm9ybUN1cnNvckhhbmRsZSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCitib29sIENocm9tZUNsaWVudDo6cmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogewogICAg
IC8vIFNlZSB0aGUgY29tbWVudCBpbiBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggMGYzNWU1Mi4uYjI2NWYxZCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAor
KysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC0xMTIs
NyArMTEyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRD
dXJzb3IoV2ViQ29yZTo6UGxhdGZvcm1DdXJzb3JIYW5kbGUpOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OlNjcm9sbFZpZXcqKSBjb25zdCB7fQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R2VvbG9jYXRpb24qKTsKKyAgICAgICAgdmlydHVhbCBib29sIHJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYg
LS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpp
bmRleCBmNzNhMzMyLi4xZDIwMzdmIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wNy0z
MCAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENocm9tZTo6cmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKCkgaW50byBhIHN5bmNocm9ub3VzIGNhbGwKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODUzCisKKyAgICAg
ICAgQ29udmVydCB0byByZXR1cm5pbmcgYSBib29sIChub3QgY3VycmVudGx5IGltcGxlbWVudGVk
IGluIHRoaXMgcG9ydCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRI
YWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6cmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDA5LTA3LTI5ICBLZXZpbiBNY0N1bGxvdWdoICA8a21j
Y3VsbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmNwcCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAK
aW5kZXggODkzMmRhMS4uMTM2MGE0MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCkBAIC0zMzIsOSArMzMyLDEwIEBAIHZvaWQgQ2hy
b21lQ2xpZW50V3g6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkK
IH0KICNlbmRpZgogCi12b2lkIENocm9tZUNsaWVudEhhaWt1OjpyZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCitib29sIENocm9tZUNsaWVu
dEhhaWt1OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9s
b2NhdGlvbiopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIHZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OnJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQ
dHI8RmlsZUNob29zZXI+KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEhhaWt1LmggYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50SGFpa3UuaAppbmRleCAzODZjMzgwLi4xYWJjM2Q2IDEwMDY0NAotLS0gYS9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaApAQCAtMTI2LDkgKzEyNiw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBD
YWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAjZW5kaWYKIAotICAgICAgICAvLyBUaGlz
IGlzIGFuIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJ
IGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgorICAgICAgICAvLyBUaGlzIGlzIGFuIHN5
bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkgYXNraW5nIHRo
ZSB1c2VyIGZvciBwZXJtaXNzaW9uCiAgICAgICAgIC8vIHRvIHVzZSBHZW9sb2NvY2F0aW9uLiBU
aGUgQ2hyb21lQ2xpZW50IG11c3QgY2FsbCBHZW9sb2NhdGlvbjo6c2V0U2hvdWxkQ2xlYXJDYWNo
ZSgpIGFwcHJvcHJpYXRlbHkuCi0gICAgICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKKyAgICAgICAgYm9vbCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogCiAg
ICAgICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4p
OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCmluZGV4IGMwZmU0MTguLmMwMjZlY2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDct
MzAgIEdyZWcgQm9sc2luZ2EgIDxib2xzaW5nYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBDaHJvbWU6OnJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSgpIGludG8gYSBzeW5jaHJvbm91cyBjYWxsCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzg1MworICAgICAg
ICAKKyAgICAgICAgVGhlIENocm9tZUNsaWVudCBub3cgY2FsbHMgYSBVSSBkZWxlZ2F0ZSB3aXRo
IHRoZSBzaWduYXR1cmU6CisgICAgICAgIC13ZWJWaWV3OmZyYW1lOnJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb246c2VjdXJpdHlPcmlnaW46CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZSk6CisKIDIwMDktMDctMjkgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFw
cGxlLmNvbT4KIAogICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8yNzc4OD4gRG9uJ3QgZXhw
b3J0IFdlYlBsdWdpbkNvbnRyb2xsZXIuaCBhcyBhIHByaXZhdGUgaGVhZGVyCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA4NTFkZWRmLi5mZjA4ODMw
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE0
OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVmlld1VwZGF0
ZSgpOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKIAogcHJpdmF0ZToKICAgICBXZWJW
aWV3ICptX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tCmluZGV4IGU2MmE5YzUuLjJlZTY5YmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC03MTUsMTcgKzcxNSwxNyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2NoZWR1bGVWaWV3VXBkYXRlKCkKIAogI2VuZGlmCiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqIGZy
YW1lLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCitib29sIFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKQogeworICAgIEJPT0wgcmVzdWx0ID0gTk87CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9
IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdp
bjpmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKV07Ci0gICAgV2ViR2VvbG9jYXRp
b24gKndlYkdlb2xvY2F0aW9uID0gW1tXZWJHZW9sb2NhdGlvbiBhbGxvY10gX2luaXRXaXRoV2Vi
Q29yZUdlb2xvY2F0aW9uOmdlb2xvY2F0aW9uXTsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZp
ZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1lOnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb246
c2VjdXJpdHlPcmlnaW46KSwga2l0KGZyYW1lKSwgd2ViR2VvbG9jYXRpb24sIHdlYk9yaWdpbik7
CisgICAgcmVzdWx0ID0gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKE5PLCBtX3dlYlZp
ZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1lOnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb246
c2VjdXJpdHlPcmlnaW46KSwga2l0KGZyYW1lKSwgd2ViT3JpZ2luKTsKICAgICBbd2ViT3JpZ2lu
IHJlbGVhc2VdOwotICAgIFt3ZWJHZW9sb2NhdGlvbiByZWxlYXNlXTsKIAogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogQGltcGxlbWVudGF0
aW9uIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA4ZGRhODAxLi43ODM3MGYyIDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAwOS0wNy0zMCAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
YWtlIENocm9tZTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKCkgaW50byBh
IHN5bmNocm9ub3VzIGNhbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI3ODUzCisKKyAgICAgICAgQ29udmVydCB0byByZXR1cm5pbmcgYSBib29sIChu
b3QgY3VycmVudGx5IGltcGxlbWVudGVkIGluIHRoaXMgcG9ydCkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDA5LTA3LTMwICBLZW5uZXRo
IFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFRyZWF0LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHAKaW5kZXggZDY1OTgzMy4uOTQwYWJjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC00NDcsMTAgKzQ0NywxMSBAQCBib29sIENocm9t
ZUNsaWVudFF0OjpzZXRDdXJzb3IoUGxhdGZvcm1DdXJzb3JIYW5kbGUpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIENocm9tZUNsaWVudFF0OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCitib29sIENocm9tZUNsaWVudFF0Ojpy
ZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiop
CiB7CiAgICAgLy8gU2VlIHRoZSBjb21tZW50IGluIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAogICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9CmRpZmYg
LS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IDk2YzdmYWIuLmJhMGE1
MWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5o
CisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xMjks
NyArMTI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IFNjcm9sbFZpZXcqKSBjb25z
dCB7fQogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOworICAgICAgICB2aXJ0dWFsIGJvb2wgcmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsK
IAogICAgICAgICBRV2ViUGFnZSogbV93ZWJQYWdlOwogICAgICAgICBXZWJDb3JlOjpLVVJMIGxh
c3RIb3ZlclVSTDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggOGE2NGMyYS4uMWU5NzQxYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAwOS0wNy0zMCAgR3JlZyBCb2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENocm9tZTo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKCkgaW50byBhIHN5bmNocm9ub3VzIGNh
bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODUz
CisKKyAgICAgICAgQ29udmVydCB0byByZXR1cm5pbmcgYSBib29sIChub3QgY3VycmVudGx5IGlt
cGxlbWVudGVkIGluIHRoaXMgcG9ydCkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorCiAyMDA5LTA3LTI5ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBXYXMgZG9pbmcgdGhlIGJ1aWxkIGZpeCB3cm9uZywgTm90
SW1wbGVtZW50ZWQuaCBpcyBpbiBXZWJDb3JlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDFjMDQwMWYuLjMzNDExZDcgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTcyMCwxMCArNzIw
LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3IoUGxhdGZvcm1DdXJzb3JIYW5k
bGUgY3Vyc29yKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24q
KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKIHsKICAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4g
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gV2ViQ2hyb21lQ2xpZW50
Ojp1aURlbGVnYXRlKCkKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IGM2MDFjOGUuLjdlNWQ4YmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTI5LDcgKzEyOSw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNv
bnN0IFdlYkNvcmU6OlNjcm9sbFZpZXcqKSBjb25zdCB7fQogCi0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNv
cmU6Okdlb2xvY2F0aW9uKik7CisgICAgdmlydHVhbCBib29sIHJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7
CiAKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlKCk7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRl
eCA0NTUwNTc4Li5iNmMxMWU0IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wNy0zMCAgR3JlZyBC
b2xzaW5nYSAgPGJvbHNpbmdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIENocm9tZTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKCkgaW50byBhIHN5bmNocm9ub3VzIGNhbGwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3ODUzCisKKyAgICAgICAgQ29udmVy
dCB0byByZXR1cm5pbmcgYSBib29sIChub3QgY3VycmVudGx5IGltcGxlbWVudGVkIGluIHRoaXMg
cG9ydCkuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoK
KwogMjAwOS0wNy0yNCAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwCmluZGV4IGIyNWZjZTkuLjVjMWUxMzEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAorKysgYi9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTQwNywxMCArNDA3LDExIEBA
IGJvb2wgQ2hyb21lQ2xpZW50V3g6OnNldEN1cnNvcihQbGF0Zm9ybUN1cnNvckhhbmRsZSkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKK2Jvb2wgQ2hyb21l
Q2xpZW50V3g6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdl
b2xvY2F0aW9uKikKIHsKICAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmggYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDg1MzM1
YzguLjVkMDhkOGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApA
QCAtMTMxLDcgKzEzMSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0
SW50b1ZpZXcoY29uc3QgSW50UmVjdCYsIGNvbnN0IFNjcm9sbFZpZXcqKSBjb25zdCB7fQogCi0g
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKik7CisgICAgdmlydHVhbCBib29sIHJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKIHByaXZhdGU6CiAgICAg
d3hXZWJWaWV3KiBtX3dlYlZpZXc7Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>