<?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>34214</bug_id>
          
          <creation_ts>2010-01-27 06:14:30 -0800</creation_ts>
          <short_desc>HostWindow repaint and friends need a refactor</short_desc>
          <delta_ts>2010-04-02 10:42:08 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Treat">manyoso</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hyatt</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>manyoso</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185066</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-01-27 06:14:30 -0800</bug_when>
    <thetext>Currently HostWindow sports a repaint method with four parameters, three of which are bools.  This could stand a good refactoring.  As discussed with Hyatt on IRC I will attempt to clean this up by separating this one method out into a few other methods to eliminate the bool parameters.  Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185095</commentid>
    <comment_count>1</comment_count>
      <attachid>47534</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-01-27 07:47:11 -0800</bug_when>
    <thetext>Created attachment 47534
Refactor of HostWindow repaint and friends

I&apos;ve tried to be very careful to not introduce behavior changes to any of the ports.  But please check my work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185103</commentid>
    <comment_count>2</comment_count>
      <attachid>47534</attachid>
    <who name="">mitz</who>
    <bug_when>2010-01-27 08:09:27 -0800</bug_when>
    <thetext>Comment on attachment 47534
Refactor of HostWindow repaint and friends

I suggest that you avoid using “blit” as the name of a method. A block transfers is a very well-defined low-level operation, and clearly the method you call blit() involves more than that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185107</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-01-27 08:23:49 -0800</bug_when>
    <thetext>Will review later today when I am at my computer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186563</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-02-01 13:55:31 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Will review later today when I am at my computer.

Any chance you can find some time to review this one?  Or suggest someone else who might be able to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186609</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 15:44:21 -0800</bug_when>
    <thetext>Looks like the patch does not apply (at least on the EWS bots).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187012</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-02-02 09:48:59 -0800</bug_when>
    <thetext>I&apos;ll work on getting one that will apply with latest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187050</commentid>
    <comment_count>7</comment_count>
      <attachid>47534</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-02-02 10:52:21 -0800</bug_when>
    <thetext>Comment on attachment 47534
Refactor of HostWindow repaint and friends

I don&apos;t like some of the names chosen here.  I don&apos;t think they&apos;re very clear.

There are basically eight combinations for the repaint method.

The operations that are interesting in repaint are:
(1) Adding a dirty region to the backing store (contentChanged = true).
(2) Adding a dirty region to your native window (repaintContentOnly = false)
(3) Painting immediately (immediate = true) (which either means updating the backing store synchronously or updating the native window synchronously)

Thus the following operations are possible (both synchronous and asynchronous):

(1) Add a dirty region to the backing store and invalidate it (contentChanged = true, repaintContentOnly = true)
(2) Invalidate a portion of the window (contentChanged = false, repaintContentOnly = false)
(3) Add a dirty region to the backing store and invalidate both the backing store and the window (contentChanged = true, repaintContentOnly = false)
(4) Do nothing (contentChanged = false, repaintContentOnly = true).  Nonsense option.

So now we&apos;re down to six options. I think the way to break this up is to separate repainting of contents from just invalidating the window.

Here are my suggestions:

virtual void invalidateContents(const IntRect&amp; updateRect, bool immediate = false);
    This method covers (1) above, both the synchronous and asynchronous case.

virtual void invalidateWindow(const IntRect&amp; updateRect, bool immediate = false);
    This method covers (2) above, both the synchronous and asynchronous case.

virtual void invalidateContentsAndWindow(const IntRect&amp; updateRect, bool immediate = false);
    This method covers (3) above, both the synchronous and asynchronous case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187116</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-02-02 13:28:24 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 47534 [details])
&gt; I don&apos;t like some of the names chosen here.  I don&apos;t think they&apos;re very clear.
&gt; 
&gt; There are basically eight combinations for the repaint method.
&gt; 
&gt; The operations that are interesting in repaint are:
&gt; (1) Adding a dirty region to the backing store (contentChanged = true).
&gt; (2) Adding a dirty region to your native window (repaintContentOnly = false)
&gt; (3) Painting immediately (immediate = true) (which either means updating the
&gt; backing store synchronously or updating the native window synchronously)
&gt; 
&gt; Thus the following operations are possible (both synchronous and asynchronous):
&gt; 
&gt; (1) Add a dirty region to the backing store and invalidate it (contentChanged =
&gt; true, repaintContentOnly = true)
&gt; (2) Invalidate a portion of the window (contentChanged = false,
&gt; repaintContentOnly = false)
&gt; (3) Add a dirty region to the backing store and invalidate both the backing
&gt; store and the window (contentChanged = true, repaintContentOnly = false)
&gt; (4) Do nothing (contentChanged = false, repaintContentOnly = true).  Nonsense
&gt; option.
&gt; 
&gt; So now we&apos;re down to six options. I think the way to break this up is to
&gt; separate repainting of contents from just invalidating the window.
&gt; 
&gt; Here are my suggestions:
&gt; 
&gt; virtual void invalidateContents(const IntRect&amp; updateRect, bool immediate =
&gt; false);
&gt;     This method covers (1) above, both the synchronous and asynchronous case.
&gt; 
&gt; virtual void invalidateWindow(const IntRect&amp; updateRect, bool immediate =
&gt; false);
&gt;     This method covers (2) above, both the synchronous and asynchronous case.
&gt; 
&gt; virtual void invalidateContentsAndWindow(const IntRect&amp; updateRect, bool
&gt; immediate = false);
&gt;     This method covers (3) above, both the synchronous and asynchronous case.

So these three methods + the two scrolling methods? hostWindow()-&gt;scroll and hostWindow-&gt;repaintForSlowScroll ?

I think it is important to keep the scrolling methods separate as this provides contextual information to the port about *why* the invalidation is taking place.  Different ports have very different painting models and I know that it is useful to have this contextual information in some cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195188</commentid>
    <comment_count>9</comment_count>
      <attachid>49835</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-03-02 13:16:49 -0800</bug_when>
    <thetext>Created attachment 49835
Second try adopting review comments

Once again, I&apos;ve tried to ensure no behavior changes.  However, this is a bit confusing so please pick over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195191</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 13:19:42 -0800</bug_when>
    <thetext>Attachment 49835 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/platform/ScrollView.cpp:935:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 1 in 29 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>195197</commentid>
    <comment_count>11</comment_count>
      <attachid>49837</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-03-02 13:26:53 -0800</bug_when>
    <thetext>Created attachment 49837
Third try fixing misc style and build fixes for haiku/chromium ports

Fixes a style problem that wasn&apos;t introduced by this patch, but whatever.  Also fixes compile failure on haiku and chromium ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195219</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 14:05:47 -0800</bug_when>
    <thetext>Attachment 49837 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/322041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195295</commentid>
    <comment_count>13</comment_count>
      <attachid>49862</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-03-02 16:09:39 -0800</bug_when>
    <thetext>Created attachment 49862
Fourth try fixing chromium build

Chromium has an extra FramelessScrollView class which needed to be fixed up.  Thanks trybot!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195326</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 17:15:07 -0800</bug_when>
    <thetext>Attachment 49862 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/322143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195376</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-02 21:30:48 -0800</bug_when>
    <thetext>Attachment 49862 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/323250</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195484</commentid>
    <comment_count>16</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-03-03 04:53:50 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Attachment 49862 [details] did not build on gtk:
&gt; Build output: http://webkit-commit-queue.appspot.com/results/323250

You are missing the WebCore:: namespace prefix in the header. The patch looks great other that, I was recently looking at this code and it makes it much easier to understand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195489</commentid>
    <comment_count>17</comment_count>
      <attachid>49862</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-03-03 05:14:24 -0800</bug_when>
    <thetext>Comment on attachment 49862
Fourth try fixing chromium build


&gt; +    virtual void invalidateContents(const IntRect&amp;, bool) { }
&gt; +    virtual void invalidateWindow(const IntRect&amp;, bool) { }
&gt; +    virtual void invalidateContentsAndWindow(const IntRect&amp;, bool) { }
&gt; +    virtual void invalidateContentsForSlowScroll(const IntRect&amp;, bool) {};

Looking at these methods, it almost seems like an idea to use a flag instead, like invalidate(Contents | Window, rect, false);

What is the reason for not doing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195513</commentid>
    <comment_count>18</comment_count>
      <attachid>49901</attachid>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-03-03 06:48:19 -0800</bug_when>
    <thetext>Created attachment 49901
Fifth effort fixing chromium again and gtk

Seems chromium has a few more classes that depend on scrollview/hostwindow.  And gtk needs WebCore:: prefix in the header.

Kenneth, I thought it was cleaner to have different methods than a flag and because hyatt suggested it.  Also, because I want a different method for the slow scroll case altogether to give ports contextual information about why that rect is being invalidated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197252</commentid>
    <comment_count>19</comment_count>
      <attachid>49901</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-03-08 11:21:18 -0800</bug_when>
    <thetext>Comment on attachment 49901
Fifth effort fixing chromium again and gtk

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197262</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Treat">manyoso</who>
    <bug_when>2010-03-08 11:44:10 -0800</bug_when>
    <thetext>Committed with r55675.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>207934</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-04-02 10:42:08 -0700</bug_when>
    <thetext>This caused bug 37027</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47534</attachid>
            <date>2010-01-27 07:47:11 -0800</date>
            <delta_ts>2010-03-02 13:16:49 -0800</delta_ts>
            <desc>Refactor of HostWindow repaint and friends</desc>
            <filename>34214.patch</filename>
            <type>text/plain</type>
            <size>34508</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWQxZDAyYS4uYmNlMTI3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMS0yNyAgQWRhbSBUcmVhdCAg
PGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yIHRoZSBIb3N0V2luZG93IG1ldGhvZHMgZm9yIHJlcGFpbnQsIHNj
cm9sbCwgaW52YWxpZGF0ZSBhbmQgYmxpdAorICAgICAgICBvZiBiYWNraW5nc3RvcmUgYW5kIHdp
bmRvdyBieSBlbGltaW5hdGluZyB0aGUgdGhyZWUgYm9vbHMgdGhhdCBjdXJyZW50bHkKKyAgICAg
ICAgZXhpc3QgYXMgcGFyYW1zIG9mIHRoZSByZXBhaW50IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgSSd2ZSBh
ZGRlZCBleHRyYSBtZXRob2RzIHRvIHByb3ZpZGUgdGhlIGhvc3RzIHdpdGggbW9yZSBzZW1hbnRp
YworICAgICAgICBpbmZvcm1hdGlvbiBvZiB3aGF0IGlzIGJlaW5nIHJlcXVlc3RlZCB0aHVzIGVs
aW1pbmF0aW5nIHRoZSBuZWVkIGZvcgorICAgICAgICB0aGVzZSBib29scy4KKworICAgICAgICBO
byB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBzaG91bGQgbm90IGludHJvZHVjZSBhbnkgYmVoYXZpb3Ig
Y2hhbmdlcyBpbiBhbnkKKyAgICAgICAgb2YgdGhlIHBvcnRzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnJlcGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnJlcGFpbnRGb3JTbG93U2Ny
b2xsKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpibGl0KToKKyAgICAg
ICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNocm9tZTo6cmVwYWludEZvclNsb3dTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lOjpibGl0KToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9z
dFdpbmRvdy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsVmlldzo6d2hlZWxFdmVudCk6CisKIDIwMTAtMDEtMjEgIEpvZSBNYXNvbiAgPGptYXNv
bkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaAppbmRleCA5NjUzOWVlLi41MTUwMjQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAt
MTE1LDEyICsxMTUsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVz
aXplclJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
YWRkVG9EaXJ0eVJlZ2lvbihjb25zdCBJbnRSZWN0JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNj
cm9sbEJhY2tpbmdTdG9yZShpbnQsIGludCwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCkgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCwgYm9vbCwgYm9vbCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoY29uc3QgSW50UmVjdCYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRS
ZWN0JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGJsaXQoKSB7IH0KKwogICAgIHZpcnR1YWwgSW50
UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IHsgcmV0dXJuIHA7
IH0KICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikg
Y29uc3QgeyByZXR1cm4gcjsgfQogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNTBkMjg5YS4u
NjZlYmU3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTY3LDkgKzY3LDE0IEBAIENocm9tZTo6fkNocm9tZSgpCiAg
ICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgpOwogfQogCi12b2lkIENocm9tZTo6cmVwYWlu
dChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGlt
bWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIENocm9tZTo6aW52YWxpZGF0
ZShjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewotICAgIG1fY2xpZW50LT5yZXBhaW50KHdp
bmRvd1JlY3QsIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIHJlcGFpbnRDb250ZW50T25seSk7
CisgICAgbV9jbGllbnQtPmludmFsaWRhdGUodXBkYXRlUmVjdCk7Cit9CisKK3ZvaWQgQ2hyb21l
OjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgc3luY2hyb25vdXMpCit7
CisgICAgbV9jbGllbnQtPnJlcGFpbnQodXBkYXRlUmVjdCwgc3luY2hyb25vdXMpOwogfQogCiB2
b2lkIENocm9tZTo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRS
ZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpAQCAtNzcsNiArODIs
MTYgQEAgdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29u
c3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb24KICAgICBtX2NsaWVudC0+c2Nyb2xsKHNjcm9s
bERlbHRhLCByZWN0VG9TY3JvbGwsIGNsaXBSZWN0KTsKIH0KIAordm9pZCBDaHJvbWU6OnJlcGFp
bnRGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCit7CisgICAgbV9jbGll
bnQtPnJlcGFpbnRGb3JTbG93U2Nyb2xsKHVwZGF0ZVJlY3QpOworfQorCit2b2lkIENocm9tZTo6
YmxpdCgpCit7CisgICAgbV9jbGllbnQtPmJsaXQoKTsKK30KKwogSW50UG9pbnQgQ2hyb21lOjpz
Y3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fY2xpZW50LT5zY3JlZW5Ub1dpbmRvdyhwb2ludCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmggYi9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggMWJmMWEwMS4uOWYwYmZm
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaApAQCAtNjAsOCArNjAsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBD
aHJvbWVDbGllbnQqIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICAgICAgLy8g
SG9zdFdpbmRvdyBtZXRob2RzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJ
bnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9v
bCByZXBhaW50Q29udGVudE9ubHkgPSBmYWxzZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9s
bCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOworCisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlKGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29u
c3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwYWludEZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgYmxpdCgpOwogICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2luZG93
KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dU
b1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1Q
YWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IDhjNWY4NjAuLjZiMTJjZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyOSw4ICsxMjksMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXpl
clJlY3QoKSBjb25zdCA9IDA7CiAKICAgICAgICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5k
b3cuCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNv
bnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50
T25seSA9IGZhbHNlKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50
UmVjdCYgY2xpcFJlY3QpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoY29u
c3QgSW50UmVjdCYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50
UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRT
aXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAgICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgYmxpdCgpID0gMDsKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3Jl
ZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBJ
bnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAgICAgICAg
IHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0g
MDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggZjA1ZDZkOC4uMWQ5ZGM2NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAg
LTI5Miw3ICsyOTIsNyBAQCB2b2lkIEZyYW1lVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CiAgICAgICAgIGlmIChob3N0V2lu
ZG93KCkpCi0gICAgICAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQocmVjdCwgdHJ1ZSk7Cisg
ICAgICAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQocmVjdCwgZmFsc2UgLypzeW5jaHJvbm91
cyovKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9Ib3N0V2luZG93LmggYi9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4
MGY2YmRjLi43MzhjMDkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaApAQCAtMzUsMTQgKzM1LDIwIEBA
IGNsYXNzIEhvc3RXaW5kb3cgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIHZp
cnR1YWwgfkhvc3RXaW5kb3coKSB7IH0KIAotICAgIC8vIFRoZSByZXBhaW50IG1ldGhvZCBhc2tz
IHRoZSBob3N0IHdpbmRvdyB0byByZXBhaW50IGEgcmVjdCBpbiB0aGUgd2luZG93J3MgY29vcmRp
bmF0ZSBzcGFjZS4gIFRoZQotICAgIC8vIGNvbnRlbnRDaGFuZ2VkIGJvb2xlYW4gaW5kaWNhdGVz
IHdoZXRoZXIgb3Igbm90IHRoZSBXZWIgcGFnZSBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKG9y
IGlmIGEgcmVwYWludAotICAgIC8vIG9mIHVuY2hhbmdlZCBjb250ZW50IGlzIGJlaW5nIHJlcXVl
c3RlZCkuCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29u
dGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRP
bmx5ID0gZmFsc2UpID0gMDsKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCB3aW5kb3cgaW52YWxp
ZGF0ZSB0aGUgd2luZG93LCBub3QgdGhlIGJhY2tpbmdzdG9yZQorICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpID0gMDsKKworICAgIC8vIFJlcXVl
c3RzIHRoZSBob3N0IHJlcGFpbnQgdGhlIGJhY2tpbmdzdG9yZSB3aXRoIHRoZSBwcm92aWRlZCB1
cGRhdGUgcmVjdC4gIElmIHN5bmNocm9ub3VzIGlzIHRydWUsIHRoZW4gcmVwYWludCBpbW1lZGlh
dGVseS4KKyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBib29sIHN5bmNocm9ub3VzKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBzY3Jv
bGwgYmFja2luZ3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8gc2Nyb2xsLCBh
bmQgY2xpcCByZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xp
cFJlY3QpID0gMDsKIAotICAgIC8vIFRoZSBwYWludCBtZXRob2QganVzdCBjYXVzZXMgYSBzeW5j
aHJvbm91cyB1cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBwZW4gZm9yIHBsYXRmb3JtcyB0aGF0
IG5lZWQgaXQgKFdpbmRvd3MpLgotICAgIHZvaWQgcGFpbnQoKSB7IHJlcGFpbnQoSW50UmVjdCgp
LCBmYWxzZSwgdHJ1ZSk7IH0KKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCByZXBhaW50IHRoZSBi
YWNraW5nc3RvcmUgd2l0aCB0aGUgcHJvdmlkZWQgdXBkYXRlIHJlY3QuICBUaGlzIGlzIHRoZSBz
bG93IHBhdGggZm9yIHNjcm9sbGluZy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZvclNsb3dT
Y3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgPSAwOworCisgICAgLy8gUmVxdWVzdHMg
dGhlIGhvc3QgY2F1c2UgYSBzeW5jaHJvbm91cyBibGl0IG9mIHRoZSBiYWNraW5nc3RvcmUgdG8g
dGhlIHdpbmRvdy4KKyAgICB2aXJ0dWFsIHZvaWQgYmxpdCgpID0gMDsKICAgICAKICAgICAvLyBN
ZXRob2RzIGZvciBkb2luZyBjb29yZGluYXRlIGNvbnZlcnNpb25zIHRvIGFuZCBmcm9tIHNjcmVl
biBjb29yZGluYXRlcy4KICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0
IEludFBvaW50JikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMTM3OTI1
Yi4uNzY0N2MzYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC01MDMsMzEgKzUwMywzMCBA
QCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhKQogICAgIHVwZGF0ZVJlY3QuaW50ZXJzZWN0KHNjcm9sbFZpZXdSZWN0KTsKIAogICAgIC8v
IEludmFsaWRhdGUgdGhlIHdpbmRvdyAobm90IHRoZSBiYWNraW5nIHN0b3JlKS4KLSAgICBob3N0
V2luZG93KCktPnJlcGFpbnQodXBkYXRlUmVjdCwgZmFsc2UpOworICAgIGhvc3RXaW5kb3coKS0+
aW52YWxpZGF0ZSh1cGRhdGVSZWN0KTsKIAogICAgIGlmIChtX2RyYXdQYW5TY3JvbGxJY29uKSB7
CiAgICAgICAgIGludCBwYW5JY29uRGlydHlTcXVhcmVTaXplTGVuZ3RoID0gMiAqIChwYW5JY29u
U2l6ZUxlbmd0aCArIG1heChhYnMoc2Nyb2xsRGVsdGEud2lkdGgoKSksIGFicyhzY3JvbGxEZWx0
YS5oZWlnaHQoKSkpKTsgLy8gV2Ugb25seSB3YW50IHRvIHJlcGFpbnQgd2hhdCdzIG5lY2Vzc2Fy
eQogICAgICAgICBJbnRQb2ludCBwYW5JY29uRGlydHlTcXVhcmVMb2NhdGlvbiA9IEludFBvaW50
KG1fcGFuU2Nyb2xsSWNvblBvaW50LngoKSAtIChwYW5JY29uRGlydHlTcXVhcmVTaXplTGVuZ3Ro
IC8gMiksIG1fcGFuU2Nyb2xsSWNvblBvaW50LnkoKSAtIChwYW5JY29uRGlydHlTcXVhcmVTaXpl
TGVuZ3RoIC8gMikpOwogICAgICAgICBJbnRSZWN0IHBhblNjcm9sbEljb25EaXJ0eVJlY3QgPSBJ
bnRSZWN0KHBhbkljb25EaXJ0eVNxdWFyZUxvY2F0aW9uICwgSW50U2l6ZShwYW5JY29uRGlydHlT
cXVhcmVTaXplTGVuZ3RoLCBwYW5JY29uRGlydHlTcXVhcmVTaXplTGVuZ3RoKSk7CiAgICAgICAg
IHBhblNjcm9sbEljb25EaXJ0eVJlY3QuaW50ZXJzZWN0KGNsaXBSZWN0KTsKLSAgICAgICAgaG9z
dFdpbmRvdygpLT5yZXBhaW50KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIHRydWUpOworICAgICAg
ICBob3N0V2luZG93KCktPnJlcGFpbnQocGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCwgZmFsc2UgLypz
eW5jaHJvbm91cyovKTsKICAgICB9CiAKICAgICBpZiAoY2FuQmxpdE9uU2Nyb2xsKCkgJiYgIXJv
b3RQcmV2ZW50c0JsaXR0aW5nKCkpIHsgLy8gVGhlIG1haW4gZnJhbWUgY2FuIGp1c3QgYmxpdCB0
aGUgV2ViVmlldyB3aW5kb3cKLSAgICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBibGl0IHN1
YmZyYW1lcyB3aXRob3V0IGJsaXR0aW5nIG92ZXJsYXBwaW5nIGNvbnRlbnQKKyAgICAgICAvLyBG
SVhNRTogRmluZCBhIHdheSB0byBzY3JvbGwgc3ViZnJhbWVzIHdpdGggdGhpcyBmYXN0ZXIgcGF0
aAogICAgICAgIGhvc3RXaW5kb3coKS0+c2Nyb2xsKC1zY3JvbGxEZWx0YSwgc2Nyb2xsVmlld1Jl
Y3QsIGNsaXBSZWN0KTsKICAgICB9IGVsc2UgeyAKICAgICAgICAvLyBXZSBuZWVkIHRvIGdvIGFo
ZWFkIGFuZCByZXBhaW50IHRoZSBlbnRpcmUgYmFja2luZyBzdG9yZS4gIERvIGl0IG5vdyBiZWZv
cmUgbW92aW5nIHRoZQogICAgICAgIC8vIHdpbmRvd2VkIHBsdWdpbnMuCi0gICAgICAgaG9zdFdp
bmRvdygpLT5yZXBhaW50KHVwZGF0ZVJlY3QsIHRydWUsIGZhbHNlLCB0cnVlKTsgLy8gSW52YWxp
ZGF0ZSB0aGUgYmFja2luZyBzdG9yZSBhbmQgcmVwYWludCBpdCBzeW5jaHJvbm91c2x5CisgICAg
ICAgaG9zdFdpbmRvdygpLT5yZXBhaW50Rm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0KTsKICAgICB9
CiAKICAgICAvLyBUaGlzIGNhbGwgd2lsbCBtb3ZlIGNoaWxkcmVuIHdpdGggbmF0aXZlIHdpZGdl
dHMgKHBsdWdpbnMpIGFuZCBpbnZhbGlkYXRlIHRoZW0gYXMgd2VsbC4KICAgICBmcmFtZVJlY3Rz
Q2hhbmdlZCgpOwogCi0gICAgLy8gTm93IHVwZGF0ZSB0aGUgd2luZG93ICh3aGljaCBzaG91bGQg
ZG8gbm90aGluZyBidXQgYSBibGl0IG9mIHRoZSBiYWNraW5nIHN0b3JlJ3MgdXBkYXRlUmVjdCBh
bmQgc28gc2hvdWxkCi0gICAgLy8gYmUgdmVyeSBmYXN0KS4KLSAgICBob3N0V2luZG93KCktPnBh
aW50KCk7CisgICAgLy8gTm93IGJsaXQgdGhlIGJhY2tpbmdzdG9yZSBpbnRvIHRoZSB3aW5kb3cg
d2hpY2ggc2hvdWxkIGJlIHZlcnkgZmFzdC4KKyAgICBob3N0V2luZG93KCktPmJsaXQoKTsKIH0K
IAogSW50UG9pbnQgU2Nyb2xsVmlldzo6d2luZG93VG9Db250ZW50cyhjb25zdCBJbnRQb2ludCYg
d2luZG93UG9pbnQpIGNvbnN0CkBAIC03MjUsNyArNzI0LDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojpy
ZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIG5vdykKICAg
ICB9CiAKICAgICBpZiAoaG9zdFdpbmRvdygpKQotICAgICAgICBob3N0V2luZG93KCktPnJlcGFp
bnQoY29udGVudHNUb1dpbmRvdyhwYWludFJlY3QpLCB0cnVlLCBub3cpOworICAgICAgICBob3N0
V2luZG93KCktPnJlcGFpbnQoY29udGVudHNUb1dpbmRvdyhwYWludFJlY3QpLCBub3cgLypzeW5j
aHJvbm91cyovKTsKIH0KIAogSW50UmVjdCBTY3JvbGxWaWV3OjpzY3JvbGxDb3JuZXJSZWN0KCkg
Y29uc3QKQEAgLTk0Myw3ICs5NDIsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OmFkZFBhblNjcm9sbElj
b24oY29uc3QgSW50UG9pbnQmIGljb25Qb3NpdGlvbikKICAgICAgICAgcmV0dXJuOwogICAgIG1f
ZHJhd1BhblNjcm9sbEljb24gPSB0cnVlOyAgICAKICAgICBtX3BhblNjcm9sbEljb25Qb2ludCA9
IEludFBvaW50KGljb25Qb3NpdGlvbi54KCkgLSBwYW5JY29uU2l6ZUxlbmd0aCAvIDIgLCBpY29u
UG9zaXRpb24ueSgpIC0gcGFuSWNvblNpemVMZW5ndGggLyAyKSA7Ci0gICAgaG9zdFdpbmRvdygp
LT5yZXBhaW50KEludFJlY3QobV9wYW5TY3JvbGxJY29uUG9pbnQsIEludFNpemUocGFuSWNvblNp
emVMZW5ndGgscGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSwgdHJ1ZSk7ICAgIAorICAgIGhvc3RX
aW5kb3coKS0+cmVwYWludChJbnRSZWN0KG1fcGFuU2Nyb2xsSWNvblBvaW50LCBJbnRTaXplKHBh
bkljb25TaXplTGVuZ3RoLHBhbkljb25TaXplTGVuZ3RoKSksIHRydWUgLypzeW5jaHJvbm91cyov
KTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKQEAgLTk1MSw3
ICs5NTAsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQogICAgIGlm
ICghaG9zdFdpbmRvdygpKQogICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNv
biA9IGZhbHNlOyAKLSAgICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9s
bEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVMZW5ndGgp
KSwgdHJ1ZSwgdHJ1ZSk7CisgICAgaG9zdFdpbmRvdygpLT5yZXBhaW50KEludFJlY3QobV9wYW5T
Y3JvbGxJY29uUG9pbnQsIEludFNpemUocGFuSWNvblNpemVMZW5ndGgsIHBhbkljb25TaXplTGVu
Z3RoKSksIHRydWUgLypzeW5jaHJvbm91cyovKTsKIH0KIAogI2lmICFQTEFURk9STShXWCkgJiYg
IVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTJlYzBkOC4u
ZWU0NDU3ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDEtMjcgIEFkYW0g
VHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgY2hyb21pdW0gcG9ydCB0byB0aGUgcmVmYWN0b3Jp
bmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlKToKKyAg
ICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6cmVwYWludCk6CisgICAgICAgIChXZWJL
aXQ6OkNocm9tZUNsaWVudEltcGw6OnJlcGFpbnRGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6YmxpdCk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVu
dEltcGwuaDoKKwogMjAxMC0wMS0wNiAgTWlrZSBCZWxzaGUgIDxtaWtlQGJlbHNoZS5jb20+CiAK
ICAgICAgICAgQWRkIGEgZmxhZyB0byB0aGUgUmVzb3VyY2VSZXNwb25zZSBmb3IgdHJhY2tpbmcg
aWYgYSByZXF1ZXN0IHdhcwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAK
aW5kZXggNGUyMDEyNC4uNmY3ZDZhNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwCkBAIC00NjIsMTUgKzQ2MiwxNSBAQCBJbnRSZWN0IENocm9tZUNsaWVudEltcGw6
OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lk
IENocm9tZUNsaWVudEltcGw6OnJlcGFpbnQoCi0gICAgY29uc3QgSW50UmVjdCYgcGFpbnRSZWN0
LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwKLSAgICBib29sIHJlcGFpbnRD
b250ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6aW52YWxpZGF0ZShjb25zdCBJbnRS
ZWN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudElt
cGw6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKnN5bmNocm9ub3Vz
Ki8pCiB7Ci0gICAgLy8gSWdub3JlIHNwdXJpb3VzIGNhbGxzLgotICAgIGlmICghY29udGVudENo
YW5nZWQgfHwgcGFpbnRSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwogICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRJbnZh
bGlkYXRlUmVjdChwYWludFJlY3QpOworICAgICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRJ
bnZhbGlkYXRlUmVjdCh1cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpz
Y3JvbGwoCkBAIC00ODQsNiArNDg0LDE2IEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6c2Nyb2xs
KAogICAgIH0KIH0KIAordm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXBhaW50Rm9yU2xvd1Njcm9s
bChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB1cGRhdGVSZWN0KQoreworICAgIHJlcGFpbnQodXBk
YXRlUmVjdCwgZmFsc2UgLypzeW5jaHJvbm91cyovKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRJ
bXBsOjpibGl0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiBJbnRQb2ludCBDaHJv
bWVDbGllbnRJbXBsOjpzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0CiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgK
aW5kZXggNWExZTljYy4uODkyN2ZmNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKQEAgLTk1LDEyICs5NSwxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEludGVycnVwdEphdmFTY3JpcHQoKTsKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBj
b25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgKLSAgICAgICAgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsCi0g
ICAgICAgIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbCgKICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwKICAgICAgICAgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgY2xpcFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Rm9yU2xvd1Nj
cm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGJsaXQoKTsK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRv
d1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKICAgICB2aXJ0dWFsIFBs
YXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCB7IHJldHVybiAwOyB9
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CmluZGV4IGNjNmQxMmUuLjA4NDExYjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDEtMjcg
IEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgZ3RrIHBvcnQgdG8gdGhlIHJlZmFjdG9y
aW5nIG9mIHJlcGFpbnQgbWV0aG9kcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMTQKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cmVwYWludCk6CisgICAgICAgIChX
ZWJLaXQ6OkNocm9tZUNsaWVudDo6cmVwYWludEZvclNsb3dTY3JvbGwpOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmJsaXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oOgorCiAyMDEwLTAxLTA2ICBKb2FubWFyaWUgRGlnZ3MgIDxqb2FubWFyaWUu
ZGlnZ3NAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCAwZjQ2Yjky
Li5mNGEyOGRjIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwCkBAIC0zMTIsMTYgKzMxMiwyMCBAQCBJbnRSZWN0IENocm9tZUNsaWVudDo6d2luZG93
UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50OjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgY29udGVu
dENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlLCBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQg
Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmKQogewotICAgIEdka1JlY3Rh
bmdsZSByZWN0ID0gd2luZG93UmVjdDsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IENocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIHN5
bmNocm9ub3VzKQoreworICAgIEdka1JlY3RhbmdsZSByZWN0ID0gdXBkYXRlUmVjdDsKICAgICBH
ZGtXaW5kb3cqIHdpbmRvdyA9IEdUS19XSURHRVQobV93ZWJWaWV3KS0+d2luZG93OwogCiAgICAg
aWYgKHdpbmRvdykgewotICAgICAgICBpZiAoY29udGVudENoYW5nZWQpCi0gICAgICAgICAgICBn
ZGtfd2luZG93X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0LCBGQUxTRSk7CisgICAgICAg
IGdka193aW5kb3dfaW52YWxpZGF0ZV9yZWN0KHdpbmRvdywgJnJlY3QsIEZBTFNFKTsKICAgICAg
ICAgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGRvIGltbWVkaWF0ZSB1cGRhdGVzIHNpbmNlIHRoZXkg
ZGVsYXkgb3RoZXIgVUkgZWxlbWVudHMuCi0gICAgICAgIC8vaWYgKGltbWVkaWF0ZSkKKyAgICAg
ICAgLy9pZiAoc3luY2hyb25vdXMpCiAgICAgICAgIC8vICAgIGdka193aW5kb3dfcHJvY2Vzc191
cGRhdGVzKHdpbmRvdywgRkFMU0UpOwogICAgIH0KIH0KQEAgLTM1Niw2ICszNjAsMTYgQEAgdm9p
ZCBDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVj
dCYgcmVjdFRvU2Nyb2xsLCBjb24KICAgICBnZGtfcmVnaW9uX2Rlc3Ryb3koaW52YWxpZFJlZ2lv
bik7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50OjpyZXBhaW50Rm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0KQoreworICAgIHJlcGFpbnQodXBkYXRlUmVjdCwgZmFsc2UgLypz
eW5jaHJvbm91cyovKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnQ6OmJsaXQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKIC8vIEZJWE1FOiB0aGlzIGRvZXMgbm90IHRha2UgaW50byBh
Y2NvdW50IHRoZSBXTSBkZWNvcmF0aW9ucwogc3RhdGljIEludFBvaW50IHdpZGdldFNjcmVlblBv
c2l0aW9uKEd0a1dpZGdldCogd2lkZ2V0KQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmgKaW5kZXggYmViN2EwOC4uNmVmYjgwYyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC04Nyw4ICs4NywxMiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2luZG93
UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUg
PSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBmYWxzZSk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGb3JTbG93U2Nyb2xsKGNvbnN0
IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGJsaXQoKTsKKwogICAgICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1Nj
cmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGxh
dGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggMmFh
NGFkNy4uZWRmYTUzNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDEtMjcgIEFkYW0g
VHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgaGFpa3UgcG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcg
b2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmludmFs
aWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OnJlcGFpbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OnJlcGFpbnRGb3JTbG93U2Nyb2xs
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjpibGl0KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDA5LTEyLTA2ICBNYXhp
bWUgU2ltb24gIDxzaW1vbi5tYXhpbWVAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50SGFpa3UuY3BwIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEhhaWt1LmNwcAppbmRleCAyNGYwYjUyLi5jMWIwZDViIDEwMDY0NAotLS0gYS9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCisrKyBiL1dlYktpdC9o
YWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKQEAgLTI1Myw3ICsyNTMs
MTIgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRIYWlrdTo6d2luZG93UmVzaXplclJlY3QoKSBjb25z
dAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OnJl
cGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRl
LCBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFs
aWRhdGUoY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBDaHJvbWVDbGllbnRIYWlrdTo6cmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCkKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMjYzLDYgKzI2OCwxNiBAQCB2b2lkIENocm9tZUNs
aWVudEhhaWt1OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJl
Y3QmIHJlY3RUbwogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgQ2hyb21lQ2xpZW50
SGFpa3U6OnJlcGFpbnRGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmJsaXQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKIEludFBvaW50IENocm9tZUNsaWVudEhhaWt1OjpzY3Jl
ZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRI
YWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgK
aW5kZXggZWNkNjZkZS4uZjY5MzRjZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTEwMiw4ICsxMDIsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBib29sIHRhYnNUb0xpbmtzKCkgY29uc3Q7CiAgICAgICAgIEludFJl
Y3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgICAgICB2b2lkIHJlcGFpbnQoY29u
c3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2Us
IGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgICAgICB2b2lkIGludmFsaWRh
dGUoY29uc3QgSW50UmVjdCYpOworICAgICAgICB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYs
IGJvb2wpOwogICAgICAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwg
Y29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7Cisg
ICAgICAgIHZvaWQgcmVwYWludEZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpOworICAgICAg
ICB2b2lkIGJsaXQoKTsKICAgICAgICAgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmKSBjb25zdDsKICAgICAgICAgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JikgY29uc3Q7CiAgICAgICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGll
bnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggMzg1YjQxZC4uNGE3ODYyNyAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMC0wMS0yNyAgQWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSBtYWMgcG9ydCB0byB0
aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlKToKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVwYWludCk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnJlcGFpbnRGb3JTbG93U2Nyb2xsKToKKwogMjAxMC0wMS0wNiAgS2V2aW4gRGVja2VyICA8
a2RlY2tlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggY2EyODYz
ZS4uMzJhZWM1MiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC05MSw4ICs5MSwxMiBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9v
bCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBmYWxzZSk7Cisg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGUoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAg
IHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIHN5bmNo
cm9ub3VzKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZv
clNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBi
bGl0KCk7CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRS
ZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKICAgICB2
aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNTgzMjNi
Yi4uNWEwNWZlMSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KQEAgLTQzOSwxNSArNDM5LDE4IEBAIEludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5k
b3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoW21fd2Vi
VmlldyBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3Om5pbF0pOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGNvbnRlbnRDaGFuZ2Vk
LCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6aW52YWxpZGF0ZShjb25zdCBJbnRSZWN0JikKK3sKK30KKwordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBzeW5jaHJvbm91cykK
IHsKICAgICBpZiAoW21fd2ViVmlldyBfdXNlc0RvY3VtZW50Vmlld3NdKQogICAgICAgICByZXR1
cm47CiAgICAgCi0gICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQotICAgICAgICBbbV93ZWJWaWV3IHNl
dE5lZWRzRGlzcGxheUluUmVjdDpyZWN0XTsKKyAgICBbbV93ZWJWaWV3IHNldE5lZWRzRGlzcGxh
eUluUmVjdDpyZWN0XTsKICAgICAKLSAgICBpZiAoaW1tZWRpYXRlKSB7CisgICAgaWYgKHN5bmNo
cm9ub3VzKSB7CiAgICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsK
ICAgICAgICAgW1ttX3dlYlZpZXcgd2luZG93XSBmbHVzaFdpbmRvd0lmTmVlZGVkXTsKICAgICB9
CkBAIC00NTcsNiArNDYwLDE3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3Qg
SW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikKIHsKIH0KIAordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnRGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgcmVwYWludChyZWN0LCBmYWxzZSAvKnN5bmNocm9ub3VzKi8KK30KKwordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmJsaXQoKQoreworICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZGlzcGxh
eUlmTmVlZGVkXTsKKyAgICBbW21fd2ViVmlldyB3aW5kb3ddIGZsdXNoV2luZG93SWZOZWVkZWRd
OworfQorCiBJbnRQb2ludCBXZWJDaHJvbWVDbGllbnQ6OnNjcmVlblRvV2luZG93KGNvbnN0IElu
dFBvaW50JiBwKSBjb25zdAogewogICAgIGlmIChbbV93ZWJWaWV3IF91c2VzRG9jdW1lbnRWaWV3
c10pCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCA5ZGE3NzRiLi4xNWU0MmZhIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMS0yNyAg
QWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSBxdCBwb3J0IHRvIHRoZSByZWZhY3Rvcmlu
ZyBvZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cmVwYWludCk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cmVwYWludEZvclNsb3dTY3JvbGwpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmJsaXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTAtMDEtMDcgIFlhZWwgQWhhcm9uICA8eWFlbC5h
aGFyb25Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAK
aW5kZXggNzNjYjRkNy4uNGE2YzkyOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuY3BwCkBAIC0zMTcsMjAgKzMxNywyMyBAQCBJbnRSZWN0IENocm9tZUNsaWVu
dFF0Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnRRdDo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0
LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sLCBib29sKQordm9pZCBDaHJvbWVDbGllbnRRdDo6
aW52YWxpZGF0ZShjb25zdCBJbnRSZWN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIENocm9tZUNsaWVudFF0OjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3Qs
IGJvb2wgc3luY2hyb25vdXMpCiB7CiAgICAgLy8gTm8gZG91YmxlIGJ1ZmZlciwgc28gb25seSB1
cGRhdGUgdGhlIFFXaWRnZXQgaWYgY29udGVudCBjaGFuZ2VkLgotICAgIGlmIChjb250ZW50Q2hh
bmdlZCkgewotICAgICAgICBpZiAocGxhdGZvcm1QYWdlQ2xpZW50KCkpIHsKLSAgICAgICAgICAg
IFFSZWN0IHJlY3Qod2luZG93UmVjdCk7Ci0gICAgICAgICAgICByZWN0ID0gcmVjdC5pbnRlcnNl
Y3RlZChRUmVjdChRUG9pbnQoMCwgMCksIG1fd2ViUGFnZS0+dmlld3BvcnRTaXplKCkpKTsKLSAg
ICAgICAgICAgIGlmICghcmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcGxhdGZvcm1Q
YWdlQ2xpZW50KCktPnVwZGF0ZShyZWN0KTsKLSAgICAgICAgfQotICAgICAgICBlbWl0IG1fd2Vi
UGFnZS0+cmVwYWludFJlcXVlc3RlZCh3aW5kb3dSZWN0KTsKKyAgICBpZiAocGxhdGZvcm1QYWdl
Q2xpZW50KCkpIHsKKyAgICAgICAgUVJlY3QgcmVjdCh3aW5kb3dSZWN0KTsKKyAgICAgICAgcmVj
dCA9IHJlY3QuaW50ZXJzZWN0ZWQoUVJlY3QoUVBvaW50KDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdw
b3J0U2l6ZSgpKSk7CisgICAgICAgIGlmICghcmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBw
bGF0Zm9ybVBhZ2VDbGllbnQoKS0+dXBkYXRlKHJlY3QpOwogICAgIH0KKyAgICBlbWl0IG1fd2Vi
UGFnZS0+cmVwYWludFJlcXVlc3RlZCh3aW5kb3dSZWN0KTsKIAotICAgIC8vIEZJWE1FOiBUaGVy
ZSBpcyBubyAiaW1tZWRpYXRlIiBzdXBwb3J0IGZvciB3aW5kb3cgcGFpbnRpbmcuICBUaGlzIHNo
b3VsZCBiZSBkb25lIGFsd2F5cyB3aGVuZXZlciB0aGUgZmxhZworICAgIC8vIEZJWE1FOiBUaGVy
ZSBpcyBubyAic3luY2hyb25vdXMiIHN1cHBvcnQgZm9yIHdpbmRvdyBwYWludGluZy4gIFRoaXMg
c2hvdWxkIGJlIGRvbmUgYWx3YXlzIHdoZW5ldmVyIHRoZSBmbGFnCiAgICAgLy8gaXMgc2V0Lgog
fQogCkBAIC0zNDEsNiArMzQ0LDE2IEBAIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OnNjcm9sbChjb25z
dCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsCiAgICAgZW1p
dCBtX3dlYlBhZ2UtPnNjcm9sbFJlcXVlc3RlZChkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQo
KSwgc2Nyb2xsVmlld1JlY3QpOwogfQogCit2b2lkIENocm9tZUNsaWVudFF0OjpyZXBhaW50Rm9y
U2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0KQoreworICAgIHJlcGFpbnQod2lu
ZG93UmVjdCwgZmFsc2UgLypzeW5jaHJvbm91cyovKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRR
dDo6YmxpdCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogSW50UmVjdCBDaHJvbWVD
bGllbnRRdDo6d2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuaAppbmRleCA5MzlmZTA0Li5lNTBiOGM1IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50UXQuaApAQCAtMTAzLDggKzEwMywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0OwogICAgICAgICB2aXJ0
dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBp
bW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBmYWxzZSk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3luY2hyb25vdXMpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25z
dCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGJsaXQoKTsKKwogICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNj
cmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSW50
UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA3
MGU2NDk2Li4xMGNjZTE0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAxLTI3ICBBZGFtIFRy
ZWF0ICA8YXRyZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRhcHQgdGhlIHdpbiBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBvZiBy
ZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlKToKKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6cmVwYWludCk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJl
cGFpbnRGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YmxpdCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDEtMDcg
IEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IDZlODJjYWYuLjRjYWZjYjggMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQ0OCwxMCArNDQ4LDE2IEBAIElu
dFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0
dXJuIEludFJlY3QoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29uc3Qg
SW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUs
IGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRh
dGUoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkKIHsKICAgICBBU1NFUlQoY29yZShtX3dlYlZp
ZXctPnRvcExldmVsRnJhbWUoKSkpOwotICAgIG1fd2ViVmlldy0+cmVwYWludCh3aW5kb3dSZWN0
LCBjb250ZW50Q2hhbmdlZCwgaW1tZWRpYXRlLCByZXBhaW50Q29udGVudE9ubHkpOworICAgIG1f
d2ViVmlldy0+cmVwYWludCh3aW5kb3dSZWN0LCBmYWxzZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGZh
bHNlIC8qaW1tZWRpYXRlKi8sIGZhbHNlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8pOworfQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIHN5bmNocm9ub3VzKQoreworICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxG
cmFtZSgpKSk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIHRydWUgLypjb250
ZW50Q2hhbmdlZCovLCBzeW5jaHJvbm91cyAvKmltbWVkaWF0ZSovLCBmYWxzZSAvKnJlcGFpbnRD
b250ZW50T25seSovKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJ
bnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0KQpAQCAtNDYxLDYgKzQ2NywxOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
c2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxWaWV3UmVj
dAogICAgIG1fd2ViVmlldy0+c2Nyb2xsQmFja2luZ1N0b3JlKGNvcmUobV93ZWJWaWV3LT50b3BM
ZXZlbEZyYW1lKCkpLT52aWV3KCksIGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpLCBzY3Jv
bGxWaWV3UmVjdCwgY2xpcFJlY3QpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVwYWlu
dEZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkKK3sKKyAgICBBU1NFUlQo
Y29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOworICAgIG1fd2ViVmlldy0+cmVwYWlu
dCh3aW5kb3dSZWN0LCB0cnVlIC8qY29udGVudENoYW5nZWQqLywgZmFsc2UgLyppbW1lZGlhdGUq
LywgdHJ1ZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmJsaXQoKQoreworICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgp
KSk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KEludFJlY3QoKSwgZmFsc2UgLypjb250ZW50Q2hh
bmdlZCovLCB0cnVlIC8qaW1tZWRpYXRlKi8sIGZhbHNlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8p
OworfQorCisKIEludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dUb1NjcmVlbihjb25zdCBJ
bnRSZWN0JiByZWN0KSBjb25zdAogewogICAgIEhXTkQgdmlld1dpbmRvdzsKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGUwYzU5YWUuLjVhY2NjOTIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTMs
OCArOTMsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0
OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0
OwogCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJv
b2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENv
bnRlbnRPbmx5ID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgYm9vbCBzeW5jaHJvbm91cyk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CisgICAg
dmlydHVhbCB2b2lkIHJlcGFpbnRGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsKKyAgICB2aXJ0dWFsIHZvaWQgYmxpdCgpOworCiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHIpIGNvbnN0OwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBi
L1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMGNlODE1My4uZTNjZGQ4OSAxMDA2NDQKLS0tIGEv
V2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDEtMjcgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgd3ggcG9y
dCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogV2Vi
S2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRXeDo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6
cmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6cmVwYWludEZvclNs
b3dTY3JvbGwpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmJsaXQpOgorICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAwOS0xMi0zMCAgS2V2
aW4gV2F0dGVycyAgPGtldmlud2F0dGVyc0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2V2aW4gT2xsaXZpZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAgYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5jcHAKaW5kZXggMTdmNmY0My4uYzJhNDdlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmNwcApAQCAtMzIxLDE5ICszMjEsMzMgQEAgSW50UmVjdCBDaHJvbWVD
bGllbnRXeDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7
CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwg
Ym9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRlbnRP
bmx5KQordm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZShjb25zdCBJbnRSZWN0JiByZWN0
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OnJl
cGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBzeW5jaHJvbm91cykKIHsKICAgICBpZiAo
IW1fd2ViVmlldykKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChjb250ZW50Q2hhbmdl
ZCkKLSAgICAgICAgbV93ZWJWaWV3LT5SZWZyZXNoUmVjdChyZWN0KTsKKyAgICBtX3dlYlZpZXct
PlJlZnJlc2hSZWN0KHJlY3QpOwogICAgIAotICAgIGlmIChpbW1lZGlhdGUpIHsKKyAgICBpZiAo
c3luY2hyb25vdXMpIHsKICAgICAgICAgbV93ZWJWaWV3LT5VcGRhdGUoKTsKICAgICB9CiB9CiAK
K3ZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcGFpbnRGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3Qm
IHJlY3QpCit7CisgICAgcmVwYWludChyZWN0LCBmYWxzZSAvKnN5bmNocm9ub3VzKi8pOworfQor
Cit2b2lkIENocm9tZUNsaWVudFd4OjpibGl0KCkKK3sKKyAgICBtX3dlYlZpZXctPlVwZGF0ZSgp
OworfQorCiBJbnRSZWN0IENocm9tZUNsaWVudFd4Ojp3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JiByZWN0KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCBiZDRmMWVjLi4wYWIwZmE2IDEwMDY0NAot
LS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEwMiw4ICsxMDIsMTIgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50IGR4LCBpbnQg
ZHksIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVj
dCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIAotICAgIHZp
cnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBi
b29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZShjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVh
bCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgc3luY2hyb25vdXMpOwogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJl
Y3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOworICAgIHZpcnR1YWwg
dm9pZCByZXBhaW50Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2
b2lkIGJsaXQoKTsKKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29u
c3QgSW50UmVjdCYpIGNvbnN0OwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49835</attachid>
            <date>2010-03-02 13:16:49 -0800</date>
            <delta_ts>2010-03-02 13:26:53 -0800</delta_ts>
            <desc>Second try adopting review comments</desc>
            <filename>34214_a.patch</filename>
            <type>text/plain</type>
            <size>34935</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTI2MWM0Yy4uY2RlYjQzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAg
PGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yIHRoZSBIb3N0V2luZG93IG1ldGhvZHMgZm9yIHJlcGFpbnQsIHNj
cm9sbCwgaW52YWxpZGF0ZSBhbmQgYmxpdAorICAgICAgICBvZiBiYWNraW5nc3RvcmUgYW5kIHdp
bmRvdyBieSBlbGltaW5hdGluZyB0aGUgdGhyZWUgYm9vbHMgdGhhdCBjdXJyZW50bHkKKyAgICAg
ICAgZXhpc3QgYXMgcGFyYW1zIG9mIHRoZSByZXBhaW50IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgSSd2ZSBh
ZGRlZCBleHRyYSBtZXRob2RzIHRvIHByb3ZpZGUgdGhlIGhvc3RzIHdpdGggbW9yZSBzZW1hbnRp
YworICAgICAgICBpbmZvcm1hdGlvbiBvZiB3aGF0IGlzIGJlaW5nIHJlcXVlc3RlZCB0aHVzIGVs
aW1pbmF0aW5nIHRoZSBuZWVkIGZvcgorICAgICAgICB0aGVzZSBib29scy4KKworICAgICAgICBO
byB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBzaG91bGQgbm90IGludHJvZHVjZSBhbnkgYmVoYXZpb3Ig
Y2hhbmdlcyBpbiBhbnkKKyAgICAgICAgb2YgdGhlIHBvcnRzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVDb250
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToK
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRvdy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2Nyb2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
d2hlZWxFdmVudCk6CisKIDIwMTAtMDMtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggMmY5YTI2Ny4uMzcyN2MwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTExNSwxMiArMTE1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3Mo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jl
c2l6ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxCYWNraW5nU3RvcmUoaW50LCBpbnQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wsIGJvb2wsIGJvb2wpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJv
b2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IEludFJlY3QmLCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkge307CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJl
Y3QmKSB7IH0KKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmIHApIGNvbnN0IHsgcmV0dXJuIHA7IH0KICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93
VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgeyByZXR1cm4gcjsgfQogICAgIHZpcnR1
YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKaW5kZXggNjYyNGQ3OC4uNzcxZGY4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTY3LDkgKzY3
LDI0IEBAIENocm9tZTo6fkNocm9tZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgp
OwogfQogCi12b2lkIENocm9tZTo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9u
bHkpCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewotICAgIG1fY2xpZW50LT5yZXBhaW50KHdpbmRvd1Jl
Y3QsIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIHJlcGFpbnRDb250ZW50T25seSk7CisgICAg
bV9jbGllbnQtPmludmFsaWRhdGVDb250ZW50cyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworfQor
Cit2b2lkIENocm9tZTo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBtX2NsaWVudC0+aW52YWxpZGF0ZVdpbmRvdyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOworfQorCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQorewor
ICAgIG1fY2xpZW50LT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1t
ZWRpYXRlKTsKK30KKwordm9pZCBDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgbV9j
bGllbnQtPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgaW1tZWRp
YXRlKTsKIH0KIAogdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAppbmRleCA3NTNhZGVhLi4yNzlhN2Y4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC02MCw4ICs2MCwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQ7IH0KIAogICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCi0gICAgICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29u
c3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IElu
dFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4o
Y29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVu
dCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBiMDVkODVi
Li5mY2M4NzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QgPSAwOwogCiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBm
YWxzZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29u
c3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVX
aW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiwgYm9vbCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICAgICAgdmly
dHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsK
ICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBj
b25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWM1N2M2NC4uMmU5OTA4YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIEZyYW1lVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CiAg
ICAgICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgICAgICBob3N0V2luZG93KCktPnJlcGFp
bnQocmVjdCwgdHJ1ZSk7CisgICAgICAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhyZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4MGY2YmRjLi45N2FiZjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL0hvc3RXaW5kb3cuaApAQCAtMzUsMTQgKzM1LDIwIEBAIGNsYXNzIEhvc3RXaW5kb3cgOiBw
dWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhvc3RXaW5kb3coKSB7
IH0KIAotICAgIC8vIFRoZSByZXBhaW50IG1ldGhvZCBhc2tzIHRoZSBob3N0IHdpbmRvdyB0byBy
ZXBhaW50IGEgcmVjdCBpbiB0aGUgd2luZG93J3MgY29vcmRpbmF0ZSBzcGFjZS4gIFRoZQotICAg
IC8vIGNvbnRlbnRDaGFuZ2VkIGJvb2xlYW4gaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBX
ZWIgcGFnZSBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKG9yIGlmIGEgcmVwYWludAotICAgIC8v
IG9mIHVuY2hhbmdlZCBjb250ZW50IGlzIGJlaW5nIHJlcXVlc3RlZCkuCi0gICAgdmlydHVhbCB2
b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpID0gMDsKKyAg
ICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cywgbm90IHRoZSB3
aW5kb3cuICBJZiBpbW1lZGlhdGUgaXMgdHJ1ZSBkbyBzbyBzeW5jaHJvbm91c2x5LCBvdGhlcndp
c2UgYXN5bmMuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOworCisgICAgLy8gUmVxdWVzdHMg
dGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgd2luZG93LCBub3QgdGhlIGNvbnRlbnRzLiAgSWYgaW1t
ZWRpYXRlIGlzIHRydWUgZG8gc28gc3luY2hyb25vdXNseSwgb3RoZXJ3aXNlIGFzeW5jLgorICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qs
IGJvb2wgaW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlk
YXRlIHRoZSBjb250ZW50cyBhbmQgdGhlIHdpbmRvdy4gIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRv
IHNvIHN5bmNocm9ub3VzbHksIG90aGVyd2lzZSBhc3luYy4KKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wg
aW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBzY3JvbGwgYmFja2lu
Z3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8gc2Nyb2xsLCBhbmQgY2xpcCBy
ZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpID0g
MDsKIAotICAgIC8vIFRoZSBwYWludCBtZXRob2QganVzdCBjYXVzZXMgYSBzeW5jaHJvbm91cyB1
cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBwZW4gZm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgaXQg
KFdpbmRvd3MpLgotICAgIHZvaWQgcGFpbnQoKSB7IHJlcGFpbnQoSW50UmVjdCgpLCBmYWxzZSwg
dHJ1ZSk7IH0KKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50
cywgbm90IHRoZSB3aW5kb3cuICBUaGlzIGlzIHRoZSBzbG93IHBhdGggZm9yIHNjcm9sbGluZy4K
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwogICAgIAogICAgIC8vIE1l
dGhvZHMgZm9yIGRvaW5nIGNvb3JkaW5hdGUgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gc2NyZWVu
IGNvb3JkaW5hdGVzLgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2MzBhZDEy
Li40ZTM5YzVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTUwMSwzMSArNTAxLDMwIEBA
IHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qoc2Nyb2xsVmlld1JlY3QpOwogCiAgICAgLy8g
SW52YWxpZGF0ZSB0aGUgd2luZG93IChub3QgdGhlIGJhY2tpbmcgc3RvcmUpLgotICAgIGhvc3RX
aW5kb3coKS0+cmVwYWludCh1cGRhdGVSZWN0LCBmYWxzZSk7CisgICAgaG9zdFdpbmRvdygpLT5p
bnZhbGlkYXRlV2luZG93KHVwZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogCiAgICAg
aWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKICAgICAgICAgaW50IHBhbkljb25EaXJ0eVNxdWFy
ZVNpemVMZW5ndGggPSAyICogKHBhbkljb25TaXplTGVuZ3RoICsgbWF4KGFicyhzY3JvbGxEZWx0
YS53aWR0aCgpKSwgYWJzKHNjcm9sbERlbHRhLmhlaWdodCgpKSkpOyAvLyBXZSBvbmx5IHdhbnQg
dG8gcmVwYWludCB3aGF0J3MgbmVjZXNzYXJ5CiAgICAgICAgIEludFBvaW50IHBhbkljb25EaXJ0
eVNxdWFyZUxvY2F0aW9uID0gSW50UG9pbnQobV9wYW5TY3JvbGxJY29uUG9pbnQueCgpIC0gKHBh
bkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSwgbV9wYW5TY3JvbGxJY29uUG9pbnQueSgp
IC0gKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSk7CiAgICAgICAgIEludFJlY3Qg
cGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCA9IEludFJlY3QocGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRp
b24gLCBJbnRTaXplKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGgsIHBhbkljb25EaXJ0eVNx
dWFyZVNpemVMZW5ndGgpKTsKICAgICAgICAgcGFuU2Nyb2xsSWNvbkRpcnR5UmVjdC5pbnRlcnNl
Y3QoY2xpcFJlY3QpOwotICAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQocGFuU2Nyb2xsSWNv
bkRpcnR5UmVjdCwgdHJ1ZSk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8p
OwogICAgIH0KIAogICAgIGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFt
ZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdwotICAgICAgIC8vIEZJWE1FOiBGaW5k
IGEgd2F5IHRvIGJsaXQgc3ViZnJhbWVzIHdpdGhvdXQgYmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29u
dGVudAorICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIHNjcm9sbCBzdWJmcmFtZXMgd2l0
aCB0aGlzIGZhc3RlciBwYXRoCiAgICAgICAgaG9zdFdpbmRvdygpLT5zY3JvbGwoLXNjcm9sbERl
bHRhLCBzY3JvbGxWaWV3UmVjdCwgY2xpcFJlY3QpOwogICAgIH0gZWxzZSB7IAogICAgICAgIC8v
IFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJlcGFpbnQgdGhlIGVudGlyZSBiYWNraW5nIHN0b3Jl
LiAgRG8gaXQgbm93IGJlZm9yZSBtb3ZpbmcgdGhlCiAgICAgICAgLy8gd2luZG93ZWQgcGx1Z2lu
cy4KLSAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQodXBkYXRlUmVjdCwgdHJ1ZSwgZmFsc2Us
IHRydWUpOyAvLyBJbnZhbGlkYXRlIHRoZSBiYWNraW5nIHN0b3JlIGFuZCByZXBhaW50IGl0IHN5
bmNocm9ub3VzbHkKKyAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOwogICAgIH0KIAogICAgIC8vIFRoaXMgY2FsbCB3
aWxsIG1vdmUgY2hpbGRyZW4gd2l0aCBuYXRpdmUgd2lkZ2V0cyAocGx1Z2lucykgYW5kIGludmFs
aWRhdGUgdGhlbSBhcyB3ZWxsLgogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CiAKLSAgICAvLyBO
b3cgdXBkYXRlIHRoZSB3aW5kb3cgKHdoaWNoIHNob3VsZCBkbyBub3RoaW5nIGJ1dCBhIGJsaXQg
b2YgdGhlIGJhY2tpbmcgc3RvcmUncyB1cGRhdGVSZWN0IGFuZCBzbyBzaG91bGQKLSAgICAvLyBi
ZSB2ZXJ5IGZhc3QpLgotICAgIGhvc3RXaW5kb3coKS0+cGFpbnQoKTsKKyAgICAvLyBOb3cgYmxp
dCB0aGUgYmFja2luZ3N0b3JlIGludG8gdGhlIHdpbmRvdyB3aGljaCBzaG91bGQgYmUgdmVyeSBm
YXN0LgorICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyhJbnRSZWN0KCksIHRydWUp
OwogfQogCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRzKGNvbnN0IEludFBv
aW50JiB3aW5kb3dQb2ludCkgY29uc3QKQEAgLTcxNSw3ICs3MTQsNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93
KQogICAgIH0KIAogICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgIGhvc3RXaW5kb3coKS0+
cmVwYWludChjb250ZW50c1RvV2luZG93KHBhaW50UmVjdCksIHRydWUsIG5vdyk7CisgICAgICAg
IGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnRlbnRzVG9XaW5k
b3cocGFpbnRSZWN0KSwgbm93IC8qaW1tZWRpYXRlKi8pOwogfQogCiBJbnRSZWN0IFNjcm9sbFZp
ZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdApAQCAtOTMzLDcgKzkzMiw3IEBAIHZvaWQgU2Ny
b2xsVmlldzo6YWRkUGFuU2Nyb2xsSWNvbihjb25zdCBJbnRQb2ludCYgaWNvblBvc2l0aW9uKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IHRydWU7ICAgIAogICAg
IG1fcGFuU2Nyb2xsSWNvblBvaW50ID0gSW50UG9pbnQoaWNvblBvc2l0aW9uLngoKSAtIHBhbklj
b25TaXplTGVuZ3RoIC8gMiAsIGljb25Qb3NpdGlvbi55KCkgLSBwYW5JY29uU2l6ZUxlbmd0aCAv
IDIpIDsKLSAgICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Q
b2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCxwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVl
LCB0cnVlKTsgICAgCisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3coSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0
aCxwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVlIC8qaW1tZWRpYXRlKi8pOwogfQogCiB2b2lkIFNj
cm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQpAQCAtOTQxLDcgKzk0MCw3IEBAIHZvaWQg
U2Nyb2xsVmlldzo6cmVtb3ZlUGFuU2Nyb2xsSWNvbigpCiAgICAgaWYgKCFob3N0V2luZG93KCkp
CiAgICAgICAgIHJldHVybjsKICAgICBtX2RyYXdQYW5TY3JvbGxJY29uID0gZmFsc2U7IAotICAg
IGhvc3RXaW5kb3coKS0+cmVwYWludChJbnRSZWN0KG1fcGFuU2Nyb2xsSWNvblBvaW50LCBJbnRT
aXplKHBhbkljb25TaXplTGVuZ3RoLCBwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVlLCB0cnVlKTsK
KyAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhJbnRSZWN0KG1f
cGFuU2Nyb2xsSWNvblBvaW50LCBJbnRTaXplKHBhbkljb25TaXplTGVuZ3RoLCBwYW5JY29uU2l6
ZUxlbmd0aCkpLCB0cnVlIC8qaW1tZWRpYXRlKi8pOwogfQogCiAjaWYgIVBMQVRGT1JNKFdYKSAm
JiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oUVQpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkMjZiODZh
Li4zNTRkYzVjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMy0wMiAgQWRh
bSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSBjaHJvbWl1bSBwb3J0IHRvIHRoZSByZWZhY3Rv
cmluZyBvZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmludmFsaWRhdGVDb250
ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OmludmFsaWRhdGVXaW5k
b3cpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisKIDIwMTAtMDMtMDIgIEphbWVzIEhhd2tpbnMgIDxqaGF3a2luc0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHAKaW5kZXggYTQyMGRhMy4uZDNmODI5MyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCkBAIC00NjYsMTUgKzQ2NiwyNSBAQCBJbnRSZWN0
IENocm9tZUNsaWVudEltcGw6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi12b2lkIENocm9tZUNsaWVudEltcGw6OnJlcGFpbnQoCi0gICAgY29uc3Qg
SW50UmVjdCYgcGFpbnRSZWN0LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwK
LSAgICBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6aW52
YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6aW52YWxpZGF0ZVdpbmRvdyhjb25z
dCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENo
cm9tZUNsaWVudEltcGw6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCBib29sIC8qaW1tZWRpYXRlKi8pCiB7Ci0gICAgLy8gSWdub3JlIHNwdXJp
b3VzIGNhbGxzLgotICAgIGlmICghY29udGVudENoYW5nZWQgfHwgcGFpbnRSZWN0LmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuOwogICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQotICAgICAg
ICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRJbnZhbGlkYXRlUmVjdChwYWludFJlY3QpOworICAg
ICAgICBtX3dlYlZpZXctPmNsaWVudCgpLT5kaWRJbnZhbGlkYXRlUmVjdCh1cGRhdGVSZWN0KTsK
K30KKwordm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwo
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3QsIGltbWVkaWF0ZSk7CiB9CiAKIHZvaWQg
Q2hyb21lQ2xpZW50SW1wbDo6c2Nyb2xsKApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuaAppbmRleCA1YmY5MzgyLi4zZTJmNjkyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuaApAQCAtOTYsOSArOTYsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCk7CiAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtz
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoCi0gICAgICAgIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNl
LAotICAgICAgICBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsCiAgICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggM2IxMDBiZS4uYWE1
YmEzMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAgPGF0cmVh
dEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkYXB0IHRoZSBndGsgcG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRo
b2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NDIxNAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKwogMjAxMC0wMy0wMSAg
Sm9zw6kgTWlsbMOhbiBTb3RvICA8am1pbGxhbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCBkNGNjZThhLi4yYTU3MzU3IDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKKysrIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC0zNDEsMjAgKzM0
MSwzNCBAQCBJbnRSZWN0IENocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAog
ICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50OjpyZXBhaW50KGNv
bnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRp
YXRlLCBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlk
YXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpCiB7Ci0gICAgR2RrUmVjdGFuZ2xlIHJl
Y3QgPSB3aW5kb3dSZWN0OworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21l
Q2xpZW50OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7
CisgICAgR2RrUmVjdGFuZ2xlIHJlY3QgPSB1cGRhdGVSZWN0OwogICAgIEdka1dpbmRvdyogd2lu
ZG93ID0gR1RLX1dJREdFVChtX3dlYlZpZXcpLT53aW5kb3c7CiAKICAgICBpZiAod2luZG93KSB7
Ci0gICAgICAgIGlmIChjb250ZW50Q2hhbmdlZCkKLSAgICAgICAgICAgIGdka193aW5kb3dfaW52
YWxpZGF0ZV9yZWN0KHdpbmRvdywgJnJlY3QsIEZBTFNFKTsKKyAgICAgICAgZ2RrX3dpbmRvd19p
bnZhbGlkYXRlX3JlY3Qod2luZG93LCAmcmVjdCwgRkFMU0UpOwogICAgICAgICAvLyBXZSBkb24n
dCBjdXJyZW50bHkgZG8gaW1tZWRpYXRlIHVwZGF0ZXMgc2luY2UgdGhleSBkZWxheSBvdGhlciBV
SSBlbGVtZW50cy4KICAgICAgICAgLy9pZiAoaW1tZWRpYXRlKQogICAgICAgICAvLyAgICBnZGtf
d2luZG93X3Byb2Nlc3NfdXBkYXRlcyh3aW5kb3csIEZBTFNFKTsKICAgICB9CiB9CiAKK3ZvaWQg
Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJl
Y3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIGludmFsaWRhdGVDb250ZW50
c0FuZFdpbmRvdyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworfQorCiB2b2lkIENocm9tZUNsaWVu
dDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3Jv
bGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQogewogICAgIEdka1dpbmRvdyogd2luZG93ID0g
R1RLX1dJREdFVChtX3dlYlZpZXcpLT53aW5kb3c7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCA2MmQ0OGZhLi42OWZiOWU3IDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTg3LDggKzg3LDEyIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5k
b3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0
ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNG
b3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVj
dCk7CisKICAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0Owog
ICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3Uv
Q2hhbmdlTG9nCmluZGV4IDRjMzdiYWUuLjllM2Q5ZGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8YXRyZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdGhlIGhhaWt1IHBvcnQg
dG8gdGhlIHJlZmFjdG9yaW5nIG9mIHJlcGFpbnQgbWV0aG9kcy4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMTQKKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudEhhaWt1OjppbnZhbGlkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1Lmg6CisKIDIwMTAtMDIt
MjMgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRIYWlrdS5jcHAKaW5kZXggYTdmMTE0NS4uYTllM2JiNSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAorKysgYi9X
ZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCkBAIC0yNTMs
NyArMjUzLDIyIEBAIEludFJlY3QgQ2hyb21lQ2xpZW50SGFpa3U6OndpbmRvd1Jlc2l6ZXJSZWN0
KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEhh
aWt1OjpyZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGlt
bWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIENocm9tZUNsaWVudEhhaWt1
OjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZVdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIENocm9tZUNsaWVudEhhaWt1OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3Qg
SW50UmVjdCYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYs
IGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9o
YWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKaW5kZXggM2Q3NzQ1OS4uOTkwZjNmMCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1
LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgK
QEAgLTEwMiw4ICsxMDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHRh
YnNUb0xpbmtzKCkgY29uc3Q7CiAgICAgICAgIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBj
b25zdDsKIAotICAgICAgICB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVu
dENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5
ID0gZmFsc2UpOworICAgICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0
JiwgYm9vbCk7CisgICAgICAgIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0Jiwg
Ym9vbCk7CisgICAgICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IElu
dFJlY3QmLCBib29sKTsKKyAgICAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKICAgICAgICAgdm9pZCBzY3JvbGwoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50
UmVjdCYgY2xpcFJlY3QpOworCiAgICAgICAgIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0
IEludFBvaW50JikgY29uc3Q7CiAgICAgICAgIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYpIGNvbnN0OwogICAgICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdl
Q2xpZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGY5MTRkODUuLjIzY2U4MzIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgbWFjIHBvcnQg
dG8gdGhlIHJlZmFjdG9yaW5nIG9mIHJlcGFpbnQgbWV0aG9kcy4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMTQKKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyk6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwp
OgorCiAyMDEwLTAzLTAyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgLVtXZWJWaWV3IF9yZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlOl0KZGlmZiAtLWdpdCBh
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGM4ZGE1M2IuLjg1MjY3ZDUg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTEs
OCArOTEsMTIgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3
aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRl
ID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0
YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBjbGlwUmVjdCk7CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVl
blRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBj
b25zdDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0K
aW5kZXggYjIyNDBkOS4uZGE2YzE1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQubW0KQEAgLTQzOSwyMCArNDM5LDM2IEBAIEludFJlY3QgV2ViQ2hyb21l
Q2xpZW50Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIGVuY2xvc2luZ0lu
dFJlY3QoW21fd2ViVmlldyBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3Om5pbF0pOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGNv
bnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBi
b29sKQoreworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyhjb25z
dCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaWYgKGltbWVkaWF0ZSkgeworICAg
ICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07CisgICAgICAgIFtbbV93
ZWJWaWV3IHdpbmRvd10gZmx1c2hXaW5kb3dJZk5lZWRlZF07CisgICAgfQorfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewogICAgIGlmIChbbV93ZWJWaWV3IF91c2VzRG9jdW1l
bnRWaWV3c10pCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAoY29udGVudENoYW5nZWQp
Ci0gICAgICAgIFttX3dlYlZpZXcgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOwotICAgIAor
CisgICAgW21fd2ViVmlldyBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6cmVjdF07CisKICAgICBpZiAo
aW1tZWRpYXRlKSB7CiAgICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZGlzcGxheUlmTmVlZGVk
XTsKICAgICAgICAgW1ttX3dlYlZpZXcgd2luZG93XSBmbHVzaFdpbmRvd0lmTmVlZGVkXTsKICAg
ICB9CiB9CiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIGludmFs
aWRhdGVDb250ZW50c0FuZFdpbmRvdyhyZWN0LCBpbW1lZGlhdGUpOworfQorCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3Qg
SW50UmVjdCYpCiB7CiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0
L3F0L0NoYW5nZUxvZwppbmRleCA5YzNlNjliLi42ZDkxYzE3IDEwMDY0NAotLS0gYS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSBxdCBwb3J0IHRvIHRo
ZSByZWZhY3RvcmluZyBvZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRR
dDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0
OjppbnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0Ojpp
bnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisKIDIwMTAtMDMtMDIgIFNpbW9uIEhhdXNtYW5u
ICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFN5bWJpYW4gYnVpbGQgZml4
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggZWNi
YWJlNC4uNmY2ODJjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0LmNwcAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuY3BwCkBAIC0zMjcsMjMgKzMyNywzNiBAQCBJbnRSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5k
b3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotdm9pZCBD
aHJvbWVDbGllbnRRdDo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNv
bnRlbnRDaGFuZ2VkLCBib29sLCBib29sKQordm9pZCBDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0
ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVj
dCYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGll
bnRRdDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHdpbmRvd1Jl
Y3QsIGJvb2wgaW1tZWRpYXRlKQogewogICAgIC8vIE5vIGRvdWJsZSBidWZmZXIsIHNvIG9ubHkg
dXBkYXRlIHRoZSBRV2lkZ2V0IGlmIGNvbnRlbnQgY2hhbmdlZC4KLSAgICBpZiAoY29udGVudENo
YW5nZWQpIHsKLSAgICAgICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7Ci0gICAgICAgICAg
ICBRUmVjdCByZWN0KHdpbmRvd1JlY3QpOwotICAgICAgICAgICAgcmVjdCA9IHJlY3QuaW50ZXJz
ZWN0ZWQoUVJlY3QoUVBvaW50KDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7Ci0g
ICAgICAgICAgICBpZiAoIXJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHBsYXRmb3Jt
UGFnZUNsaWVudCgpLT51cGRhdGUocmVjdCk7Ci0gICAgICAgIH0KLSAgICAgICAgZW1pdCBtX3dl
YlBhZ2UtPnJlcGFpbnRSZXF1ZXN0ZWQod2luZG93UmVjdCk7CisgICAgaWYgKHBsYXRmb3JtUGFn
ZUNsaWVudCgpKSB7CisgICAgICAgIFFSZWN0IHJlY3Qod2luZG93UmVjdCk7CisgICAgICAgIHJl
Y3QgPSByZWN0LmludGVyc2VjdGVkKFFSZWN0KFFQb2ludCgwLCAwKSwgbV93ZWJQYWdlLT52aWV3
cG9ydFNpemUoKSkpOworICAgICAgICBpZiAoIXJlY3QuaXNFbXB0eSgpKQorICAgICAgICAgICAg
cGxhdGZvcm1QYWdlQ2xpZW50KCktPnVwZGF0ZShyZWN0KTsKICAgICB9CisgICAgZW1pdCBtX3dl
YlBhZ2UtPnJlcGFpbnRSZXF1ZXN0ZWQod2luZG93UmVjdCk7CiAKICAgICAvLyBGSVhNRTogVGhl
cmUgaXMgbm8gImltbWVkaWF0ZSIgc3VwcG9ydCBmb3Igd2luZG93IHBhaW50aW5nLiAgVGhpcyBz
aG91bGQgYmUgZG9uZSBhbHdheXMgd2hlbmV2ZXIgdGhlIGZsYWcKICAgICAvLyBpcyBzZXQuCiB9
CiAKK3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwo
Y29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kV2luZG93KHdpbmRvd1JlY3QsIGltbWVkaWF0ZSk7Cit9CisKIHZvaWQg
Q2hyb21lQ2xpZW50UXQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVj
dCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IEludFJlY3QmKQogewogICAgIGlmIChwbGF0Zm9ybVBh
Z2VDbGllbnQoKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5k
ZXggZGEzZGE1OS4uY2I4YTk5NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFF0LmgKQEAgLTEwNSw4ICsxMDUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBJbnRS
ZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
cGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRl
ID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IElu
dFJlY3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Zv
clNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9T
Y3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKKwogICAgICAgICB2aXJ0dWFsIEludFBv
aW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZpcnR1
YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpp
bmRleCA5YTczY2I5Li42M2YzYzVhIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAzLTAyICBB
ZGFtIFRyZWF0ICA8YXRyZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdGhlIHdpbiBwb3J0IHRvIHRoZSByZWZhY3Rvcmlu
ZyBvZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVu
dHMpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlV2luZG93KToKKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDMtMDIg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBJV2ViVmlld1By
aXZhdGU6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0NWY3NjYyLi5hYjlmYWY0IDEwMDY0NAot
LS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00NTEsMTAg
KzQ1MSwyOCBAQCBJbnRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlY3QoKSBj
b25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZXBhaW50KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJv
b2wgaW1tZWRpYXRlLCBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpCiB7CiAgICAgQVNT
RVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKLSAgICBtX3dlYlZpZXctPnJl
cGFpbnQod2luZG93UmVjdCwgY29udGVudENoYW5nZWQsIGltbWVkaWF0ZSwgcmVwYWludENvbnRl
bnRPbmx5KTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRl
bnRDaGFuZ2VkKi8sIGZhbHNlIC8qaW1tZWRpYXRlKi8sIHRydWUgLypyZXBhaW50Q29udGVudE9u
bHkqLyk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlV2luZG93KGNvbnN0
IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIEFTU0VSVChjb3Jl
KG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpKSk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdp
bmRvd1JlY3QsIGZhbHNlIC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlLCBmYWxzZSAvKnJl
cGFpbnRDb250ZW50T25seSovKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVk
aWF0ZSkKK3sKKyAgICBBU1NFUlQoY29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOwor
ICAgIG1fd2ViVmlldy0+cmVwYWludCh3aW5kb3dSZWN0LCB0cnVlIC8qY29udGVudENoYW5nZWQq
LywgaW1tZWRpYXRlIC8qaW1tZWRpYXRlKi8sIGZhbHNlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8p
OworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBB
U1NFUlQoY29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOworICAgIG1fd2ViVmlldy0+
cmVwYWludCh3aW5kb3dSZWN0LCB0cnVlIC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlLCB0
cnVlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8pOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6
c2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxWaWV3UmVj
dCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCBmNzEzYWM3Li45NTEwZmM0IDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTkzLDggKzkzLDEyIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwg
dm9pZCByZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2Vk
LCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNl
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcCkgY29u
c3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHIpIGNvbnN0OwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50
IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5n
ZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggNjcxYTAyZC4uODJiYjI2ZCAxMDA2NDQK
LS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUg
d3ggcG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZUNsaWVudFd4OjppbnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
ZUNsaWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAxMC0wMy0wMSAgSmFr
b2IgUGV0c292aXRzICA8anBldHNvdml0c0ByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5jcHAgYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAK
aW5kZXggYWMyNWRhZi4uOTRiMDFjOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4LmNwcApAQCAtMzM2LDE0ICszMzYsMjkgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRX
eDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAK
LXZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBj
b250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQor
dm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHJl
Y3QsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGll
bnRXeDo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0
ZSkKK3sKKyAgICBpZiAoaW1tZWRpYXRlKQorICAgICAgICBtX3dlYlZpZXctPlVwZGF0ZSgpOwor
fQorCit2b2lkIENocm9tZUNsaWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIGludmFsaWRhdGVD
b250ZW50c0FuZFdpbmRvdyhyZWN0LCBpbW1lZGlhdGUpOworfQorCit2b2lkIENocm9tZUNsaWVu
dFd4OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgcmVjdCwgYm9v
bCBpbW1lZGlhdGUpCiB7CiAgICAgaWYgKCFtX3dlYlZpZXcpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKLSAgICBpZiAoY29udGVudENoYW5nZWQpCi0gICAgICAgIG1fd2ViVmlldy0+UmVmcmVzaFJl
Y3QocmVjdCk7Ci0gICAgCisKKyAgICBtX3dlYlZpZXctPlJlZnJlc2hSZWN0KHJlY3QpOworCiAg
ICAgaWYgKGltbWVkaWF0ZSkgewogICAgICAgICBtX3dlYlZpZXctPlVwZGF0ZSgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDNiZjkyMDIuLmM2
NzBmOTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMTAy
LDggKzEwMiwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEJhY2tpbmdTdG9y
ZShpbnQgZHgsIGludCBkeSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCk7
CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29u
dGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRP
bmx5ID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3Qg
SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0
IEludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5k
V2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYg
cmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKICAgICB2aXJ0dWFsIElu
dFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVh
bCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICB2aXJ0
dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49837</attachid>
            <date>2010-03-02 13:26:53 -0800</date>
            <delta_ts>2010-03-02 16:09:39 -0800</delta_ts>
            <desc>Third try fixing misc style and build fixes for haiku/chromium ports</desc>
            <filename>34214_b.patch</filename>
            <type>text/plain</type>
            <size>34945</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTI2MWM0Yy4uY2RlYjQzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAg
PGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yIHRoZSBIb3N0V2luZG93IG1ldGhvZHMgZm9yIHJlcGFpbnQsIHNj
cm9sbCwgaW52YWxpZGF0ZSBhbmQgYmxpdAorICAgICAgICBvZiBiYWNraW5nc3RvcmUgYW5kIHdp
bmRvdyBieSBlbGltaW5hdGluZyB0aGUgdGhyZWUgYm9vbHMgdGhhdCBjdXJyZW50bHkKKyAgICAg
ICAgZXhpc3QgYXMgcGFyYW1zIG9mIHRoZSByZXBhaW50IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgSSd2ZSBh
ZGRlZCBleHRyYSBtZXRob2RzIHRvIHByb3ZpZGUgdGhlIGhvc3RzIHdpdGggbW9yZSBzZW1hbnRp
YworICAgICAgICBpbmZvcm1hdGlvbiBvZiB3aGF0IGlzIGJlaW5nIHJlcXVlc3RlZCB0aHVzIGVs
aW1pbmF0aW5nIHRoZSBuZWVkIGZvcgorICAgICAgICB0aGVzZSBib29scy4KKworICAgICAgICBO
byB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBzaG91bGQgbm90IGludHJvZHVjZSBhbnkgYmVoYXZpb3Ig
Y2hhbmdlcyBpbiBhbnkKKyAgICAgICAgb2YgdGhlIHBvcnRzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVDb250
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToK
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRvdy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2Nyb2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
d2hlZWxFdmVudCk6CisKIDIwMTAtMDMtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggMmY5YTI2Ny4uMzcyN2MwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTExNSwxMiArMTE1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3Mo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jl
c2l6ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxCYWNraW5nU3RvcmUoaW50LCBpbnQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wsIGJvb2wsIGJvb2wpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJv
b2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IEludFJlY3QmLCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkge307CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJl
Y3QmKSB7IH0KKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmIHApIGNvbnN0IHsgcmV0dXJuIHA7IH0KICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93
VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgeyByZXR1cm4gcjsgfQogICAgIHZpcnR1
YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKaW5kZXggNjYyNGQ3OC4uNzcxZGY4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTY3LDkgKzY3
LDI0IEBAIENocm9tZTo6fkNocm9tZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgp
OwogfQogCi12b2lkIENocm9tZTo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9u
bHkpCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewotICAgIG1fY2xpZW50LT5yZXBhaW50KHdpbmRvd1Jl
Y3QsIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIHJlcGFpbnRDb250ZW50T25seSk7CisgICAg
bV9jbGllbnQtPmludmFsaWRhdGVDb250ZW50cyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworfQor
Cit2b2lkIENocm9tZTo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBtX2NsaWVudC0+aW52YWxpZGF0ZVdpbmRvdyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOworfQorCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQorewor
ICAgIG1fY2xpZW50LT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1t
ZWRpYXRlKTsKK30KKwordm9pZCBDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgbV9j
bGllbnQtPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgaW1tZWRp
YXRlKTsKIH0KIAogdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAppbmRleCA3NTNhZGVhLi4yNzlhN2Y4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC02MCw4ICs2MCwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQ7IH0KIAogICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCi0gICAgICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29u
c3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IElu
dFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4o
Y29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVu
dCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBiMDVkODVi
Li5mY2M4NzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QgPSAwOwogCiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBm
YWxzZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29u
c3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVX
aW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiwgYm9vbCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICAgICAgdmly
dHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsK
ICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBj
b25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWM1N2M2NC4uMmU5OTA4YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIEZyYW1lVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CiAg
ICAgICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgICAgICBob3N0V2luZG93KCktPnJlcGFp
bnQocmVjdCwgdHJ1ZSk7CisgICAgICAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhyZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4MGY2YmRjLi45N2FiZjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL0hvc3RXaW5kb3cuaApAQCAtMzUsMTQgKzM1LDIwIEBAIGNsYXNzIEhvc3RXaW5kb3cgOiBw
dWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhvc3RXaW5kb3coKSB7
IH0KIAotICAgIC8vIFRoZSByZXBhaW50IG1ldGhvZCBhc2tzIHRoZSBob3N0IHdpbmRvdyB0byBy
ZXBhaW50IGEgcmVjdCBpbiB0aGUgd2luZG93J3MgY29vcmRpbmF0ZSBzcGFjZS4gIFRoZQotICAg
IC8vIGNvbnRlbnRDaGFuZ2VkIGJvb2xlYW4gaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBX
ZWIgcGFnZSBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKG9yIGlmIGEgcmVwYWludAotICAgIC8v
IG9mIHVuY2hhbmdlZCBjb250ZW50IGlzIGJlaW5nIHJlcXVlc3RlZCkuCi0gICAgdmlydHVhbCB2
b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpID0gMDsKKyAg
ICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cywgbm90IHRoZSB3
aW5kb3cuICBJZiBpbW1lZGlhdGUgaXMgdHJ1ZSBkbyBzbyBzeW5jaHJvbm91c2x5LCBvdGhlcndp
c2UgYXN5bmMuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOworCisgICAgLy8gUmVxdWVzdHMg
dGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgd2luZG93LCBub3QgdGhlIGNvbnRlbnRzLiAgSWYgaW1t
ZWRpYXRlIGlzIHRydWUgZG8gc28gc3luY2hyb25vdXNseSwgb3RoZXJ3aXNlIGFzeW5jLgorICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qs
IGJvb2wgaW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlk
YXRlIHRoZSBjb250ZW50cyBhbmQgdGhlIHdpbmRvdy4gIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRv
IHNvIHN5bmNocm9ub3VzbHksIG90aGVyd2lzZSBhc3luYy4KKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wg
aW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBzY3JvbGwgYmFja2lu
Z3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8gc2Nyb2xsLCBhbmQgY2xpcCBy
ZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpID0g
MDsKIAotICAgIC8vIFRoZSBwYWludCBtZXRob2QganVzdCBjYXVzZXMgYSBzeW5jaHJvbm91cyB1
cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBwZW4gZm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgaXQg
KFdpbmRvd3MpLgotICAgIHZvaWQgcGFpbnQoKSB7IHJlcGFpbnQoSW50UmVjdCgpLCBmYWxzZSwg
dHJ1ZSk7IH0KKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50
cywgbm90IHRoZSB3aW5kb3cuICBUaGlzIGlzIHRoZSBzbG93IHBhdGggZm9yIHNjcm9sbGluZy4K
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwogICAgIAogICAgIC8vIE1l
dGhvZHMgZm9yIGRvaW5nIGNvb3JkaW5hdGUgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gc2NyZWVu
IGNvb3JkaW5hdGVzLgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2MzBhZDEy
Li4zYmRlODlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTUwMSwzMSArNTAxLDMwIEBA
IHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qoc2Nyb2xsVmlld1JlY3QpOwogCiAgICAgLy8g
SW52YWxpZGF0ZSB0aGUgd2luZG93IChub3QgdGhlIGJhY2tpbmcgc3RvcmUpLgotICAgIGhvc3RX
aW5kb3coKS0+cmVwYWludCh1cGRhdGVSZWN0LCBmYWxzZSk7CisgICAgaG9zdFdpbmRvdygpLT5p
bnZhbGlkYXRlV2luZG93KHVwZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogCiAgICAg
aWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKICAgICAgICAgaW50IHBhbkljb25EaXJ0eVNxdWFy
ZVNpemVMZW5ndGggPSAyICogKHBhbkljb25TaXplTGVuZ3RoICsgbWF4KGFicyhzY3JvbGxEZWx0
YS53aWR0aCgpKSwgYWJzKHNjcm9sbERlbHRhLmhlaWdodCgpKSkpOyAvLyBXZSBvbmx5IHdhbnQg
dG8gcmVwYWludCB3aGF0J3MgbmVjZXNzYXJ5CiAgICAgICAgIEludFBvaW50IHBhbkljb25EaXJ0
eVNxdWFyZUxvY2F0aW9uID0gSW50UG9pbnQobV9wYW5TY3JvbGxJY29uUG9pbnQueCgpIC0gKHBh
bkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSwgbV9wYW5TY3JvbGxJY29uUG9pbnQueSgp
IC0gKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSk7CiAgICAgICAgIEludFJlY3Qg
cGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCA9IEludFJlY3QocGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRp
b24gLCBJbnRTaXplKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGgsIHBhbkljb25EaXJ0eVNx
dWFyZVNpemVMZW5ndGgpKTsKICAgICAgICAgcGFuU2Nyb2xsSWNvbkRpcnR5UmVjdC5pbnRlcnNl
Y3QoY2xpcFJlY3QpOwotICAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQocGFuU2Nyb2xsSWNv
bkRpcnR5UmVjdCwgdHJ1ZSk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8p
OwogICAgIH0KIAogICAgIGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFt
ZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdwotICAgICAgIC8vIEZJWE1FOiBGaW5k
IGEgd2F5IHRvIGJsaXQgc3ViZnJhbWVzIHdpdGhvdXQgYmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29u
dGVudAorICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIHNjcm9sbCBzdWJmcmFtZXMgd2l0
aCB0aGlzIGZhc3RlciBwYXRoCiAgICAgICAgaG9zdFdpbmRvdygpLT5zY3JvbGwoLXNjcm9sbERl
bHRhLCBzY3JvbGxWaWV3UmVjdCwgY2xpcFJlY3QpOwogICAgIH0gZWxzZSB7IAogICAgICAgIC8v
IFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJlcGFpbnQgdGhlIGVudGlyZSBiYWNraW5nIHN0b3Jl
LiAgRG8gaXQgbm93IGJlZm9yZSBtb3ZpbmcgdGhlCiAgICAgICAgLy8gd2luZG93ZWQgcGx1Z2lu
cy4KLSAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQodXBkYXRlUmVjdCwgdHJ1ZSwgZmFsc2Us
IHRydWUpOyAvLyBJbnZhbGlkYXRlIHRoZSBiYWNraW5nIHN0b3JlIGFuZCByZXBhaW50IGl0IHN5
bmNocm9ub3VzbHkKKyAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOwogICAgIH0KIAogICAgIC8vIFRoaXMgY2FsbCB3
aWxsIG1vdmUgY2hpbGRyZW4gd2l0aCBuYXRpdmUgd2lkZ2V0cyAocGx1Z2lucykgYW5kIGludmFs
aWRhdGUgdGhlbSBhcyB3ZWxsLgogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CiAKLSAgICAvLyBO
b3cgdXBkYXRlIHRoZSB3aW5kb3cgKHdoaWNoIHNob3VsZCBkbyBub3RoaW5nIGJ1dCBhIGJsaXQg
b2YgdGhlIGJhY2tpbmcgc3RvcmUncyB1cGRhdGVSZWN0IGFuZCBzbyBzaG91bGQKLSAgICAvLyBi
ZSB2ZXJ5IGZhc3QpLgotICAgIGhvc3RXaW5kb3coKS0+cGFpbnQoKTsKKyAgICAvLyBOb3cgYmxp
dCB0aGUgYmFja2luZ3N0b3JlIGludG8gdGhlIHdpbmRvdyB3aGljaCBzaG91bGQgYmUgdmVyeSBm
YXN0LgorICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyhJbnRSZWN0KCksIHRydWUp
OwogfQogCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRzKGNvbnN0IEludFBv
aW50JiB3aW5kb3dQb2ludCkgY29uc3QKQEAgLTcxNSw3ICs3MTQsNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93
KQogICAgIH0KIAogICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgIGhvc3RXaW5kb3coKS0+
cmVwYWludChjb250ZW50c1RvV2luZG93KHBhaW50UmVjdCksIHRydWUsIG5vdyk7CisgICAgICAg
IGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnRlbnRzVG9XaW5k
b3cocGFpbnRSZWN0KSwgbm93IC8qaW1tZWRpYXRlKi8pOwogfQogCiBJbnRSZWN0IFNjcm9sbFZp
ZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdApAQCAtOTMzLDcgKzkzMiw3IEBAIHZvaWQgU2Ny
b2xsVmlldzo6YWRkUGFuU2Nyb2xsSWNvbihjb25zdCBJbnRQb2ludCYgaWNvblBvc2l0aW9uKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IHRydWU7ICAgIAogICAg
IG1fcGFuU2Nyb2xsSWNvblBvaW50ID0gSW50UG9pbnQoaWNvblBvc2l0aW9uLngoKSAtIHBhbklj
b25TaXplTGVuZ3RoIC8gMiAsIGljb25Qb3NpdGlvbi55KCkgLSBwYW5JY29uU2l6ZUxlbmd0aCAv
IDIpIDsKLSAgICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Q
b2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCxwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVl
LCB0cnVlKTsgICAgCisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3coSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0
aCwgcGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKIH0KIAogdm9pZCBT
Y3JvbGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKQEAgLTk0MSw3ICs5NDAsNyBAQCB2b2lk
IFNjcm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQogICAgIGlmICghaG9zdFdpbmRvdygp
KQogICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IGZhbHNlOyAKLSAg
ICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50
U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSwgdHJ1ZSk7
CisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coSW50UmVjdCht
X3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNp
emVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKIH0KIAogI2lmICFQTEFURk9STShXWCkg
JiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDI2Yjg2
YS4uMzU0ZGM1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDIgIEFk
YW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgY2hyb21pdW0gcG9ydCB0byB0aGUgcmVmYWN0
b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29u
dGVudHMpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlV2lu
ZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5o
OgorCiAyMDEwLTAzLTAyICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGE0MjBkYTMuLjQ0ZTc4YWMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNDY2LDE1ICs0NjYsMjUgQEAgSW50UmVj
dCBDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXBhaW50KAotICAgIGNvbnN0
IEludFJlY3QmIHBhaW50UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUs
Ci0gICAgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIENocm9tZUNsaWVudEltcGw6Omlu
dmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmludmFsaWRhdGVXaW5kb3coY29u
c3QgSW50UmVjdCYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBD
aHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0ZSovKQogewotICAgIC8vIElnbm9yZSBzcHVy
aW91cyBjYWxscy4KLSAgICBpZiAoIWNvbnRlbnRDaGFuZ2VkIHx8IHBhaW50UmVjdC5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAg
ICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJlY3QocGFpbnRSZWN0KTsKKyAg
ICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJlY3QodXBkYXRlUmVjdCk7
Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBp
bnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKIH0KIAog
dm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzY3JvbGwoCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCmluZGV4IDViZjkzODIuLjNlMmY2OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCkBAIC05Niw5ICs5NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKICAgICB2aXJ0dWFsIGJvb2wgdGFic1Rv
TGlua3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2luZG93UmVzaXpl
clJlY3QoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgKLSAgICAgICAgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0g
ZmFsc2UsCi0gICAgICAgIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJv
b2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2lu
ZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9v
bCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbCgKICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwK
ICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAzYjEwMGJl
Li5hYTViYTMxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8
YXRyZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRhcHQgdGhlIGd0ayBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBvZiByZXBhaW50
IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oOgorCiAyMDEwLTAz
LTAxICBKb3PDqSBNaWxsw6FuIFNvdG8gIDxqbWlsbGFuQGlnYWxpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IGQ0Y2NlOGEuLjJhNTczNTcgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysg
Yi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTM0MSwy
MCArMzQxLDM0IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OnJlcGFp
bnQoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBp
bW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQordm9pZCBDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKIHsKLSAgICBHZGtSZWN0YW5n
bGUgcmVjdCA9IHdpbmRvd1JlY3Q7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBD
aHJvbWVDbGllbnQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVD
b250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKK3sKKyAgICBHZGtSZWN0YW5nbGUgcmVjdCA9IHVwZGF0ZVJlY3Q7CiAgICAgR2RrV2luZG93
KiB3aW5kb3cgPSBHVEtfV0lER0VUKG1fd2ViVmlldyktPndpbmRvdzsKIAogICAgIGlmICh3aW5k
b3cpIHsKLSAgICAgICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQotICAgICAgICAgICAgZ2RrX3dpbmRv
d19pbnZhbGlkYXRlX3JlY3Qod2luZG93LCAmcmVjdCwgRkFMU0UpOworICAgICAgICBnZGtfd2lu
ZG93X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0LCBGQUxTRSk7CiAgICAgICAgIC8vIFdl
IGRvbid0IGN1cnJlbnRseSBkbyBpbW1lZGlhdGUgdXBkYXRlcyBzaW5jZSB0aGV5IGRlbGF5IG90
aGVyIFVJIGVsZW1lbnRzLgogICAgICAgICAvL2lmIChpbW1lZGlhdGUpCiAgICAgICAgIC8vICAg
IGdka193aW5kb3dfcHJvY2Vzc191cGRhdGVzKHdpbmRvdywgRkFMU0UpOwogICAgIH0KIH0KIAor
dm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3QsIGltbWVkaWF0ZSk7Cit9CisKIHZvaWQgQ2hyb21l
Q2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RU
b1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgR2RrV2luZG93KiB3aW5k
b3cgPSBHVEtfV0lER0VUKG1fd2ViVmlldyktPndpbmRvdzsKZGlmZiAtLWdpdCBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDYyZDQ4ZmEuLjY5ZmI5ZTcgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtODcsOCArODcsMTIg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0
IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcGFp
bnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJv
b2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNv
bnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNs
aXBSZWN0KTsKKwogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2lu
ZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVu
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9o
YWlrdS9DaGFuZ2VMb2cKaW5kZXggNGMzN2JhZS4uOWUzZDlkYyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgaGFpa3Ug
cG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKwogMjAx
MC0wMi0yMyAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBhN2YxMTQ1Li5jZDhmMWY0IDEwMDY0NAot
LS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCisr
KyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKQEAg
LTI1Myw3ICsyNTMsMjIgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRIYWlrdTo6d2luZG93UmVzaXpl
clJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50SGFpa3U6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJv
b2wgaW1tZWRpYXRlLCBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50
SGFpa3U6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudEhhaWt1OjppbnZhbGlkYXRl
V2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhj
b25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IENocm9tZUNsaWVudEhhaWt1OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IEludFJlY3QmLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaCBiL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCmluZGV4IDNkNzc0NTku
Ljk5MGYzZjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRIYWlrdS5oCkBAIC0xMDIsOCArMTAyLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0OwogICAgICAgICBJbnRSZWN0IHdpbmRvd1Jlc2l6
ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBi
b29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRD
b250ZW50T25seSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29u
c3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3Qg
SW50UmVjdCYsIGJvb2wpOworICAgICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZvaWQgc2Nyb2xs
KGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGws
IGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKKwogICAgICAgICBJbnRQb2ludCBzY3JlZW5Ub1dp
bmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgICAgICBJbnRSZWN0IHdpbmRvd1RvU2Ny
ZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBs
YXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmOTE0ZDg1Li4yM2NlODMyIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8YXRyZWF0QHJpbS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdGhl
IG1hYyBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBvZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVX
aW5kb3cpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRX
aW5kb3cpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKToKKwogMjAxMC0wMy0wMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkIC1bV2ViVmlldyBfcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZTpdCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjOGRhNTNi
Li44NTI2N2Q1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTkxLDggKzkxLDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBy
ZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Fu
ZFdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
c2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogICAg
IHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgY29uc3Q7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1Q
YWdlQ2xpZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCmluZGV4IGIyMjQwZDkuLmRhNmMxNWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC00MzksMjAgKzQzOSwzNiBAQCBJbnRSZWN0
IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBl
bmNsb3NpbmdJbnRSZWN0KFttX3dlYlZpZXcgY29udmVydFJlY3Q6cmVjdCBmcm9tVmlldzpuaWxd
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgcmVj
dCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRl
bnRPbmx5KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCkKK3sKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVX
aW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIGlmIChpbW1lZGlh
dGUpIHsKKyAgICAgICAgW1ttX3dlYlZpZXcgd2luZG93XSBkaXNwbGF5SWZOZWVkZWRdOworICAg
ICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGZsdXNoV2luZG93SWZOZWVkZWRdOworICAgIH0KK30K
Kwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25z
dCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKIHsKICAgICBpZiAoW21fd2ViVmlldyBf
dXNlc0RvY3VtZW50Vmlld3NdKQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKGNvbnRl
bnRDaGFuZ2VkKQotICAgICAgICBbbV93ZWJWaWV3IHNldE5lZWRzRGlzcGxheUluUmVjdDpyZWN0
XTsKLSAgICAKKworICAgIFttX3dlYlZpZXcgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOwor
CiAgICAgaWYgKGltbWVkaWF0ZSkgewogICAgICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGRpc3Bs
YXlJZk5lZWRlZF07CiAgICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZmx1c2hXaW5kb3dJZk5l
ZWRlZF07CiAgICAgfQogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKK3sK
KyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cocmVjdCwgaW1tZWRpYXRlKTsKK30KKwog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVj
dCYsIGNvbnN0IEludFJlY3QmKQogewogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxv
ZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOWMzZTY5Yi4uNmQ5MWMxNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgcXQg
cG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnRRdDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDEwLTAzLTAyICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBTeW1iaWFu
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
CmluZGV4IGVjYmFiZTQuLjZmNjgyYzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0LmNwcApAQCAtMzI3LDIzICszMjcsMzYgQEAgSW50UmVjdCBDaHJvbWVDbGll
bnRRdDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9
CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgd2luZG93UmVj
dCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCwgYm9vbCkKK3ZvaWQgQ2hyb21lQ2xpZW50UXQ6
OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlV2luZG93KGNv
bnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
Q2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0
JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKIHsKICAgICAvLyBObyBkb3VibGUgYnVmZmVy
LCBzbyBvbmx5IHVwZGF0ZSB0aGUgUVdpZGdldCBpZiBjb250ZW50IGNoYW5nZWQuCi0gICAgaWYg
KGNvbnRlbnRDaGFuZ2VkKSB7Ci0gICAgICAgIGlmIChwbGF0Zm9ybVBhZ2VDbGllbnQoKSkgewot
ICAgICAgICAgICAgUVJlY3QgcmVjdCh3aW5kb3dSZWN0KTsKLSAgICAgICAgICAgIHJlY3QgPSBy
ZWN0LmludGVyc2VjdGVkKFFSZWN0KFFQb2ludCgwLCAwKSwgbV93ZWJQYWdlLT52aWV3cG9ydFNp
emUoKSkpOwotICAgICAgICAgICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICBwbGF0Zm9ybVBhZ2VDbGllbnQoKS0+dXBkYXRlKHJlY3QpOwotICAgICAgICB9Ci0gICAgICAg
IGVtaXQgbV93ZWJQYWdlLT5yZXBhaW50UmVxdWVzdGVkKHdpbmRvd1JlY3QpOworICAgIGlmIChw
bGF0Zm9ybVBhZ2VDbGllbnQoKSkgeworICAgICAgICBRUmVjdCByZWN0KHdpbmRvd1JlY3QpOwor
ICAgICAgICByZWN0ID0gcmVjdC5pbnRlcnNlY3RlZChRUmVjdChRUG9pbnQoMCwgMCksIG1fd2Vi
UGFnZS0+dmlld3BvcnRTaXplKCkpKTsKKyAgICAgICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIHBsYXRmb3JtUGFnZUNsaWVudCgpLT51cGRhdGUocmVjdCk7CiAgICAgfQorICAg
IGVtaXQgbV93ZWJQYWdlLT5yZXBhaW50UmVxdWVzdGVkKHdpbmRvd1JlY3QpOwogCiAgICAgLy8g
RklYTUU6IFRoZXJlIGlzIG5vICJpbW1lZGlhdGUiIHN1cHBvcnQgZm9yIHdpbmRvdyBwYWludGlu
Zy4gIFRoaXMgc2hvdWxkIGJlIGRvbmUgYWx3YXlzIHdoZW5ldmVyIHRoZSBmbGFnCiAgICAgLy8g
aXMgc2V0LgogfQogCit2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1tZWRpYXRlKQorewor
ICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyh3aW5kb3dSZWN0LCBpbW1lZGlhdGUpOwor
fQorCiB2b2lkIENocm9tZUNsaWVudFF0OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNv
bnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JikKIHsKICAgICBpZiAo
cGxhdGZvcm1QYWdlQ2xpZW50KCkpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5oCmluZGV4IGRhM2RhNTkuLmNiOGE5OTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xMDUsOCArMTA1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3Q7CiAgICAgICAgIHZp
cnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCi0gICAgICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVj
dCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKICAgICAgICAgdmly
dHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAg
ICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggOWE3M2NiOS4uNjNmM2M1YSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
MC0wMy0wMiAgQWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSB3aW4gcG9ydCB0byB0aGUg
cmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxp
ZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRv
dyk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dT
Y3JvbGwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAy
MDEwLTAzLTAyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
SVdlYlZpZXdQcml2YXRlOjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlCmRpZmYgLS1naXQgYS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDVmNzY2Mi4uYWI5ZmFm
NCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApA
QCAtNDUxLDEwICs0NTEsMjggQEAgSW50UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1Jlc2l6
ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNvbnRlbnRD
aGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKQog
ewogICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpKSk7Ci0gICAgbV93
ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIHJl
cGFpbnRDb250ZW50T25seSk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIHRy
dWUgLypjb250ZW50Q2hhbmdlZCovLCBmYWxzZSAvKmltbWVkaWF0ZSovLCB0cnVlIC8qcmVwYWlu
dENvbnRlbnRPbmx5Ki8pOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdp
bmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBB
U1NFUlQoY29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOworICAgIG1fd2ViVmlldy0+
cmVwYWludCh3aW5kb3dSZWN0LCBmYWxzZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSwg
ZmFsc2UgLypyZXBhaW50Q29udGVudE9ubHkqLyk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwg
Ym9vbCBpbW1lZGlhdGUpCit7CisgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZy
YW1lKCkpKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRl
bnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSAvKmltbWVkaWF0ZSovLCBmYWxzZSAvKnJlcGFpbnRDb250
ZW50T25seSovKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBpbW1lZGlhdGUp
Cit7CisgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKKyAgICBt
X3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGlt
bWVkaWF0ZSwgdHJ1ZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKIH0KIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgc2Ny
b2xsVmlld1JlY3QsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjcxM2FjNy4uOTUxMGZjNCAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC05Myw4ICs5Mywx
MiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3Q7CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250
ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9u
bHkgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5k
b3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0
VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKKwogICAgIHZpcnR1
YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHApIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVl
bihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByKSBjb25zdDsKICAgICB2aXJ0dWFsIFBsYXRmb3Jt
UGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktp
dC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDY3MWEwMmQuLjgyYmIy
NmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8YXRyZWF0QHJp
bS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRhcHQgdGhlIHd4IHBvcnQgdG8gdGhlIHJlZmFjdG9yaW5nIG9mIHJlcGFpbnQgbWV0aG9kcy4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMTQK
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2lu
ZG93KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisKIDIwMTAt
MDMtMDEgIEpha29iIFBldHNvdml0cyAgPGpwZXRzb3ZpdHNAcmltLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guY3BwCmluZGV4IGFjMjVkYWYuLjk0YjAxYzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAorKysgYi9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTMzNiwxNCArMzM2LDI5IEBAIEludFJlY3QgQ2hy
b21lQ2xpZW50V3g6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVj
dCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudFd4OjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHJl
Y3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlLCBib29sIHJlcGFpbnRDb250
ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJ
bnRSZWN0JiByZWN0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
Q2hyb21lQ2xpZW50V3g6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYgcmVjdCwgYm9v
bCBpbW1lZGlhdGUpCit7CisgICAgaWYgKGltbWVkaWF0ZSkKKyAgICAgICAgbV93ZWJWaWV3LT5V
cGRhdGUoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBp
bnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cocmVjdCwgaW1tZWRpYXRlKTsKK30KKwordm9pZCBD
aHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3Qm
IHJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewogICAgIGlmICghbV93ZWJWaWV3KQogICAgICAgICBy
ZXR1cm47Ci0gICAgCi0gICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQotICAgICAgICBtX3dlYlZpZXct
PlJlZnJlc2hSZWN0KHJlY3QpOwotICAgIAorCisgICAgbV93ZWJWaWV3LT5SZWZyZXNoUmVjdChy
ZWN0KTsKKwogICAgIGlmIChpbW1lZGlhdGUpIHsKICAgICAgICAgbV93ZWJWaWV3LT5VcGRhdGUo
KTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAppbmRleCAz
YmY5MjAyLi5jNjcwZjk5IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmgKQEAgLTEwMiw4ICsxMDIsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxC
YWNraW5nU3RvcmUoaW50IGR4LCBpbnQgZHksIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0
LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tp
bmdTdG9yZSgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3Qm
LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFp
bnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdp
bmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAg
dmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7
CiAgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49862</attachid>
            <date>2010-03-02 16:09:39 -0800</date>
            <delta_ts>2010-03-03 06:48:19 -0800</delta_ts>
            <desc>Fourth try fixing chromium build</desc>
            <filename>34214_c.patch</filename>
            <type>text/plain</type>
            <size>35527</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTI2MWM0Yy4uY2RlYjQzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAg
PGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yIHRoZSBIb3N0V2luZG93IG1ldGhvZHMgZm9yIHJlcGFpbnQsIHNj
cm9sbCwgaW52YWxpZGF0ZSBhbmQgYmxpdAorICAgICAgICBvZiBiYWNraW5nc3RvcmUgYW5kIHdp
bmRvdyBieSBlbGltaW5hdGluZyB0aGUgdGhyZWUgYm9vbHMgdGhhdCBjdXJyZW50bHkKKyAgICAg
ICAgZXhpc3QgYXMgcGFyYW1zIG9mIHRoZSByZXBhaW50IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgSSd2ZSBh
ZGRlZCBleHRyYSBtZXRob2RzIHRvIHByb3ZpZGUgdGhlIGhvc3RzIHdpdGggbW9yZSBzZW1hbnRp
YworICAgICAgICBpbmZvcm1hdGlvbiBvZiB3aGF0IGlzIGJlaW5nIHJlcXVlc3RlZCB0aHVzIGVs
aW1pbmF0aW5nIHRoZSBuZWVkIGZvcgorICAgICAgICB0aGVzZSBib29scy4KKworICAgICAgICBO
byB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBzaG91bGQgbm90IGludHJvZHVjZSBhbnkgYmVoYXZpb3Ig
Y2hhbmdlcyBpbiBhbnkKKyAgICAgICAgb2YgdGhlIHBvcnRzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVDb250
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToK
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRvdy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2Nyb2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
d2hlZWxFdmVudCk6CisKIDIwMTAtMDMtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggMmY5YTI2Ny4uMzcyN2MwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTExNSwxMiArMTE1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3Mo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jl
c2l6ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxCYWNraW5nU3RvcmUoaW50LCBpbnQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wsIGJvb2wsIGJvb2wpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJv
b2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IEludFJlY3QmLCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkge307CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJl
Y3QmKSB7IH0KKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmIHApIGNvbnN0IHsgcmV0dXJuIHA7IH0KICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93
VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgeyByZXR1cm4gcjsgfQogICAgIHZpcnR1
YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKaW5kZXggNjYyNGQ3OC4uNzcxZGY4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTY3LDkgKzY3
LDI0IEBAIENocm9tZTo6fkNocm9tZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgp
OwogfQogCi12b2lkIENocm9tZTo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9u
bHkpCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewotICAgIG1fY2xpZW50LT5yZXBhaW50KHdpbmRvd1Jl
Y3QsIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIHJlcGFpbnRDb250ZW50T25seSk7CisgICAg
bV9jbGllbnQtPmludmFsaWRhdGVDb250ZW50cyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworfQor
Cit2b2lkIENocm9tZTo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBtX2NsaWVudC0+aW52YWxpZGF0ZVdpbmRvdyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOworfQorCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQorewor
ICAgIG1fY2xpZW50LT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1t
ZWRpYXRlKTsKK30KKwordm9pZCBDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgbV9j
bGllbnQtPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgaW1tZWRp
YXRlKTsKIH0KIAogdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAppbmRleCA3NTNhZGVhLi4yNzlhN2Y4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC02MCw4ICs2MCwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQ7IH0KIAogICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCi0gICAgICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29u
c3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IElu
dFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4o
Y29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVu
dCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBiMDVkODVi
Li5mY2M4NzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QgPSAwOwogCiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBm
YWxzZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29u
c3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVX
aW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiwgYm9vbCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICAgICAgdmly
dHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsK
ICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBj
b25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWM1N2M2NC4uMmU5OTA4YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIEZyYW1lVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CiAg
ICAgICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgICAgICBob3N0V2luZG93KCktPnJlcGFp
bnQocmVjdCwgdHJ1ZSk7CisgICAgICAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhyZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4MGY2YmRjLi45N2FiZjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL0hvc3RXaW5kb3cuaApAQCAtMzUsMTQgKzM1LDIwIEBAIGNsYXNzIEhvc3RXaW5kb3cgOiBw
dWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhvc3RXaW5kb3coKSB7
IH0KIAotICAgIC8vIFRoZSByZXBhaW50IG1ldGhvZCBhc2tzIHRoZSBob3N0IHdpbmRvdyB0byBy
ZXBhaW50IGEgcmVjdCBpbiB0aGUgd2luZG93J3MgY29vcmRpbmF0ZSBzcGFjZS4gIFRoZQotICAg
IC8vIGNvbnRlbnRDaGFuZ2VkIGJvb2xlYW4gaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBX
ZWIgcGFnZSBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKG9yIGlmIGEgcmVwYWludAotICAgIC8v
IG9mIHVuY2hhbmdlZCBjb250ZW50IGlzIGJlaW5nIHJlcXVlc3RlZCkuCi0gICAgdmlydHVhbCB2
b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpID0gMDsKKyAg
ICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cywgbm90IHRoZSB3
aW5kb3cuICBJZiBpbW1lZGlhdGUgaXMgdHJ1ZSBkbyBzbyBzeW5jaHJvbm91c2x5LCBvdGhlcndp
c2UgYXN5bmMuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOworCisgICAgLy8gUmVxdWVzdHMg
dGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgd2luZG93LCBub3QgdGhlIGNvbnRlbnRzLiAgSWYgaW1t
ZWRpYXRlIGlzIHRydWUgZG8gc28gc3luY2hyb25vdXNseSwgb3RoZXJ3aXNlIGFzeW5jLgorICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qs
IGJvb2wgaW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlk
YXRlIHRoZSBjb250ZW50cyBhbmQgdGhlIHdpbmRvdy4gIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRv
IHNvIHN5bmNocm9ub3VzbHksIG90aGVyd2lzZSBhc3luYy4KKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wg
aW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBzY3JvbGwgYmFja2lu
Z3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8gc2Nyb2xsLCBhbmQgY2xpcCBy
ZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpID0g
MDsKIAotICAgIC8vIFRoZSBwYWludCBtZXRob2QganVzdCBjYXVzZXMgYSBzeW5jaHJvbm91cyB1
cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBwZW4gZm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgaXQg
KFdpbmRvd3MpLgotICAgIHZvaWQgcGFpbnQoKSB7IHJlcGFpbnQoSW50UmVjdCgpLCBmYWxzZSwg
dHJ1ZSk7IH0KKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50
cywgbm90IHRoZSB3aW5kb3cuICBUaGlzIGlzIHRoZSBzbG93IHBhdGggZm9yIHNjcm9sbGluZy4K
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwogICAgIAogICAgIC8vIE1l
dGhvZHMgZm9yIGRvaW5nIGNvb3JkaW5hdGUgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gc2NyZWVu
IGNvb3JkaW5hdGVzLgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2MzBhZDEy
Li4zYmRlODlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTUwMSwzMSArNTAxLDMwIEBA
IHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qoc2Nyb2xsVmlld1JlY3QpOwogCiAgICAgLy8g
SW52YWxpZGF0ZSB0aGUgd2luZG93IChub3QgdGhlIGJhY2tpbmcgc3RvcmUpLgotICAgIGhvc3RX
aW5kb3coKS0+cmVwYWludCh1cGRhdGVSZWN0LCBmYWxzZSk7CisgICAgaG9zdFdpbmRvdygpLT5p
bnZhbGlkYXRlV2luZG93KHVwZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogCiAgICAg
aWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKICAgICAgICAgaW50IHBhbkljb25EaXJ0eVNxdWFy
ZVNpemVMZW5ndGggPSAyICogKHBhbkljb25TaXplTGVuZ3RoICsgbWF4KGFicyhzY3JvbGxEZWx0
YS53aWR0aCgpKSwgYWJzKHNjcm9sbERlbHRhLmhlaWdodCgpKSkpOyAvLyBXZSBvbmx5IHdhbnQg
dG8gcmVwYWludCB3aGF0J3MgbmVjZXNzYXJ5CiAgICAgICAgIEludFBvaW50IHBhbkljb25EaXJ0
eVNxdWFyZUxvY2F0aW9uID0gSW50UG9pbnQobV9wYW5TY3JvbGxJY29uUG9pbnQueCgpIC0gKHBh
bkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSwgbV9wYW5TY3JvbGxJY29uUG9pbnQueSgp
IC0gKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSk7CiAgICAgICAgIEludFJlY3Qg
cGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCA9IEludFJlY3QocGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRp
b24gLCBJbnRTaXplKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGgsIHBhbkljb25EaXJ0eVNx
dWFyZVNpemVMZW5ndGgpKTsKICAgICAgICAgcGFuU2Nyb2xsSWNvbkRpcnR5UmVjdC5pbnRlcnNl
Y3QoY2xpcFJlY3QpOwotICAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQocGFuU2Nyb2xsSWNv
bkRpcnR5UmVjdCwgdHJ1ZSk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8p
OwogICAgIH0KIAogICAgIGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFt
ZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdwotICAgICAgIC8vIEZJWE1FOiBGaW5k
IGEgd2F5IHRvIGJsaXQgc3ViZnJhbWVzIHdpdGhvdXQgYmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29u
dGVudAorICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIHNjcm9sbCBzdWJmcmFtZXMgd2l0
aCB0aGlzIGZhc3RlciBwYXRoCiAgICAgICAgaG9zdFdpbmRvdygpLT5zY3JvbGwoLXNjcm9sbERl
bHRhLCBzY3JvbGxWaWV3UmVjdCwgY2xpcFJlY3QpOwogICAgIH0gZWxzZSB7IAogICAgICAgIC8v
IFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJlcGFpbnQgdGhlIGVudGlyZSBiYWNraW5nIHN0b3Jl
LiAgRG8gaXQgbm93IGJlZm9yZSBtb3ZpbmcgdGhlCiAgICAgICAgLy8gd2luZG93ZWQgcGx1Z2lu
cy4KLSAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQodXBkYXRlUmVjdCwgdHJ1ZSwgZmFsc2Us
IHRydWUpOyAvLyBJbnZhbGlkYXRlIHRoZSBiYWNraW5nIHN0b3JlIGFuZCByZXBhaW50IGl0IHN5
bmNocm9ub3VzbHkKKyAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOwogICAgIH0KIAogICAgIC8vIFRoaXMgY2FsbCB3
aWxsIG1vdmUgY2hpbGRyZW4gd2l0aCBuYXRpdmUgd2lkZ2V0cyAocGx1Z2lucykgYW5kIGludmFs
aWRhdGUgdGhlbSBhcyB3ZWxsLgogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CiAKLSAgICAvLyBO
b3cgdXBkYXRlIHRoZSB3aW5kb3cgKHdoaWNoIHNob3VsZCBkbyBub3RoaW5nIGJ1dCBhIGJsaXQg
b2YgdGhlIGJhY2tpbmcgc3RvcmUncyB1cGRhdGVSZWN0IGFuZCBzbyBzaG91bGQKLSAgICAvLyBi
ZSB2ZXJ5IGZhc3QpLgotICAgIGhvc3RXaW5kb3coKS0+cGFpbnQoKTsKKyAgICAvLyBOb3cgYmxp
dCB0aGUgYmFja2luZ3N0b3JlIGludG8gdGhlIHdpbmRvdyB3aGljaCBzaG91bGQgYmUgdmVyeSBm
YXN0LgorICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyhJbnRSZWN0KCksIHRydWUp
OwogfQogCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRzKGNvbnN0IEludFBv
aW50JiB3aW5kb3dQb2ludCkgY29uc3QKQEAgLTcxNSw3ICs3MTQsNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93
KQogICAgIH0KIAogICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgIGhvc3RXaW5kb3coKS0+
cmVwYWludChjb250ZW50c1RvV2luZG93KHBhaW50UmVjdCksIHRydWUsIG5vdyk7CisgICAgICAg
IGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnRlbnRzVG9XaW5k
b3cocGFpbnRSZWN0KSwgbm93IC8qaW1tZWRpYXRlKi8pOwogfQogCiBJbnRSZWN0IFNjcm9sbFZp
ZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdApAQCAtOTMzLDcgKzkzMiw3IEBAIHZvaWQgU2Ny
b2xsVmlldzo6YWRkUGFuU2Nyb2xsSWNvbihjb25zdCBJbnRQb2ludCYgaWNvblBvc2l0aW9uKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IHRydWU7ICAgIAogICAg
IG1fcGFuU2Nyb2xsSWNvblBvaW50ID0gSW50UG9pbnQoaWNvblBvc2l0aW9uLngoKSAtIHBhbklj
b25TaXplTGVuZ3RoIC8gMiAsIGljb25Qb3NpdGlvbi55KCkgLSBwYW5JY29uU2l6ZUxlbmd0aCAv
IDIpIDsKLSAgICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Q
b2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCxwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVl
LCB0cnVlKTsgICAgCisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3coSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0
aCwgcGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKIH0KIAogdm9pZCBT
Y3JvbGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKQEAgLTk0MSw3ICs5NDAsNyBAQCB2b2lk
IFNjcm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQogICAgIGlmICghaG9zdFdpbmRvdygp
KQogICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IGZhbHNlOyAKLSAg
ICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50
U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSwgdHJ1ZSk7
CisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coSW50UmVjdCht
X3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNp
emVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKIH0KIAogI2lmICFQTEFURk9STShXWCkg
JiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRnJhbWVsZXNzU2Nyb2xsVmlldy5jcHAKaW5kZXggMTE0ZWFiYi4uM2ZiZjJk
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxW
aWV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZp
ZXcuY3BwCkBAIC01OSw3ICs1OSw3IEBAIGJvb2wgRnJhbWVsZXNzU2Nyb2xsVmlldzo6aXNBY3Rp
dmUoKSBjb25zdAogdm9pZCBGcmFtZWxlc3NTY3JvbGxWaWV3OjppbnZhbGlkYXRlUmVjdChjb25z
dCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChIb3N0V2luZG93KiBoID0gaG9zdFdpbmRvdygp
KQotICAgICAgICBoLT5yZXBhaW50KHJlY3QsIHRydWUpOworICAgICAgICBoLT5pbnZhbGlkYXRl
Q29udGVudHNBbmRXaW5kb3cocmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CiB9CiAKIEhvc3RX
aW5kb3cqIEZyYW1lbGVzc1Njcm9sbFZpZXc6Omhvc3RXaW5kb3coKSBjb25zdApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggZDI2Yjg2YS4uMzU0ZGM1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgY2hyb21pdW0gcG9ydCB0
byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpp
bnZhbGlkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpp
bnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6aW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5oOgorCiAyMDEwLTAzLTAyICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGE0MjBkYTMuLjQ0ZTc4YWMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNDY2LDE1ICs0NjYs
MjUgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXBhaW50
KAotICAgIGNvbnN0IEludFJlY3QmIHBhaW50UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9v
bCBpbW1lZGlhdGUsCi0gICAgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIENocm9tZUNs
aWVudEltcGw6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmludmFsaWRh
dGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3co
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0ZSovKQogewotICAgIC8v
IElnbm9yZSBzcHVyaW91cyBjYWxscy4KLSAgICBpZiAoIWNvbnRlbnRDaGFuZ2VkIHx8IHBhaW50
UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAobV93ZWJWaWV3LT5jbGll
bnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJlY3QocGFp
bnRSZWN0KTsKKyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJlY3Qo
dXBkYXRlUmVjdCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6aW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKK3sKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1tZWRp
YXRlKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzY3JvbGwoCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDViZjkzODIuLjNlMmY2OTIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC05Niw5ICs5NiwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKICAgICB2aXJ0dWFs
IGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qg
d2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgKLSAg
ICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wg
aW1tZWRpYXRlID0gZmFsc2UsCi0gICAgICAgIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFs
c2UpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbCgKICAgICAgICAgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJl
Y3RUb1Njcm9sbCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpp
bmRleCAzYjEwMGJlLi5hYTViYTMxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEwLTAzLTAyICBB
ZGFtIFRyZWF0ICA8YXRyZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdGhlIGd0ayBwb3J0IHRvIHRoZSByZWZhY3Rvcmlu
ZyBvZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgorCiAyMDEwLTAzLTAxICBKb3PDqSBNaWxsw6FuIFNvdG8gIDxqbWlsbGFuQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IGQ0Y2NlOGEuLjJh
NTczNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKQEAgLTM0MSwyMCArMzQxLDM0IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNp
emVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVD
bGllbnQ6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQordm9pZCBDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKIHsKLSAg
ICBHZGtSZWN0YW5nbGUgcmVjdCA9IHdpbmRvd1JlY3Q7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYs
IGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnQ6
OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBi
b29sIGltbWVkaWF0ZSkKK3sKKyAgICBHZGtSZWN0YW5nbGUgcmVjdCA9IHVwZGF0ZVJlY3Q7CiAg
ICAgR2RrV2luZG93KiB3aW5kb3cgPSBHVEtfV0lER0VUKG1fd2ViVmlldyktPndpbmRvdzsKIAog
ICAgIGlmICh3aW5kb3cpIHsKLSAgICAgICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQotICAgICAgICAg
ICAgZ2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3Qod2luZG93LCAmcmVjdCwgRkFMU0UpOworICAg
ICAgICBnZGtfd2luZG93X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0LCBGQUxTRSk7CiAg
ICAgICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBkbyBpbW1lZGlhdGUgdXBkYXRlcyBzaW5jZSB0
aGV5IGRlbGF5IG90aGVyIFVJIGVsZW1lbnRzLgogICAgICAgICAvL2lmIChpbW1lZGlhdGUpCiAg
ICAgICAgIC8vICAgIGdka193aW5kb3dfcHJvY2Vzc191cGRhdGVzKHdpbmRvdywgRkFMU0UpOwog
ICAgIH0KIH0KIAordm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dT
Y3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3QsIGltbWVkaWF0ZSk7Cit9CisK
IHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IElu
dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgR2Rr
V2luZG93KiB3aW5kb3cgPSBHVEtfV0lER0VUKG1fd2ViVmlldyktPndpbmRvdzsKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCmluZGV4IDYyZDQ4ZmEuLjY5ZmI5
ZTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAt
ODcsOCArODcsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIHJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5n
ZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFs
c2UpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJl
Y3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVXaW5kb3coY29uc3Qg
SW50UmVjdCYsIGJvb2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGNsaXBSZWN0KTsKKwogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50
IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxv
ZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggNGMzN2JhZS4uOWUzZDlkYyAxMDA2NDQK
LS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFw
dCB0aGUgaGFpa3UgcG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFp
a3UuaDoKKwogMjAxMC0wMi0yMyAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwIGIvV2ViS2l0L2hhaWt1
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcAppbmRleCBhN2YxMTQ1Li5jZDhm
MWY0IDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuY3BwCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRI
YWlrdS5jcHAKQEAgLTI1Myw3ICsyNTMsMjIgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRIYWlrdTo6
d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZv
aWQgQ2hyb21lQ2xpZW50SGFpa3U6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVu
dENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlLCBib29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQg
Q2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudEhhaWt1
OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVDb250ZW50
c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIENocm9tZUNsaWVudEhhaWt1OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFp
a3UuaCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCmlu
ZGV4IDNkNzc0NTkuLjk5MGYzZjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRIYWlrdS5oCkBAIC0xMDIsOCArMTAyLDEyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCB0YWJzVG9MaW5rcygpIGNvbnN0OwogICAgICAgICBJbnRSZWN0
IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdm9pZCByZXBhaW50KGNvbnN0
IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBi
b29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICAgICAgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2b2lkIGludmFsaWRhdGVX
aW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgICAg
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBy
ZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKKwogICAgICAgICBJbnRQb2lu
dCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogICAgICAgICBJbnRSZWN0
IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICAgICAgUGxhdGZvcm1Q
YWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmOTE0ZDg1Li4yM2Nl
ODMyIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8YXRyZWF0
QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRhcHQgdGhlIG1hYyBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBvZiByZXBhaW50IG1ldGhv
ZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0
MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmludmFsaWRhdGVXaW5kb3cpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHNBbmRXaW5kb3cpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKToKKwogMjAxMC0wMy0wMiAgQWRhbSBSb2JlbiAgPGFyb2Jl
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIC1bV2ViVmlldyBfcmVnaXN0ZXJVUkxTY2hlbWVB
c1NlY3VyZTpdCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCBjOGRhNTNiLi44NTI2N2Q1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTkxLDggKzkxLDEyIEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgIHZp
cnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRD
aGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9
IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAg
dmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Nj
cm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGll
bnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IGIyMjQwZDkuLmRhNmMxNWMgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC00MzksMjAgKzQzOSwz
NiBAQCBJbnRSZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAog
ICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KFttX3dlYlZpZXcgY29udmVydFJlY3Q6cmVjdCBm
cm9tVmlldzpuaWxdKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcGFpbnQoY29uc3Qg
SW50UmVjdCYgcmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wg
cmVwYWludENvbnRlbnRPbmx5KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250
ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKQoreworICAg
IGlmIChpbW1lZGlhdGUpIHsKKyAgICAgICAgW1ttX3dlYlZpZXcgd2luZG93XSBkaXNwbGF5SWZO
ZWVkZWRdOworICAgICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGZsdXNoV2luZG93SWZOZWVkZWRd
OworICAgIH0KK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0Fu
ZFdpbmRvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKIHsKICAgICBpZiAo
W21fd2ViVmlldyBfdXNlc0RvY3VtZW50Vmlld3NdKQogICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQotICAgICAgICBbbV93ZWJWaWV3IHNldE5lZWRzRGlzcGxh
eUluUmVjdDpyZWN0XTsKLSAgICAKKworICAgIFttX3dlYlZpZXcgc2V0TmVlZHNEaXNwbGF5SW5S
ZWN0OnJlY3RdOworCiAgICAgaWYgKGltbWVkaWF0ZSkgewogICAgICAgICBbW21fd2ViVmlldyB3
aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07CiAgICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZmx1
c2hXaW5kb3dJZk5lZWRlZF07CiAgICAgfQogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52
YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGlt
bWVkaWF0ZSkKK3sKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cocmVjdCwgaW1tZWRp
YXRlKTsKK30KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiwg
Y29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKQogewogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggOWMzZTY5Yi4uNmQ5MWMx
NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmlt
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGFwdCB0aGUgcXQgcG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorCiAyMDEw
LTAzLTAyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAg
ICAgICBTeW1iaWFuIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50UXQuY3BwCmluZGV4IGVjYmFiZTQuLjZmNjgyYzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtMzI3LDIzICszMjcsMzYgQEAgSW50UmVj
dCBDaHJvbWVDbGllbnRRdDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBJ
bnRSZWN0KCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50UXQ6OnJlcGFpbnQoY29uc3QgSW50UmVj
dCYgd2luZG93UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCwgYm9vbCkKK3ZvaWQgQ2hy
b21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlk
YXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhj
b25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKIHsKICAgICAvLyBObyBk
b3VibGUgYnVmZmVyLCBzbyBvbmx5IHVwZGF0ZSB0aGUgUVdpZGdldCBpZiBjb250ZW50IGNoYW5n
ZWQuCi0gICAgaWYgKGNvbnRlbnRDaGFuZ2VkKSB7Ci0gICAgICAgIGlmIChwbGF0Zm9ybVBhZ2VD
bGllbnQoKSkgewotICAgICAgICAgICAgUVJlY3QgcmVjdCh3aW5kb3dSZWN0KTsKLSAgICAgICAg
ICAgIHJlY3QgPSByZWN0LmludGVyc2VjdGVkKFFSZWN0KFFQb2ludCgwLCAwKSwgbV93ZWJQYWdl
LT52aWV3cG9ydFNpemUoKSkpOwotICAgICAgICAgICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgICAgICBwbGF0Zm9ybVBhZ2VDbGllbnQoKS0+dXBkYXRlKHJlY3QpOwotICAgICAg
ICB9Ci0gICAgICAgIGVtaXQgbV93ZWJQYWdlLT5yZXBhaW50UmVxdWVzdGVkKHdpbmRvd1JlY3Qp
OworICAgIGlmIChwbGF0Zm9ybVBhZ2VDbGllbnQoKSkgeworICAgICAgICBRUmVjdCByZWN0KHdp
bmRvd1JlY3QpOworICAgICAgICByZWN0ID0gcmVjdC5pbnRlcnNlY3RlZChRUmVjdChRUG9pbnQo
MCwgMCksIG1fd2ViUGFnZS0+dmlld3BvcnRTaXplKCkpKTsKKyAgICAgICAgaWYgKCFyZWN0Lmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIHBsYXRmb3JtUGFnZUNsaWVudCgpLT51cGRhdGUocmVjdCk7
CiAgICAgfQorICAgIGVtaXQgbV93ZWJQYWdlLT5yZXBhaW50UmVxdWVzdGVkKHdpbmRvd1JlY3Qp
OwogCiAgICAgLy8gRklYTUU6IFRoZXJlIGlzIG5vICJpbW1lZGlhdGUiIHN1cHBvcnQgZm9yIHdp
bmRvdyBwYWludGluZy4gIFRoaXMgc2hvdWxkIGJlIGRvbmUgYWx3YXlzIHdoZW5ldmVyIHRoZSBm
bGFnCiAgICAgLy8gaXMgc2V0LgogfQogCit2b2lkIENocm9tZUNsaWVudFF0OjppbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1t
ZWRpYXRlKQoreworICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyh3aW5kb3dSZWN0LCBp
bW1lZGlhdGUpOworfQorCiB2b2lkIENocm9tZUNsaWVudFF0OjpzY3JvbGwoY29uc3QgSW50U2l6
ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JikK
IHsKICAgICBpZiAocGxhdGZvcm1QYWdlQ2xpZW50KCkpCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCmluZGV4IGRhM2RhNTkuLmNiOGE5OTYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xMDUsOCArMTA1LDEyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkgY29uc3Q7
CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0OwogCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRD
aGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9
IGZhbHNlKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNv
bnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwg
Y29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisK
ICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYp
IGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50
UmVjdCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9y
bVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOWE3M2NiOS4uNjNmM2M1YSAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSB3aW4g
cG9ydCB0byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52
YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oOgorCiAyMDEwLTAzLTAyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgSVdlYlZpZXdQcml2YXRlOjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAg
Yi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDVm
NzY2Mi4uYWI5ZmFmNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtNDUxLDEwICs0NTEsMjggQEAgSW50UmVjdCBXZWJDaHJvbWVDbGllbnQ6
OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9u
bHkpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJl
Y3QmLCBib29sKQogewogICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgp
KSk7Ci0gICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIGNvbnRlbnRDaGFuZ2VkLCBp
bW1lZGlhdGUsIHJlcGFpbnRDb250ZW50T25seSk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdp
bmRvd1JlY3QsIHRydWUgLypjb250ZW50Q2hhbmdlZCovLCBmYWxzZSAvKmltbWVkaWF0ZSovLCB0
cnVlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8pOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0
ZSkKK3sKKyAgICBBU1NFUlQoY29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOworICAg
IG1fd2ViVmlldy0+cmVwYWludCh3aW5kb3dSZWN0LCBmYWxzZSAvKmNvbnRlbnRDaGFuZ2VkKi8s
IGltbWVkaWF0ZSwgZmFsc2UgLypyZXBhaW50Q29udGVudE9ubHkqLyk7Cit9CisKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYg
d2luZG93UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3
LT50b3BMZXZlbEZyYW1lKCkpKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwg
dHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSAvKmltbWVkaWF0ZSovLCBmYWxzZSAv
KnJlcGFpbnRDb250ZW50T25seSovKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCwgYm9v
bCBpbW1lZGlhdGUpCit7CisgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1l
KCkpKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRD
aGFuZ2VkKi8sIGltbWVkaWF0ZSwgdHJ1ZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKIH0KIAog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3Qg
SW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjcxM2FjNy4uOTUx
MGZjNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBA
IC05Myw4ICs5MywxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHRhYnNUb0xpbmtzKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBh
aW50Q29udGVudE9ubHkgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsK
KwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHApIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3
aW5kb3dUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByKSBjb25zdDsKICAgICB2aXJ0
dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDY3
MWEwMmQuLjgyYmIyNmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAzLTAyICBBZGFtIFRyZWF0
ICA8YXRyZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRhcHQgdGhlIHd4IHBvcnQgdG8gdGhlIHJlZmFjdG9yaW5nIG9mIHJlcGFp
bnQgbWV0aG9kcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQyMTQKKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50V3g6OmludmFsaWRhdGVDb250ZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZVdpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNv
bnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
Lmg6CisKIDIwMTAtMDMtMDEgIEpha29iIFBldHNvdml0cyAgPGpwZXRzb3ZpdHNAcmltLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwCmluZGV4IGFjMjVkYWYuLjk0YjAxYzkgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAorKysgYi9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTMzNiwxNCArMzM2LDI5IEBA
IEludFJlY3QgQ2hyb21lQ2xpZW50V3g6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICBy
ZXR1cm4gSW50UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudFd4OjpyZXBhaW50KGNvbnN0
IEludFJlY3QmIHJlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlLCBib29s
IHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OmludmFsaWRhdGVDb250
ZW50cyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50V3g6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVj
dCYgcmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaWYgKGltbWVkaWF0ZSkKKyAgICAgICAg
bV93ZWJWaWV3LT5VcGRhdGUoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0
ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0
ZSkKK3sKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cocmVjdCwgaW1tZWRpYXRlKTsK
K30KKwordm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNv
bnN0IEludFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewogICAgIGlmICghbV93ZWJWaWV3
KQogICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgaWYgKGNvbnRlbnRDaGFuZ2VkKQotICAgICAg
ICBtX3dlYlZpZXctPlJlZnJlc2hSZWN0KHJlY3QpOwotICAgIAorCisgICAgbV93ZWJWaWV3LT5S
ZWZyZXNoUmVjdChyZWN0KTsKKwogICAgIGlmIChpbW1lZGlhdGUpIHsKICAgICAgICAgbV93ZWJW
aWV3LT5VcGRhdGUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guaAppbmRleCAzYmY5MjAyLi5jNjcwZjk5IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmgKQEAgLTEwMiw4ICsxMDIsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxCYWNraW5nU3RvcmUoaW50IGR4LCBpbnQgZHksIGNvbnN0IEludFJlY3QmIHNj
cm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNv
bnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZhbHNl
LCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAg
dmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVj
dCYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xs
RGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJl
Y3QpOworCiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2lu
dCYpIGNvbnN0OwogICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JikgY29uc3Q7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdl
Q2xpZW50KCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49901</attachid>
            <date>2010-03-03 06:48:19 -0800</date>
            <delta_ts>2010-03-08 11:21:18 -0800</delta_ts>
            <desc>Fifth effort fixing chromium again and gtk</desc>
            <filename>34214_d.patch</filename>
            <type>text/plain</type>
            <size>38511</size>
            <attacher name="Adam Treat">manyoso</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTI2MWM0Yy4uY2RlYjQzMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wMy0wMiAgQWRhbSBUcmVhdCAg
PGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yIHRoZSBIb3N0V2luZG93IG1ldGhvZHMgZm9yIHJlcGFpbnQsIHNj
cm9sbCwgaW52YWxpZGF0ZSBhbmQgYmxpdAorICAgICAgICBvZiBiYWNraW5nc3RvcmUgYW5kIHdp
bmRvdyBieSBlbGltaW5hdGluZyB0aGUgdGhyZWUgYm9vbHMgdGhhdCBjdXJyZW50bHkKKyAgICAg
ICAgZXhpc3QgYXMgcGFyYW1zIG9mIHRoZSByZXBhaW50IG1ldGhvZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgSSd2ZSBh
ZGRlZCBleHRyYSBtZXRob2RzIHRvIHByb3ZpZGUgdGhlIGhvc3RzIHdpdGggbW9yZSBzZW1hbnRp
YworICAgICAgICBpbmZvcm1hdGlvbiBvZiB3aGF0IGlzIGJlaW5nIHJlcXVlc3RlZCB0aHVzIGVs
aW1pbmF0aW5nIHRoZSBuZWVkIGZvcgorICAgICAgICB0aGVzZSBib29scy4KKworICAgICAgICBO
byB0ZXN0cyBhcyB0aGlzIGNoYW5nZSBzaG91bGQgbm90IGludHJvZHVjZSBhbnkgYmVoYXZpb3Ig
Y2hhbmdlcyBpbiBhbnkKKyAgICAgICAgb2YgdGhlIHBvcnRzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVDb250
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToK
KyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRvdy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6c2Nyb2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6
d2hlZWxFdmVudCk6CisKIDIwMTAtMDMtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggMmY5YTI2Ny4uMzcyN2MwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTExNSwxMiArMTE1LDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdGFic1RvTGlua3Mo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jl
c2l6ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IGFkZFRvRGlydHlSZWdpb24oY29uc3QgSW50UmVjdCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxCYWNraW5nU3RvcmUoaW50LCBpbnQsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0
JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpIHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wsIGJvb2wsIGJvb2wpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJv
b2wpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93
KGNvbnN0IEludFJlY3QmLCBib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkge307CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJl
Y3QmKSB7IH0KKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgSW50
UG9pbnQmIHApIGNvbnN0IHsgcmV0dXJuIHA7IH0KICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93
VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgeyByZXR1cm4gcjsgfQogICAgIHZpcnR1
YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAKaW5kZXggNjYyNGQ3OC4uNzcxZGY4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTY3LDkgKzY3
LDI0IEBAIENocm9tZTo6fkNocm9tZSgpCiAgICAgbV9jbGllbnQtPmNocm9tZURlc3Ryb3llZCgp
OwogfQogCi12b2lkIENocm9tZTo6cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBi
b29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9u
bHkpCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQogewotICAgIG1fY2xpZW50LT5yZXBhaW50KHdpbmRvd1Jl
Y3QsIGNvbnRlbnRDaGFuZ2VkLCBpbW1lZGlhdGUsIHJlcGFpbnRDb250ZW50T25seSk7CisgICAg
bV9jbGllbnQtPmludmFsaWRhdGVDb250ZW50cyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworfQor
Cit2b2lkIENocm9tZTo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBtX2NsaWVudC0+aW52YWxpZGF0ZVdpbmRvdyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOworfQorCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQorewor
ICAgIG1fY2xpZW50LT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1t
ZWRpYXRlKTsKK30KKwordm9pZCBDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgbV9j
bGllbnQtPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgaW1tZWRp
YXRlKTsKIH0KIAogdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAppbmRleCA3NTNhZGVhLi4yNzlhN2Y4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC02MCw4ICs2MCwxMiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIENocm9tZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQ7IH0KIAogICAgICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCi0gICAgICAgIHZpcnR1
YWwgdm9pZCByZXBhaW50KGNvbnN0IEludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29s
IGltbWVkaWF0ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29u
c3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3Qm
LCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IElu
dFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93VG9TY3JlZW4o
Y29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVu
dCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBiMDVkODVi
Li5mY2M4NzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjksOCArMTI5LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QgPSAwOwogCiAgICAgICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChjb25zdCBJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hh
bmdlZCwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBm
YWxzZSkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29u
c3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVX
aW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiwgYm9vbCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsKICAgICAgICAgdmly
dHVhbCBJbnRQb2ludCBzY3JlZW5Ub1dpbmRvdyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsK
ICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBj
b25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNWM1N2M2NC4uMmU5OTA4YSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIEZyYW1lVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CiAg
ICAgICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgICAgICBob3N0V2luZG93KCktPnJlcGFp
bnQocmVjdCwgdHJ1ZSk7CisgICAgICAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250
ZW50c0FuZFdpbmRvdyhyZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA4MGY2YmRjLi45N2FiZjg3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL0hvc3RXaW5kb3cuaApAQCAtMzUsMTQgKzM1LDIwIEBAIGNsYXNzIEhvc3RXaW5kb3cgOiBw
dWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgogICAgIHZpcnR1YWwgfkhvc3RXaW5kb3coKSB7
IH0KIAotICAgIC8vIFRoZSByZXBhaW50IG1ldGhvZCBhc2tzIHRoZSBob3N0IHdpbmRvdyB0byBy
ZXBhaW50IGEgcmVjdCBpbiB0aGUgd2luZG93J3MgY29vcmRpbmF0ZSBzcGFjZS4gIFRoZQotICAg
IC8vIGNvbnRlbnRDaGFuZ2VkIGJvb2xlYW4gaW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZSBX
ZWIgcGFnZSBjb250ZW50IGFjdHVhbGx5IGNoYW5nZWQgKG9yIGlmIGEgcmVwYWludAotICAgIC8v
IG9mIHVuY2hhbmdlZCBjb250ZW50IGlzIGJlaW5nIHJlcXVlc3RlZCkuCi0gICAgdmlydHVhbCB2
b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpID0gMDsKKyAg
ICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cywgbm90IHRoZSB3
aW5kb3cuICBJZiBpbW1lZGlhdGUgaXMgdHJ1ZSBkbyBzbyBzeW5jaHJvbm91c2x5LCBvdGhlcndp
c2UgYXN5bmMuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOworCisgICAgLy8gUmVxdWVzdHMg
dGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgd2luZG93LCBub3QgdGhlIGNvbnRlbnRzLiAgSWYgaW1t
ZWRpYXRlIGlzIHRydWUgZG8gc28gc3luY2hyb25vdXNseSwgb3RoZXJ3aXNlIGFzeW5jLgorICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qs
IGJvb2wgaW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlk
YXRlIHRoZSBjb250ZW50cyBhbmQgdGhlIHdpbmRvdy4gIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRv
IHNvIHN5bmNocm9ub3VzbHksIG90aGVyd2lzZSBhc3luYy4KKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wg
aW1tZWRpYXRlKSA9IDA7CisKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBzY3JvbGwgYmFja2lu
Z3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8gc2Nyb2xsLCBhbmQgY2xpcCBy
ZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEs
IGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpID0g
MDsKIAotICAgIC8vIFRoZSBwYWludCBtZXRob2QganVzdCBjYXVzZXMgYSBzeW5jaHJvbm91cyB1
cGRhdGUgb2YgdGhlIHdpbmRvdyB0byBoYXBwZW4gZm9yIHBsYXRmb3JtcyB0aGF0IG5lZWQgaXQg
KFdpbmRvd3MpLgotICAgIHZvaWQgcGFpbnQoKSB7IHJlcGFpbnQoSW50UmVjdCgpLCBmYWxzZSwg
dHJ1ZSk7IH0KKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50
cywgbm90IHRoZSB3aW5kb3cuICBUaGlzIGlzIHRoZSBzbG93IHBhdGggZm9yIHNjcm9sbGluZy4K
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwogICAgIAogICAgIC8vIE1l
dGhvZHMgZm9yIGRvaW5nIGNvb3JkaW5hdGUgY29udmVyc2lvbnMgdG8gYW5kIGZyb20gc2NyZWVu
IGNvb3JkaW5hdGVzLgogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3Qg
SW50UG9pbnQmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2MzBhZDEy
Li4zYmRlODlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTUwMSwzMSArNTAxLDMwIEBA
IHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEpCiAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qoc2Nyb2xsVmlld1JlY3QpOwogCiAgICAgLy8g
SW52YWxpZGF0ZSB0aGUgd2luZG93IChub3QgdGhlIGJhY2tpbmcgc3RvcmUpLgotICAgIGhvc3RX
aW5kb3coKS0+cmVwYWludCh1cGRhdGVSZWN0LCBmYWxzZSk7CisgICAgaG9zdFdpbmRvdygpLT5p
bnZhbGlkYXRlV2luZG93KHVwZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOwogCiAgICAg
aWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKICAgICAgICAgaW50IHBhbkljb25EaXJ0eVNxdWFy
ZVNpemVMZW5ndGggPSAyICogKHBhbkljb25TaXplTGVuZ3RoICsgbWF4KGFicyhzY3JvbGxEZWx0
YS53aWR0aCgpKSwgYWJzKHNjcm9sbERlbHRhLmhlaWdodCgpKSkpOyAvLyBXZSBvbmx5IHdhbnQg
dG8gcmVwYWludCB3aGF0J3MgbmVjZXNzYXJ5CiAgICAgICAgIEludFBvaW50IHBhbkljb25EaXJ0
eVNxdWFyZUxvY2F0aW9uID0gSW50UG9pbnQobV9wYW5TY3JvbGxJY29uUG9pbnQueCgpIC0gKHBh
bkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSwgbV9wYW5TY3JvbGxJY29uUG9pbnQueSgp
IC0gKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGggLyAyKSk7CiAgICAgICAgIEludFJlY3Qg
cGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCA9IEludFJlY3QocGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRp
b24gLCBJbnRTaXplKHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGgsIHBhbkljb25EaXJ0eVNx
dWFyZVNpemVMZW5ndGgpKTsKICAgICAgICAgcGFuU2Nyb2xsSWNvbkRpcnR5UmVjdC5pbnRlcnNl
Y3QoY2xpcFJlY3QpOwotICAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQocGFuU2Nyb2xsSWNv
bkRpcnR5UmVjdCwgdHJ1ZSk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KHBhblNjcm9sbEljb25EaXJ0eVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8p
OwogICAgIH0KIAogICAgIGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFt
ZSBjYW4ganVzdCBibGl0IHRoZSBXZWJWaWV3IHdpbmRvdwotICAgICAgIC8vIEZJWE1FOiBGaW5k
IGEgd2F5IHRvIGJsaXQgc3ViZnJhbWVzIHdpdGhvdXQgYmxpdHRpbmcgb3ZlcmxhcHBpbmcgY29u
dGVudAorICAgICAgIC8vIEZJWE1FOiBGaW5kIGEgd2F5IHRvIHNjcm9sbCBzdWJmcmFtZXMgd2l0
aCB0aGlzIGZhc3RlciBwYXRoCiAgICAgICAgaG9zdFdpbmRvdygpLT5zY3JvbGwoLXNjcm9sbERl
bHRhLCBzY3JvbGxWaWV3UmVjdCwgY2xpcFJlY3QpOwogICAgIH0gZWxzZSB7IAogICAgICAgIC8v
IFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJlcGFpbnQgdGhlIGVudGlyZSBiYWNraW5nIHN0b3Jl
LiAgRG8gaXQgbm93IGJlZm9yZSBtb3ZpbmcgdGhlCiAgICAgICAgLy8gd2luZG93ZWQgcGx1Z2lu
cy4KLSAgICAgICBob3N0V2luZG93KCktPnJlcGFpbnQodXBkYXRlUmVjdCwgdHJ1ZSwgZmFsc2Us
IHRydWUpOyAvLyBJbnZhbGlkYXRlIHRoZSBiYWNraW5nIHN0b3JlIGFuZCByZXBhaW50IGl0IHN5
bmNocm9ub3VzbHkKKyAgICAgICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOwogICAgIH0KIAogICAgIC8vIFRoaXMgY2FsbCB3
aWxsIG1vdmUgY2hpbGRyZW4gd2l0aCBuYXRpdmUgd2lkZ2V0cyAocGx1Z2lucykgYW5kIGludmFs
aWRhdGUgdGhlbSBhcyB3ZWxsLgogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CiAKLSAgICAvLyBO
b3cgdXBkYXRlIHRoZSB3aW5kb3cgKHdoaWNoIHNob3VsZCBkbyBub3RoaW5nIGJ1dCBhIGJsaXQg
b2YgdGhlIGJhY2tpbmcgc3RvcmUncyB1cGRhdGVSZWN0IGFuZCBzbyBzaG91bGQKLSAgICAvLyBi
ZSB2ZXJ5IGZhc3QpLgotICAgIGhvc3RXaW5kb3coKS0+cGFpbnQoKTsKKyAgICAvLyBOb3cgYmxp
dCB0aGUgYmFja2luZ3N0b3JlIGludG8gdGhlIHdpbmRvdyB3aGljaCBzaG91bGQgYmUgdmVyeSBm
YXN0LgorICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZVdpbmRvdyhJbnRSZWN0KCksIHRydWUp
OwogfQogCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojp3aW5kb3dUb0NvbnRlbnRzKGNvbnN0IEludFBv
aW50JiB3aW5kb3dQb2ludCkgY29uc3QKQEAgLTcxNSw3ICs3MTQsNyBAQCB2b2lkIFNjcm9sbFZp
ZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93
KQogICAgIH0KIAogICAgIGlmIChob3N0V2luZG93KCkpCi0gICAgICAgIGhvc3RXaW5kb3coKS0+
cmVwYWludChjb250ZW50c1RvV2luZG93KHBhaW50UmVjdCksIHRydWUsIG5vdyk7CisgICAgICAg
IGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnRlbnRzVG9XaW5k
b3cocGFpbnRSZWN0KSwgbm93IC8qaW1tZWRpYXRlKi8pOwogfQogCiBJbnRSZWN0IFNjcm9sbFZp
ZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdApAQCAtOTMzLDcgKzkzMiw3IEBAIHZvaWQgU2Ny
b2xsVmlldzo6YWRkUGFuU2Nyb2xsSWNvbihjb25zdCBJbnRQb2ludCYgaWNvblBvc2l0aW9uKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IHRydWU7ICAgIAogICAg
IG1fcGFuU2Nyb2xsSWNvblBvaW50ID0gSW50UG9pbnQoaWNvblBvc2l0aW9uLngoKSAtIHBhbklj
b25TaXplTGVuZ3RoIC8gMiAsIGljb25Qb3NpdGlvbi55KCkgLSBwYW5JY29uU2l6ZUxlbmd0aCAv
IDIpIDsKLSAgICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Q
b2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCxwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVl
LCB0cnVlKTsgICAgCisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5k
b3coSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0
aCwgcGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKIH0KIAogdm9pZCBT
Y3JvbGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKQEAgLTk0MSw3ICs5NDAsNyBAQCB2b2lk
IFNjcm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQogICAgIGlmICghaG9zdFdpbmRvdygp
KQogICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IGZhbHNlOyAKLSAg
ICBob3N0V2luZG93KCktPnJlcGFpbnQoSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50
U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVMZW5ndGgpKSwgdHJ1ZSwgdHJ1ZSk7
CisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coSW50UmVjdCht
X3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNp
emVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKIH0KIAogI2lmICFQTEFURk9STShXWCkg
JiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxWaWV3LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vRnJhbWVsZXNzU2Nyb2xsVmlldy5jcHAKaW5kZXggMTE0ZWFiYi4uM2ZiZjJk
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9GcmFtZWxlc3NTY3JvbGxW
aWV3LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZp
ZXcuY3BwCkBAIC01OSw3ICs1OSw3IEBAIGJvb2wgRnJhbWVsZXNzU2Nyb2xsVmlldzo6aXNBY3Rp
dmUoKSBjb25zdAogdm9pZCBGcmFtZWxlc3NTY3JvbGxWaWV3OjppbnZhbGlkYXRlUmVjdChjb25z
dCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChIb3N0V2luZG93KiBoID0gaG9zdFdpbmRvdygp
KQotICAgICAgICBoLT5yZXBhaW50KHJlY3QsIHRydWUpOworICAgICAgICBoLT5pbnZhbGlkYXRl
Q29udGVudHNBbmRXaW5kb3cocmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CiB9CiAKIEhvc3RX
aW5kb3cqIEZyYW1lbGVzc1Njcm9sbFZpZXc6Omhvc3RXaW5kb3coKSBjb25zdApkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggZDI2Yjg2YS4uMzU0ZGM1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgY2hyb21pdW0gcG9ydCB0
byB0aGUgcmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpp
bnZhbGlkYXRlQ29udGVudHMpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRJbXBsOjpp
bnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6aW52
YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBzcmMvQ2hyb21l
Q2xpZW50SW1wbC5oOgorCiAyMDEwLTAzLTAyICBKYW1lcyBIYXdraW5zICA8amhhd2tpbnNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGE0MjBkYTMuLjQ0ZTc4YWMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNDY2LDE1ICs0NjYs
MjUgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRJbXBsOjp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXBhaW50
KAotICAgIGNvbnN0IEludFJlY3QmIHBhaW50UmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9v
bCBpbW1lZGlhdGUsCi0gICAgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIENocm9tZUNs
aWVudEltcGw6OmludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudEltcGw6OmludmFsaWRh
dGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBDaHJvbWVDbGllbnRJbXBsOjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3co
Y29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0ZSovKQogewotICAgIC8v
IElnbm9yZSBzcHVyaW91cyBjYWxscy4KLSAgICBpZiAoIWNvbnRlbnRDaGFuZ2VkIHx8IHBhaW50
UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAobV93ZWJWaWV3LT5jbGll
bnQoKSkKLSAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJlY3QocGFp
bnRSZWN0KTsKKyAgICAgICAgbV93ZWJWaWV3LT5jbGllbnQoKS0+ZGlkSW52YWxpZGF0ZVJlY3Qo
dXBkYXRlUmVjdCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6aW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKK3sKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1tZWRp
YXRlKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpzY3JvbGwoCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IDViZjkzODIuLjNlMmY2OTIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCkBAIC05Niw5ICs5NiwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoKTsKICAgICB2aXJ0dWFs
IGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qg
d2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludCgKLSAg
ICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wg
aW1tZWRpYXRlID0gZmFsc2UsCi0gICAgICAgIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFs
c2UpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbCgKICAgICAgICAgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJl
Y3RUb1Njcm9sbCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXgg
YzQ0NDM0Yy4uNThkODU3MiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNv
bnRhaW5lckltcGwuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIEludFJlY3Qg
Y2xpcFJlY3QgPSBwYXJlbnQoKS0+d2luZG93Q2xpcFJlY3QoKTsKICAgICBkYW1hZ2VSZWN0Lmlu
dGVyc2VjdChjbGlwUmVjdCk7CiAKLSAgICBwYXJlbnQoKS0+aG9zdFdpbmRvdygpLT5yZXBhaW50
KGRhbWFnZVJlY3QsIHRydWUpOworICAgIHBhcmVudCgpLT5ob3N0V2luZG93KCktPmludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyhkYW1hZ2VSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKIH0K
IAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRGb2N1cygpCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcAppbmRleCBmNmQzNjBlLi43OTkxOWVmIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKQEAgLTI1MCwxOCArMjUwLDI3IEBA
IHZvaWQgV2ViUG9wdXBNZW51SW1wbDo6c2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0aW9u
IGRpcmVjdGlvbikKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFdlYkNvcmU6Okhvc3RXaW5k
b3cKIAotdm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpyZXBhaW50KGNvbnN0IEludFJlY3QmIHBhaW50
UmVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNvbnRlbnRDaGFuZ2Vk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaW1tZWRpYXRlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQordm9pZCBX
ZWJQb3B1cE1lbnVJbXBsOjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQb3B1cE1lbnVJbXBsOjpp
bnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViUG9wdXBNZW51SW1wbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5k
V2luZG93KGNvbnN0IEludFJlY3QmIHBhaW50UmVjdCwgYm9vbCAvKmltbWVkaWF0ZSovKQogewot
ICAgIC8vIElnbm9yZSBzcHVyaW91cyBjYWxscy4KLSAgICBpZiAoIWNvbnRlbnRDaGFuZ2VkIHx8
IHBhaW50UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAobV9jbGllbnQp
CiAgICAgICAgIG1fY2xpZW50LT5kaWRJbnZhbGlkYXRlUmVjdChwYWludFJlY3QpOwogfQogCit2
b2lkIFdlYlBvcHVwTWVudUltcGw6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kV2luZG93KHVwZGF0ZVJlY3QsIGltbWVkaWF0ZSk7Cit9CisKIHZvaWQgV2Vi
UG9wdXBNZW51SW1wbDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmggYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAppbmRleCAxM2ViNjc0Li43MzkwMzk0IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuaApAQCAtOTgsOSArOTgsMTAgQEAgcHVi
bGljOgogICAgIH5XZWJQb3B1cE1lbnVJbXBsKCk7CiAKICAgICAvLyBXZWJDb3JlOjpIb3N0V2lu
ZG93IG1ldGhvZHM6Ci0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoCi0gICAgICAgIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0ZSA9IGZh
bHNlLAotICAgICAgICBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29s
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wp
OwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LAogICAg
ICAgICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDNiMTAwYmUuLmFh
NWJhMzEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJl
YXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGFwdCB0aGUgZ3RrIHBvcnQgdG8gdGhlIHJlZmFjdG9yaW5nIG9mIHJlcGFpbnQgbWV0
aG9kcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzQyMTQKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMTAtMDMtMDEg
IEpvc8OpIE1pbGzDoW4gU290byAgPGptaWxsYW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggZDRjY2U4YS4uMmE1NzM1NyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcApAQCAtMzQxLDIwICsz
NDEsMzQgQEAgSW50UmVjdCBDaHJvbWVDbGllbnQ6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QK
ICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6cmVwYWludChj
b25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVk
aWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIENocm9tZUNsaWVudDo6aW52YWxp
ZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKQogewotICAgIEdka1JlY3RhbmdsZSBy
ZWN0ID0gd2luZG93UmVjdDsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9t
ZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQor
eworICAgIEdka1JlY3RhbmdsZSByZWN0ID0gdXBkYXRlUmVjdDsKICAgICBHZGtXaW5kb3cqIHdp
bmRvdyA9IEdUS19XSURHRVQobV93ZWJWaWV3KS0+d2luZG93OwogCiAgICAgaWYgKHdpbmRvdykg
ewotICAgICAgICBpZiAoY29udGVudENoYW5nZWQpCi0gICAgICAgICAgICBnZGtfd2luZG93X2lu
dmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0LCBGQUxTRSk7CisgICAgICAgIGdka193aW5kb3df
aW52YWxpZGF0ZV9yZWN0KHdpbmRvdywgJnJlY3QsIEZBTFNFKTsKICAgICAgICAgLy8gV2UgZG9u
J3QgY3VycmVudGx5IGRvIGltbWVkaWF0ZSB1cGRhdGVzIHNpbmNlIHRoZXkgZGVsYXkgb3RoZXIg
VUkgZWxlbWVudHMuCiAgICAgICAgIC8vaWYgKGltbWVkaWF0ZSkKICAgICAgICAgLy8gICAgZ2Rr
X3dpbmRvd19wcm9jZXNzX3VwZGF0ZXMod2luZG93LCBGQUxTRSk7CiAgICAgfQogfQogCit2b2lk
IENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBpbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3codXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKK30KKwogdm9pZCBDaHJvbWVDbGll
bnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Ny
b2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKIHsKICAgICBHZGtXaW5kb3cqIHdpbmRvdyA9
IEdUS19XSURHRVQobV93ZWJWaWV3KS0+d2luZG93OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggNjJkNDhmYS4uNDg4NzNlZSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC04Nyw4ICs4NywxMiBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2lu
ZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlh
dGUgPSBmYWxzZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkgPSBmYWxzZSk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJv
b2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgYm9vbCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOworICAgICAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgYm9vbCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Nj
cm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAgICAgIHZpcnR1
YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9XaW5kb3coY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBQbGF0
Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCA0YzM3
YmFlLi45ZTNkOWRjIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMy0wMiAgQWRhbSBU
cmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkYXB0IHRoZSBoYWlrdSBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBv
ZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxp
ZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjppbnZh
bGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEhhaWt1OjppbnZh
bGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDEwLTAyLTIzICBTdGV2ZSBCbG9jayAgPHN0
ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHAgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3Bw
CmluZGV4IGE3ZjExNDUuLmNkOGYxZjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcApAQCAtMjUzLDcgKzI1MywyMiBAQCBJbnRSZWN0
IENocm9tZUNsaWVudEhhaWt1Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IEludFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6cmVwYWludChjb25zdCBJ
bnRSZWN0JiwgYm9vbCBjb250ZW50Q2hhbmdlZCwgYm9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWlu
dENvbnRlbnRPbmx5KQordm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6aW52YWxpZGF0ZUNvbnRlbnRz
KGNvbnN0IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRIYWlr
dTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hyb21lQ2xpZW50SGFpa3U6OmludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEhhaWt1LmgKaW5kZXggM2Q3NzQ1OS4uOTkwZjNmMCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgKQEAgLTEwMiw4ICsxMDIs
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHRhYnNUb0xpbmtzKCkgY29u
c3Q7CiAgICAgICAgIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgICAg
ICB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wg
aW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAg
ICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAg
ICAgIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7CisgICAgICAg
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsK
KyAgICAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJl
Y3QmLCBib29sKTsKICAgICAgICAgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3Qp
OworCiAgICAgICAgIEludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JikgY29u
c3Q7CiAgICAgICAgIEludFJlY3Qgd2luZG93VG9TY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0
OwogICAgICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IGY5MTRkODUuLjIzY2U4MzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDMtMDIg
IEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgbWFjIHBvcnQgdG8gdGhlIHJlZmFjdG9y
aW5nIG9mIHJlcGFpbnQgbWV0aG9kcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQyMTQKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyk6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorCiAyMDEwLTAzLTAy
ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgLVtXZWJWaWV3
IF9yZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlOl0KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGM4ZGE1M2IuLjg1MjY3ZDUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTEsOCArOTEsMTIgQEAgcHVi
bGljOgogICAgIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVj
dCgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wg
cmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOworICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVj
dCk7CisKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0
IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKICAgICB2aXJ0
dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggYjIyNDBkOS4u
ZGE2YzE1YyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0KQEAgLTQzOSwyMCArNDM5LDM2IEBAIEludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dS
ZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoW21fd2ViVmll
dyBjb252ZXJ0UmVjdDpyZWN0IGZyb21WaWV3Om5pbF0pOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVwYWludChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBi
b29sIGltbWVkaWF0ZSwgYm9vbCByZXBhaW50Q29udGVudE9ubHkpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKQoreworfQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9v
bCBpbW1lZGlhdGUpCit7CisgICAgaWYgKGltbWVkaWF0ZSkgeworICAgICAgICBbW21fd2ViVmll
dyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07CisgICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10g
Zmx1c2hXaW5kb3dJZk5lZWRlZF07CisgICAgfQorfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgaW1t
ZWRpYXRlKQogewogICAgIGlmIChbbV93ZWJWaWV3IF91c2VzRG9jdW1lbnRWaWV3c10pCiAgICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAoY29udGVudENoYW5nZWQpCi0gICAgICAgIFttX3dl
YlZpZXcgc2V0TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOwotICAgIAorCisgICAgW21fd2ViVmll
dyBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6cmVjdF07CisKICAgICBpZiAoaW1tZWRpYXRlKSB7CiAg
ICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKICAgICAgICAgW1tt
X3dlYlZpZXcgd2luZG93XSBmbHVzaFdpbmRvd0lmTmVlZGVkXTsKICAgICB9CiB9CiAKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIGludmFsaWRhdGVDb250ZW50c0Fu
ZFdpbmRvdyhyZWN0LCBpbW1lZGlhdGUpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2Ny
b2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpCiB7CiB9
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpp
bmRleCA5YzNlNjliLi42ZDkxYzE3IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wMy0wMiAgQWRh
bSBUcmVhdCAgPGF0cmVhdEByaW0uY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkYXB0IHRoZSBxdCBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBv
ZiByZXBhaW50IG1ldGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZUNv
bnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlV2lu
ZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjppbnZhbGlkYXRlQ29udGVu
dHNBbmRXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFF0Lmg6CisKIDIwMTAtMDMtMDIgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21h
bm5Abm9raWEuY29tPgogCiAgICAgICAgIFN5bWJpYW4gYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBiL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5kZXggZWNiYWJlNC4uNmY2ODJjMyAx
MDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAor
KysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCkBAIC0zMjcs
MjMgKzMyNywzNiBAQCBJbnRSZWN0IENocm9tZUNsaWVudFF0Ojp3aW5kb3dSZXNpemVyUmVjdCgp
IGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRRdDo6
cmVwYWludChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGNvbnRlbnRDaGFuZ2VkLCBi
b29sLCBib29sKQordm9pZCBDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0
IEludFJlY3QmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQ2hy
b21lQ2xpZW50UXQ6OmludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRRdDo6aW52YWxpZGF0
ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1tZWRp
YXRlKQogewogICAgIC8vIE5vIGRvdWJsZSBidWZmZXIsIHNvIG9ubHkgdXBkYXRlIHRoZSBRV2lk
Z2V0IGlmIGNvbnRlbnQgY2hhbmdlZC4KLSAgICBpZiAoY29udGVudENoYW5nZWQpIHsKLSAgICAg
ICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7Ci0gICAgICAgICAgICBRUmVjdCByZWN0KHdp
bmRvd1JlY3QpOwotICAgICAgICAgICAgcmVjdCA9IHJlY3QuaW50ZXJzZWN0ZWQoUVJlY3QoUVBv
aW50KDAsIDApLCBtX3dlYlBhZ2UtPnZpZXdwb3J0U2l6ZSgpKSk7Ci0gICAgICAgICAgICBpZiAo
IXJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHBsYXRmb3JtUGFnZUNsaWVudCgpLT51
cGRhdGUocmVjdCk7Ci0gICAgICAgIH0KLSAgICAgICAgZW1pdCBtX3dlYlBhZ2UtPnJlcGFpbnRS
ZXF1ZXN0ZWQod2luZG93UmVjdCk7CisgICAgaWYgKHBsYXRmb3JtUGFnZUNsaWVudCgpKSB7Cisg
ICAgICAgIFFSZWN0IHJlY3Qod2luZG93UmVjdCk7CisgICAgICAgIHJlY3QgPSByZWN0LmludGVy
c2VjdGVkKFFSZWN0KFFQb2ludCgwLCAwKSwgbV93ZWJQYWdlLT52aWV3cG9ydFNpemUoKSkpOwor
ICAgICAgICBpZiAoIXJlY3QuaXNFbXB0eSgpKQorICAgICAgICAgICAgcGxhdGZvcm1QYWdlQ2xp
ZW50KCktPnVwZGF0ZShyZWN0KTsKICAgICB9CisgICAgZW1pdCBtX3dlYlBhZ2UtPnJlcGFpbnRS
ZXF1ZXN0ZWQod2luZG93UmVjdCk7CiAKICAgICAvLyBGSVhNRTogVGhlcmUgaXMgbm8gImltbWVk
aWF0ZSIgc3VwcG9ydCBmb3Igd2luZG93IHBhaW50aW5nLiAgVGhpcyBzaG91bGQgYmUgZG9uZSBh
bHdheXMgd2hlbmV2ZXIgdGhlIGZsYWcKICAgICAvLyBpcyBzZXQuCiB9CiAKK3ZvaWQgQ2hyb21l
Q2xpZW50UXQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYg
d2luZG93UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5k
V2luZG93KHdpbmRvd1JlY3QsIGltbWVkaWF0ZSk7Cit9CisKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6
OnNjcm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1Jl
Y3QsIGNvbnN0IEludFJlY3QmKQogewogICAgIGlmIChwbGF0Zm9ybVBhZ2VDbGllbnQoKSkKZGlm
ZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oIGIvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKaW5kZXggZGEzZGE1OS4uY2I4
YTk5NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0
LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTEw
NSw4ICsxMDUsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
dGFic1RvTGlua3MoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6
ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50
UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wg
cmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAgICAgICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVXaW5kb3coY29uc3QgSW50UmVjdCYsIGJvb2wpOworICAgICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgSW50UmVjdCYsIGJvb2wpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0KTsKKwogICAgICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvV2lu
ZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5k
b3dUb1NjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA5YTczY2I5Li42
M2YzYzVhIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTAzLTAyICBBZGFtIFRyZWF0ICA8YXRy
ZWF0QHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRhcHQgdGhlIHdpbiBwb3J0IHRvIHRoZSByZWZhY3RvcmluZyBvZiByZXBhaW50IG1l
dGhvZHMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM0MjE0CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHMpOgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTAtMDMtMDIgIEFkYW0gUm9iZW4gIDxh
cm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBJV2ViVmlld1ByaXZhdGU6OnJlZ2lzdGVy
VVJMU2NoZW1lQXNTZWN1cmUKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAppbmRleCA0NWY3NjYyLi5hYjlmYWY0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00NTEsMTAgKzQ1MSwyOCBAQCBJbnRS
ZWN0IFdlYkNocm9tZUNsaWVudDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVy
biBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXBhaW50KGNvbnN0IElu
dFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgY29udGVudENoYW5nZWQsIGJvb2wgaW1tZWRpYXRlLCBi
b29sIHJlcGFpbnRDb250ZW50T25seSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wpCiB7CiAgICAgQVNTRVJUKGNvcmUobV93ZWJW
aWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKLSAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVj
dCwgY29udGVudENoYW5nZWQsIGltbWVkaWF0ZSwgcmVwYWludENvbnRlbnRPbmx5KTsKKyAgICBt
X3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGZh
bHNlIC8qaW1tZWRpYXRlKi8sIHRydWUgLypyZXBhaW50Q29udGVudE9ubHkqLyk7Cit9CisKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmIHdpbmRv
d1JlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9w
TGV2ZWxGcmFtZSgpKSk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIGZhbHNl
IC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlLCBmYWxzZSAvKnJlcGFpbnRDb250ZW50T25s
eSovKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdp
bmRvdyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBB
U1NFUlQoY29yZShtX3dlYlZpZXctPnRvcExldmVsRnJhbWUoKSkpOworICAgIG1fd2ViVmlldy0+
cmVwYWludCh3aW5kb3dSZWN0LCB0cnVlIC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlIC8q
aW1tZWRpYXRlKi8sIGZhbHNlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8pOworfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRS
ZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBBU1NFUlQoY29yZShtX3dl
YlZpZXctPnRvcExldmVsRnJhbWUoKSkpOworICAgIG1fd2ViVmlldy0+cmVwYWludCh3aW5kb3dS
ZWN0LCB0cnVlIC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlLCB0cnVlIC8qcmVwYWludENv
bnRlbnRPbmx5Ki8pOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IElu
dFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxWaWV3UmVjdCwgY29uc3QgSW50UmVj
dCYgY2xpcFJlY3QpCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCBmNzEzYWM3Li45NTEwZmM0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTkzLDggKzkzLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgdGFic1RvTGlua3MoKSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qg
d2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sIGNvbnRlbnRDaGFuZ2VkLCBib29sIGltbWVkaWF0
ZSA9IGZhbHNlLCBib29sIHJlcGFpbnRDb250ZW50T25seSA9IGZhbHNlKTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgY2xpcFJlY3QpOworCiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3Jl
ZW5Ub1dpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcCkgY29uc3Q7CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHIpIGNvbnN0OwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNs
aWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggNjcxYTAyZC4uODJiYjI2ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTAtMDMtMDIgIEFkYW0gVHJlYXQgIDxhdHJlYXRAcmltLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0aGUgd3ggcG9ydCB0byB0aGUg
cmVmYWN0b3Jpbmcgb2YgcmVwYWludCBtZXRob2RzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDIxNAorCisgICAgICAgICogV2ViS2l0U3VwcG9y
dC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6
aW52YWxpZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojpp
bnZhbGlkYXRlV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjppbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNs
aWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAgICAgICAqIFdlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAxMC0wMy0wMSAgSmFrb2IgUGV0c292aXRzICA8
anBldHNvdml0c0ByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAgYi9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKaW5kZXggYWMyNWRhZi4u
OTRiMDFjOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guY3BwCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcApA
QCAtMzM2LDE0ICszMzYsMjkgQEAgSW50UmVjdCBDaHJvbWVDbGllbnRXeDo6d2luZG93UmVzaXpl
clJlY3QoKSBjb25zdAogICAgIHJldHVybiBJbnRSZWN0KCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50V3g6OnJlcGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBjb250ZW50Q2hhbmdlZCwg
Ym9vbCBpbW1lZGlhdGUsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5KQordm9pZCBDaHJvbWVDbGll
bnRXeDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBDaHJvbWVDbGllbnRXeDo6aW52YWxpZGF0
ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKK3sKKyAgICBpZiAo
aW1tZWRpYXRlKQorICAgICAgICBtX3dlYlZpZXctPlVwZGF0ZSgpOworfQorCit2b2lkIENocm9t
ZUNsaWVudFd4OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3Qm
IHJlY3QsIGJvb2wgaW1tZWRpYXRlKQoreworICAgIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRv
dyhyZWN0LCBpbW1lZGlhdGUpOworfQorCit2b2lkIENocm9tZUNsaWVudFd4OjppbnZhbGlkYXRl
Q29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBpbW1lZGlhdGUpCiB7
CiAgICAgaWYgKCFtX3dlYlZpZXcpCiAgICAgICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAoY29u
dGVudENoYW5nZWQpCi0gICAgICAgIG1fd2ViVmlldy0+UmVmcmVzaFJlY3QocmVjdCk7Ci0gICAg
CisKKyAgICBtX3dlYlZpZXctPlJlZnJlc2hSZWN0KHJlY3QpOworCiAgICAgaWYgKGltbWVkaWF0
ZSkgewogICAgICAgICBtX3dlYlZpZXctPlVwZGF0ZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IDNiZjkyMDIuLmM2NzBmOTkgMTAwNjQ0Ci0t
LSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMTAyLDggKzEwMiwxMiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbEJhY2tpbmdTdG9yZShpbnQgZHgsIGludCBk
eSwgY29uc3QgSW50UmVjdCYgc2Nyb2xsVmlld1JlY3QsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKCk7CiAgICAgCi0gICAgdmly
dHVhbCB2b2lkIHJlcGFpbnQoY29uc3QgSW50UmVjdCYsIGJvb2wgY29udGVudENoYW5nZWQsIGJv
b2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgcmVwYWludENvbnRlbnRPbmx5ID0gZmFsc2UpOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYsIGJvb2wp
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29s
KTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IElu
dFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBj
b25zdCBJbnRSZWN0JiBjbGlwUmVjdCk7CisKICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRv
V2luZG93KGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRv
d1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtUGFn
ZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsK
</data>
<flag name="review"
          id="32888"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>