<?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>58239</bug_id>
          
          <creation_ts>2011-04-11 09:04:10 -0700</creation_ts>
          <short_desc>REGRESSION (WebKit2): Deadlock clicking Flash plugin</short_desc>
          <delta_ts>2011-04-11 14:27:57 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://frostyschristmastreefarm.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>53211</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>jhoneycutt</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>383195</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:04:10 -0700</bug_when>
    <thetext>To reproduce:

1. Go to http://frostyschristmastreefarm.com/
2. Click on the &quot;PB&quot; icon in the Flash audio player near the top of the page

The UI process and web process deadlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383196</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:04:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/8769302&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383197</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:05:03 -0700</bug_when>
    <thetext>See bug 51351 comment 0 for a description of how the deadlock occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383199</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:08:27 -0700</bug_when>
    <thetext>As described in bug 51351 comment 4, we&apos;re planning to fix this by making the web process spin a run loop when waiting for a reply to any synchronous message. Bug 51351 and bug 51352 represent future improvements which would allow us to only spin a run loop in certain situations (and thus hopefully reduce chances of bugs due to reentrancy issues).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383223</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:45:23 -0700</bug_when>
    <thetext>I&apos;m currently hoping that we can get away with only dispatching messages to web process windows that are descendants of UI process windows. And hopefully we can get away with only dispatching sent (as opposed to posted) messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383225</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:46:51 -0700</bug_when>
    <thetext>It looks like that is too restrictive. It causes deadlocks when going to cuteoverload.com and clicking on the &quot;YouTube&quot; button in a video. It looks like Flash creates some top-level windows, even for windowless plugins. Maybe we need to process messages for them, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383231</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 09:56:18 -0700</bug_when>
    <thetext>Delivering sent messages to top-level windows in the web process seems to fix the cuteoverload.com deadlock. (We are not delivering messages to the RunLoop window, which is good.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383471</commentid>
    <comment_count>7</comment_count>
      <attachid>89076</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 13:52:42 -0700</bug_when>
    <thetext>Created attachment 89076
Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383479</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-11 13:54:43 -0700</bug_when>
    <thetext>Attachment 89076 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/page/PageGroup.cpp&apos;, u&apos;Sour...&quot; exit_code: 1

Source/WebKit2/Platform/RunLoop.h:47:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383480</commentid>
    <comment_count>9</comment_count>
      <attachid>89076</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 13:55:14 -0700</bug_when>
    <thetext>Comment on attachment 89076
Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply

Whoa, the WebCore parts of this patch should not be there!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383481</commentid>
    <comment_count>10</comment_count>
      <attachid>89079</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 13:55:51 -0700</bug_when>
    <thetext>Created attachment 89079
Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383490</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-11 13:58:57 -0700</bug_when>
    <thetext>Attachment 89079 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/Platform/RunLoop.h:47:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383496</commentid>
    <comment_count>12</comment_count>
      <attachid>89079</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-04-11 14:03:51 -0700</bug_when>
    <thetext>Comment on attachment 89079
Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply

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

&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:56
&gt; +    bool waitWhileDispatchingSentMessages(double absoluteTime, const Vector&lt;HWND&gt;&amp; windowsToReceiveMessages)

This should be made more clear that it&apos;s window messages that are being dispatched.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383512</commentid>
    <comment_count>13</comment_count>
      <attachid>89079</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 14:16:21 -0700</bug_when>
    <thetext>Comment on attachment 89079
Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply

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

&gt;&gt; Source/WebKit2/Platform/CoreIPC/Connection.cpp:56
&gt;&gt; +    bool waitWhileDispatchingSentMessages(double absoluteTime, const Vector&lt;HWND&gt;&amp; windowsToReceiveMessages)
&gt; 
&gt; This should be made more clear that it&apos;s window messages that are being dispatched.

Renamed to waitWhileDispatchingSentWin32Messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383519</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 14:26:49 -0700</bug_when>
    <thetext>Committed r83498: &lt;http://trac.webkit.org/changeset/83498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383523</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 14:27:25 -0700</bug_when>
    <thetext>*** Bug 53211 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383525</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-04-11 14:27:57 -0700</bug_when>
    <thetext>*** Bug 53209 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89076</attachid>
            <date>2011-04-11 13:52:42 -0700</date>
            <delta_ts>2011-04-11 13:55:47 -0700</delta_ts>
            <desc>Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply</desc>
            <filename>bug-58239-20110411165240.patch</filename>
            <type>text/plain</type>
            <size>18209</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0MzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAppbmRl
eCAzMjY4MWY4N2VlMjgyNTc2NDAzZjRlYzg4NjRkNzNlY2Y3OGIxMzhlLi5jNTNmNzcxMmU1MzQy
MjE1ZDgwNmYzYTQwNGIzMDZlMGMyNjQ0YTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3Bw
CkBAIC03OCw2ICs3OCwxNCBAQCBQYWdlR3JvdXA6On5QYWdlR3JvdXAoKQogdHlwZWRlZiBIYXNo
TWFwPFN0cmluZywgUGFnZUdyb3VwKj4gUGFnZUdyb3VwTWFwOwogc3RhdGljIFBhZ2VHcm91cE1h
cCogcGFnZUdyb3VwcyA9IDA7CiAKK2NvbnN0IFBhZ2VHcm91cE1hcCYgUGFnZUdyb3VwOjphbGxH
cm91cHMoKQoreworICAgIGlmICghcGFnZUdyb3VwcykKKyAgICAgICAgcGFnZUdyb3VwcyA9IG5l
dyBQYWdlR3JvdXBNYXA7CisKKyAgICByZXR1cm4gKnBhZ2VHcm91cHM7Cit9CisKIFBhZ2VHcm91
cCogUGFnZUdyb3VwOjpwYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBncm91cE5hbWUpCiB7CiAgICAg
QVNTRVJUKCFncm91cE5hbWUuaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCmluZGV4
IDBmOGUzNzA0MDhkN2ZjOGQ1OWU0MTFhNmExNTU3ZjNkMDM2ZGE5ZmMuLjM5NTFhZDE3ZTY0NzFm
MTA2ZTY0NTU0ZmNlMTc4NTUzODNhYzBkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaApAQCAt
NDksNiArNDksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBhZ2VHcm91cChQYWdl
Kik7CiAgICAgICAgIH5QYWdlR3JvdXAoKTsKIAorICAgICAgICBzdGF0aWMgY29uc3QgSGFzaE1h
cDxTdHJpbmcsIFBhZ2VHcm91cCo+JiBhbGxHcm91cHMoKTsKKwogICAgICAgICBzdGF0aWMgUGFn
ZUdyb3VwKiBwYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBncm91cE5hbWUpOwogCiAgICAgICAgIHN0
YXRpYyB2b2lkIGNsb3NlTG9jYWxTdG9yYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjFiMjlmZmM1Y2Ri
NzhiNjdlM2UwMWYyNTFjNjU1ZDZjODM5MWNkMC4uNDlkM2Y3NjMwNDQ4ZDIwODNiYzdmNWE3Y2Nj
NGM3OTY1ZjIyMDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDExLTA0LTExICBB
ZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKworICAgICAgICBEaXNwYXRjaCBzZW50IG1l
c3NhZ2VzIHRvIHdpbmRvd3Mgb3duZWQgYnkgdGhlIHdlYiBwcm9jZXNzIHdoZW4gd2FpdGluZyBh
IHN5bmMgQ29yZUlQQyByZXBseQorCisgICAgICAgIE9uIFdpbmRvd3MsIHdpbmRvd2VkIHBsdWdp
bnMnIEhXTkRzIGFyZSBjcmVhdGVkIGFzIGNoaWxkcmVuIG9mIHRoZSBXS1ZpZXcncyB3aW5kb3cu
IFRoaXMKKyAgICAgICAgY3JlYXRlcyBhIGNyb3NzLXByb2Nlc3Mgd2luZG93IGhpZXJhcmNoeSwg
d2hpY2ggaW4gdHVybiBhdHRhY2hlcyB0aGUgaW5wdXQgc3RhdGVzIG9mIHRoZSBVSQorICAgICAg
ICBwcm9jZXNzJ3MgYW5kIHdlYiBwcm9jZXNzJ3MgbWFpbiB0aHJlYWRzIChhcyBpZiA6OkF0dGFj
aFRocmVhZElucHV0IGhhcyBiZWVuIGNhbGxlZCkuIEhhdmluZworICAgICAgICB0aGUgaW5wdXQg
c3RhdGVzIGF0dGFjaGVkIG1lYW5zIHRoYXQgY2hhbmdlcyB0byB0aGUgaW5wdXQgc3RhdGUgKGUu
Zy4sIGNoYW5naW5nIHRoZSBmb2N1cworICAgICAgICB3aW5kb3cpIGNhbiByZXN1bHQgaW4gc3lu
Y2hyb25vdXMgd2luZG93IG1lc3NhZ2VzIGJlaW5nIHNlbnQgYmV0d2VlbiB0aGUgcHJvY2Vzc2Vz
LiBUaGlzIGNhbgorICAgICAgICByZXN1bHQgaW4gZGVhZGxvY2tzIGlmIHRoZSBVSSBwcm9jZXNz
IGNoYW5nZXMgdGhlIGlucHV0IHN0YXRlIHdoaWxlIGhhbmRsaW5nIGEgc3luY2hyb25vdXMKKyAg
ICAgICAgQ29yZUlQQyBtZXNzYWdlIGZyb20gdGhlIHdlYiBwcm9jZXNzLiBTaW5jZSB0aGUgd2Vi
IHByb2Nlc3MgaXNuJ3QgcnVubmluZyBpdHMgbWVzc2FnZSBsb29wCisgICAgICAgIHdoaWxlIHdh
aXRpbmcgZm9yIHRoZSByZXBseSwgaXQgbmV2ZXIgcHJvY2Vzc2VzIHRoZSBtZXNzYWdlcyBXaW5k
b3dzIGlzIHNlbmRpbmcgaXQgZnJvbSB0aGUKKyAgICAgICAgVUkgcHJvY2Vzcy4KKworICAgICAg
ICBUaGUgc29sdXRpb24gdGFrZW4gaW4gdGhpcyBwYXRjaCBpcyB0byBjb250aW51ZSB0byBkaXNw
YXRjaCBzZW50IChub3QgcG9zdGVkKSBtZXNzYWdlcyB0bworICAgICAgICB3aW5kb3dzIGNyZWF0
ZWQgYnkgdGhlIHdlYiBwcm9jZXNzIHdoaWxlIHdhaXRpbmcgZm9yIGEgc3luYyBDb3JlSVBDIHJl
cGx5LiBTb21lZGF5IHdlIGNhbgorICAgICAgICBob3BlZnVsbHkgcmVkdWNlIHRoZSBudW1iZXIg
b2YgY2FzZXMgaW4gd2hpY2ggdGhlIFVJIHByb2Nlc3MgbW9kaWZpZXMgdGhlIHRocmVhZCdzIGlu
cHV0CisgICAgICAgIHN0YXRlIHdoaWxlIGhhbmRsaW5nIGEgc3luY2hyb25vdXMgbWVzc2FnZTsg
c2VlIHRoZSBidWcgZm9yIGRldGFpbHMuCisKKyAgICAgICAgRml4ZXMgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNTgyMzk+IDxyZGFyOi8vcHJvYmxlbS84NzY5MzAyPiBSRUdSRVNTSU9OIChXZWJLaXQy
KTogRGVhZGxvY2sKKyAgICAgICAgY2xpY2tpbmcgRmxhc2ggcGx1Z2luCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Jp
bmFyeVNlbWFwaG9yZS5oOgorICAgICAgICAoQ29yZUlQQzo6QmluYXJ5U2VtYXBob3JlOjpldmVu
dCk6IEFkZGVkLiBTaW1wbGUgZ2V0dGVyIHRvIGV4cG9zZSB0aGUgdW5kZXJseWluZyBldmVudAor
ICAgICAgICBIQU5ETEUuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0ZTo6d2Fp
dFdoaWxlRGlzcGF0Y2hpbmdTZW50TWVzc2FnZXMpOiBOZXcgV2luZG93cy1vbmx5CisgICAgICAg
IGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCBpbnN0ZWFkIG9mIHdhaXQoKSBzbyB0aGF0IHNlbnQgbWVz
c2FnZXMgd2lsbCBjb250aW51ZSB0byBiZQorICAgICAgICBkaXNwYXRjaGVkLgorICAgICAgICAo
Q29yZUlQQzo6Q29ubmVjdGlvbjo6d2FpdEZvclN5bmNSZXBseSk6IFVzZSB3YWl0V2hpbGVEaXNw
YXRjaGluZ1NlbnRNZXNzYWdlcyBpbnN0ZWFkIG9mCisgICAgICAgIHdhaXQgb24gV2luZG93cy4g
T3VyIENsaWVudCBnaXZlcyB1cyB0aGUgc2V0IG9mIHdpbmRvd3MgdGhhdCBuZWVkIHRvIGhhdmUg
d2luZG93cyBkZWxpdmVyZWQKKyAgICAgICAgdG8gdGhlbS4KKworICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5oOiBBZGRlZCBuZXcKKyAgICAgICAgd2luZG93c1RvUmVjZWl2
ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSBmdW5jdGlvbiB0byBDbGllbnQu
CisKKyAgICAgICAgKiBQbGF0Zm9ybS9SdW5Mb29wLmg6IEFkZGVkIG5ldyBkaXNwYXRjaFNlbnRN
ZXNzYWdlc1VudGlsIGZ1bmN0aW9uIHRvIGJlIHVzZWQgd2hpbGUgd2FpdGluZworICAgICAgICBm
b3IgYSBzeW5jIENvcmVJUEMgcmVwbHkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS93aW4vUnVuTG9v
cFdpbi5jcHA6CisgICAgICAgIChSdW5Mb29wOjpkaXNwYXRjaFNlbnRNZXNzYWdlc1VudGlsKTog
QWRkZWQuIElmIHdlIGhhdmUgbm8gd2luZG93cyB0byBkaXNwYXRjaCBtZXNzYWdlcyB0bywKKyAg
ICAgICAgdGhlbiBqdXN0IHdhaXQgb24gdGhlIHNlbWFwaG9yZS4gT3RoZXJ3aXNlIHNwaW4gYSA6
Ok1zZ1dhaXRGb3JNdWx0aXBsZU9iamVjdHNFeCBsb29wIHRvCisgICAgICAgIGRldGVjdCB3aGVu
IHRoZSBzZW1hcGhvcmUgaXMgc2lnbmFsZWQsIHRoZSB0aW1lb3V0IGVsYXBzZXMsIG9yIHNlbnQg
bWVzc2FnZXMgYXJlIGF2YWlsYWJsZSwKKyAgICAgICAgYW5kIGhhbmRsZSBlYWNoIGNhc2UgYXBw
cm9wcmlhdGVseS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDogQWRk
ZWQgbmV3IENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCBmdW5jdGlvbi4KKworICAgICAgICAq
IFVJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Byb3h5V2luLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxl
V2FpdGluZ0ZvclN5bmNSZXBseSk6IEp1c3QgcmV0dXJuCisgICAgICAgIGFuIGVtcHR5IFZlY3Rv
ci4gVGhlIHdlYiBwcm9jZXNzIG5ldmVyIG1vZGlmaWVzIHRoZSB0aHJlYWQncyBpbnB1dCBzdGF0
ZSB3aGlsZSByZXNwb25kaW5nIHRvCisgICAgICAgIGEgc3luY2hyb25vdXMgbWVzc2FnZSwgc28g
d2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byB3b3JyeSBhYm91dCBoZXJlLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6IEFkZGVkIG5ldyBDb3JlSVBDOjpDb25uZWN0aW9uOjpD
bGllbnQgZnVuY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6YWRkV2luZG93VG9WZWN0b3JJZk93bmVkQnlDdXJyZW50
VGhyZWFkKTogTmV3IGhlbHBlciBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYnkKKyAgICAgICAgOjpF
bnVtVGhyZWFkV2luZG93cy86OkVudW1DaGlsZFdpbmRvd3MuIERvZXMgd2hhdCBpdCBzYXlzLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3NhZ2Vz
V2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KTogQWRkZWQuIFJldHVybnMKKyAgICAgICAgYWxsIHRv
cC1sZXZlbCB3aW5kb3dzIGNyZWF0ZWQgYnkgdGhpcyB0aHJlYWQsIGRlc2NlbmRhbnRzIG9mIHRo
b3NlIHdpbmRvd3MgY3JlYXRlZCBieSB0aGlzCisgICAgICAgIHRocmVhZCwgYW5kIGRlc2NlbmRh
bnRzIG9mIFdLVmlld3MnIHdpbmRvd3MgY3JlYXRlZCBieSB0aGlzIHRocmVhZC4KKworICAgICAg
ICAqIHdpbi9XZWJLaXQyLnZjcHJvajogQWRkZWQgV2ViUHJvY2Vzc1Byb3h5V2luLmNwcC4KKwog
MjAxMS0wNC0xMCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAg
IE5vdCByZXZpZXdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQmluYXJ5U2VtYXBob3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Jp
bmFyeVNlbWFwaG9yZS5oCmluZGV4IDMyYjViMDJjNjcxNzFmNWM0YTNiMzBmZDIxM2ZmNGExNWQ3
ZWY4MmQuLmU3NWVkNzVhMmJhOTg2OTY5NjY0MWIyY2UyN2FhZjAyNjIxOTRmMjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQmluYXJ5U2VtYXBob3JlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9CaW5hcnlTZW1hcGhvcmUuaApAQCAt
NDEsNiArNDEsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2lnbmFsKCk7CiAgICAgYm9vbCB3YWl0
KGRvdWJsZSBhYnNvbHV0ZVRpbWUpOwogCisjaWYgUExBVEZPUk0oV0lOKQorICAgIEhBTkRMRSBl
dmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnQ7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKFdJTikKICAgICBIQU5ETEUgbV9ldmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IGE2NWYwNjVmOWNhNTFjOGM5ZWI1
MjUzZDkzOTFkZDc1YWYzNWViYzIuLmE2ODNjNWExZTk3ZWMwOWQ5MWI1Yjc3YTNhZDNlMDVhNWQ1
OWJlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJpbmFyeVNlbWFwaG9yZS5oIgogI2lu
Y2x1ZGUgIkNvcmVJUENNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldvcmtJdGVtLmgiCiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKQEAgLTUxLDYgKzUyLDEzIEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1fd2FpdEZvclN5bmNSZXBseVNlbWFwaG9yZS53YWl0KGFic29sdXRlVGltZSk7CiAgICAg
fQogCisjaWYgUExBVEZPUk0oV0lOKQorICAgIGJvb2wgd2FpdFdoaWxlRGlzcGF0Y2hpbmdTZW50
TWVzc2FnZXMoZG91YmxlIGFic29sdXRlVGltZSwgY29uc3QgVmVjdG9yPEhXTkQ+JiB3aW5kb3dz
VG9SZWNlaXZlTWVzc2FnZXMpCisgICAgeworICAgICAgICByZXR1cm4gUnVuTG9vcDo6ZGlzcGF0
Y2hTZW50TWVzc2FnZXNVbnRpbCh3aW5kb3dzVG9SZWNlaXZlTWVzc2FnZXMsIG1fd2FpdEZvclN5
bmNSZXBseVNlbWFwaG9yZSwgYWJzb2x1dGVUaW1lKTsKKyAgICB9CisjZW5kaWYKKwogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGlzIG1lc3NhZ2Ugd2lsbCBiZSBoYW5kbGVkIG9uIGEgY2xpZW50
IHRocmVhZCB0aGF0IGlzIGN1cnJlbnRseQogICAgIC8vIHdhaXRpbmcgZm9yIGEgcmVwbHkgdG8g
YSBzeW5jaHJvbm91cyBtZXNzYWdlLgogICAgIGJvb2wgcHJvY2Vzc0luY29taW5nTWVzc2FnZShD
b25uZWN0aW9uKiwgSW5jb21pbmdNZXNzYWdlJik7CkBAIC00MDEsNyArNDA5LDExIEBAIFBhc3NP
d25QdHI8QXJndW1lbnREZWNvZGVyPiBDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KHVpbnQ2
NF90IHN5bmNSZXF1ZXN0SUQsCiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSBkaWRuJ3QgZmlu
ZCBhIHN5bmMgcmVwbHkgeWV0LCBrZWVwIHdhaXRpbmcuCisjaWYgUExBVEZPUk0oV0lOKQorICAg
ICAgICB0aW1lZE91dCA9ICFtX3N5bmNNZXNzYWdlU3RhdGUtPndhaXRXaGlsZURpc3BhdGNoaW5n
U2VudE1lc3NhZ2VzKGFic29sdXRlVGltZSwgbV9jbGllbnQtPndpbmRvd3NUb1JlY2VpdmVTZW50
TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkoKSk7CisjZWxzZQogICAgICAgICB0aW1l
ZE91dCA9ICFtX3N5bmNNZXNzYWdlU3RhdGUtPndhaXQoYWJzb2x1dGVUaW1lKTsKKyNlbmRpZgog
ICAgIH0KIAogICAgIC8vIFdlIHRpbWVkIG91dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggZWRkYmEyY2UxNmE4NzBjNThmNWZjYTc1NThmZDJh
OWJhNWU4ZWZiYy4uN2ZhMTJhYTU3YmU2YzA5ZmM2ODUxZjk1NjZhNmVkZGJiYjVjMjJmMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTk0LDYg
Kzk0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENsb3NlKENvbm5lY3Rp
b24qKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
Q29ubmVjdGlvbiosIE1lc3NhZ2VJRCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFp
bFRvU2VuZFN5bmNNZXNzYWdlKENvbm5lY3Rpb24qKSB7IH0KKworI2lmIFBMQVRGT1JNKFdJTikK
KyAgICAgICAgdmlydHVhbCBWZWN0b3I8SFdORD4gd2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdl
c1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpID0gMDsKKyNlbmRpZgogICAgIH07CiAKICNpZiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29w
LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgKaW5kZXggN2U3OGVmY2YzZGFl
NDcwYzNhYzNiNDBkZWE2ODUzYjg2ZDkyNTc4MS4uZThhNjZjMDQ0ZGQ5MTI5MjRlYTVjNmFlNDNj
OTY0MjFkM2Q2MTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9v
cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaApAQCAtNDMsNiArNDMs
MTAgQEAgdHlwZWRlZiBpbnQgZ2Jvb2xlYW47CiAKIGNsYXNzIFdvcmtJdGVtOwogCituYW1lc3Bh
Y2UgQ29yZUlQQyB7CisgICAgY2xhc3MgQmluYXJ5U2VtYXBob3JlOworfQorCiBjbGFzcyBSdW5M
b29wIHsKIHB1YmxpYzoKICAgICAvLyBNdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVh
ZC4KQEAgLTUzLDYgKzU3LDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2NoZWR1bGVXb3JrKFBh
c3NPd25QdHI8V29ya0l0ZW0+KTsKIAorI2lmIFBMQVRGT1JNKFdJTikKKyAgICAvLyBUaGUgYWJz
b2x1dGVUaW1lIGlzIGluIHNlY29uZHMsIHN0YXJ0aW5nIG9uIEphbnVhcnkgMSwgMTk3MC4gVGhl
IHRpbWUgaXMgYXNzdW1lZCB0byB1c2UgdGhlCisgICAgLy8gc2FtZSB0aW1lIHpvbmUgYXMgV1RG
OjpjdXJyZW50VGltZSgpLiBEaXNwYXRjaGVzIHNlbnQgbWVzc2FnZXMgdG8gdGhlIHBhc3NlZC1p
biBzZXQgb2YgSFdORHMKKyAgICAvLyB1bnRpbCB0aGUgc2VtYXBob3JlIGlzIHNpZ25hbGVkIG9y
IGFic29sdXRlVGltZSBpcyByZWFjaGVkLiBSZXR1cm5zIHRydWUgaWYgdGhlIHNlbWFwaG9yZSBp
cworICAgIC8vIHNpZ25hbGVkLCBmYWxzZSBvdGhlcndpc2UuCisgICAgc3RhdGljIGJvb2wgZGlz
cGF0Y2hTZW50TWVzc2FnZXNVbnRpbChjb25zdCBWZWN0b3I8SFdORD4mIHdpbmRvd3MsIENvcmVJ
UEM6OkJpbmFyeVNlbWFwaG9yZSYsIGRvdWJsZSBhYnNvbHV0ZVRpbWUpOworI2VuZGlmCisKICAg
ICBzdGF0aWMgdm9pZCBydW4oKTsKICAgICB2b2lkIHN0b3AoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IDBjYTdkOWI3M2Q0YzFkN2U4ZjA1YWEx
ZGJiZGJiNzliNzE3ODExZjEuLjIxYmMyZTA5NjRjYjQ4NzMxMDRlY2ZlYWI0NTI3ZGNkN2IzNjE1
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTI2
LDcgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgog
CisjaW5jbHVkZSAiQmluYXJ5U2VtYXBob3JlLmgiCiAjaW5jbHVkZSAiV29ya0l0ZW0uaCIKKyNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7Cit1
c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBzdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29ya01lc3Nh
Z2UgPSBXTV9VU0VSICsgMTsKIHN0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNzYWdlV2lu
ZG93Q2xhc3NOYW1lID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7CkBAIC03NCw2ICs3OSw0NyBA
QCB2b2lkIFJ1bkxvb3A6OnJ1bigpCiAgICAgfQogfQogCitib29sIFJ1bkxvb3A6OmRpc3BhdGNo
U2VudE1lc3NhZ2VzVW50aWwoY29uc3QgVmVjdG9yPEhXTkQ+JiB3aW5kb3dzLCBDb3JlSVBDOjpC
aW5hcnlTZW1hcGhvcmUmIHNlbWFwaG9yZSwgZG91YmxlIGFic29sdXRlVGltZSkKK3sKKyAgICBp
ZiAod2luZG93cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBzZW1hcGhvcmUud2FpdChhYnNv
bHV0ZVRpbWUpOworCisgICAgSEFORExFIGhhbmRsZSA9IHNlbWFwaG9yZS5ldmVudCgpOworICAg
IERXT1JEIGhhbmRsZUNvdW50ID0gMTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIERX
T1JEIGludGVydmFsID0gYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dEludGVydmFsKGFic29sdXRl
VGltZSk7CisgICAgICAgIGlmICghaW50ZXJ2YWwpIHsKKyAgICAgICAgICAgIC8vIENvbnNpZGVy
IHRoZSB3YWl0IHRvIGhhdmUgdGltZWQgb3V0LCBldmVuIGlmIHRoZSBzZW1hcGhvcmUgaXMgY3Vy
cmVudGx5IHNpZ25hbGVkLgorICAgICAgICAgICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBXVEY6OlRo
cmVhZENvbmRpdGlvbiBpbXBsZW1lbnRhdGlvbiBvZiBCaW5hcnlTZW1hcGhvcmU6OndhaXQuCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBEV09SRCByZXN1
bHQgPSA6Ok1zZ1dhaXRGb3JNdWx0aXBsZU9iamVjdHNFeChoYW5kbGVDb3VudCwgJmhhbmRsZSwg
aW50ZXJ2YWwsIFFTX1NFTkRNRVNTQUdFLCAwKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBXQUlU
X09CSkVDVF8wKSB7CisgICAgICAgICAgICAvLyBUaGUgc2VtYXBob3JlIHdhcyBzaWduYWxlZC4K
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQg
PT0gV0FJVF9USU1FT1VUKSB7CisgICAgICAgICAgICAvLyBhYnNvbHV0ZVRpbWUgd2FzIHJlYWNo
ZWQuCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJl
c3VsdCA9PSBXQUlUX09CSkVDVF8wICsgaGFuZGxlQ291bnQpIHsKKyAgICAgICAgICAgIC8vIE9u
ZSBvciBtb3JlIHNlbnQgbWVzc2FnZXMgYXJlIGF2YWlsYWJsZS4gUHJvY2VzcyBzZW50IG1lc3Nh
Z2VzIGZvciBhbGwgdGhlIHdpbmRvd3MKKyAgICAgICAgICAgIC8vIHdlIHdlcmUgZ2l2ZW4sIHNp
bmNlIHdlIGRvbid0IGhhdmUgYSB3YXkgb2Yga25vd2luZyB3aGljaCB3aW5kb3cgaGFzIGF2YWls
YWJsZSBzZW50CisgICAgICAgICAgICAvLyBtZXNzYWdlcy4KKyAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgd2luZG93cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIE1T
RyBtZXNzYWdlOworICAgICAgICAgICAgICAgIDo6UGVla01lc3NhZ2VXKCZtZXNzYWdlLCB3aW5k
b3dzW2ldLCAwLCAwLCBQTV9OT1JFTU9WRSB8IFBNX1FTX1NFTkRNRVNTQUdFKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9X
SVRIX01FU1NBR0UocmVzdWx0ICE9IFdBSVRfRkFJTEVELCAiOjpNc2dXYWl0Rm9yTXVsdGlwbGVP
YmplY3RzRXggZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7CisgICAg
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6Ok1zZ1dhaXRGb3JNdWx0aXBsZU9iamVj
dHNFeCByZXR1cm5lZCB1bmV4cGVjdGVkIHJlc3VsdCAlbHUiLCByZXN1bHQpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiB2b2lkIFJ1bkxvb3A6OnN0b3AoKQogewogICAgIDo6
UG9zdFF1aXRNZXNzYWdlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCmluZGV4IDA0ZGJkOThjMTU4MzYwMTVhN2JlNjg1ODBjYjhkMDdjN2E1ZDIwYmQuLjk5
ODM1ZjMyOWQ2MGQwMjNhYjNlYmQ2NzhiZTUzY2U5OTk2OWUxNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTEzNCw2ICsxMzQsOSBAQCBwcml2YXRl
OgogICAgIENvcmVJUEM6OlN5bmNSZXBseU1vZGUgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopOwogICAgIHZvaWQgZGlkQ2xvc2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiopOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQpOworI2lmIFBMQVRGT1JNKFdJ
TikKKyAgICBWZWN0b3I8SFdORD4gd2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2Fp
dGluZ0ZvclN5bmNSZXBseSgpOworI2VuZGlmCiAKICAgICAvLyBSZXNwb25zaXZlbmVzc1RpbWVy
OjpDbGllbnQKICAgICB2b2lkIGRpZEJlY29tZVVucmVzcG9uc2l2ZShSZXNwb25zaXZlbmVzc1Rp
bWVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlByb2Nl
c3NQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlByb2Nlc3NQ
cm94eVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1NmIzYjAwN2E3ZTFjMjk2NzQwMjMxMmVlYWQxMzIy
Nzg5MjJhYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViUHJvY2Vzc1Byb3h5V2luLmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworVmVjdG9yPEhXTkQ+IFdlYlByb2Nlc3NQcm94eTo6d2luZG93c1RvUmVj
ZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpCit7CisgICAgcmV0dXJu
IFZlY3RvcjxIV05EPigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggYTQxYzQxZWVhNDkwOWRiZjRmYmEzNDAwZGRm
Yzc4ZWExYjIwZGQ5MS4uMTI0NmNlZjRkNDI0MjczNmViOTA1MzdlNTIyMGJhYWExNzc0NDQ3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE3Myw2ICsxNzMsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopOwogICAg
IHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQpOwogICAgIE5PX1JFVFVSTiB2b2lkIGRpZEZhaWxUb1NlbmRTeW5jTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIFZlY3Rv
cjxIV05EPiB3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1Jl
cGx5KCk7CisjZW5kaWYKIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJQcm9j
ZXNzTWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlByb2Nlc3NNZXNz
YWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93
aW4vV2ViUHJvY2Vzc1dpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQ
cm9jZXNzV2luLmNwcAppbmRleCBkNTZmZWY2YmY3NDg3MTA5YmU5OGFkODVmODBhZjU4Y2U2NWY3
ZmNiLi5kOWE0YWY1NDczNjNiY2ZiNzNjZjYzNWQxNjQzZjZmMmZkZmQwYzM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzV2luLmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKIAogI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KQEAgLTEzNyw0ICsxMzgsNDkgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpzZXRTaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzKGJvb2wgc2hvdWxkUGFpbnROYXRp
dmVDb250cm9scykKICNlbmRpZgogfQogCitzdHJ1Y3QgRW51bVdpbmRvd3NDb250ZXh0IHsKKyAg
ICBEV09SRCBjdXJyZW50VGhyZWFkSUQ7CisgICAgVmVjdG9yPEhXTkQ+KiB3aW5kb3dzOworfTsK
Kworc3RhdGljIEJPT0wgQ0FMTEJBQ0sgYWRkV2luZG93VG9WZWN0b3JJZk93bmVkQnlDdXJyZW50
VGhyZWFkKEhXTkQgd2luZG93LCBMUEFSQU0gbFBhcmFtKQoreworICAgIEVudW1XaW5kb3dzQ29u
dGV4dCogY29udGV4dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RW51bVdpbmRvd3NDb250ZXh0Kj4obFBh
cmFtKTsKKworICAgIGlmICg6OkdldFdpbmRvd1RocmVhZFByb2Nlc3NJZCh3aW5kb3csIDApICE9
IGNvbnRleHQtPmN1cnJlbnRUaHJlYWRJRCkKKyAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICBj
b250ZXh0LT53aW5kb3dzLT5hcHBlbmQod2luZG93KTsKKyAgICByZXR1cm4gVFJVRTsKK30KKwor
VmVjdG9yPEhXTkQ+IFdlYlByb2Nlc3M6OndpbmRvd3NUb1JlY2VpdmVTZW50TWVzc2FnZXNXaGls
ZVdhaXRpbmdGb3JTeW5jUmVwbHkoKQoreworICAgIFZlY3RvcjxIV05EPiB3aW5kb3dzOworCisg
ICAgLy8gQW55IG5vbi1tZXNzYWdlLW9ubHkgd2luZG93IGNyZWF0ZWQgYnkgdGhpcyB0aHJlYWQg
bmVlZHMgdG8gcmVjZWl2ZSBzZW50IG1lc3NhZ2VzIHdoaWxlIHdlCisgICAgLy8gd2FpdCBmb3Ig
YSBzeW5jIHJlcGx5LiBPdGhlcndpc2Ugd2UgY291bGQgZGVhZGxvY2sgd2l0aCB0aGUgVUkgcHJv
Y2VzcyBpZiwgZS5nLiwgdGhlIGZvY3VzCisgICAgLy8gd2luZG93IGNoYW5nZXMuIFNlZSA8aHR0
cDovL3dlYmtpdC5vcmcvYi81ODIzOT4uCisKKyAgICBFbnVtV2luZG93c0NvbnRleHQgY29udGV4
dDsKKyAgICBjb250ZXh0LmN1cnJlbnRUaHJlYWRJRCA9IDo6R2V0Q3VycmVudFRocmVhZElkKCk7
CisgICAgY29udGV4dC53aW5kb3dzID0gJndpbmRvd3M7CisKKyAgICAvLyBTdGFydCBvdXQgd2l0
aCB0b3AtbGV2ZWwgd2luZG93cyBjcmVhdGVkIGJ5IHRoaXMgdGhyZWFkIChsaWtlIEZsYXNoJ3Mg
aGlkZGVuCisgICAgLy8gU1dGbGFzaF9QbGFjZWhvbGRlclggdG9wLWxldmVsIHdpbmRvd3MpLgor
ICAgIDo6RW51bVRocmVhZFdpbmRvd3MoY29udGV4dC5jdXJyZW50VGhyZWFkSUQsIGFkZFdpbmRv
d1RvVmVjdG9ySWZPd25lZEJ5Q3VycmVudFRocmVhZCwgcmVpbnRlcnByZXRfY2FzdDxMUEFSQU0+
KCZjb250ZXh0KSk7CisKKyAgICAvLyBBbHNvIGluY2x1ZGUgYW55IGRlc2NlbmRhbnRzIG9mIHRo
b3NlIHRvcC1sZXZlbCB3aW5kb3dzLgorICAgIHNpemVfdCB0b3BMZXZlbFdpbmRvd0NvdW50ID0g
d2luZG93cy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0b3BMZXZlbFdpbmRv
d0NvdW50OyArK2kpCisgICAgICAgIDo6RW51bUNoaWxkV2luZG93cyh3aW5kb3dzW2ldLCBhZGRX
aW5kb3dUb1ZlY3RvcklmT3duZWRCeUN1cnJlbnRUaHJlYWQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBB
UkFNPigmY29udGV4dCkpOworCisgICAgLy8gQWxzbyBpbmNsdWRlIGFueSBkZXNjZW5kYW50cyBv
ZiB0aGUgV2ViUGFnZXMnIHdpbmRvd3Mgd2hpY2ggd2UndmUgY3JlYXRlZCAoZS5nLiwgZm9yIHdp
bmRvd2VkIHBsdWdpbnMpLgorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlPiA+
Ojpjb25zdF9pdGVyYXRvcjo6VmFsdWVzIGVuZCA9IG1fcGFnZU1hcC5lbmQoKTsKKyAgICBmb3Ig
KEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJQYWdlPiA+Ojpjb25zdF9pdGVyYXRvcjo6VmFs
dWVzIGl0ID0gbV9wYWdlTWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgOjpF
bnVtQ2hpbGRXaW5kb3dzKCgqaXQpLT5uYXRpdmVXaW5kb3coKSwgYWRkV2luZG93VG9WZWN0b3JJ
Zk93bmVkQnlDdXJyZW50VGhyZWFkLCByZWludGVycHJldF9jYXN0PExQQVJBTT4oJmNvbnRleHQp
KTsKKworICAgIHJldHVybiB3aW5kb3dzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCA5ODJhZDk3ZGY3MDg4OTQ1ZDIzYTljOTA5MTdm
NDg0YjU3ZjMxN2MxLi4wNGVlYWJmNmFiN2Q5M2ZkNmEwYWY0ZmNiYTI4ODQzZTc4MDg1MGE2IDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC0zNDQ2LDYgKzM0NDYsMTAgQEAKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1x3aW5cV2ViUHJvY2Vzc1Byb3h5V2luLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1x3aW5cV2ViVGV4dENoZWNrZXIu
Y3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89079</attachid>
            <date>2011-04-11 13:55:51 -0700</date>
            <delta_ts>2011-04-11 14:16:21 -0700</delta_ts>
            <desc>Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply</desc>
            <filename>bug-58239-20110411165550.patch</filename>
            <type>text/plain</type>
            <size>17065</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0MzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMWIyOWZmYzVjZGI3OGI2
N2UzZTAxZjI1MWM2NTVkNmM4MzkxY2QwLi40OWQzZjc2MzA0NDhkMjA4M2JjN2Y1YTdjY2M0Yzc5
NjVmMjIwOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTEtMDQtMTEgIEFkYW0g
Um9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIERpc3BhdGNoIHNlbnQgbWVzc2Fn
ZXMgdG8gd2luZG93cyBvd25lZCBieSB0aGUgd2ViIHByb2Nlc3Mgd2hlbiB3YWl0aW5nIGEgc3lu
YyBDb3JlSVBDIHJlcGx5CisKKyAgICAgICAgT24gV2luZG93cywgd2luZG93ZWQgcGx1Z2lucycg
SFdORHMgYXJlIGNyZWF0ZWQgYXMgY2hpbGRyZW4gb2YgdGhlIFdLVmlldydzIHdpbmRvdy4gVGhp
cworICAgICAgICBjcmVhdGVzIGEgY3Jvc3MtcHJvY2VzcyB3aW5kb3cgaGllcmFyY2h5LCB3aGlj
aCBpbiB0dXJuIGF0dGFjaGVzIHRoZSBpbnB1dCBzdGF0ZXMgb2YgdGhlIFVJCisgICAgICAgIHBy
b2Nlc3MncyBhbmQgd2ViIHByb2Nlc3MncyBtYWluIHRocmVhZHMgKGFzIGlmIDo6QXR0YWNoVGhy
ZWFkSW5wdXQgaGFzIGJlZW4gY2FsbGVkKS4gSGF2aW5nCisgICAgICAgIHRoZSBpbnB1dCBzdGF0
ZXMgYXR0YWNoZWQgbWVhbnMgdGhhdCBjaGFuZ2VzIHRvIHRoZSBpbnB1dCBzdGF0ZSAoZS5nLiwg
Y2hhbmdpbmcgdGhlIGZvY3VzCisgICAgICAgIHdpbmRvdykgY2FuIHJlc3VsdCBpbiBzeW5jaHJv
bm91cyB3aW5kb3cgbWVzc2FnZXMgYmVpbmcgc2VudCBiZXR3ZWVuIHRoZSBwcm9jZXNzZXMuIFRo
aXMgY2FuCisgICAgICAgIHJlc3VsdCBpbiBkZWFkbG9ja3MgaWYgdGhlIFVJIHByb2Nlc3MgY2hh
bmdlcyB0aGUgaW5wdXQgc3RhdGUgd2hpbGUgaGFuZGxpbmcgYSBzeW5jaHJvbm91cworICAgICAg
ICBDb3JlSVBDIG1lc3NhZ2UgZnJvbSB0aGUgd2ViIHByb2Nlc3MuIFNpbmNlIHRoZSB3ZWIgcHJv
Y2VzcyBpc24ndCBydW5uaW5nIGl0cyBtZXNzYWdlIGxvb3AKKyAgICAgICAgd2hpbGUgd2FpdGlu
ZyBmb3IgdGhlIHJlcGx5LCBpdCBuZXZlciBwcm9jZXNzZXMgdGhlIG1lc3NhZ2VzIFdpbmRvd3Mg
aXMgc2VuZGluZyBpdCBmcm9tIHRoZQorICAgICAgICBVSSBwcm9jZXNzLgorCisgICAgICAgIFRo
ZSBzb2x1dGlvbiB0YWtlbiBpbiB0aGlzIHBhdGNoIGlzIHRvIGNvbnRpbnVlIHRvIGRpc3BhdGNo
IHNlbnQgKG5vdCBwb3N0ZWQpIG1lc3NhZ2VzIHRvCisgICAgICAgIHdpbmRvd3MgY3JlYXRlZCBi
eSB0aGUgd2ViIHByb2Nlc3Mgd2hpbGUgd2FpdGluZyBmb3IgYSBzeW5jIENvcmVJUEMgcmVwbHku
IFNvbWVkYXkgd2UgY2FuCisgICAgICAgIGhvcGVmdWxseSByZWR1Y2UgdGhlIG51bWJlciBvZiBj
YXNlcyBpbiB3aGljaCB0aGUgVUkgcHJvY2VzcyBtb2RpZmllcyB0aGUgdGhyZWFkJ3MgaW5wdXQK
KyAgICAgICAgc3RhdGUgd2hpbGUgaGFuZGxpbmcgYSBzeW5jaHJvbm91cyBtZXNzYWdlOyBzZWUg
dGhlIGJ1ZyBmb3IgZGV0YWlscy4KKworICAgICAgICBGaXhlcyA8aHR0cDovL3dlYmtpdC5vcmcv
Yi81ODIzOT4gPHJkYXI6Ly9wcm9ibGVtLzg3NjkzMDI+IFJFR1JFU1NJT04gKFdlYktpdDIpOiBE
ZWFkbG9jaworICAgICAgICBjbGlja2luZyBGbGFzaCBwbHVnaW4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQmluYXJ5
U2VtYXBob3JlLmg6CisgICAgICAgIChDb3JlSVBDOjpCaW5hcnlTZW1hcGhvcmU6OmV2ZW50KTog
QWRkZWQuIFNpbXBsZSBnZXR0ZXIgdG8gZXhwb3NlIHRoZSB1bmRlcmx5aW5nIGV2ZW50CisgICAg
ICAgIEhBTkRMRS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChDb3JlSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjp3YWl0V2hp
bGVEaXNwYXRjaGluZ1NlbnRNZXNzYWdlcyk6IE5ldyBXaW5kb3dzLW9ubHkKKyAgICAgICAgZnVu
Y3Rpb24gdGhhdCBpcyB1c2VkIGluc3RlYWQgb2Ygd2FpdCgpIHNvIHRoYXQgc2VudCBtZXNzYWdl
cyB3aWxsIGNvbnRpbnVlIHRvIGJlCisgICAgICAgIGRpc3BhdGNoZWQuCisgICAgICAgIChDb3Jl
SVBDOjpDb25uZWN0aW9uOjp3YWl0Rm9yU3luY1JlcGx5KTogVXNlIHdhaXRXaGlsZURpc3BhdGNo
aW5nU2VudE1lc3NhZ2VzIGluc3RlYWQgb2YKKyAgICAgICAgd2FpdCBvbiBXaW5kb3dzLiBPdXIg
Q2xpZW50IGdpdmVzIHVzIHRoZSBzZXQgb2Ygd2luZG93cyB0aGF0IG5lZWQgdG8gaGF2ZSB3aW5k
b3dzIGRlbGl2ZXJlZAorICAgICAgICB0byB0aGVtLgorCisgICAgICAgICogUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmg6IEFkZGVkIG5ldworICAgICAgICB3aW5kb3dzVG9SZWNlaXZlU2Vu
dE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5IGZ1bmN0aW9uIHRvIENsaWVudC4KKwor
ICAgICAgICAqIFBsYXRmb3JtL1J1bkxvb3AuaDogQWRkZWQgbmV3IGRpc3BhdGNoU2VudE1lc3Nh
Z2VzVW50aWwgZnVuY3Rpb24gdG8gYmUgdXNlZCB3aGlsZSB3YWl0aW5nCisgICAgICAgIGZvciBh
IHN5bmMgQ29yZUlQQyByZXBseS4KKworICAgICAgICAqIFBsYXRmb3JtL3dpbi9SdW5Mb29wV2lu
LmNwcDoKKyAgICAgICAgKFJ1bkxvb3A6OmRpc3BhdGNoU2VudE1lc3NhZ2VzVW50aWwpOiBBZGRl
ZC4gSWYgd2UgaGF2ZSBubyB3aW5kb3dzIHRvIGRpc3BhdGNoIG1lc3NhZ2VzIHRvLAorICAgICAg
ICB0aGVuIGp1c3Qgd2FpdCBvbiB0aGUgc2VtYXBob3JlLiBPdGhlcndpc2Ugc3BpbiBhIDo6TXNn
V2FpdEZvck11bHRpcGxlT2JqZWN0c0V4IGxvb3AgdG8KKyAgICAgICAgZGV0ZWN0IHdoZW4gdGhl
IHNlbWFwaG9yZSBpcyBzaWduYWxlZCwgdGhlIHRpbWVvdXQgZWxhcHNlcywgb3Igc2VudCBtZXNz
YWdlcyBhcmUgYXZhaWxhYmxlLAorICAgICAgICBhbmQgaGFuZGxlIGVhY2ggY2FzZSBhcHByb3By
aWF0ZWx5LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOiBBZGRlZCBu
ZXcgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IGZ1bmN0aW9uLgorCisgICAgICAgICogVUlQ
cm9jZXNzL3dpbi9XZWJQcm9jZXNzUHJveHlXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5Ojp3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3NhZ2VzV2hpbGVXYWl0
aW5nRm9yU3luY1JlcGx5KTogSnVzdCByZXR1cm4KKyAgICAgICAgYW4gZW1wdHkgVmVjdG9yLiBU
aGUgd2ViIHByb2Nlc3MgbmV2ZXIgbW9kaWZpZXMgdGhlIHRocmVhZCdzIGlucHV0IHN0YXRlIHdo
aWxlIHJlc3BvbmRpbmcgdG8KKyAgICAgICAgYSBzeW5jaHJvbm91cyBtZXNzYWdlLCBzbyB3ZSBk
b24ndCBoYXZlIGFueXRoaW5nIHRvIHdvcnJ5IGFib3V0IGhlcmUuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDogQWRkZWQgbmV3IENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVu
dCBmdW5jdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3Bw
OgorICAgICAgICAoV2ViS2l0OjphZGRXaW5kb3dUb1ZlY3RvcklmT3duZWRCeUN1cnJlbnRUaHJl
YWQpOiBOZXcgaGVscGVyIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBieQorICAgICAgICA6OkVudW1U
aHJlYWRXaW5kb3dzLzo6RW51bUNoaWxkV2luZG93cy4gRG9lcyB3aGF0IGl0IHNheXMuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndpbmRvd3NUb1JlY2VpdmVTZW50TWVzc2FnZXNXaGls
ZVdhaXRpbmdGb3JTeW5jUmVwbHkpOiBBZGRlZC4gUmV0dXJucworICAgICAgICBhbGwgdG9wLWxl
dmVsIHdpbmRvd3MgY3JlYXRlZCBieSB0aGlzIHRocmVhZCwgZGVzY2VuZGFudHMgb2YgdGhvc2Ug
d2luZG93cyBjcmVhdGVkIGJ5IHRoaXMKKyAgICAgICAgdGhyZWFkLCBhbmQgZGVzY2VuZGFudHMg
b2YgV0tWaWV3cycgd2luZG93cyBjcmVhdGVkIGJ5IHRoaXMgdGhyZWFkLgorCisgICAgICAgICog
d2luL1dlYktpdDIudmNwcm9qOiBBZGRlZCBXZWJQcm9jZXNzUHJveHlXaW4uY3BwLgorCiAyMDEx
LTA0LTEwICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgTm90
IHJldmlld2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9C
aW5hcnlTZW1hcGhvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQmluYXJ5
U2VtYXBob3JlLmgKaW5kZXggMzJiNWIwMmM2NzE3MWY1YzRhM2IzMGZkMjEzZmY0YTE1ZDdlZjgy
ZC4uZTc1ZWQ3NWEyYmE5ODY5Njk2NjQxYjJjZTI3YWFmMDI2MjE5NGYyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9CaW5hcnlTZW1hcGhvcmUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0JpbmFyeVNlbWFwaG9yZS5oCkBAIC00MSw2
ICs0MSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaWduYWwoKTsKICAgICBib29sIHdhaXQoZG91
YmxlIGFic29sdXRlVGltZSk7CiAKKyNpZiBQTEFURk9STShXSU4pCisgICAgSEFORExFIGV2ZW50
KCkgY29uc3QgeyByZXR1cm4gbV9ldmVudDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgUExB
VEZPUk0oV0lOKQogICAgIEhBTkRMRSBtX2V2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggYTY1ZjA2NWY5Y2E1MWM4YzllYjUyNTNk
OTM5MWRkNzVhZjM1ZWJjMi4uYTY4M2M1YTFlOTdlYzA5ZDkxYjViNzdhM2FkM2UwNWE1ZDU5YmU3
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQmluYXJ5U2VtYXBob3JlLmgiCiAjaW5jbHVk
ZSAiQ29yZUlQQ01lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV29ya0l0ZW0uaCIKICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KIApAQCAtNTEsNiArNTIsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
bV93YWl0Rm9yU3luY1JlcGx5U2VtYXBob3JlLndhaXQoYWJzb2x1dGVUaW1lKTsKICAgICB9CiAK
KyNpZiBQTEFURk9STShXSU4pCisgICAgYm9vbCB3YWl0V2hpbGVEaXNwYXRjaGluZ1NlbnRNZXNz
YWdlcyhkb3VibGUgYWJzb2x1dGVUaW1lLCBjb25zdCBWZWN0b3I8SFdORD4mIHdpbmRvd3NUb1Jl
Y2VpdmVNZXNzYWdlcykKKyAgICB7CisgICAgICAgIHJldHVybiBSdW5Mb29wOjpkaXNwYXRjaFNl
bnRNZXNzYWdlc1VudGlsKHdpbmRvd3NUb1JlY2VpdmVNZXNzYWdlcywgbV93YWl0Rm9yU3luY1Jl
cGx5U2VtYXBob3JlLCBhYnNvbHV0ZVRpbWUpOworICAgIH0KKyNlbmRpZgorCiAgICAgLy8gUmV0
dXJucyB0cnVlIGlmIHRoaXMgbWVzc2FnZSB3aWxsIGJlIGhhbmRsZWQgb24gYSBjbGllbnQgdGhy
ZWFkIHRoYXQgaXMgY3VycmVudGx5CiAgICAgLy8gd2FpdGluZyBmb3IgYSByZXBseSB0byBhIHN5
bmNocm9ub3VzIG1lc3NhZ2UuCiAgICAgYm9vbCBwcm9jZXNzSW5jb21pbmdNZXNzYWdlKENvbm5l
Y3Rpb24qLCBJbmNvbWluZ01lc3NhZ2UmKTsKQEAgLTQwMSw3ICs0MDksMTEgQEAgUGFzc093blB0
cjxBcmd1bWVudERlY29kZXI+IENvbm5lY3Rpb246OndhaXRGb3JTeW5jUmVwbHkodWludDY0X3Qg
c3luY1JlcXVlc3RJRCwKICAgICAgICAgfQogCiAgICAgICAgIC8vIFdlIGRpZG4ndCBmaW5kIGEg
c3luYyByZXBseSB5ZXQsIGtlZXAgd2FpdGluZy4KKyNpZiBQTEFURk9STShXSU4pCisgICAgICAg
IHRpbWVkT3V0ID0gIW1fc3luY01lc3NhZ2VTdGF0ZS0+d2FpdFdoaWxlRGlzcGF0Y2hpbmdTZW50
TWVzc2FnZXMoYWJzb2x1dGVUaW1lLCBtX2NsaWVudC0+d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNz
YWdlc1doaWxlV2FpdGluZ0ZvclN5bmNSZXBseSgpKTsKKyNlbHNlCiAgICAgICAgIHRpbWVkT3V0
ID0gIW1fc3luY01lc3NhZ2VTdGF0ZS0+d2FpdChhYnNvbHV0ZVRpbWUpOworI2VuZGlmCiAgICAg
fQogCiAgICAgLy8gV2UgdGltZWQgb3V0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0Nvbm5lY3Rpb24uaAppbmRleCBlZGRiYTJjZTE2YTg3MGM1OGY1ZmNhNzU1OGZkMmE5YmE1
ZThlZmJjLi43ZmExMmFhNTdiZTZjMDlmYzY4NTFmOTU2NmE2ZWRkYmJiNWMyMmYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApAQCAtOTQsNiArOTQs
MTAgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbiop
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb25u
ZWN0aW9uKiwgTWVzc2FnZUlEKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsVG9T
ZW5kU3luY01lc3NhZ2UoQ29ubmVjdGlvbiopIHsgfQorCisjaWYgUExBVEZPUk0oV0lOKQorICAg
ICAgICB2aXJ0dWFsIFZlY3RvcjxIV05EPiB3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3NhZ2VzV2hp
bGVXYWl0aW5nRm9yU3luY1JlcGx5KCkgPSAwOworI2VuZGlmCiAgICAgfTsKIAogI2lmIFBMQVRG
T1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaAppbmRleCA3ZTc4ZWZjZjNkYWU0NzBj
M2FjM2I0MGRlYTY4NTNiODZkOTI1NzgxLi5lOGE2NmMwNDRkZDkxMjkyNGVhNWM2YWU0M2M5NjQy
MWQzZDYxNTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCkBAIC00Myw2ICs0MywxMCBA
QCB0eXBlZGVmIGludCBnYm9vbGVhbjsKIAogY2xhc3MgV29ya0l0ZW07CiAKK25hbWVzcGFjZSBD
b3JlSVBDIHsKKyAgICBjbGFzcyBCaW5hcnlTZW1hcGhvcmU7Cit9CisKIGNsYXNzIFJ1bkxvb3Ag
ewogcHVibGljOgogICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgpA
QCAtNTMsNiArNTcsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY2hlZHVsZVdvcmsoUGFzc093
blB0cjxXb3JrSXRlbT4pOwogCisjaWYgUExBVEZPUk0oV0lOKQorICAgIC8vIFRoZSBhYnNvbHV0
ZVRpbWUgaXMgaW4gc2Vjb25kcywgc3RhcnRpbmcgb24gSmFudWFyeSAxLCAxOTcwLiBUaGUgdGlt
ZSBpcyBhc3N1bWVkIHRvIHVzZSB0aGUKKyAgICAvLyBzYW1lIHRpbWUgem9uZSBhcyBXVEY6OmN1
cnJlbnRUaW1lKCkuIERpc3BhdGNoZXMgc2VudCBtZXNzYWdlcyB0byB0aGUgcGFzc2VkLWluIHNl
dCBvZiBIV05EcworICAgIC8vIHVudGlsIHRoZSBzZW1hcGhvcmUgaXMgc2lnbmFsZWQgb3IgYWJz
b2x1dGVUaW1lIGlzIHJlYWNoZWQuIFJldHVybnMgdHJ1ZSBpZiB0aGUgc2VtYXBob3JlIGlzCisg
ICAgLy8gc2lnbmFsZWQsIGZhbHNlIG90aGVyd2lzZS4KKyAgICBzdGF0aWMgYm9vbCBkaXNwYXRj
aFNlbnRNZXNzYWdlc1VudGlsKGNvbnN0IFZlY3RvcjxIV05EPiYgd2luZG93cywgQ29yZUlQQzo6
QmluYXJ5U2VtYXBob3JlJiwgZG91YmxlIGFic29sdXRlVGltZSk7CisjZW5kaWYKKwogICAgIHN0
YXRpYyB2b2lkIHJ1bigpOwogICAgIHZvaWQgc3RvcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKaW5kZXggMGNhN2Q5YjczZDRjMWQ3ZThmMDVhYTFkYmJk
YmI3OWI3MTc4MTFmMS4uMjFiYzJlMDk2NGNiNDg3MzEwNGVjZmVhYjQ1MjdkY2Q3YjM2MTVhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMjYsNyAr
MjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAKKyNp
bmNsdWRlICJCaW5hcnlTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJXb3JrSXRlbS5oIgorI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgQ29yZUlQQzsKK3VzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKIHN0YXRpYyBjb25zdCBVSU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9
IFdNX1VTRVIgKyAxOwogc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKQEAgLTc0LDYgKzc5LDQ3IEBAIHZv
aWQgUnVuTG9vcDo6cnVuKCkKICAgICB9CiB9CiAKK2Jvb2wgUnVuTG9vcDo6ZGlzcGF0Y2hTZW50
TWVzc2FnZXNVbnRpbChjb25zdCBWZWN0b3I8SFdORD4mIHdpbmRvd3MsIENvcmVJUEM6OkJpbmFy
eVNlbWFwaG9yZSYgc2VtYXBob3JlLCBkb3VibGUgYWJzb2x1dGVUaW1lKQoreworICAgIGlmICh3
aW5kb3dzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHNlbWFwaG9yZS53YWl0KGFic29sdXRl
VGltZSk7CisKKyAgICBIQU5ETEUgaGFuZGxlID0gc2VtYXBob3JlLmV2ZW50KCk7CisgICAgRFdP
UkQgaGFuZGxlQ291bnQgPSAxOworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgRFdPUkQg
aW50ZXJ2YWwgPSBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1lb3V0SW50ZXJ2YWwoYWJzb2x1dGVUaW1l
KTsKKyAgICAgICAgaWYgKCFpbnRlcnZhbCkgeworICAgICAgICAgICAgLy8gQ29uc2lkZXIgdGhl
IHdhaXQgdG8gaGF2ZSB0aW1lZCBvdXQsIGV2ZW4gaWYgdGhlIHNlbWFwaG9yZSBpcyBjdXJyZW50
bHkgc2lnbmFsZWQuCisgICAgICAgICAgICAvLyBUaGlzIG1hdGNoZXMgdGhlIFdURjo6VGhyZWFk
Q29uZGl0aW9uIGltcGxlbWVudGF0aW9uIG9mIEJpbmFyeVNlbWFwaG9yZTo6d2FpdC4KKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIERXT1JEIHJlc3VsdCA9
IDo6TXNnV2FpdEZvck11bHRpcGxlT2JqZWN0c0V4KGhhbmRsZUNvdW50LCAmaGFuZGxlLCBpbnRl
cnZhbCwgUVNfU0VORE1FU1NBR0UsIDApOworICAgICAgICBpZiAocmVzdWx0ID09IFdBSVRfT0JK
RUNUXzApIHsKKyAgICAgICAgICAgIC8vIFRoZSBzZW1hcGhvcmUgd2FzIHNpZ25hbGVkLgorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCA9PSBX
QUlUX1RJTUVPVVQpIHsKKyAgICAgICAgICAgIC8vIGFic29sdXRlVGltZSB3YXMgcmVhY2hlZC4K
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0
ID09IFdBSVRfT0JKRUNUXzAgKyBoYW5kbGVDb3VudCkgeworICAgICAgICAgICAgLy8gT25lIG9y
IG1vcmUgc2VudCBtZXNzYWdlcyBhcmUgYXZhaWxhYmxlLiBQcm9jZXNzIHNlbnQgbWVzc2FnZXMg
Zm9yIGFsbCB0aGUgd2luZG93cworICAgICAgICAgICAgLy8gd2Ugd2VyZSBnaXZlbiwgc2luY2Ug
d2UgZG9uJ3QgaGF2ZSBhIHdheSBvZiBrbm93aW5nIHdoaWNoIHdpbmRvdyBoYXMgYXZhaWxhYmxl
IHNlbnQKKyAgICAgICAgICAgIC8vIG1lc3NhZ2VzLgorICAgICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB3aW5kb3dzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgTVNHIG1l
c3NhZ2U7CisgICAgICAgICAgICAgICAgOjpQZWVrTWVzc2FnZVcoJm1lc3NhZ2UsIHdpbmRvd3Nb
aV0sIDAsIDAsIFBNX05PUkVNT1ZFIHwgUE1fUVNfU0VORE1FU1NBR0UpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShyZXN1bHQgIT0gV0FJVF9GQUlMRUQsICI6Ok1zZ1dhaXRGb3JNdWx0aXBsZU9iamVj
dHNFeCBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6OkdldExhc3RFcnJvcigpKTsKKyAgICAgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRShmYWxzZSwgIjo6TXNnV2FpdEZvck11bHRpcGxlT2JqZWN0c0V4
IHJldHVybmVkIHVuZXhwZWN0ZWQgcmVzdWx0ICVsdSIsIHJlc3VsdCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9Cit9CisKIHZvaWQgUnVuTG9vcDo6c3RvcCgpCiB7CiAgICAgOjpQb3N0
UXVpdE1lc3NhZ2UoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggMDRkYmQ5OGMxNTgzNjAxNWE3YmU2ODU4MGNiOGQwN2M3YTVkMjBiZC4uOTk4MzVm
MzI5ZDYwZDAyM2FiM2ViZDY3OGJlNTNjZTk5OTY5ZTE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTM0LDYgKzEzNCw5IEBAIHByaXZhdGU6CiAg
ICAgQ29yZUlQQzo6U3luY1JlcGx5TW9kZSBkaWRSZWNlaXZlU3luY01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKik7CiAgICAgdm9pZCBkaWRDbG9zZShDb3JlSVBD
OjpDb25uZWN0aW9uKik7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCk7CisjaWYgUExBVEZPUk0oV0lOKQor
ICAgIFZlY3RvcjxIV05EPiB3aW5kb3dzVG9SZWNlaXZlU2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5n
Rm9yU3luY1JlcGx5KCk7CisjZW5kaWYKIAogICAgIC8vIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNs
aWVudAogICAgIHZvaWQgZGlkQmVjb21lVW5yZXNwb25zaXZlKFJlc3BvbnNpdmVuZXNzVGltZXIq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1By
b3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc1Byb3h5
V2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xODU2YjNiMDA3YTdlMWMyOTY3NDAyMzEyZWVhZDEzMjI3ODky
MmFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQ
cm9jZXNzUHJveHlXaW4uY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitWZWN0b3I8SFdORD4gV2ViUHJvY2Vzc1Byb3h5Ojp3aW5kb3dzVG9SZWNlaXZl
U2VudE1lc3NhZ2VzV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5KCkKK3sKKyAgICByZXR1cm4gVmVj
dG9yPEhXTkQ+KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBhNDFjNDFlZWE0OTA5ZGJmNGZiYTM0MDBkZGZjNzhl
YTFiMjBkZDkxLi4xMjQ2Y2VmNGQ0MjQyNzM2ZWI5MDUzN2U1MjIwYmFhYTE3NzQ0NDdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTczLDYgKzE3Myw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRDbG9zZShDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6
Ok1lc3NhZ2VJRCk7CiAgICAgTk9fUkVUVVJOIHZvaWQgZGlkRmFpbFRvU2VuZFN5bmNNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qKTsKKyNpZiBQTEFURk9STShXSU4pCisgICAgVmVjdG9yPEhX
TkQ+IHdpbmRvd3NUb1JlY2VpdmVTZW50TWVzc2FnZXNXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHko
KTsKKyNlbmRpZgogCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlByb2Nlc3NN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViUHJvY2Vzc01lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9X
ZWJQcm9jZXNzV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nl
c3NXaW4uY3BwCmluZGV4IGQ1NmZlZjZiZjc0ODcxMDliZTk4YWQ4NWY4MGFmNThjZTY1ZjdmY2Iu
LmQ5YTRhZjU0NzM2M2JjZmI3M2NmNjM1ZDE2NDNmNmYyZmRmZDBjMzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NXaW4uY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
ci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgpAQCAtMTM3LDQgKzEzOCw0OSBAQCB2b2lkIFdlYlByb2Nl
c3M6OnNldFNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMoYm9vbCBzaG91bGRQYWludE5hdGl2ZUNv
bnRyb2xzKQogI2VuZGlmCiB9CiAKK3N0cnVjdCBFbnVtV2luZG93c0NvbnRleHQgeworICAgIERX
T1JEIGN1cnJlbnRUaHJlYWRJRDsKKyAgICBWZWN0b3I8SFdORD4qIHdpbmRvd3M7Cit9OworCitz
dGF0aWMgQk9PTCBDQUxMQkFDSyBhZGRXaW5kb3dUb1ZlY3RvcklmT3duZWRCeUN1cnJlbnRUaHJl
YWQoSFdORCB3aW5kb3csIExQQVJBTSBsUGFyYW0pCit7CisgICAgRW51bVdpbmRvd3NDb250ZXh0
KiBjb250ZXh0ID0gcmVpbnRlcnByZXRfY2FzdDxFbnVtV2luZG93c0NvbnRleHQqPihsUGFyYW0p
OworCisgICAgaWYgKDo6R2V0V2luZG93VGhyZWFkUHJvY2Vzc0lkKHdpbmRvdywgMCkgIT0gY29u
dGV4dC0+Y3VycmVudFRocmVhZElEKQorICAgICAgICByZXR1cm4gVFJVRTsKKworICAgIGNvbnRl
eHQtPndpbmRvd3MtPmFwcGVuZCh3aW5kb3cpOworICAgIHJldHVybiBUUlVFOworfQorCitWZWN0
b3I8SFdORD4gV2ViUHJvY2Vzczo6d2luZG93c1RvUmVjZWl2ZVNlbnRNZXNzYWdlc1doaWxlV2Fp
dGluZ0ZvclN5bmNSZXBseSgpCit7CisgICAgVmVjdG9yPEhXTkQ+IHdpbmRvd3M7CisKKyAgICAv
LyBBbnkgbm9uLW1lc3NhZ2Utb25seSB3aW5kb3cgY3JlYXRlZCBieSB0aGlzIHRocmVhZCBuZWVk
cyB0byByZWNlaXZlIHNlbnQgbWVzc2FnZXMgd2hpbGUgd2UKKyAgICAvLyB3YWl0IGZvciBhIHN5
bmMgcmVwbHkuIE90aGVyd2lzZSB3ZSBjb3VsZCBkZWFkbG9jayB3aXRoIHRoZSBVSSBwcm9jZXNz
IGlmLCBlLmcuLCB0aGUgZm9jdXMKKyAgICAvLyB3aW5kb3cgY2hhbmdlcy4gU2VlIDxodHRwOi8v
d2Via2l0Lm9yZy9iLzU4MjM5Pi4KKworICAgIEVudW1XaW5kb3dzQ29udGV4dCBjb250ZXh0Owor
ICAgIGNvbnRleHQuY3VycmVudFRocmVhZElEID0gOjpHZXRDdXJyZW50VGhyZWFkSWQoKTsKKyAg
ICBjb250ZXh0LndpbmRvd3MgPSAmd2luZG93czsKKworICAgIC8vIFN0YXJ0IG91dCB3aXRoIHRv
cC1sZXZlbCB3aW5kb3dzIGNyZWF0ZWQgYnkgdGhpcyB0aHJlYWQgKGxpa2UgRmxhc2gncyBoaWRk
ZW4KKyAgICAvLyBTV0ZsYXNoX1BsYWNlaG9sZGVyWCB0b3AtbGV2ZWwgd2luZG93cykuCisgICAg
OjpFbnVtVGhyZWFkV2luZG93cyhjb250ZXh0LmN1cnJlbnRUaHJlYWRJRCwgYWRkV2luZG93VG9W
ZWN0b3JJZk93bmVkQnlDdXJyZW50VGhyZWFkLCByZWludGVycHJldF9jYXN0PExQQVJBTT4oJmNv
bnRleHQpKTsKKworICAgIC8vIEFsc28gaW5jbHVkZSBhbnkgZGVzY2VuZGFudHMgb2YgdGhvc2Ug
dG9wLWxldmVsIHdpbmRvd3MuCisgICAgc2l6ZV90IHRvcExldmVsV2luZG93Q291bnQgPSB3aW5k
b3dzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRvcExldmVsV2luZG93Q291
bnQ7ICsraSkKKyAgICAgICAgOjpFbnVtQ2hpbGRXaW5kb3dzKHdpbmRvd3NbaV0sIGFkZFdpbmRv
d1RvVmVjdG9ySWZPd25lZEJ5Q3VycmVudFRocmVhZCwgcmVpbnRlcnByZXRfY2FzdDxMUEFSQU0+
KCZjb250ZXh0KSk7CisKKyAgICAvLyBBbHNvIGluY2x1ZGUgYW55IGRlc2NlbmRhbnRzIG9mIHRo
ZSBXZWJQYWdlcycgd2luZG93cyB3aGljaCB3ZSd2ZSBjcmVhdGVkIChlLmcuLCBmb3Igd2luZG93
ZWQgcGx1Z2lucykuCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2U+ID46OmNv
bnN0X2l0ZXJhdG9yOjpWYWx1ZXMgZW5kID0gbV9wYWdlTWFwLmVuZCgpOworICAgIGZvciAoSGFz
aE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlBhZ2U+ID46OmNvbnN0X2l0ZXJhdG9yOjpWYWx1ZXMg
aXQgPSBtX3BhZ2VNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICA6OkVudW1D
aGlsZFdpbmRvd3MoKCppdCktPm5hdGl2ZVdpbmRvdygpLCBhZGRXaW5kb3dUb1ZlY3RvcklmT3du
ZWRCeUN1cnJlbnRUaHJlYWQsIHJlaW50ZXJwcmV0X2Nhc3Q8TFBBUkFNPigmY29udGV4dCkpOwor
CisgICAgcmV0dXJuIHdpbmRvd3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCmluZGV4IDk4MmFkOTdkZjcwODg5NDVkMjNhOWM5MDkxN2Y0ODRi
NTdmMzE3YzEuLjA0ZWVhYmY2YWI3ZDkzZmQ2YTBhZjRmY2JhMjg4NDNlNzgwODUwYTYgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTM0NDYsNiArMzQ0NiwxMCBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXHdp
blxXZWJQcm9jZXNzUHJveHlXaW4uY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXHdpblxXZWJUZXh0Q2hlY2tlci5jcHAi
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>
<flag name="review"
          id="81710"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>