<?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>90838</bug_id>
          
          <creation_ts>2012-07-09 17:18:26 -0700</creation_ts>
          <short_desc>constructing TypedArray from another TypedArray is slow</short_desc>
          <delta_ts>2014-04-24 16:45:46 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="arno.">a.renevier</reporter>
          <assigned_to name="arno.">a.renevier</assigned_to>
          <cc>abarth</cc>
    
    <cc>barraclough</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>kbr</cc>
    
    <cc>ojan</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665330</commentid>
    <comment_count>0</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-09 17:18:26 -0700</bug_when>
    <thetext>Hi,
we can construct a TypedArray by passing another TypedArray. In that case, the value of the buffer is converted to the new type, and is copied to the new buffer.

This operation is quite slow (at least compared to mozilla). Each value is read as a JSValue from typed array as a JSObject, and then converted to a number.

May be we can detect if the constructor argument is a typed array, and get each value directly with array.item(idx);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665335</commentid>
    <comment_count>1</comment_count>
      <attachid>151366</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-09 17:22:02 -0700</bug_when>
    <thetext>Created attachment 151366
testcase

Testcase.

Average times are on my machine (ubuntu 32 bits):
firefox: 120ms/20ms
chrome: 1500ms/20ms
opera: 1400ms/1500ms
GtkLauncher from webkit trunk: 690ms/650ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665350</commentid>
    <comment_count>2</comment_count>
      <attachid>151370</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-09 17:47:56 -0700</bug_when>
    <thetext>Created attachment 151370
first patch

first patch. It works by introducing a new JavaScript type: TypedArray. This is just an interface, that can be used from javascript to determine wether an object is an actual JSTypedArray.
TypedArrayBase template classes derive from TypedArray. Also, this patch introduce a virtual getType function. So, typed array can known their actual type. We can use this information to static_cast the TypedArray to the actual type, and then read the values from the source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665354</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 17:50:32 -0700</bug_when>
    <thetext>Attachment 151370 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmak...&quot; exit_code: 1
Source/WebCore/ChangeLog:21:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 33 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>665362</commentid>
    <comment_count>4</comment_count>
      <attachid>151370</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-09 18:00:47 -0700</bug_when>
    <thetext>Comment on attachment 151370
first patch

Attachment 151370 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13160615</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665363</commentid>
    <comment_count>5</comment_count>
      <attachid>151370</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-09 18:02:37 -0700</bug_when>
    <thetext>Comment on attachment 151370
first patch

Attachment 151370 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13176085</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665389</commentid>
    <comment_count>6</comment_count>
      <attachid>151370</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-09 18:37:11 -0700</bug_when>
    <thetext>Comment on attachment 151370
first patch

Attachment 151370 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13166420</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665496</commentid>
    <comment_count>7</comment_count>
      <attachid>151370</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-09 23:04:24 -0700</bug_when>
    <thetext>Comment on attachment 151370
first patch

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

&gt; Source/WTF/ChangeLog:19
&gt; +        Reviewed by NOBODY (OOPS!).

Generally, &quot;Reviewed by bla bla&quot; is placed above description.

&gt; Source/WebCore/GNUmakefile.am:490
&gt; +# Filters

Is this feature related to this patch ?

&gt; configure.ac:1120
&gt; +# check whether to enable CSS Regions support

ditto.

&gt; configure.ac:1467
&gt; +AM_CONDITIONAL([ENABLE_CSS_FILTERS],[test &quot;$enable_css_filters&quot; = &quot;yes&quot;])

ditto.

&gt; configure.ac:1529
&gt; + CSS Filters support                                      : $enable_css_filters

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665818</commentid>
    <comment_count>8</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-10 09:53:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 151370 [details])

Thanks for noticing that. I had indeed merged two patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665854</commentid>
    <comment_count>9</comment_count>
      <attachid>151481</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-10 10:18:50 -0700</bug_when>
    <thetext>Created attachment 151481
updated patch; lets see if he build properly on more platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665856</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 10:21:32 -0700</bug_when>
    <thetext>Attachment 151481 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmak...&quot; exit_code: 1
Source/WebCore/ChangeLog:21:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 33 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>665903</commentid>
    <comment_count>11</comment_count>
      <attachid>151481</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 11:27:37 -0700</bug_when>
    <thetext>Comment on attachment 151481
updated patch; lets see if he build properly on more platforms

Attachment 151481 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13203041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665916</commentid>
    <comment_count>12</comment_count>
      <attachid>151481</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 11:48:39 -0700</bug_when>
    <thetext>Comment on attachment 151481
updated patch; lets see if he build properly on more platforms

Attachment 151481 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13199046</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665982</commentid>
    <comment_count>13</comment_count>
      <attachid>151506</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-10 13:13:20 -0700</bug_when>
    <thetext>Created attachment 151506
try another time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666007</commentid>
    <comment_count>14</comment_count>
      <attachid>151506</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 13:45:44 -0700</bug_when>
    <thetext>Comment on attachment 151506
try another time

Attachment 151506 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13182164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666063</commentid>
    <comment_count>15</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-10 14:25:58 -0700</bug_when>
    <thetext>I don&apos;t known how to fix link errors on mac and windows. Do I need to edit WebCore.vcproj and project.pbxproj ? If so, is it possible to do that without a windows/mac box ?
Moreover, is the path I&apos;m taking in my patch correct ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666104</commentid>
    <comment_count>16</comment_count>
      <attachid>151506</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 15:31:13 -0700</bug_when>
    <thetext>Comment on attachment 151506
try another time

Attachment 151506 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13207069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666109</commentid>
    <comment_count>17</comment_count>
      <attachid>151506</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 15:41:08 -0700</bug_when>
    <thetext>Comment on attachment 151506
try another time

Attachment 151506 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13217007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666202</commentid>
    <comment_count>18</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-10 17:40:11 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I don&apos;t known how to fix link errors on mac and windows. Do I need to edit WebCore.vcproj and project.pbxproj ?

Yes, you should modify .vcproj and .pbxproj files to support windows and mac ports.

&gt; If so, is it possible to do that without a windows/mac box ?

When I submit a patch for WebCore, I test it on all platforms before submitting to Bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666221</commentid>
    <comment_count>19</comment_count>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-10 18:00:31 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #15)

&gt; &gt; If so, is it possible to do that without a windows/mac box ?
&gt; 
&gt; When I submit a patch for WebCore, I test it on all platforms before submitting to Bugzilla.

Is there something such as a tryserver where developers could test patches on platforms where they don&apos;t have access/have difficult access without submitting to bugzilla ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666264</commentid>
    <comment_count>20</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-10 19:11:10 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #15)
&gt; 
&gt; &gt; &gt; If so, is it possible to do that without a windows/mac box ?
&gt; &gt; 
&gt; &gt; When I submit a patch for WebCore, I test it on all platforms before submitting to Bugzilla.
&gt; 
&gt; Is there something such as a tryserver where developers could test patches on platforms where they don&apos;t have access/have difficult access without submitting to bugzilla ?

As far as I know, there is no test server. You have to test your patch locally first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667275</commentid>
    <comment_count>21</comment_count>
      <attachid>151829</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-11 18:13:37 -0700</bug_when>
    <thetext>Created attachment 151829
updated patch

This patch should hopefully build correctly (at least on mac). So it use a jsCast (in toTypedArray) to check if object is actually a typed array. It is the correct way to do? If so, is adding a TypedArray idl interface the correct way to be able to jsCast ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667958</commentid>
    <comment_count>22</comment_count>
      <attachid>151992</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-12 10:38:07 -0700</bug_when>
    <thetext>Created attachment 151992
updated patch

oh, the patch did not apply. That may be because http://trac.webkit.org/changeset/122410 has been landed in between</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673175</commentid>
    <comment_count>23</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-18 22:29:53 -0700</bug_when>
    <thetext>I&apos;m not an expert for this patch. So, I think you need to find proper reviewer on #webkit irc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673217</commentid>
    <comment_count>24</comment_count>
      <attachid>151992</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-18 23:48:07 -0700</bug_when>
    <thetext>Comment on attachment 151992
updated patch

Thanks for the patch. It looks pretty good upon first glance. I&apos;ll look at it more thoroughly tomorrow but in the interim would appreciate it if other reviewers would hold off r+&apos;ing it until then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676239</commentid>
    <comment_count>25</comment_count>
      <attachid>151992</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-23 17:44:43 -0700</bug_when>
    <thetext>Comment on attachment 151992
updated patch

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

Thanks for this patch and sorry for taking so long to review it. Originally I was concerned about the naming convention of your newly introduced TypedArray superclass, but upon giving it more thought I don&apos;t think it&apos;s necessary to expose that concept at all -- therefore the r-. Please contact me if you have any concerns about this review. Looking forward to a revised patch.

&gt; Source/WTF/wtf/TypedArray.h:36
&gt; +        TYPE_Int8,

While there isn&apos;t really a naming convention in WebKit for enums, using both capitalization and underscores doesn&apos;t match any other I&apos;ve seen. Please use for example TypeInt8, TypeUint8, etc.

&gt; Source/WTF/wtf/TypedArray.h:44
&gt; +        TYPE_Float64

Please add one for DataView as well.

&gt; Source/WTF/wtf/TypedArray.h:46
&gt; +    virtual ViewType getType() = 0;

Just go ahead and add this virtual to ArrayBufferView. It already contains a bunch of other virtuals for run-time type identification. This will simplify your patch since you won&apos;t need to touch any IDL files or the code generators. You will need however a couple more tests in the custom bindings in order to watch for and avoid DataViews as incoming arguments.

Actually, it would be good to clean up these virtuals. You can feel free to remove the others in favor of your new one when you introduce it.

&gt; Source/WTF/wtf/Uint16Array.h:49
&gt; +    ViewType getType() 

All of these overrides should be in the private section to minimize visibility. See for example the current isUnsignedShortArray in this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678406</commentid>
    <comment_count>26</comment_count>
      <attachid>154429</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-25 13:40:26 -0700</bug_when>
    <thetext>Created attachment 154429
updated patch to address review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678421</commentid>
    <comment_count>27</comment_count>
      <attachid>154429</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 13:49:48 -0700</bug_when>
    <thetext>Comment on attachment 154429
updated patch to address review

Attachment 154429 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13346387</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678494</commentid>
    <comment_count>28</comment_count>
      <attachid>154429</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-25 14:44:29 -0700</bug_when>
    <thetext>Comment on attachment 154429
updated patch to address review

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

Looks good overall. Please address the build failure.

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:415
&gt; +        ArrayBufferView::ViewType type = arrayBufferview-&gt;getType();

Typo -- see the cr-linux build results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678509</commentid>
    <comment_count>29</comment_count>
      <attachid>154453</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-25 14:59:18 -0700</bug_when>
    <thetext>Created attachment 154453
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678514</commentid>
    <comment_count>30</comment_count>
      <attachid>154453</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-25 15:04:51 -0700</bug_when>
    <thetext>Comment on attachment 154453
updated patch

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:415
&gt; +        ArrayBufferView::ViewType type = arrayBufferview-&gt;getType();

Still not fixed. This will fail the cr-linux EWS bot. arrayBufferview =&gt; arrayBufferView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678517</commentid>
    <comment_count>31</comment_count>
      <attachid>154456</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-25 15:08:55 -0700</bug_when>
    <thetext>Created attachment 154456
updated patch

sorry about that, I had only seen the second error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678532</commentid>
    <comment_count>32</comment_count>
      <attachid>154456</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-25 15:26:16 -0700</bug_when>
    <thetext>Comment on attachment 154456
updated patch

Attachment 154456 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13341387</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678547</commentid>
    <comment_count>33</comment_count>
      <attachid>154456</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-25 15:50:43 -0700</bug_when>
    <thetext>Comment on attachment 154456
updated patch

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

&gt; Source/WebCore/bindings/v8/SerializedScriptValue.cpp:415
&gt; +        ArrayBufferView::ViewType type = arrayBufferView-&gt;getType();

Oops. You&apos;ve surely already seen the error but &quot;-&gt;&quot; should be &quot;.&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679701</commentid>
    <comment_count>34</comment_count>
      <attachid>154735</attachid>
    <who name="arno.">a.renevier</who>
    <bug_when>2012-07-26 13:32:43 -0700</bug_when>
    <thetext>Created attachment 154735
updated patch

I&apos;ve figured out how to compile the chromium port. So this patch should be correct</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679903</commentid>
    <comment_count>35</comment_count>
      <attachid>154735</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2012-07-26 16:19:18 -0700</bug_when>
    <thetext>Comment on attachment 154735
updated patch

Very nice, thanks. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679945</commentid>
    <comment_count>36</comment_count>
      <attachid>154735</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 17:25:26 -0700</bug_when>
    <thetext>Comment on attachment 154735
updated patch

Clearing flags on attachment: 154735

Committed r123819: &lt;http://trac.webkit.org/changeset/123819&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679947</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-26 17:25:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728151</commentid>
    <comment_count>38</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-25 19:21:46 -0700</bug_when>
    <thetext>Is performance tests added by this and http://trac.webkit.org/changeset/124483 really worth tracking the score of? Performance tests aren&apos;t regression tests. We don&apos;t want to add a new performance test for every bug we fix because that&apos;s going to increase the bot cycle time.

Also, we should probably use runPerSecond instead of run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003869</commentid>
    <comment_count>39</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-24 16:45:46 -0700</bug_when>
    <thetext>Moving all JavaScriptGlue bugs to JavaScriptCore. The JavaScriptGlue framework itself is long gone. And most of the more recent bugs put in this component were put there by people who thought this was for some other aspect of “JavaScript glue” and have nothing to do with the actual original reason for the existence of this component, which was an OS-X-only framework named JavaScriptGlue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>151366</attachid>
            <date>2012-07-09 17:22:02 -0700</date>
            <delta_ts>2012-07-09 17:22:02 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>index.html</filename>
            <type>text/html</type>
            <size>687</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiA+CiAgICA8dGl0bGU+
PC90aXRsZT4KICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIGxlbmd0aCA9IDMwMDAwMDAwOwoKICAg
ICAgICAvLyBjcmVhdGUgaW5pdGlhbCB0eXBlZCBhcnJheQogICAgICAgIHZhciBzb3VyY2UgPSBu
ZXcgVWludDhBcnJheShsZW5ndGgpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpKyspIHsKICAgICAgICAgICAgc291cmNlW2ldID0gaTsKICAgICAgICB9CgogICAgICAgIC8v
IGNyZWF0ZSBhIG5ldyBhcnJheSB3aXRoIGRpZmZlcmVudCB0eXBlCiAgICAgICAgdmFyIGQgPSBu
ZXcgRGF0ZSgpOwogICAgICAgIHZhciB0YXJnZXQgPSBuZXcgRmxvYXQ2NEFycmF5KHNvdXJjZSk7
CiAgICAgICAgY29uc29sZS5sb2cobmV3IERhdGUoKSAtIGQpOyAKCiAgICAgICAgLy8gY3JlYXRl
IGEgbmV3IGFycmF5IHdpdGggbmV3IHR5cGUKICAgICAgICBkID0gbmV3IERhdGUoKTsKICAgICAg
ICB0YXJnZXQgPSBuZXcgVWludDhBcnJheShzb3VyY2UpOwogICAgICAgIGNvbnNvbGUubG9nKG5l
dyBEYXRlKCkgLSBkKTsKICAgIDwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8L2JvZHk+CjwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151370</attachid>
            <date>2012-07-09 17:47:56 -0700</date>
            <delta_ts>2012-07-10 10:18:45 -0700</delta_ts>
            <desc>first patch</desc>
            <filename>bug-90838-20120709174752.patch</filename>
            <type>text/plain</type>
            <size>35286</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNjMTM4OWZlZmU0ZWI5ZmQ4OTEzOTI2
OThkOWUzMmZiOTY1YTU5Y2EuLjVhZGNkNGE4ZTM3YjMzY2E4NDFjN2I5M2U4NTkxNzRjMzdiY2Iw
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTItMDctMDkgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFdoZW4gY29uc3Ry
dWN0aW5nIGEgdHlwZWQgYXJyYXkgZnJvbSBhbiBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bwor
ICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGFyZ3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNv
LCBjYXN0IHRoZSBhcmd1bWVudAorICAgICAgICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBl
YWNoIGVsZW1lbnQgd2l0aCAuaXRlbSgpIG1ldGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFk
aW5nIHRoZSB2YWx1ZSBhcyBhIEpTVmFsdWUsIGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkK
KyAgICAgICAgYXBwcm94aW1hdGl2ZWx5IDN4IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUg
Ym90aCB0aGUgc2FtZSB0eXBlKS4KKworICAgICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQs
IHdlIGludHJvZHVjZSBhIG5ldyBpbnRlcmZhY2UgVHlwZWRBcnJheS4gSXQKKyAgICAgICAgd2ls
bCBiZSB1c2VkIHRvIGRldGVybWluZSBpZiBhIEphdmFTY3JpcHQgb2JqZWN0IGlzIFR5cGVkIEFy
cmF5LiBJdAorICAgICAgICBhbHNvIGludHJvZHVjZXMgYSB2aXJ0dWFsIGdldFR5cGUgZnVuY3Rp
b24uIFNvLCB0eXBlZCBhcnJheSBjYW4KKyAgICAgICAga25vd24gdGhlaXIgYWN0dWFsIHR5cGUu
IFdlIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBjYXN0IHRoZQorICAgICAgICBUeXBlZEFy
cmF5IHRvIHRoZSBhY3R1YWwgdHlwZSwgYW5kIHRoZW4gcmVhZCB0aGUgdmFsdWVzIGZyb20gdGhl
CisgICAgICAgIHNvdXJjZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6Cisg
ICAgICAgICogd3RmL0Zsb2F0MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6
OmdldFR5cGUpOgorICAgICAgICAoRmxvYXQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvRmxvYXQ2
NEFycmF5Lmg6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Z2V0VHlwZSk6CisgICAgICAg
IChGbG9hdDY0QXJyYXkpOgorICAgICAgICAqIHd0Zi9JbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OkludDE2QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50MTZBcnJheSk6CisgICAgICAg
ICogd3RmL0ludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6Z2V0VHlwZSk6
CisgICAgICAgIChJbnQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvSW50OEFycmF5Lmg6CisgICAg
ICAgIChXVEY6OkludDhBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQ4QXJyYXkpOgorICAg
ICAgICAqIHd0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgICogd3RmL1R5cGVk
QXJyYXkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5pZGwuCisgICAgICAgIChUeXBlZEFycmF5KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheTo6
VHlwZWRBcnJheSk6CisgICAgICAgICogd3RmL1R5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgIChU
eXBlZEFycmF5QmFzZSk6CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjppdGVtKToKKyAg
ICAgICAgKFdURjo6VHlwZWRBcnJheUJhc2U6OlR5cGVkQXJyYXlCYXNlKToKKyAgICAgICAgKiB3
dGYvVWludDE2QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDE2QXJyYXk6OmdldFR5cGUpOgor
ICAgICAgICAoVWludDE2QXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOgorICAg
ICAgICAoV1RGOjpVaW50MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChVaW50MzJBcnJheSk6
CisgICAgICAgICogd3RmL1VpbnQ4QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhBcnJheTo6
Z2V0VHlwZSk6CisgICAgICAgIChVaW50OEFycmF5KToKKyAgICAgICAgKiB3dGYvVWludDhDbGFt
cGVkQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhDbGFtcGVkQXJyYXk6OmdldFR5cGUpOgor
ICAgICAgICAoVWludDhDbGFtcGVkQXJyYXkpOgorCiAyMDEyLTA3LTA1ICBab2x0YW4gSGVyY3pl
ZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUG9ydCBERkcgSklUIHRvIHRyYWRp
dGlvbmFsIEFSTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIwY2I0YmQzZDEyMmZmMmIwYmI5ZTQ0ZmJjOWNjNDhj
ZTBhNjY1YzUuLjYxOGFlZTc3OGI5YmY1ZTAwMmE0ZDM1ODhhNWUzYzJhOTA1YWExNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMi0wNy0wOSAgQXJuYXVkIFJlbmV2aWVyICA8YS5y
ZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGNvbnN0cnVjdGluZyBUeXBlZEFy
cmF5IGZyb20gYW5vdGhlciBUeXBlZEFycmF5IGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODM4CisKKyAgICAgICAgV2hlbiBjb25zdHJ1
Y3RpbmcgYSB0eXBlZCBhcnJheSBmcm9tIGFuIGFycmF5IGxpa2UgZWxlbWVudCwgdHJ5IHRvCisg
ICAgICAgIGRldGVybWluZSBpZiB0aGUgYXJndW1lbnQgaXMgYSB0eXBlZCBhcnJheS4gSWYgc28s
IGNhc3QgdGhlIGFyZ3VtZW50CisgICAgICAgIHRvIGEgdHlwZWQgYXJyYXksIGFuZCByZWFkIGVh
Y2ggZWxlbWVudCB3aXRoIC5pdGVtKCkgbWV0aG9kLiBUaGF0CisgICAgICAgIGF2b2lkIHJlYWRp
bmcgdGhlIHZhbHVlIGFzIGEgSlNWYWx1ZSwgYW5kIHNwZWVkdXBzIGNvbnN0cnVjdGlvbiBieQor
ICAgICAgICBhcHByb3hpbWF0aXZlbHkgM3ggKGV2ZW4gMzB4IGlmIFR5cGVkQXJyYXlzIGFyZSBi
b3RoIHRoZSBzYW1lIHR5cGUpLgorCisgICAgICAgIEluIG9yZGVyIHRvIGFjaGlldmUgdGhhdCwg
d2UgaW50cm9kdWNlIGEgbmV3IGludGVyZmFjZSBUeXBlZEFycmF5LiBJdAorICAgICAgICB3aWxs
IGJlIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIGEgSmF2YVNjcmlwdCBvYmplY3QgaXMgVHlwZWQgQXJy
YXkuIEl0CisgICAgICAgIGFsc28gaW50cm9kdWNlcyBhIHZpcnR1YWwgZ2V0VHlwZSBmdW5jdGlv
bi4gU28sIHR5cGVkIGFycmF5IGNhbgorICAgICAgICBrbm93biB0aGVpciBhY3R1YWwgdHlwZS4g
V2UgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIGNhc3QgdGhlCisgICAgICAgIFR5cGVkQXJy
YXkgdG8gdGhlIGFjdHVhbCB0eXBlLCBhbmQgdGhlbiByZWFkIHRoZSB2YWx1ZXMgZnJvbSB0aGUK
KyAgICAgICAgc291cmNlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFy
cmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoSXNUeXBlZEFycmF5VHlwZSk6CisgICAgICAgIChHZW5l
cmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Zs
b2F0NjRBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGw6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52
YXMvSW50OEFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwuCisg
ICAgICAgICogaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1VpbnQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5Lmlk
bDoKKwogMjAxMi0wNy0wNSAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29t
PgogCiAgICAgICAgIENvZGUgcmVmYWN0b3Jpbmc6IG1vdmUgbWltZVR5cGVGcm9tVVRJVHJlZSB0
byBhIHNlcGFyYXRlIGZpbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYzVmNDhhNmNlNTU5
YTI0Y2MyMGI3MDc1OGRmOGJjNGE4NGRjOWVlZC4uYWZkY2NmOTljOGM3YWFmNzg3NjkwNGFkY2Jm
MmZkZDg0Zjk2NDVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTUzLDYgKzE1Myw3IEBA
IHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5j
cHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL1R5cGVUcmFpdHMuY3BwIFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9UeXBlVHJhaXRzLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXkuaCBcCiAg
ICAgU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaCBcCiAgICAgU291cmNlL1dURi93dGYv
VWludDE2QXJyYXkuaCBcCiAgICAgU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291cmNlL1dURi9XVEYuZ3lwaQppbmRleCA4
Njc1ODU1MDYxZDM3NGVmYWZmZTdkNjJlMTUzZGViMTFiYmFkMDM5Li5lMDEzN2Q2Nzc5NjFjNjYz
OGU1OWQzNGYyMTQwZGRlZTZkZjY2MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBp
CisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTE4OCw2ICsxODgsNyBAQAogICAgICAgICAg
ICAgJ3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9UaHJlYWRp
bmdXaW4uY3BwJywKICAgICAgICAgICAgICd3dGYvVHlwZVRyYWl0cy5jcHAnLAorICAgICAgICAg
ICAgJ3d0Zi9UeXBlZEFycmF5LmgnLAogICAgICAgICAgICAgJ3d0Zi9UeXBlZEFycmF5QmFzZS5o
JywKICAgICAgICAgICAgICd3dGYvVWludDE2QXJyYXkuaCcsCiAgICAgICAgICAgICAnd3RmL1Vp
bnQzMkFycmF5LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5Lmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaAppbmRleCA1NWU2MWUwMDY0ZDE1YTUyYTA0
YTVlMGZhMGNmZDg0OWQwODAwNGI3Li4xNWZkYTNlOWU5ZGIxZmViNjJhZTY5NjY5YWE4ZThlYzk3
ZTI4ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaApAQCAtNDgsMTggKzQ4LDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHZhbHVlKTsKICAgICB9CiAKLSAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVk
IGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgotICAgIC8vIGlz
IHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNl
c3NhcnkuCi0gICAgZmxvYXQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgpOwotICAg
ICAgICBmbG9hdCByZXN1bHQgPSBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmRhdGEoKVtpbmRleF07
Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQdHI8
RmxvYXQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNz
UmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsK
IAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBFX0Zs
b2F0MzI7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDMyQXJyYXkoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9X
VEYvd3RmL0Zsb2F0NjRBcnJheS5oCmluZGV4IDMwNjMzZGJlYzVjYTllNTkwNjM1YzQwMGUyY2I3
MjZjZTcxZTE4NGQuLjcxMDhjYTk0ZGM0YjFlYjU3OTMxMTY5YmQwMjY2ZDAwNDNiYjIxZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0Zsb2F0NjRBcnJheS5oCkBAIC00OCwxOCArNDgsMTQgQEAgcHVibGljOgogICAgICAgICBU
eXBlZEFycmF5QmFzZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8ZG91Ymxl
Pih2YWx1ZSk7CiAgICAgfQogCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIu
IERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyByZXNwb25z
aWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5Lgot
ICAgIGRvdWJsZSBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNT
RVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpOwotICAgICAgICBk
b3VibGUgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XTsKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9h
dDY0QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQ
dHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisg
ICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfRmxvYXQ2
NDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5saW5lIEZsb2F0NjRBcnJheShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL0lu
dDE2QXJyYXkuaAppbmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2MyNzE4ZGE2MjYzMTVlNjhmZmM1
Li5iOTJmNzc4NDc2MzQ0NGNiNmNkM2Y1YjQ4MDVjZjlmODFlOWY3Mjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50MTZBcnJh
eS5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50
MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0
cjxJbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAg
Vmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfSW50MTY7Cisg
ICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBJbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlC
dWZmZXI+LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MzJB
cnJheS5oCmluZGV4IGNlNjg2OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcxZDUuLmY2
YmFlNDE0YThjYjBhNDMwNjZmMmVjZGE5NjVmY2Y5ZDlhMmQzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0ludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgK
QEAgLTQ0LDYgKzQ0LDExIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPElu
dDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3
VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9JbnQzMjsKKyAgICB9
CisKIHByaXZhdGU6CiAgICAgaW5saW5lIEludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4sCiAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApp
bmRleCA1NTRmNGFjYzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5kNDFkYzI4MTM5
ZmY2YTk0MDhjOWRiNWM5MjczZDI3NmI0ZjQzZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9JbnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAtNDYsNiAr
NDYsMTEgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4gc3ViYXJy
YXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IHN1
YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBl
KCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9JbnQ4OworICAgIH0KKwogcHJpdmF0ZToK
ICAgICBpbmxpbmUgSW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVk
QXJyYXlCYXNlLmgKaW5kZXggZjI3NjQwMGY4ZDg3OThiODcyZjlmN2IzZGYyZjUyMzJiZmFhZDU2
ZS4uMjNkYmRkZTVkNWEyMjNmOTNlYzE2NTQxOGM5YTlhM2U2NzA3MDAxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaApAQCAtNTAsMTQgKzUwLDYgQEAgY2xhc3MgSW50
ZWdyYWxUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBUeXBlZEFycmF5QmFzZTxUPiB7CiAgICAgICAg
IFR5cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8VD4oc3RhdGlj
X2Nhc3Q8aW50NjRfdD4odmFsdWUpKTsKICAgICB9CiAKLSAgICAvLyBJbnZva2VkIGJ5IHRoZSBp
bmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgotICAg
IC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBh
cyBuZWNlc3NhcnkuCi0gICAgVCBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKTsKLSAgICAg
ICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdOwotICAgIH0KLQogICBw
cm90ZWN0ZWQ6CiAgICAgSW50ZWdyYWxUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVm
ZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAg
ICAgOiBUeXBlZEFycmF5QmFzZTxUPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1R5cGVk
QXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ODY5NmE1MTU5ODY4M2IzNDVjMThkNmRhY2EwYzAxZGUzNDI3
YWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheS5oCkBAIC0w
LDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBlZEFycmF5X2gKKyNk
ZWZpbmUgVHlwZWRBcnJheV9oCisKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKyNpbmNs
dWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVHlw
ZWRBcnJheSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgeworICBwdWJsaWM6CisgICAgZW51bSBW
aWV3VHlwZSB7CisgICAgICAgIFRZUEVfSW50OCwKKyAgICAgICAgVFlQRV9VaW50OCwKKyAgICAg
ICAgVFlQRV9VaW50OENsYW1wZWQsCisgICAgICAgIFRZUEVfSW50MTYsCisgICAgICAgIFRZUEVf
VWludDE2LAorICAgICAgICBUWVBFX0ludDMyLAorICAgICAgICBUWVBFX1VpbnQzMiwKKyAgICAg
ICAgVFlQRV9GbG9hdDMyLAorICAgICAgICBUWVBFX0Zsb2F0NjQKKyAgICB9OworICAgIHZpcnR1
YWwgVmlld1R5cGUgZ2V0VHlwZSgpID0gMDsKKyAgcHJvdGVjdGVkOgorICAgIFR5cGVkQXJyYXko
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0KSAKKyAg
ICAgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQorICAgIHsKKyAgICB9
Cit9OworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VHlwZWRBcnJheTsKKyNlbmRp
ZiAvLyBUeXBlZEFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlC
YXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCmluZGV4IDVlYzdhMTk4YTFk
NmM4ZmY1NmRiNDNmZTFmZjczNGM2ODFlZWI4MWIuLjdiZGJmOWU4ZWYzNmM1ZWRjNDZlNmRlYWNm
M2JlNTI4OGI3NzVlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNl
LmgKKysrIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaApAQCAtMjksMTEgKzI5LDEy
IEBACiAKICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlC
dWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXkuaD4KIAogbmFtZXNwYWNlIFdU
RiB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZWRBcnJheUJhc2UgOiBwdWJs
aWMgQXJyYXlCdWZmZXJWaWV3IHsKK2NsYXNzIFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVk
QXJyYXkgewogICBwdWJsaWM6CiAgICAgVCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PFQqPihiYXNlQWRkcmVzcygpKTsgfQogCkBAIC02NSw5ICs2NiwxNyBAQCBjbGFzcyBUeXBl
ZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICByZXR1cm4gbV9s
ZW5ndGggKiBzaXplb2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhl
ZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKKyAgICAvLyBp
cyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVj
ZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7CisgICAgICAgIHJl
dHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisKIHByb3RlY3Rl
ZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICAgICAgOiBBcnJheUJ1ZmZl
clZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQorICAgICAgICA6IFR5cGVkQXJyYXkoYnVmZmVyLCBi
eXRlT2Zmc2V0KQogICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKICAgICB7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1Vp
bnQxNkFycmF5LmgKaW5kZXggYzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJmZWM4NTc3
Ni4uZWRjMTQzYmRlMDQzMzcxNzZlMGRiMjc3ODRmMDMzZWQ0ZWQ2NjhiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvVWludDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZB
cnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8
VWludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NS
ZWZQdHI8VWludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAK
KyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9VaW50
MTY7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50MTZBcnJheShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRl
T2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJj
ZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKaW5kZXggYTljZjZiMTUyMTgwNGE3MWE3MTIwYjdkZjAz
MmUwNGY2ZTU2NTg1Yi4uYjM5MGI5ZmFkYWY0NzA2ZDIzOWY2N2EzODJmN2VhOWU0YWYwMmJjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9VaW50MzJBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5l
IFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAg
aW5saW5lIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVu
ZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1
cm4gVFlQRV9VaW50MzI7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50MzJBcnJh
eShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXku
aCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkxNzI5ZDZiMDg2MmQ1MjNk
OGRjZDcxNzU3NzJjZjE0NDNiNTczLi41Nzg4ZjdmYTJmN2U5YWNkZDkxNmI3MzM1NmE4ZTI4ZTJk
ZTdhZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFycmF5LmgKKysrIGIvU291
cmNlL1dURi93dGYvVWludDhBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAg
aW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsK
ICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGlu
dCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAg
cmV0dXJuIFRZUEVfVWludDg7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgaW5saW5lIFVpbnQ4
QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDhD
bGFtcGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4Q2xhbXBlZEFycmF5LmgKaW5kZXgg
ZDlmODI0OTBhYzU0ZTc2OGQ3Y2YxOWMzMGYyMmNiY2NmMWY5MWU3My4uYmRiN2JmZDFjY2VjMGJh
NTNhZjNiNzk0OTUyZmM3OTIzZjhlNGI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWlu
dDhDbGFtcGVkQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5o
CkBAIC01NSw2ICs1NSwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhD
bGFtcGVkQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NS
ZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29u
c3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQ
RV9VaW50OENsYW1wZWQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50OENsYW1w
ZWRBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzMxZjI3
OGExMmY3MjJlMTllZTQ4MjI3MWJkMTA2YzViZTJiOTEzYi4uYTY5OGI3OWFlZjZjNTMyMzlkYTQ3
NjRjMThlMWQxODA3M2NiMTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM1OSw2ICszNTks
NyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL2NhbnZhcy9JbnQxNkFycmF5Lmlk
bAogICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvSW50OEFy
cmF5LmlkbAorICAgIGh0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMv
VWludDE2QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCiAgICAgaHRt
bC9jYW52YXMvVWludDhBcnJheS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDdhOGMyODcyZDk4MTM3Yjc3ZThkMWQwZmU2MDJlMTcyNTNhZDAxYjIuLjcwOGEwZTA1ZmEyNDAz
NjUyNTEwNzEwMmYwN2UxZWQ3NDY4NzUxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMzY3LDYgKzM2Nyw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52
YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L1R5cGVkQXJyYXkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMucHJpCmluZGV4IGM2ZGM4MGRjMDY0Y2ZlYWU3OGQzN2VmNDFmYTdmZTFjOGU1ZTYyYjYu
LjNiYzdiNmVlMzI5YjU5MTM3NDkwZGRlZTBkMjIzOTYyNGQxYzVhMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKQEAgLTI5Miw2ICsyOTIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAg
ICQkUFdEL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkJFBX
RC9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL1R5cGVk
QXJyYXkuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwK
ICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwgXAogICAgICQkUFdEL2h0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IGI4MjVmMGI3YTdiNmMyNDZjMjRlNmUxNGJlYzRiZGQ1NzdmZTFhMjcuLmQ5N2I4NWJk
Yjc4ZjIxNmUzZWYwNTc0NDlhNjM0NjFlZDA1NzdlMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC00ODcsNiArNDg3LDE1IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfQ1NTX1JFR0lP
TlM9MQogZW5kaWYgIyBFTkQgRU5BQkxFX0NTU19SRUdJT05TCiAKICMgLS0tLQorIyBGaWx0ZXJz
CisjIC0tLS0KK2lmIEVOQUJMRV9DU1NfRklMVEVSUworRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJM
RV9DU1NfRklMVEVSUz0xCit3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0NTU19GSUxURVJT
PTEKKworZW5kaWYgIyBFTkQgRU5BQkxFX0NTU19GSUxURVJTCisKKyMgLS0tLQogIyBFeGNsdXNp
b25zCiAjIC0tLS0KIGlmIEVOQUJMRV9DU1NfRVhDTFVTSU9OUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggMzViNmQ1ZGU0MzY2YjFkODU0YjA2ZDUwMTQwMzE3YWRhMjZjOGU1Yy4u
ZDNjOTYxNTc1OGE5ZGIyZTZiY2FjOGZlOTkyMjE3Y2NjODgzMDMzZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC01NTAsNiArNTUwLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJhY2tFdmVudC5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTVHJlZVdhbGtlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNUcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNUeXBlZEFycmF5
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1R5cGVkQXJyYXkuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1VJRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTVUlFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVWludDE2QXJyYXkuY3Bw
IFwKQEAgLTkyMCw2ICs5MjIsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
T0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1R5cGVk
QXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvVWludDhBcnJheS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGVmYTQzYzc4NTgx
MmI0MTFjZGRlMDlmOTBkZTlmOWRjNjNlZTdlNDkuLjc3ZWY1MDhiYWVjZTkyNmJlNTMxYmJhOGRi
MTQ3OTA5NmYzMTQ4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExMTYsNiArMTExNiw3IEBACiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCcsCisgICAgICAgICAgICAnaHRt
bC9jYW52YXMvVHlwZWRBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQx
NkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCBk
ZjllNDM5MDY0MDRkNDg1ODg4MzhiMGI5NmY0ZTdkZGNkNWI5Yzg0Li41YzRlNTJiMTFiYzAzNDRj
MWZmYmViODMwM2ZhOGQ0Nzc0MWU4MmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKQEAgLTMwLDEyICszMCwxNCBAQAog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNUeXBlZEFycmF5LmgiCiAjaW5j
bHVkZSA8aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg+CiAjaW5jbHVkZSA8cnVudGltZS9BcmdMaXN0
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmpl
Y3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlC
dWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXlCYXNlLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtODYsNiArODgsNjYgQEAgSlNDOjpKU1ZhbHVlIHNldFdlYkdMQXJy
YXlIZWxwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFQqIGltcGwsIFQqICgqY29udmVyc2lvbkYK
IC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgWFhYQXJyYXlDb25zdHJ1Y3RvcnMuCiAvLyBJ
ZiB0aGlzIHJldHVybnMgMCwgaXQgd2lsbCBhbHJlYWR5IGhhdmUgdGhyb3duIGEgSmF2YVNjcmlw
dCBleGNlcHRpb24uCiB0ZW1wbGF0ZTxjbGFzcyBDLCB0eXBlbmFtZSBUPgorUGFzc1JlZlB0cjxD
PiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJheUFyZ3VtZW50KEpTQzo6RXhl
Y1N0YXRlKiBleGVjKQoreworICAgIFJlZlB0cjxUeXBlZEFycmF5PiBzb3VyY2UgPSB0b1R5cGVk
QXJyYXkoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIGlmICghc291cmNlKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHVpbnQzMl90IGxlbmd0aCA9IGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDAp
KS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4
ZWMpOworICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShsZW5ndGgpOworICAgIGlmICgh
YXJyYXkpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsK
KyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIGlmIChhcnJheS0+Z2V0VHlwZSgp
ID09IHNvdXJjZS0+Z2V0VHlwZSgpKSB7CisgICAgICAgIG1lbWNweShhcnJheS0+YmFzZUFkZHJl
c3MoKSwgc291cmNlLT5iYXNlQWRkcmVzcygpLCBsZW5ndGggKiBzaXplb2YoVCkpOworICAgICAg
ICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgc3dpdGNoIChzb3VyY2UtPmdldFR5cGUoKSkg
eworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9JbnQ4OgorICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShz
dGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+
aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfVWlu
dDg6CisgICAgY2FzZSBUeXBlZEFycmF5OjpUWVBFX1VpbnQ4Q2xhbXBlZDoKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXktPnNl
dChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj4gKj4oc291
cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJy
YXk6OlRZUEVfSW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPHNpZ25lZCBzaG9ydD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfVWludDE2OgorICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0
KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD4gKj4oc291
cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJy
YXk6OlRZUEVfSW50MzI6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPGludD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfVWludDMyOgorICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShz
dGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+ICo+KHNvdXJjZS5nZXQoKSkt
Pml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlZEFycmF5OjpUWVBFX0Zs
b2F0MzI6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGZs
b2F0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgVHlwZWRBcnJheTo6VFlQRV9GbG9hdDY0OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNf
Y2FzdDxUeXBlZEFycmF5QmFzZTxkb3VibGU+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGFycmF5OworfQorCisvLyBUZW1w
bGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgorLy8gSWYgdGhpcyBy
ZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEphdmFTY3JpcHQgZXhjZXB0
aW9uLgordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KIFBhc3NSZWZQdHI8Qz4gY29uc3Ry
dWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSB0b0FycmF5QnVmZmVy
KGV4ZWMtPmFyZ3VtZW50KDApKTsKQEAgLTEzOCw2ICsyMDAsMTAgQEAgUGFzc1JlZlB0cjxDPiBj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlm
ICh2aWV3KQogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAgICAgCisgICAgICAgIHZpZXcgPSBj
b25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJheUFyZ3VtZW50PEMsIFQ+KGV4ZWMp
OworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHJldHVybiB2aWV3OworCiAgICAgICAg
IEpTQzo6SlNPYmplY3QqIHNyY0FycmF5ID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpOwog
ICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRp
ZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMpOwogICAgICAgICBSZWZQdHI8Qz4g
YXJyYXkgPSBDOjpjcmVhdGUobGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMzFjMTY0YmYwYjY3ZTRlODVlZmJl
NTIyMDQyMjMyZjQ1NmY2M2QzMi4uYTAyYjhkYjcwYjQxMGQyNGNlNWMwODMyM2MzOTExODY2ODJj
NjEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTMyMCw3ICszMjAsNyBAQCBzdWIgSXNTY3JpcHRQcm9maWxlVHlwZQog
c3ViIElzVHlwZWRBcnJheVR5cGUKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJldHVy
biAxIGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0eXBlIGVxICJBcnJheUJ1ZmZl
clZpZXciKSk7CisgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAo
JHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpIG9yICgkdHlwZSBlcSAiVHlwZWRBcnJheSIpKTsK
ICAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJVaW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJV
aW50OENsYW1wZWRBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDE2QXJyYXkiKSBvciAoJHR5cGUg
ZXEgIlVpbnQzMkFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkludDhBcnJh
eSIpIG9yICgkdHlwZSBlcSAiSW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiSW50MzJBcnJheSIp
KTsKICAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJGbG9hdDMyQXJyYXkiKSBvciAoJHR5cGUg
ZXEgIkZsb2F0NjRBcnJheSIpKTsKQEAgLTkzNCw3ICs5MzQsNyBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG4iKTsKICAgICB9CiAKLSAg
ICBpZiAoSXNUeXBlZEFycmF5VHlwZSgkaW1wbFR5cGUpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJh
eUJ1ZmZlclZpZXciKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXIiKSkgeworICAgIGlm
IChJc1R5cGVkQXJyYXlUeXBlKCRpbXBsVHlwZSkgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVm
ZmVyVmlldyIpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlciIpIGFuZCAoJGltcGxUeXBl
IG5lICJUeXBlZEFycmF5IikpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBz
dGF0aWMgY29uc3QgSlNDOjpUeXBlZEFycmF5VHlwZSBUeXBlZEFycmF5U3RvcmFnZVR5cGUgPSBK
U0M6OiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiVHlwZWRBcnJheUludDgiKSBp
ZiAkaW1wbFR5cGUgZXEgIkludDhBcnJheSI7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJUeXBlZEFycmF5SW50MTYiKSBpZiAkaW1wbFR5cGUgZXEgIkludDE2QXJyYXkiOwpAQCAtMTYy
Miw3ICsxNjIyLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpO1xuIik7Ci0gICAgICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCRpbXBsVHlwZSkg
YW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyVmlldyIpIGFuZCAoJGltcGxUeXBlIG5lICJB
cnJheUJ1ZmZlciIpKSB7CisgICAgICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCRpbXBsVHlwZSkg
YW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyVmlldyIpIGFuZCAoJGltcGxUeXBlIG5lICJB
cnJheUJ1ZmZlciIpIGFuZCAoJGltcGxUeXBlIG5lICJUeXBlZEFycmF5IikpIHsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFR5cGVkQXJyYXlEZXNjcmlwdG9yIGRlc2NyaXB0
b3IoJiR7Y2xhc3NOYW1lfTo6c19pbmZvLCBPQkpFQ1RfT0ZGU0VUT0YoJHtjbGFzc05hbWV9LCBt
X3N0b3JhZ2UpLCBPQkpFQ1RfT0ZGU0VUT0YoJHtjbGFzc05hbWV9LCBtX3N0b3JhZ2VMZW5ndGgp
KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgZ2xvYmFsRGF0YS5y
ZWdpc3RlclR5cGVkQXJyYXlEZXNjcmlwdG9yKGltcGwoKSwgZGVzY3JpcHRvcik7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIG1fc3RvcmFnZSA9IGltcGwoKS0+ZGF0
YSgpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMy
QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbApp
bmRleCA4ZWFlYmU0ZGVkOGEwMmNiMDg4ZDJhMDBkOWIwZGNkYjY2MmQxNTkyLi4xNDlmNGY5NGM0
ZmExZjI3Mzk2NDJhODFiNmJkMzViNTEyN2M4YmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewog
ICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAg
ICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBGbG9hdDMyQXJyYXkgOiBBcnJheUJ1ZmZl
clZpZXcgeworICAgIF0gRmxvYXQzMkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSA0OwogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9GbG9hdDY0QXJyYXkuaWRsCmluZGV4IGFiZmViMjE3ODg5MDQwYTU2YzVhYmI5MDkzZTRh
ZWNlYzEyZjJjZDkuLjBiNTkxNmQ0MjRmY2FkODJmNWJhODBjMDJkM2ZhMGU5OTBkMjNiYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbApAQCAtMzQsNyAr
MzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAg
IEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIEZs
b2F0NjRBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBGbG9hdDY0QXJyYXkgOiBUeXBl
ZEFycmF5IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9
IDg7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbAppbmRleCBmNmQwODllYTMz
NmZjNzU5ZGNlNzdlZWMzZWIwODlhYmY2YTk2MWVlLi45MWNmZjYyMzBkMGM5NDEwNzAwZDFhNmE3
MTIyNWNkMzViMDJjODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9J
bnQxNkFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5
LmlkbApAQCAtMzMsNyArMzMsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNU
YWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25z
dGFudHMKLSAgICBdIEludDE2QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gSW50MTZB
cnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BF
Ul9FTEVNRU5UID0gMjsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFy
cmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCmluZGV4
IGY5ODgzNWEyYzdjZTI5OWYxOWFkMDcyM2ExMTE2NmFjMTVlYTAyN2IuLjVkYTZlYTM3MjI4MzYx
ZTA1ZjcxNjU4NzhlYzhiYzcxZGFkZTRiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDMyQXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
SlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9O
b3RDaGVja0NvbnN0YW50cwotICAgIF0gSW50MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7Cisg
ICAgXSBJbnQzMkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgQllURVNfUEVSX0VMRU1FTlQgPSA0OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ludDhBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXku
aWRsCmluZGV4IDAwZmFhNGZjMzhjOWM2ZTk4MTA0OTY1NjA1Nzk1MTZhODU0MGJkNzAuLjMyNmJk
ODhiMDE0YTUxMWI0ZDliZDM0YTZiNGM0MjhiOTQwMmI1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50OEFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAg
ICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIEludDhBcnJheSA6IEFycmF5QnVmZmVyVmll
dyB7CisgICAgXSBJbnQ4QXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAgICAgY29uc3QgdW5zaWdu
ZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDE7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvVHlwZWRBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBl
ZEFycmF5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2Y3ZjBlMzdlM2VjMTJjYWJhMGE2MWQ0ZjA5YjkxMmMw
ZWQ2MDIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlw
ZWRBcnJheS5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBo
dG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3Qs
CisgICAgXSBUeXBlZEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICB9OworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCmluZGV4IDc5ZTA1ZWZjNGViZjY1
Nzk5N2E5YjUzY2UwM2Y1ODJjMGVhOGJmYWYuLjkwZjIxMzViNGQyZDFiMjJhYmM3MjIxMWJhMWU5
ODM4ODQ3ODVkYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQx
NkFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5p
ZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFi
bGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3Rh
bnRzCi0gICAgXSBVaW50MTZBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBVaW50MTZB
cnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BF
Ul9FTEVNRU5UID0gMjsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJB
cnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKaW5k
ZXggNjdlNjFiMjlmZDhlOWRjZDE5MDU2ODUyYTk3OTk4NmQ3ZmE5NTE2Yy4uYWUzODQ1NDIzYzU3
NmRmM2M2MmIzYmQ4MzQ3ZDE1NjA3ZDk4OTAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1VpbnQzMkFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAg
IERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFVpbnQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3
IHsKKyAgICBdIFVpbnQzMkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSA0OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5pZGwKaW5kZXggMjYwYTMyNzNlODI4ZjU3Njg1OTc4MGEzNTk4NTVhYTBhMjc5ZGNm
OC4uOTA4NzBhYjI2N2Q0YzYyZTE5OGM3OGNlMzZlM2U4NGI1OGIxOGVlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2Jq
ZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBVaW50OEFycmF5IDogQXJy
YXlCdWZmZXJWaWV3IHsKKyAgICBdIFVpbnQ4QXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDE7CiAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkK
b2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFj
IGIvY29uZmlndXJlLmFjCmluZGV4IGZmMmIzZTQ4OGEwMzEwYzc4N2MwODZkMzBiYmI3ODdiMWVi
ODgzYWEuLmRiMjU3MGY1YjVjZjYyMTk0MjdmNDIxNGJmNWUxZTdhYmQ3MWE2NmUgMTAwNjQ0Ci0t
LSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTExMTcsNiArMTExNywxNCBA
QCBBQ19BUkdfRU5BQkxFKGNzc19yZWdpb25zLAogICAgICAgICAgICAgICBbXSxbZW5hYmxlX2Nz
c19yZWdpb25zPSJ5ZXMiXSkKIEFDX01TR19SRVNVTFQoWyRlbmFibGVfY3NzX3JlZ2lvbnNdKQog
CisjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIENTUyBSZWdpb25zIHN1cHBvcnQKK0FDX01TR19D
SEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgQ1NTIEZpbHRlcnNdKQorQUNfQVJHX0VOQUJMRShj
c3NfZmlsdGVycywKKyAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWNzcy1m
aWx0ZXJzXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZSBzdXBwb3J0IGZv
ciBDU1MgRmlsdGVycyBbZGVmYXVsdD1ub11dKSwKKyAgICAgICAgICAgICAgW10sW2VuYWJsZV9j
c3NfZmlsdGVycz0ibm8iXSkKK0FDX01TR19SRVNVTFQoWyRlbmFibGVfY3NzX2ZpbHRlcnNdKQor
CiBHX0lSX1NDQU5ORVI9CiBHX0lSX0NPTVBJTEVSPQogR19JUl9HRU5FUkFURT0KQEAgLTE0NTYs
NiArMTQ2NCw3IEBAIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfSUZSQU1FX1NFQU1MRVNTXSxbdGVz
dCAiJGVuYWJsZV9pZnJhbWVfc2VhbWxlc3MiID0gInllcyJdCiBBTV9DT05ESVRJT05BTChbRU5B
QkxFX1RFWFRfQVVUT1NJWklOR10sW3Rlc3QgIiRlbmFibGVfdGV4dF9hdXRvc2l6aW5nIiA9ICJ5
ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ1NTX0VYQ0xVU0lPTlNdLFt0ZXN0ICIkZW5h
YmxlX2Nzc19leGNsdXNpb25zIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ1NT
X1JFR0lPTlNdLFt0ZXN0ICIkZW5hYmxlX2Nzc19yZWdpb25zIiA9ICJ5ZXMiXSkKK0FNX0NPTkRJ
VElPTkFMKFtFTkFCTEVfQ1NTX0ZJTFRFUlNdLFt0ZXN0ICIkZW5hYmxlX2Nzc19maWx0ZXJzIiA9
ICJ5ZXMiXSkKIAogIyBHdGsgY29uZGl0aW9uYWxzCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0lO
VFJPU1BFQ1RJT05dLFt0ZXN0ICIkZW5hYmxlX2ludHJvc3BlY3Rpb24iID0gInllcyJdKQpAQCAt
MTUxNyw2ICsxNTI2LDcgQEAgRmVhdHVyZXM6CiAgQ1NTIGJveC1kZWNvcmF0aW9uLWJyZWFrIHN1
cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX2Nzc19ib3hfZGVjb3JhdGlv
bl9icmVhawogIENTUyBFeGNsdXNpb25zIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDogJGVuYWJsZV9jc3NfZXhjbHVzaW9ucwogIENTUyBSZWdpb25zIHN1cHBvcnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9jc3NfcmVnaW9u
cworIENTUyBGaWx0ZXJzIHN1cHBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogJGVuYWJsZV9jc3NfZmlsdGVycwogIERldmljZU9yaWVudGF0aW9uIHN1cHBvcnQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9kZXZpY2Vfb3JpZW50YXRpb24K
ICBEaXJlY3RvcnkgdXBsb2FkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA6ICRlbmFibGVfZGlyZWN0b3J5X3VwbG9hZAogIERPTSBtdXRhdGlvbiBvYnNlcnZlciBzdXBw
b3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGVuYWJsZV9tdXRhdGlvbl9vYnNlcnZl
cnMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151481</attachid>
            <date>2012-07-10 10:18:50 -0700</date>
            <delta_ts>2012-07-10 13:13:14 -0700</delta_ts>
            <desc>updated patch; lets see if he build properly on more platforms</desc>
            <filename>bug-90838-20120710101849.patch</filename>
            <type>text/plain</type>
            <size>34734</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNjMTM4OWZlZmU0ZWI5ZmQ4OTEzOTI2
OThkOWUzMmZiOTY1YTU5Y2EuLmJlNzZlYTE1YjQzYmMxYTkyODk2ZTkzZTU2MTcxNDUxYTJlMjcy
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTItMDctMTAgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJy
YXkgZnJvbSBhbiBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUg
aWYgdGhlIGFyZ3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVu
dAorICAgICAgICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAu
aXRlbSgpIG1ldGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBh
IEpTVmFsdWUsIGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1h
dGl2ZWx5IDN4IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBl
KS4KKworICAgICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIGludHJvZHVjZSBhIG5l
dyBpbnRlcmZhY2UgVHlwZWRBcnJheS4gSXQKKyAgICAgICAgd2lsbCBiZSB1c2VkIHRvIGRldGVy
bWluZSBpZiBhIEphdmFTY3JpcHQgb2JqZWN0IGlzIFR5cGVkIEFycmF5LiBJdAorICAgICAgICBh
bHNvIGludHJvZHVjZXMgYSB2aXJ0dWFsIGdldFR5cGUgZnVuY3Rpb24uIFNvLCB0eXBlZCBhcnJh
eSBjYW4KKyAgICAgICAga25vd24gdGhlaXIgYWN0dWFsIHR5cGUuIFdlIGNhbiB1c2UgdGhpcyBp
bmZvcm1hdGlvbiB0byBjYXN0IHRoZQorICAgICAgICBUeXBlZEFycmF5IHRvIHRoZSBhY3R1YWwg
dHlwZSwgYW5kIHRoZW4gcmVhZCB0aGUgdmFsdWVzIGZyb20gdGhlCisgICAgICAgIHNvdXJjZS4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6Cisg
ICAgICAgICogd3RmL0Zsb2F0MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6
OmdldFR5cGUpOgorICAgICAgICAoRmxvYXQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvRmxvYXQ2
NEFycmF5Lmg6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Z2V0VHlwZSk6CisgICAgICAg
IChGbG9hdDY0QXJyYXkpOgorICAgICAgICAqIHd0Zi9JbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OkludDE2QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50MTZBcnJheSk6CisgICAgICAg
ICogd3RmL0ludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6Z2V0VHlwZSk6
CisgICAgICAgIChJbnQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvSW50OEFycmF5Lmg6CisgICAg
ICAgIChXVEY6OkludDhBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQ4QXJyYXkpOgorICAg
ICAgICAqIHd0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgICogd3RmL1R5cGVk
QXJyYXkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5pZGwuCisgICAgICAgIChUeXBlZEFycmF5KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheTo6
VHlwZWRBcnJheSk6CisgICAgICAgICogd3RmL1R5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgIChU
eXBlZEFycmF5QmFzZSk6CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjppdGVtKToKKyAg
ICAgICAgKFdURjo6VHlwZWRBcnJheUJhc2U6OlR5cGVkQXJyYXlCYXNlKToKKyAgICAgICAgKiB3
dGYvVWludDE2QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDE2QXJyYXk6OmdldFR5cGUpOgor
ICAgICAgICAoVWludDE2QXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOgorICAg
ICAgICAoV1RGOjpVaW50MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChVaW50MzJBcnJheSk6
CisgICAgICAgICogd3RmL1VpbnQ4QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhBcnJheTo6
Z2V0VHlwZSk6CisgICAgICAgIChVaW50OEFycmF5KToKKyAgICAgICAgKiB3dGYvVWludDhDbGFt
cGVkQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhDbGFtcGVkQXJyYXk6OmdldFR5cGUpOgor
ICAgICAgICAoVWludDhDbGFtcGVkQXJyYXkpOgorCiAyMDEyLTA3LTA1ICBab2x0YW4gSGVyY3pl
ZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUG9ydCBERkcgSklUIHRvIHRyYWRp
dGlvbmFsIEFSTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIwY2I0YmQzZDEyMmZmMmIwYmI5ZTQ0ZmJjOWNjNDhj
ZTBhNjY1YzUuLmRjZTQzZGVlNzNmMDQ4MjMzN2M2NjQ5NzYzOTc2ODRkZGI4ODllNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMi0wNy0xMCAgQXJuYXVkIFJlbmV2aWVyICA8YS5y
ZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGNvbnN0cnVjdGluZyBUeXBlZEFy
cmF5IGZyb20gYW5vdGhlciBUeXBlZEFycmF5IGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgYSB0eXBlZCBhcnJh
eSBmcm9tIGFuIGFycmF5IGxpa2UgZWxlbWVudCwgdHJ5IHRvCisgICAgICAgIGRldGVybWluZSBp
ZiB0aGUgYXJndW1lbnQgaXMgYSB0eXBlZCBhcnJheS4gSWYgc28sIGNhc3QgdGhlIGFyZ3VtZW50
CisgICAgICAgIHRvIGEgdHlwZWQgYXJyYXksIGFuZCByZWFkIGVhY2ggZWxlbWVudCB3aXRoIC5p
dGVtKCkgbWV0aG9kLiBUaGF0CisgICAgICAgIGF2b2lkIHJlYWRpbmcgdGhlIHZhbHVlIGFzIGEg
SlNWYWx1ZSwgYW5kIHNwZWVkdXBzIGNvbnN0cnVjdGlvbiBieQorICAgICAgICBhcHByb3hpbWF0
aXZlbHkgM3ggKGV2ZW4gMzB4IGlmIFR5cGVkQXJyYXlzIGFyZSBib3RoIHRoZSBzYW1lIHR5cGUp
LgorCisgICAgICAgIEluIG9yZGVyIHRvIGFjaGlldmUgdGhhdCwgd2UgaW50cm9kdWNlIGEgbmV3
IGludGVyZmFjZSBUeXBlZEFycmF5LiBJdAorICAgICAgICB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJt
aW5lIGlmIGEgSmF2YVNjcmlwdCBvYmplY3QgaXMgVHlwZWQgQXJyYXkuIEl0CisgICAgICAgIGFs
c28gaW50cm9kdWNlcyBhIHZpcnR1YWwgZ2V0VHlwZSBmdW5jdGlvbi4gU28sIHR5cGVkIGFycmF5
IGNhbgorICAgICAgICBrbm93biB0aGVpciBhY3R1YWwgdHlwZS4gV2UgY2FuIHVzZSB0aGlzIGlu
Zm9ybWF0aW9uIHRvIGNhc3QgdGhlCisgICAgICAgIFR5cGVkQXJyYXkgdG8gdGhlIGFjdHVhbCB0
eXBlLCBhbmQgdGhlbiByZWFkIHRoZSB2YWx1ZXMgZnJvbSB0aGUKKyAgICAgICAgc291cmNlLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFy
cmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25z
dHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckNQUC5wbToKKyAgICAgICAgKEdldE5hbWVzcGFjZUZvckNsYXNzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKElzVHlwZWRB
cnJheVR5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG06CisgICAgICAgIChJc1R5cGVkQXJyYXlUeXBlKToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9GbG9hdDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5p
ZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGw6CisgICAgICAgICogaHRt
bC9jYW52YXMvSW50MzJBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50OEFycmF5
LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwuCisgICAgICAgICogaHRt
bC9jYW52YXMvVWludDE2QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQzMkFy
cmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbDoKKwogMjAxMi0w
Ny0wNSAgWW9uZ2p1biBaaGFuZyAgPHlvbmdqdW5femhhbmdAYXBwbGUuY29tPgogCiAgICAgICAg
IENvZGUgcmVmYWN0b3Jpbmc6IG1vdmUgbWltZVR5cGVGcm9tVVRJVHJlZSB0byBhIHNlcGFyYXRl
IGZpbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYzVmNDhhNmNlNTU5YTI0Y2MyMGI3MDc1
OGRmOGJjNGE4NGRjOWVlZC4uYWZkY2NmOTljOGM3YWFmNzg3NjkwNGFkY2JmMmZkZDg0Zjk2NDVk
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTUzLDYgKzE1Myw3IEBAIHd0Zl9zb3VyY2Vz
ICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgXAogICAgIFNv
dXJjZS9XVEYvd3RmL1R5cGVUcmFpdHMuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UeXBlVHJh
aXRzLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXkuaCBcCiAgICAgU291cmNlL1dU
Ri93dGYvVHlwZWRBcnJheUJhc2UuaCBcCiAgICAgU291cmNlL1dURi93dGYvVWludDE2QXJyYXku
aCBcCiAgICAgU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi5neXBpIGIvU291cmNlL1dURi9XVEYuZ3lwaQppbmRleCA4Njc1ODU1MDYxZDM3
NGVmYWZmZTdkNjJlMTUzZGViMTFiYmFkMDM5Li5lMDEzN2Q2Nzc5NjFjNjYzOGU1OWQzNGYyMTQw
ZGRlZTZkZjY2MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKQEAgLTE4OCw2ICsxODgsNyBAQAogICAgICAgICAgICAgJ3d0Zi9UaHJl
YWRpbmdQdGhyZWFkcy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9UaHJlYWRpbmdXaW4uY3BwJywK
ICAgICAgICAgICAgICd3dGYvVHlwZVRyYWl0cy5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9UeXBl
ZEFycmF5LmgnLAogICAgICAgICAgICAgJ3d0Zi9UeXBlZEFycmF5QmFzZS5oJywKICAgICAgICAg
ICAgICd3dGYvVWludDE2QXJyYXkuaCcsCiAgICAgICAgICAgICAnd3RmL1VpbnQzMkFycmF5Lmgn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmggYi9Tb3VyY2UvV1RG
L3d0Zi9GbG9hdDMyQXJyYXkuaAppbmRleCA1NWU2MWUwMDY0ZDE1YTUyYTA0YTVlMGZhMGNmZDg0
OWQwODAwNGI3Li4xNWZkYTNlOWU5ZGIxZmViNjJhZTY5NjY5YWE4ZThlYzk3ZTI4ODA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9GbG9hdDMyQXJyYXkuaApAQCAtNDgsMTggKzQ4LDE0IEBAIHB1YmxpYzoKICAgICAgICAgVHlw
ZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZh
bHVlKTsKICAgICB9CiAKLSAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9l
cyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgotICAgIC8vIGlzIHJlc3BvbnNpYmxl
IGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3NhcnkuCi0gICAg
ZmxvYXQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
bmRleCA8IFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgpOwotICAgICAgICBmbG9hdCBy
ZXN1bHQgPSBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmRhdGEoKVtpbmRleF07Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0
MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIFZpZXdU
eXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBFX0Zsb2F0MzI7CisgICAg
fQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL0Zsb2F0
NjRBcnJheS5oCmluZGV4IDMwNjMzZGJlYzVjYTllNTkwNjM1YzQwMGUyY2I3MjZjZTcxZTE4NGQu
LjcxMDhjYTk0ZGM0YjFlYjU3OTMxMTY5YmQwMjY2ZDAwNDNiYjIxZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zsb2F0NjRB
cnJheS5oCkBAIC00OCwxOCArNDgsMTQgQEAgcHVibGljOgogICAgICAgICBUeXBlZEFycmF5QmFz
ZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSk7CiAg
ICAgfQogCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBl
cmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9p
bmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgotICAgIGRvdWJsZSBp
dGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGluZGV4IDwg
VHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpOwotICAgICAgICBkb3VibGUgcmVzdWx0
ID0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0KICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IHN1
YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQ2NEFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUg
Z2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfRmxvYXQ2NDsKKyAgICB9CisK
IHByaXZhdGU6CiAgICAgaW5saW5lIEZsb2F0NjRBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaApp
bmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2MyNzE4ZGE2MjYzMTVlNjhmZmM1Li5iOTJmNzc4NDc2
MzQ0NGNiNmNkM2Y1YjQ4MDVjZjlmODFlOWY3Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50MTZBcnJheS5oCkBAIC00NSw2
ICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3Vi
YXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQxNkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUgZ2V0
VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfSW50MTY7CisgICAgfQorCiBwcml2
YXRlOgogICAgIGlubGluZSBJbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oCmluZGV4
IGNlNjg2OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcxZDUuLmY2YmFlNDE0YThjYjBh
NDMwNjZmMmVjZGE5NjVmY2Y5ZDlhMmQzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0lu
dDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKQEAgLTQ0LDYgKzQ0
LDExIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJh
eShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEludDMyQXJyYXk+IHN1
YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBl
KCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9JbnQzMjsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgaW5saW5lIEludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaAppbmRleCA1NTRmNGFj
Yzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5kNDFkYzI4MTM5ZmY2YTk0MDhjOWRi
NWM5MjczZDI3NmI0ZjQzZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXku
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAtNDYsNiArNDYsMTEgQEAgcHVi
bGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0
KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IHN1YmFycmF5KGludCBz
dGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgewor
ICAgICAgICByZXR1cm4gVFlQRV9JbnQ4OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUg
SW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5
cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgK
aW5kZXggZjI3NjQwMGY4ZDg3OThiODcyZjlmN2IzZGYyZjUyMzJiZmFhZDU2ZS4uMjNkYmRkZTVk
NWEyMjNmOTNlYzE2NTQxOGM5YTlhM2U2NzA3MDAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ludGVncmFs
VHlwZWRBcnJheUJhc2UuaApAQCAtNTAsMTQgKzUwLDYgQEAgY2xhc3MgSW50ZWdyYWxUeXBlZEFy
cmF5QmFzZSA6IHB1YmxpYyBUeXBlZEFycmF5QmFzZTxUPiB7CiAgICAgICAgIFR5cGVkQXJyYXlC
YXNlPFQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8VD4oc3RhdGljX2Nhc3Q8aW50NjRf
dD4odmFsdWUpKTsKICAgICB9CiAKLSAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdldHRl
ci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgotICAgIC8vIGlzIHJlc3Bv
bnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3Nhcnku
Ci0gICAgVCBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJU
KGluZGV4IDwgVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuIFR5
cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdOwotICAgIH0KLQogICBwcm90ZWN0ZWQ6CiAg
ICAgSW50ZWdyYWxUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIs
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgOiBUeXBlZEFy
cmF5QmFzZTxUPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1R5cGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43ODY5NmE1MTU5ODY4M2IzNDVjMThkNmRhY2EwYzAxZGUzNDI3YWVmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheS5oCkBAIC0wLDAgKzEsNTYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBlZEFycmF5X2gKKyNkZWZpbmUgVHlwZWRB
cnJheV9oCisKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKyNpbmNsdWRlIDx3dGYvQXJy
YXlCdWZmZXJWaWV3Lmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgVHlwZWRBcnJheSA6IHB1
YmxpYyBBcnJheUJ1ZmZlclZpZXcgeworICBwdWJsaWM6CisgICAgZW51bSBWaWV3VHlwZSB7Cisg
ICAgICAgIFRZUEVfSW50OCwKKyAgICAgICAgVFlQRV9VaW50OCwKKyAgICAgICAgVFlQRV9VaW50
OENsYW1wZWQsCisgICAgICAgIFRZUEVfSW50MTYsCisgICAgICAgIFRZUEVfVWludDE2LAorICAg
ICAgICBUWVBFX0ludDMyLAorICAgICAgICBUWVBFX1VpbnQzMiwKKyAgICAgICAgVFlQRV9GbG9h
dDMyLAorICAgICAgICBUWVBFX0Zsb2F0NjQKKyAgICB9OworICAgIHZpcnR1YWwgVmlld1R5cGUg
Z2V0VHlwZSgpID0gMDsKKyAgcHJvdGVjdGVkOgorICAgIFR5cGVkQXJyYXkoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0KSAKKyAgICAgICAgOiBBcnJh
eUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQorICAgIHsKKyAgICB9Cit9OworfSAvLyBu
YW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VHlwZWRBcnJheTsKKyNlbmRpZiAvLyBUeXBlZEFy
cmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCmluZGV4IDVlYzdhMTk4YTFkNmM4ZmY1NmRiNDNm
ZTFmZjczNGM2ODFlZWI4MWIuLjdiZGJmOWU4ZWYzNmM1ZWRjNDZlNmRlYWNmM2JlNTI4OGI3NzVl
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmgKKysrIGIvU291
cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaApAQCAtMjksMTEgKzI5LDEyIEBACiAKICNpbmNs
dWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+
CisjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXkuaD4KIAogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZWRBcnJheUJhc2UgOiBwdWJsaWMgQXJyYXlCdWZm
ZXJWaWV3IHsKK2NsYXNzIFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJyYXkgewogICBw
dWJsaWM6CiAgICAgVCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihiYXNl
QWRkcmVzcygpKTsgfQogCkBAIC02NSw5ICs2NiwxNyBAQCBjbGFzcyBUeXBlZEFycmF5QmFzZSA6
IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICByZXR1cm4gbV9sZW5ndGggKiBzaXpl
b2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERv
ZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKKyAgICAvLyBpcyByZXNwb25zaWJs
ZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgorICAg
IFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpbmRl
eCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7CisgICAgICAgIHJldHVybiBUeXBlZEFy
cmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICBUeXBl
ZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICAgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVy
LCBieXRlT2Zmc2V0KQorICAgICAgICA6IFR5cGVkQXJyYXkoYnVmZmVyLCBieXRlT2Zmc2V0KQog
ICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgK
aW5kZXggYzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJmZWM4NTc3Ni4uZWRjMTQzYmRl
MDQzMzcxNzZlMGRiMjc3ODRmMDMzZWQ0ZWQ2NjhiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVWludDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZBcnJheS5oCkBAIC00
Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDE2
QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlw
ZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9VaW50MTY7CisgICAgfQor
CiBwcml2YXRlOgogICAgIGlubGluZSBVaW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1Vp
bnQzMkFycmF5LmgKaW5kZXggYTljZjZiMTUyMTgwNGE3MWE3MTIwYjdkZjAzMmUwNGY2ZTU2NTg1
Yi4uYjM5MGI5ZmFkYWY0NzA2ZDIzOWY2N2EzODJmN2VhOWU0YWYwMmJjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MzJB
cnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8
VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NS
ZWZQdHI8VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAK
KyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9VaW50
MzI7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50MzJBcnJheShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9m
ZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9X
VEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkxNzI5ZDZiMDg2MmQ1MjNkOGRjZDcxNzU3NzJj
ZjE0NDNiNTczLi41Nzg4ZjdmYTJmN2U5YWNkZDkxNmI3MzM1NmE4ZTI4ZTJkZTdhZTE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYv
VWludDhBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NS
ZWZQdHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUg
UGFzc1JlZlB0cjxVaW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0
OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVf
VWludDg7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgaW5saW5lIFVpbnQ4QXJyYXkoUGFzc1Jl
ZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBi
eXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVkQXJyYXku
aCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4Q2xhbXBlZEFycmF5LmgKaW5kZXggZDlmODI0OTBhYzU0
ZTc2OGQ3Y2YxOWMzMGYyMmNiY2NmMWY5MWU3My4uYmRiN2JmZDFjY2VjMGJhNTNhZjNiNzk0OTUy
ZmM3OTIzZjhlNGI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVkQXJy
YXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oCkBAIC01NSw2ICs1
NSwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhD
bGFtcGVkQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBW
aWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9VaW50OENsYW1w
ZWQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50OENsYW1wZWRBcnJheShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzMxZjI3OGExMmY3MjJlMTll
ZTQ4MjI3MWJkMTA2YzViZTJiOTEzYi4uYTY5OGI3OWFlZjZjNTMyMzlkYTQ3NjRjMThlMWQxODA3
M2NiMTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM1OSw2ICszNTksNyBAQCBTRVQoV2Vi
Q29yZV9JRExfRklMRVMKICAgICBodG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbAogICAgIGh0bWwv
Y2FudmFzL0ludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbAorICAg
IGh0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXku
aWRsCiAgICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWlu
dDhBcnJheS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDdhOGMyODcyZDk4
MTM3Yjc3ZThkMWQwZmU2MDJlMTcyNTNhZDAxYjIuLjcwOGEwZTA1ZmEyNDAzNjUyNTEwNzEwMmYw
N2UxZWQ3NDY4NzUxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzY3LDYg
KzM2Nyw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1R5cGVkQXJyYXku
aWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmlu
ZGV4IGM2ZGM4MGRjMDY0Y2ZlYWU3OGQzN2VmNDFmYTdmZTFjOGU1ZTYyYjYuLjNiYzdiNmVlMzI5
YjU5MTM3NDkwZGRlZTBkMjIzOTYyNGQxYzVhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5w
cmkKQEAgLTI5Miw2ICsyOTIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2h0bWwv
Y2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhB
cnJheU9iamVjdC5pZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsIFwK
ICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwKICAgICAkJFBXRC9o
dG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCAzNWI2ZDVkZTQzNjZiMWQ4NTRiMDZkNTAxNDAzMTdhZGEyNmM4ZTVjLi5kM2M5NjE1NzU4
YTlkYjJlNmJjYWM4ZmU5OTIyMTdjY2M4ODMwMzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTU1MCw2ICs1NTAsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNUcmFja0V2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNUcmVlV2Fsa2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RyZWVX
YWxrZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1R5cGVkQXJyYXkuY3BwIFwKKwlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHlwZWRBcnJheS5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVUlFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVSUV2ZW50
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVaW50MTZBcnJheS5jcHAgXApAQCAtOTIw
LDYgKzkyMiw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52
YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhB
cnJheU9iamVjdC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVHlwZWRBcnJheS5pZGwg
XAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUp
L2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9V
aW50OEFycmF5LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWZhNDNjNzg1ODEyYjQxMWNkZGUw
OWY5MGRlOWY5ZGM2M2VlN2U0OS4uNzdlZjUwOGJhZWNlOTI2YmU1MzFiYmE4ZGIxNDc5MDk2ZjMx
NDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTExNiw2ICsxMTE2LDcgQEAKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9U
eXBlZEFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCmluZGV4IGRmOWU0MzkwNjQw
NGQ0ODU4ODgzOGIwYjk2ZjRlN2RkY2Q1YjljODQuLjVjNGU1MmIxMWJjMDM0NGMxZmZiZWI4MzAz
ZmE4ZDQ3NzQxZTgyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaApAQCAtMzAsMTIgKzMwLDE0IEBACiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU1R5cGVkQXJyYXkuaCIKICNpbmNsdWRlIDxpbnRl
cnByZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3QuaD4KICNpbmNs
dWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU09iamVjdC5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcu
aD4KKyNpbmNsdWRlIDx3dGYvVHlwZWRBcnJheUJhc2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC04Niw2ICs4OCw2NiBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCwgVCogKCpjb252ZXJzaW9uRgogLy8gVGVtcGxh
dGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycy4KIC8vIElmIHRoaXMgcmV0
dXJucyAwLCBpdCB3aWxsIGFscmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZhU2NyaXB0IGV4Y2VwdGlv
bi4KIHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+CitQYXNzUmVmUHRyPEM+IGNvbnN0cnVj
dEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMpCit7CisgICAgUmVmUHRyPFR5cGVkQXJyYXk+IHNvdXJjZSA9IHRvVHlwZWRBcnJheShleGVj
LT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgdWludDMyX3QgbGVuZ3RoID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5nZXQoZXhl
YywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAg
UmVmUHRyPEM+IGFycmF5ID0gQzo6Y3JlYXRlKGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgewor
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICBy
ZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgaWYgKGFycmF5LT5nZXRUeXBlKCkgPT0gc291cmNl
LT5nZXRUeXBlKCkpIHsKKyAgICAgICAgbWVtY3B5KGFycmF5LT5iYXNlQWRkcmVzcygpLCBzb3Vy
Y2UtPmJhc2VBZGRyZXNzKCksIGxlbmd0aCAqIHNpemVvZihUKSk7CisgICAgICAgIHJldHVybiBh
cnJheTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKHNvdXJjZS0+Z2V0VHlwZSgpKSB7CisgICAgY2Fz
ZSBUeXBlZEFycmF5OjpUWVBFX0ludDg6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0
PFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFyPiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9VaW50ODoKKyAgICBj
YXNlIFR5cGVkQXJyYXk6OlRZUEVfVWludDhDbGFtcGVkOgorICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShz
dGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBjaGFyPiAqPihzb3VyY2UuZ2V0KCkp
LT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9J
bnQxNjoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8c2ln
bmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9VaW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0
YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkp
LT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9J
bnQzMjoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8aW50
PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VHlwZWRBcnJheTo6VFlQRV9VaW50MzI6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0
PFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfRmxvYXQzMjoKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAg
YXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8ZmxvYXQ+ICo+KHNv
dXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlZEFy
cmF5OjpUWVBFX0Zsb2F0NjQ6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVk
QXJyYXlCYXNlPGRvdWJsZT4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gYXJyYXk7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0
aW9uIHVzZWQgYnkgWFhYQXJyYXlDb25zdHJ1Y3RvcnMuCisvLyBJZiB0aGlzIHJldHVybnMgMCwg
aXQgd2lsbCBhbHJlYWR5IGhhdmUgdGhyb3duIGEgSmF2YVNjcmlwdCBleGNlcHRpb24uCit0ZW1w
bGF0ZTxjbGFzcyBDLCB0eXBlbmFtZSBUPgogUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1
ZmZlclZpZXdXaXRoQXJyYXlCdWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIHsK
ICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJn
dW1lbnQoMCkpOwpAQCAtMTM4LDYgKzIwMCwxMCBAQCBQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFy
cmF5QnVmZmVyVmlldyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKHZpZXcpCiAg
ICAgICAgICAgICByZXR1cm4gdmlldzsKICAgICAKKyAgICAgICAgdmlldyA9IGNvbnN0cnVjdEFy
cmF5QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQ8QywgVD4oZXhlYyk7CisgICAgICAg
IGlmICh2aWV3KQorICAgICAgICAgICAgcmV0dXJuIHZpZXc7CisKICAgICAgICAgSlNDOjpKU09i
amVjdCogc3JjQXJyYXkgPSBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgICAgIHVp
bnQzMl90IGxlbmd0aCA9IHNyY0FycmF5LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMs
ICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CiAgICAgICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6
OmNyZWF0ZShsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCmluZGV4IDVlZDQwZmYwZWU4NmEzZGE4OTYxZmM2ZmJiYzA0
MDFmM2ZkODc5ZTAuLjE3ZTcwMDFiMTMyN2Y3OWVkYjA3ZWVkYWQ1OTJmOTZmNzQzOGNkYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQ
UC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JD
UFAucG0KQEAgLTMzNyw3ICszMzcsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiBzdWIgR2V0
TmFtZXNwYWNlRm9yQ2xhc3MKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJldHVybiAi
V1RGIiBpZiAoKCR0eXBlIGVxICJBcnJheUJ1ZmZlciIpIG9yICgkdHlwZSBlcSAiQXJyYXlCdWZm
ZXJWaWV3IikpOyAKKyAgICByZXR1cm4gIldURiIgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIi
KSBvciAoJHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpIG9yICgkdHlwZSBlcSAiVHlwZWRBcnJh
eSIpKTsgCiAgICAgcmV0dXJuICJXVEYiIGlmICgoJHR5cGUgZXEgIlVpbnQ4QXJyYXkiKSBvciAo
JHR5cGUgZXEgIlVpbnQ4Q2xhbXBlZEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MTZBcnJheSIp
IG9yICgkdHlwZSBlcSAiVWludDMyQXJyYXkiKSk7IAogICAgIHJldHVybiAiV1RGIiBpZiAoKCR0
eXBlIGVxICJJbnQ4QXJyYXkiKSBvciAoJHR5cGUgZXEgIkludDE2QXJyYXkiKSBvciAoJHR5cGUg
ZXEgIkludDMyQXJyYXkiKSk7IAogICAgIHJldHVybiAiV1RGIiBpZiAoKCR0eXBlIGVxICJGbG9h
dDMyQXJyYXkiKSBvciAoJHR5cGUgZXEgIkZsb2F0NjRBcnJheSIpKTsgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDMx
YzE2NGJmMGI2N2U0ZTg1ZWZiZTUyMjA0MjIzMmY0NTZmNjNkMzIuLmEwMmI4ZGI3MGI0MTBkMjRj
ZTVjMDgzMjNjMzkxMTg2NjgyYzYxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0zMjAsNyArMzIwLDcgQEAgc3ViIElz
U2NyaXB0UHJvZmlsZVR5cGUKIHN1YiBJc1R5cGVkQXJyYXlUeXBlCiB7CiAgICAgbXkgJHR5cGUg
PSBzaGlmdDsKLSAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJBcnJheUJ1ZmZlciIpIG9yICgk
dHlwZSBlcSAiQXJyYXlCdWZmZXJWaWV3IikpOworICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEg
IkFycmF5QnVmZmVyIikgb3IgKCR0eXBlIGVxICJBcnJheUJ1ZmZlclZpZXciKSBvciAoJHR5cGUg
ZXEgIlR5cGVkQXJyYXkiKSk7CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiVWludDhBcnJh
eSIpIG9yICgkdHlwZSBlcSAiVWludDhDbGFtcGVkQXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQx
NkFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MzJBcnJheSIpKTsKICAgICByZXR1cm4gMSBpZiAo
KCR0eXBlIGVxICJJbnQ4QXJyYXkiKSBvciAoJHR5cGUgZXEgIkludDE2QXJyYXkiKSBvciAoJHR5
cGUgZXEgIkludDMyQXJyYXkiKSk7CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiRmxvYXQz
MkFycmF5Iikgb3IgKCR0eXBlIGVxICJGbG9hdDY0QXJyYXkiKSk7CkBAIC05MzQsNyArOTM0LDcg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
fVxuIik7CiAgICAgfQogCi0gICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGltcGxUeXBlKSBhbmQg
KCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5
QnVmZmVyIikpIHsKKyAgICBpZiAoSXNUeXBlZEFycmF5VHlwZSgkaW1wbFR5cGUpIGFuZCAoJGlt
cGxUeXBlIG5lICJBcnJheUJ1ZmZlclZpZXciKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZm
ZXIiKSBhbmQgKCRpbXBsVHlwZSBuZSAiVHlwZWRBcnJheSIpKSB7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgc3RhdGljIGNvbnN0IEpTQzo6VHlwZWRBcnJheVR5cGUgVHlwZWRB
cnJheVN0b3JhZ2VUeXBlID0gSlNDOjoiKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IlR5cGVkQXJyYXlJbnQ4IikgaWYgJGltcGxUeXBlIGVxICJJbnQ4QXJyYXkiOwogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiVHlwZWRBcnJheUludDE2IikgaWYgJGltcGxUeXBlIGVxICJJ
bnQxNkFycmF5IjsKQEAgLTE2MjIsNyArMTYyMiw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSlcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNl
OjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTtcbiIpOwotICAgICAgICBpZiAoSXNUeXBlZEFy
cmF5VHlwZSgkaW1wbFR5cGUpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlclZpZXciKSBh
bmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXIiKSkgeworICAgICAgICBpZiAoSXNUeXBlZEFy
cmF5VHlwZSgkaW1wbFR5cGUpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlclZpZXciKSBh
bmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXIiKSBhbmQgKCRpbXBsVHlwZSBuZSAiVHlwZWRB
cnJheSIpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBUeXBlZEFycmF5
RGVzY3JpcHRvciBkZXNjcmlwdG9yKCYke2NsYXNzTmFtZX06OnNfaW5mbywgT0JKRUNUX09GRlNF
VE9GKCR7Y2xhc3NOYW1lfSwgbV9zdG9yYWdlKSwgT0JKRUNUX09GRlNFVE9GKCR7Y2xhc3NOYW1l
fSwgbV9zdG9yYWdlTGVuZ3RoKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGdsb2JhbERhdGEucmVnaXN0ZXJUeXBlZEFycmF5RGVzY3JpcHRvcihpbXBsKCksIGRl
c2NyaXB0b3IpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBtX3N0
b3JhZ2UgPSBpbXBsKCktPmRhdGEoKTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAzYjAxMTViZGZkODY0YzYzZmIz
ZWQ0YTk3ZTVhZTgxMWQ3NWQ2OGQ1Li4wMDlkZGJjM2VkZmU3N2VmZDk1NjQzYzE2NmY4MDM5MjQ4
YTczNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtMjQ2MSw3ICsyNDYxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb25NYXNxdWVyYWRlc0FzVW5kZWZpbmVkCiBzdWIgSXNUeXBlZEFycmF5VHlwZQogewogICAg
IG15ICR0eXBlID0gc2hpZnQ7Ci0gICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZm
ZXIiKSBvciAoJHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpKTsKKyAgICByZXR1cm4gMSBpZiAo
KCR0eXBlIGVxICJBcnJheUJ1ZmZlciIpIG9yICgkdHlwZSBlcSAiQXJyYXlCdWZmZXJWaWV3Iikg
b3IgKCR0eXBlIGVxICJUeXBlZEFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEg
IlVpbnQ4QXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQ4Q2xhbXBlZEFycmF5Iikgb3IgKCR0eXBl
IGVxICJVaW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDMyQXJyYXkiKSk7CiAgICAgcmV0
dXJuIDEgaWYgKCgkdHlwZSBlcSAiSW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQxNkFycmF5
Iikgb3IgKCR0eXBlIGVxICJJbnQzMkFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUg
ZXEgIkZsb2F0MzJBcnJheSIpIG9yICgkdHlwZSBlcSAiRmxvYXQ2NEFycmF5IikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKaW5kZXggOGVhZWJlNGRlZDhh
MDJjYjA4OGQyYTAwZDliMGRjZGI2NjJkMTU5Mi4uMTQ5ZjRmOTRjNGZhMWYyNzM5NjQyYTgxYjZi
ZDM1YjUxMjdjOGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxv
YXQzMkFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJy
YXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRp
Y1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0Nv
bnN0YW50cwotICAgIF0gRmxvYXQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIEZs
b2F0MzJBcnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZ
VEVTX1BFUl9FTEVNRU5UID0gNDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9G
bG9hdDY0QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5
LmlkbAppbmRleCBhYmZlYjIxNzg4OTA0MGE1NmM1YWJiOTA5M2U0YWVjZWMxMmYyY2Q5Li4wYjU5
MTZkNDI0ZmNhZDgyZjViYTgwYzAyZDNmYTBlOTkwZDIzYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0
LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBGbG9hdDY0QXJyYXkgOiBBcnJh
eUJ1ZmZlclZpZXcgeworICAgIF0gRmxvYXQ2NEFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSA4OwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MTZBcnJheS5pZGwKaW5kZXggZjZkMDg5ZWEzMzZmYzc1OWRjZTc3ZWVjM2Vi
MDg5YWJmNmE5NjFlZS4uOTFjZmY2MjMwZDBjOTQxMDcwMGQxYTZhNzEyMjVjZDM1YjAyYzgyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKQEAgLTMzLDcgKzMz
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBD
dXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBJbnQx
NkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIEludDE2QXJyYXkgOiBUeXBlZEFycmF5
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDI7CiAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbAppbmRleCBmOTg4MzVhMmM3Y2UyOTlm
MTlhZDA3MjNhMTExNjZhYzE1ZWEwMjdiLi41ZGE2ZWEzNzIyODM2MWUwNWY3MTY1ODc4ZWM4YmM3
MWRhZGU0Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFy
cmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbApA
QCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMs
CiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMK
LSAgICBdIEludDMyQXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gSW50MzJBcnJheSA6
IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVN
RU5UID0gNDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5n
dGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbAppbmRleCAwMGZhYTRm
YzM4YzljNmU5ODEwNDk2NTYwNTc5NTE2YTg1NDBiZDcwLi4zMjZiZDg4YjAxNGE1MTFiNGQ5YmQz
NGE2YjRjNDI4Yjk0MDJiNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQ4QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJh
eS5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGlj
VGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29u
c3RhbnRzCi0gICAgXSBJbnQ4QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gSW50OEFy
cmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVS
X0VMRU1FTlQgPSAxOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJy
YXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheS5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDdmN2YwZTM3ZTNlYzEyY2FiYTBhNjFkNGYwOWI5MTJjMGVkNjAyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsCkBAIC0w
LDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIF0gVHlwZWRBcnJh
eSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1VpbnQxNkFycmF5LmlkbAppbmRleCA3OWUwNWVmYzRlYmY2NTc5OTdhOWI1M2NlMDNmNTgy
YzBlYThiZmFmLi45MGYyMTM1YjRkMmQxYjIyYWJjNzIyMTFiYTFlOTgzODg0Nzg1ZGM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3Vz
dG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDE2
QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gVWludDE2QXJyYXkgOiBUeXBlZEFycmF5
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDI7CiAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCmluZGV4IDY3ZTYxYjI5ZmQ4ZTlk
Y2QxOTA1Njg1MmE5Nzk5ODZkN2ZhOTUxNmMuLmFlMzg0NTQyM2M1NzZkZjNjNjJiM2JkODM0N2Qx
NTYwN2Q5ODkwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQz
MkFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5p
ZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFi
bGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3Rh
bnRzCi0gICAgXSBVaW50MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBVaW50MzJB
cnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BF
Ul9FTEVNRU5UID0gNDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFy
cmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCmluZGV4
IDI2MGEzMjczZTgyOGY1NzY4NTk3ODBhMzU5ODU1YWEwYTI3OWRjZjguLjkwODcwYWIyNjdkNGM2
MmUxOThjNzhjZTM2ZTNlODRiNThiMThlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQ4QXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
SlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9O
b3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDhBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7Cisg
ICAgXSBVaW50OEFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgQllURVNfUEVSX0VMRU1FTlQgPSAxOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151506</attachid>
            <date>2012-07-10 13:13:20 -0700</date>
            <delta_ts>2012-07-11 18:13:33 -0700</delta_ts>
            <desc>try another time</desc>
            <filename>bug-90838-20120710131319.patch</filename>
            <type>text/plain</type>
            <size>37526</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNjMTM4OWZlZmU0ZWI5ZmQ4OTEzOTI2
OThkOWUzMmZiOTY1YTU5Y2EuLmJlNzZlYTE1YjQzYmMxYTkyODk2ZTkzZTU2MTcxNDUxYTJlMjcy
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTItMDctMTAgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJy
YXkgZnJvbSBhbiBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUg
aWYgdGhlIGFyZ3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVu
dAorICAgICAgICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAu
aXRlbSgpIG1ldGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBh
IEpTVmFsdWUsIGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1h
dGl2ZWx5IDN4IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBl
KS4KKworICAgICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIGludHJvZHVjZSBhIG5l
dyBpbnRlcmZhY2UgVHlwZWRBcnJheS4gSXQKKyAgICAgICAgd2lsbCBiZSB1c2VkIHRvIGRldGVy
bWluZSBpZiBhIEphdmFTY3JpcHQgb2JqZWN0IGlzIFR5cGVkIEFycmF5LiBJdAorICAgICAgICBh
bHNvIGludHJvZHVjZXMgYSB2aXJ0dWFsIGdldFR5cGUgZnVuY3Rpb24uIFNvLCB0eXBlZCBhcnJh
eSBjYW4KKyAgICAgICAga25vd24gdGhlaXIgYWN0dWFsIHR5cGUuIFdlIGNhbiB1c2UgdGhpcyBp
bmZvcm1hdGlvbiB0byBjYXN0IHRoZQorICAgICAgICBUeXBlZEFycmF5IHRvIHRoZSBhY3R1YWwg
dHlwZSwgYW5kIHRoZW4gcmVhZCB0aGUgdmFsdWVzIGZyb20gdGhlCisgICAgICAgIHNvdXJjZS4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6Cisg
ICAgICAgICogd3RmL0Zsb2F0MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6
OmdldFR5cGUpOgorICAgICAgICAoRmxvYXQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvRmxvYXQ2
NEFycmF5Lmg6CisgICAgICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Z2V0VHlwZSk6CisgICAgICAg
IChGbG9hdDY0QXJyYXkpOgorICAgICAgICAqIHd0Zi9JbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OkludDE2QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50MTZBcnJheSk6CisgICAgICAg
ICogd3RmL0ludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6Z2V0VHlwZSk6
CisgICAgICAgIChJbnQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvSW50OEFycmF5Lmg6CisgICAg
ICAgIChXVEY6OkludDhBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQ4QXJyYXkpOgorICAg
ICAgICAqIHd0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgICogd3RmL1R5cGVk
QXJyYXkuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5pZGwuCisgICAgICAgIChUeXBlZEFycmF5KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheTo6
VHlwZWRBcnJheSk6CisgICAgICAgICogd3RmL1R5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgIChU
eXBlZEFycmF5QmFzZSk6CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjppdGVtKToKKyAg
ICAgICAgKFdURjo6VHlwZWRBcnJheUJhc2U6OlR5cGVkQXJyYXlCYXNlKToKKyAgICAgICAgKiB3
dGYvVWludDE2QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDE2QXJyYXk6OmdldFR5cGUpOgor
ICAgICAgICAoVWludDE2QXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOgorICAg
ICAgICAoV1RGOjpVaW50MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChVaW50MzJBcnJheSk6
CisgICAgICAgICogd3RmL1VpbnQ4QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhBcnJheTo6
Z2V0VHlwZSk6CisgICAgICAgIChVaW50OEFycmF5KToKKyAgICAgICAgKiB3dGYvVWludDhDbGFt
cGVkQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhDbGFtcGVkQXJyYXk6OmdldFR5cGUpOgor
ICAgICAgICAoVWludDhDbGFtcGVkQXJyYXkpOgorCiAyMDEyLTA3LTA1ICBab2x0YW4gSGVyY3pl
ZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUG9ydCBERkcgSklUIHRvIHRyYWRp
dGlvbmFsIEFSTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIwY2I0YmQzZDEyMmZmMmIwYmI5ZTQ0ZmJjOWNjNDhj
ZTBhNjY1YzUuLjA1MjkwM2U2ZDMzMjg4MDhiMjA5NTY4M2Y5MjFmMzU3ZmRhZWE3YTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMi0wNy0xMCAgQXJuYXVkIFJlbmV2aWVyICA8YS5y
ZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisgICAgICAgIGNvbnN0cnVjdGluZyBUeXBlZEFy
cmF5IGZyb20gYW5vdGhlciBUeXBlZEFycmF5IGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjb25zdHJ1Y3RpbmcgYSB0eXBlZCBhcnJh
eSBmcm9tIGFuIGFycmF5IGxpa2UgZWxlbWVudCwgdHJ5IHRvCisgICAgICAgIGRldGVybWluZSBp
ZiB0aGUgYXJndW1lbnQgaXMgYSB0eXBlZCBhcnJheS4gSWYgc28sIGNhc3QgdGhlIGFyZ3VtZW50
CisgICAgICAgIHRvIGEgdHlwZWQgYXJyYXksIGFuZCByZWFkIGVhY2ggZWxlbWVudCB3aXRoIC5p
dGVtKCkgbWV0aG9kLiBUaGF0CisgICAgICAgIGF2b2lkIHJlYWRpbmcgdGhlIHZhbHVlIGFzIGEg
SlNWYWx1ZSwgYW5kIHNwZWVkdXBzIGNvbnN0cnVjdGlvbiBieQorICAgICAgICBhcHByb3hpbWF0
aXZlbHkgM3ggKGV2ZW4gMzB4IGlmIFR5cGVkQXJyYXlzIGFyZSBib3RoIHRoZSBzYW1lIHR5cGUp
LgorCisgICAgICAgIEluIG9yZGVyIHRvIGFjaGlldmUgdGhhdCwgd2UgaW50cm9kdWNlIGEgbmV3
IGludGVyZmFjZSBUeXBlZEFycmF5LiBJdAorICAgICAgICB3aWxsIGJlIHVzZWQgdG8gZGV0ZXJt
aW5lIGlmIGEgSmF2YVNjcmlwdCBvYmplY3QgaXMgVHlwZWQgQXJyYXkuIEl0CisgICAgICAgIGFs
c28gaW50cm9kdWNlcyBhIHZpcnR1YWwgZ2V0VHlwZSBmdW5jdGlvbi4gU28sIHR5cGVkIGFycmF5
IGNhbgorICAgICAgICBrbm93biB0aGVpciBhY3R1YWwgdHlwZS4gV2UgY2FuIHVzZSB0aGlzIGlu
Zm9ybWF0aW9uIHRvIGNhc3QgdGhlCisgICAgICAgIFR5cGVkQXJyYXkgdG8gdGhlIGFjdHVhbCB0
eXBlLCBhbmQgdGhlbiByZWFkIHRoZSB2YWx1ZXMgZnJvbSB0aGUKKyAgICAgICAgc291cmNlLgor
CisgICAgICAgIFRlc3RzOiBQZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5LWNv
bnN0cnVjdC1mcm9tLXR5cGVkLmh0bWwKKyAgICAgICAgICAgICAgIFBlcmZvcm1hbmNlVGVzdHMv
QmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJy
YXlCdWZmZXJWaWV3SGVscGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1
ZmZlclZpZXdXaXRoVHlwZWRBcnJheUFyZ3VtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29uc3RydWN0QXJyYXlCdWZmZXJWaWV3KToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG06CisgICAgICAgIChHZXROYW1lc3BhY2VG
b3JDbGFzcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgIChJc1R5cGVkQXJyYXlUeXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoSXNUeXBlZEFycmF5VHlwZSk6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9GbG9hdDY0QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDE2QXJyYXku
aWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0ludDhBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvVHlwZWRBcnJh
eS5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXku
aWRsLgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvVWludDhB
cnJheS5pZGw6CisKIDIwMTItMDctMDUgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuX3poYW5nQGFw
cGxlLmNvbT4KIAogICAgICAgICBDb2RlIHJlZmFjdG9yaW5nOiBtb3ZlIG1pbWVUeXBlRnJvbVVU
SVRyZWUgdG8gYSBzZXBhcmF0ZSBmaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZjQ4
YTZjZTU1OWEyNGNjMjBiNzA3NThkZjhiYzRhODRkYzllZWQuLmFmZGNjZjk5YzhjN2FhZjc4NzY5
MDRhZGNiZjJmZGQ4NGY5NjQ1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1Myw2ICsx
NTMsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRo
cmVhZHMuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UeXBlVHJhaXRzLmNwcCBcCiAgICAgU291
cmNlL1dURi93dGYvVHlwZVRyYWl0cy5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL1VpbnQxNkFycmF5LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkK
aW5kZXggODY3NTg1NTA2MWQzNzRlZmFmZmU3ZDYyZTE1M2RlYjExYmJhZDAzOS4uZTAxMzdkNjc3
OTYxYzY2MzhlNTlkMzRmMjE0MGRkZWU2ZGY2NjI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC0xODgsNiArMTg4LDcgQEAKICAg
ICAgICAgICAgICd3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwJywKICAgICAgICAgICAgICd3dGYv
VGhyZWFkaW5nV2luLmNwcCcsCiAgICAgICAgICAgICAnd3RmL1R5cGVUcmFpdHMuY3BwJywKKyAg
ICAgICAgICAgICd3dGYvVHlwZWRBcnJheS5oJywKICAgICAgICAgICAgICd3dGYvVHlwZWRBcnJh
eUJhc2UuaCcsCiAgICAgICAgICAgICAnd3RmL1VpbnQxNkFycmF5LmgnLAogICAgICAgICAgICAg
J3d0Zi9VaW50MzJBcnJheS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zsb2F0MzJB
cnJheS5oIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgKaW5kZXggNTVlNjFlMDA2NGQx
NWE1MmEwNGE1ZTBmYTBjZmQ4NDlkMDgwMDRiNy4uMTVmZGEzZTllOWRiMWZlYjYyYWU2OTY2OWFh
OGU4ZWM5N2UyODgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgK
KysrIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgKQEAgLTQ4LDE4ICs0OCwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgpW2luZGV4XSA9IHN0
YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CiAgICAgfQogCi0gICAgLy8gSW52b2tlZCBieSB0aGUg
aW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAg
ICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQg
YXMgbmVjZXNzYXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxmbG9hdD46Om1fbGVuZ3Ro
KTsKLSAgICAgICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClb
aW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQogICAgIGlubGluZSBQYXNz
UmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxp
bmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkg
Y29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4g
VFlQRV9GbG9hdDMyOworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgRmxvYXQzMkFycmF5
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBi
eXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmggYi9T
b3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaAppbmRleCAzMDYzM2RiZWM1Y2E5ZTU5MDYzNWM0
MDBlMmNiNzI2Y2U3MWUxODRkLi43MTA4Y2E5NGRjNGIxZWI1NzkzMTE2OWJkMDI2NmQwMDQzYmIy
MWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaApAQCAtNDgsMTggKzQ4LDE0IEBAIHB1YmxpYzoKICAg
ICAgICAgVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpOwogICAgIH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQg
Z2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMg
cmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vz
c2FyeS4KLSAgICBkb3VibGUgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVuZ3RoKTsKLSAg
ICAgICAgZG91YmxlIHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRl
eF07Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQ
dHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQ
YXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25z
dDsKIAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBF
X0Zsb2F0NjQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDY0QXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmggYi9Tb3VyY2UvV1RG
L3d0Zi9JbnQxNkFycmF5LmgKaW5kZXggMjZiYmU4YTkyMjU3MjRhNGJiMzNjMjcxOGRhNjI2MzE1
ZTY4ZmZjNS4uYjkyZjc3ODQ3NjM0NDRjYjZjZDNmNWI0ODA1Y2Y5ZjgxZTlmNzI3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvSW50MTZBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0lu
dDE2QXJyYXkuaApAQCAtNDUsNiArNDUsMTEgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVm
UHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBh
c3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsK
IAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBFX0lu
dDE2OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgSW50MTZBcnJheShQYXNzUmVmUHRy
PEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3Rm
L0ludDMyQXJyYXkuaAppbmRleCBjZTY4NjhjYzI2MGZmYWVhYzJjYzU0MzMwZDJlMzdmZTE5ZmU3
MWQ1Li5mNmJhZTQxNGE4Y2IwYTQzMDY2ZjJlY2RhOTY1ZmNmOWQ5YTJkMzMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50MzJB
cnJheS5oCkBAIC00NCw2ICs0NCwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8
SW50MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1Jl
ZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisg
ICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfSW50MzI7
CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+LAogICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDhBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50OEFy
cmF5LmgKaW5kZXggNTU0ZjRhY2M5Nzk2ZTc4ODMzNDFhZTIzZGM1ZTA3ZmNlNTU4ODMzZC4uZDQx
ZGMyODEzOWZmNmE5NDA4YzlkYjVjOTI3M2QyNzZiNGY0M2YyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvSW50OEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50OEFycmF5LmgKQEAg
LTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+
IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUg
Z2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfSW50ODsKKyAgICB9CisKIHBy
aXZhdGU6CiAgICAgaW5saW5lIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oIGIvU291cmNlL1dURi93dGYvSW50ZWdy
YWxUeXBlZEFycmF5QmFzZS5oCmluZGV4IGYyNzY0MDBmOGQ4Nzk4Yjg3MmY5ZjdiM2RmMmY1MjMy
YmZhYWQ1NmUuLjIzZGJkZGU1ZDVhMjIzZjkzZWMxNjU0MThjOWE5YTNlNjcwNzAwMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmgKQEAgLTUwLDE0ICs1MCw2IEBAIGNs
YXNzIEludGVncmFsVHlwZWRBcnJheUJhc2UgOiBwdWJsaWMgVHlwZWRBcnJheUJhc2U8VD4gewog
ICAgICAgICBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PFQ+
KHN0YXRpY19jYXN0PGludDY0X3Q+KHZhbHVlKSk7CiAgICAgfQogCi0gICAgLy8gSW52b2tlZCBi
eSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxs
ZXIKLSAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRl
ZmluZWQgYXMgbmVjZXNzYXJ5LgotICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7
Ci0gICAgICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKLSAgICB9
Ci0KICAgcHJvdGVjdGVkOgogICAgIEludGVncmFsVHlwZWRBcnJheUJhc2UoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
CiAgICAgICAgIDogVHlwZWRBcnJheUJhc2U8VD4oYnVmZmVyLCBieXRlT2Zmc2V0LCBsZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0
Zi9UeXBlZEFycmF5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzg2OTZhNTE1OTg2ODNiMzQ1YzE4ZDZkYWNhMGMw
MWRlMzQyN2FlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXku
aApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgVHlwZWRBcnJh
eV9oCisjZGVmaW5lIFR5cGVkQXJyYXlfaAorCisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+
CisjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5oPgorCituYW1lc3BhY2UgV1RGIHsKK2Ns
YXNzIFR5cGVkQXJyYXkgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKKyAgcHVibGljOgorICAg
IGVudW0gVmlld1R5cGUgeworICAgICAgICBUWVBFX0ludDgsCisgICAgICAgIFRZUEVfVWludDgs
CisgICAgICAgIFRZUEVfVWludDhDbGFtcGVkLAorICAgICAgICBUWVBFX0ludDE2LAorICAgICAg
ICBUWVBFX1VpbnQxNiwKKyAgICAgICAgVFlQRV9JbnQzMiwKKyAgICAgICAgVFlQRV9VaW50MzIs
CisgICAgICAgIFRZUEVfRmxvYXQzMiwKKyAgICAgICAgVFlQRV9GbG9hdDY0CisgICAgfTsKKyAg
ICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5cGUoKSA9IDA7CisgIHByb3RlY3RlZDoKKyAgICBUeXBl
ZEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNl
dCkgCisgICAgICAgIDogQXJyYXlCdWZmZXJWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCkKKyAgICB7
CisgICAgfQorfTsKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OlR5cGVkQXJyYXk7
CisjZW5kaWYgLy8gVHlwZWRBcnJheV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UeXBl
ZEFycmF5QmFzZS5oIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaAppbmRleCA1ZWM3
YTE5OGExZDZjOGZmNTZkYjQzZmUxZmY3MzRjNjgxZWViODFiLi43YmRiZjllOGVmMzZjNWVkYzQ2
ZTZkZWFjZjNiZTUyODhiNzc1ZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFy
cmF5QmFzZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmgKQEAgLTI5LDEx
ICsyOSwxMiBAQAogCiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0FycmF5QnVmZmVyVmlldy5oPgorI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5Lmg+CiAKIG5hbWVz
cGFjZSBXVEYgewogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLWNsYXNzIFR5cGVkQXJyYXlCYXNl
IDogcHVibGljIEFycmF5QnVmZmVyVmlldyB7CitjbGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1Ymxp
YyBUeXBlZEFycmF5IHsKICAgcHVibGljOgogICAgIFQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxUKj4oYmFzZUFkZHJlc3MoKSk7IH0KIApAQCAtNjUsOSArNjYsMTcgQEAgY2xh
c3MgVHlwZWRBcnJheUJhc2UgOiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgcmV0
dXJuIG1fbGVuZ3RoICogc2l6ZW9mKFQpOwogICAgIH0KIAorICAgIC8vIEludm9rZWQgYnkgdGhl
IGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCisg
ICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVk
IGFzIG5lY2Vzc2FyeS4KKyAgICBUIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgewor
ICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxUPjo6bV9sZW5ndGgpOworICAg
ICAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtpbmRleF07CisgICAgfQorCiBw
cm90ZWN0ZWQ6CiAgICAgVHlwZWRBcnJheUJhc2UoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVm
ZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi0gICAgICAgIDogQXJy
YXlCdWZmZXJWaWV3KGJ1ZmZlciwgYnl0ZU9mZnNldCkKKyAgICAgICAgOiBUeXBlZEFycmF5KGJ1
ZmZlciwgYnl0ZU9mZnNldCkKICAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiAgICAgewogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmggYi9Tb3VyY2UvV1RG
L3d0Zi9VaW50MTZBcnJheS5oCmluZGV4IGM3ZjgxMmMwMDlmOTc5ZjAyMzhiOGI3MmQ3NzY1Nzgy
ZmVjODU3NzYuLmVkYzE0M2JkZTA0MzM3MTc2ZTBkYjI3Nzg0ZjAzM2VkNGVkNjY4YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYv
VWludDE2QXJyYXkuaApAQCAtNDYsNiArNDYsMTEgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNz
UmVmUHRyPFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGlu
ZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNv
bnN0OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZ
UEVfVWludDE2OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDE2QXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5Lmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oCmluZGV4IGE5Y2Y2YjE1MjE4MDRhNzFhNzEy
MGI3ZGYwMzJlMDRmNmU1NjU4NWIuLmIzOTBiOWZhZGFmNDcwNmQyMzlmNjdhMzgyZjdlYTllNGFm
MDJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKKysrIGIvU291
cmNlL1dURi93dGYvVWludDMyQXJyYXkuaApAQCAtNDYsNiArNDYsMTEgQEAgcHVibGljOgogICAg
IGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0
OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQs
IGludCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFRZUEVfVWludDMyOworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWlu
dDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VaW50
OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFycmF5LmgKaW5kZXggYmU5MTcyOWQ2YjA4
NjJkNTIzZDhkY2Q3MTc1NzcyY2YxNDQzYjU3My4uNTc4OGY3ZmEyZjdlOWFjZGQ5MTZiNzMzNTZh
OGUyOGUyZGU3YWUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaApAQCAtNDYsNiArNDYsMTEgQEAgcHVibGlj
OgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkg
Y29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0
YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7Cisg
ICAgICAgIHJldHVybiBUWVBFX1VpbnQ4OworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIGlubGlu
ZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1VpbnQ4Q2xhbXBlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5o
CmluZGV4IGQ5ZjgyNDkwYWM1NGU3NjhkN2NmMTljMzBmMjJjYmNjZjFmOTFlNzMuLmJkYjdiZmQx
Y2NlYzBiYTUzYWYzYjc5NDk1MmZjNzkyM2Y4ZTRiNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1VpbnQ4Q2xhbXBlZEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVk
QXJyYXkuaApAQCAtNTUsNiArNTUsMTEgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGlu
ZSBQYXNzUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBl
bmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0
dXJuIFRZUEVfVWludDhDbGFtcGVkOworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWlu
dDhDbGFtcGVkQXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDMzMWYyNzhhMTJmNzIyZTE5ZWU0ODIyNzFiZDEwNmM1YmUyYjkxM2IuLmE2OThiNzlhZWY2YzUz
MjM5ZGE0NzY0YzE4ZTFkMTgwNzNjYjExMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zNTks
NiArMzU5LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvSW50MTZB
cnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbAogICAgIGh0bWwvY2FudmFz
L0ludDhBcnJheS5pZGwKKyAgICBodG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbAogICAgIGh0bWwv
Y2FudmFzL1VpbnQxNkFycmF5LmlkbAogICAgIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbAog
ICAgIGh0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA3YThjMjg3MmQ5ODEzN2I3N2U4ZDFkMGZlNjAyZTE3MjUzYWQwMWIyLi43MDhhMGUw
NWZhMjQwMzY1MjUxMDcxMDJmMDdlMWVkNzQ2ODc1MWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKQEAgLTM2Nyw2ICszNjcsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0
bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1s
L2NhbnZhcy9UeXBlZEFycmF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50
MTZBcnJheS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnByaQppbmRleCBjNmRjODBkYzA2NGNmZWFlNzhkMzdlZjQxZmE3ZmUxYzhl
NWU2MmI2Li4zYmM3YjZlZTMyOWI1OTEzNzQ5MGRkZWUwZDIyMzk2MjRkMWM1YTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0yOTIsNiArMjkyLDcgQEAgSURMX0JJTkRJTkdTICs9
IFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAg
ICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAgICAgJCRQV0QvaHRt
bC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKyAgICAkJFBXRC9odG1sL2NhbnZh
cy9UeXBlZEFycmF5LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZv
LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIFwKICAgICAkJFBX
RC9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzViNmQ1ZGU0MzY2YjFkODU0YjA2ZDUwMTQwMzE3YWRh
MjZjOGU1Yy4uZDNjOTYxNTc1OGE5ZGIyZTZiY2FjOGZlOTkyMjE3Y2NjODgzMDMzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NTAsNiArNTUwLDggQEAgd2ViY29yZV9idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJhY2tFdmVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJlZVdhbGtlci5jcHAgXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNUcmVlV2Fsa2VyLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNU
eXBlZEFycmF5LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1R5cGVkQXJyYXkuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VJRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVUlFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVWludDE2
QXJyYXkuY3BwIFwKQEAgLTkyMCw2ICs5MjIsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKIAkkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRt
bC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvY2Fu
dmFzL1R5cGVkQXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5
LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogCSQoV2Vi
Q29yZSkvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGVm
YTQzYzc4NTgxMmI0MTFjZGRlMDlmOTBkZTlmOWRjNjNlZTdlNDkuLjUxNmRiOTA1ZjAwNWNjM2Y2
YTY2YWU5Mjc2NWU4M2Q3Y2E1Y2JjOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExMTYsNiArMTEx
Niw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCcsCisgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvVHlwZWRBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1VpbnQxNkFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDMyQXJy
YXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbCcsCkBAIC04
MDYxLDYgKzgwNjIsOCBAQAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNUb3VjaExpc3QuaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RyZWVXYWxrZXIuY3BwJywKICAgICAgICAgICAgICc8
KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJlZVdhbGtlci5oJywKKyAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHlwZWRB
cnJheS5jcHAnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNUeXBlZEFycmF5LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNVSUV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VJRXZlbnQuaCcsCiAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VpbnQxNkFycmF5LmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmll
d0hlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdI
ZWxwZXIuaAppbmRleCBkZjllNDM5MDY0MDRkNDg1ODg4MzhiMGI5NmY0ZTdkZGNkNWI5Yzg0Li41
YzRlNTJiMTFiYzAzNDRjMWZmYmViODMwM2ZhOGQ0Nzc0MWU4MmUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKQEAgLTMw
LDEyICszMCwxNCBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0Fy
cmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNUeXBl
ZEFycmF5LmgiCiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9BcmdMaXN0Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KICNpbmNs
dWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXlCYXNl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODYsNiArODgsNjYgQEAgSlNDOjpKU1Zh
bHVlIHNldFdlYkdMQXJyYXlIZWxwZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFQqIGltcGwsIFQq
ICgqY29udmVyc2lvbkYKIC8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgWFhYQXJyYXlDb25z
dHJ1Y3RvcnMuCiAvLyBJZiB0aGlzIHJldHVybnMgMCwgaXQgd2lsbCBhbHJlYWR5IGhhdmUgdGhy
b3duIGEgSmF2YVNjcmlwdCBleGNlcHRpb24uCiB0ZW1wbGF0ZTxjbGFzcyBDLCB0eXBlbmFtZSBU
PgorUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJheUFy
Z3VtZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQoreworICAgIFJlZlB0cjxUeXBlZEFycmF5PiBz
b3VyY2UgPSB0b1R5cGVkQXJyYXkoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIGlmICghc291cmNl
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVpbnQzMl90IGxlbmd0aCA9IGFzT2JqZWN0KGV4
ZWMtPmFyZ3VtZW50KDApKS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3Ro
IikpLnRvVUludDMyKGV4ZWMpOworICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShsZW5n
dGgpOworICAgIGlmICghYXJyYXkpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElO
REVYX1NJWkVfRVJSKTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIGlmIChh
cnJheS0+Z2V0VHlwZSgpID09IHNvdXJjZS0+Z2V0VHlwZSgpKSB7CisgICAgICAgIG1lbWNweShh
cnJheS0+YmFzZUFkZHJlc3MoKSwgc291cmNlLT5iYXNlQWRkcmVzcygpLCBsZW5ndGggKiBzaXpl
b2YoVCkpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisgICAgc3dpdGNoIChzb3Vy
Y2UtPmdldFR5cGUoKSkgeworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9JbnQ4OgorICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJh
eS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxzaWduZWQgY2hhcj4gKj4o
c291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVk
QXJyYXk6OlRZUEVfVWludDg6CisgICAgY2FzZSBUeXBlZEFycmF5OjpUWVBFX1VpbnQ4Q2xhbXBl
ZDoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAg
ICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8dW5zaWdu
ZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfSW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRp
Y19jYXN0PFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBzaG9ydD4gKj4oc291cmNlLmdldCgpKS0+aXRl
bShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfVWludDE2
OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTx1bnNpZ25l
ZCBzaG9ydD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfSW50MzI6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRp
Y19jYXN0PFR5cGVkQXJyYXlCYXNlPGludD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfVWludDMyOgorICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJh
eS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBpbnQ+ICo+
KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBl
ZEFycmF5OjpUWVBFX0Zsb2F0MzI6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5
cGVkQXJyYXlCYXNlPGZsb2F0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9GbG9hdDY0OgorICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0
KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxkb3VibGU+ICo+KHNvdXJjZS5nZXQo
KSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGFycmF5
OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3Jz
LgorLy8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEph
dmFTY3JpcHQgZXhjZXB0aW9uLgordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KIFBhc3NS
ZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJndW1lbnQo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIg
PSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsKQEAgLTEzOCw2ICsyMDAsMTAgQEAg
UGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAgICAgCisg
ICAgICAgIHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJheUFyZ3Vt
ZW50PEMsIFQ+KGV4ZWMpOworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHJldHVybiB2
aWV3OworCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIHNyY0FycmF5ID0gYXNPYmplY3QoZXhlYy0+
YXJndW1lbnQoMCkpOwogICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+Z2V0KGV4
ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMpOwogICAg
ICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUobGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbQppbmRleCA1ZWQ0
MGZmMGVlODZhM2RhODk2MWZjNmZiYmMwNDAxZjNmZDg3OWUwLi4xN2U3MDAxYjEzMjdmNzllZGIw
N2VlZGFkNTkyZjk2Zjc0MzhjZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCkBAIC0zMzcsNyArMzM3LDcgQEAgc3ViIEFk
ZEluY2x1ZGVzRm9yVHlwZQogc3ViIEdldE5hbWVzcGFjZUZvckNsYXNzCiB7CiAgICAgbXkgJHR5
cGUgPSBzaGlmdDsKLSAgICByZXR1cm4gIldURiIgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIi
KSBvciAoJHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpKTsgCisgICAgcmV0dXJuICJXVEYiIGlm
ICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0eXBlIGVxICJBcnJheUJ1ZmZlclZpZXci
KSBvciAoJHR5cGUgZXEgIlR5cGVkQXJyYXkiKSk7IAogICAgIHJldHVybiAiV1RGIiBpZiAoKCR0
eXBlIGVxICJVaW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50OENsYW1wZWRBcnJheSIpIG9y
ICgkdHlwZSBlcSAiVWludDE2QXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQzMkFycmF5IikpOyAK
ICAgICByZXR1cm4gIldURiIgaWYgKCgkdHlwZSBlcSAiSW50OEFycmF5Iikgb3IgKCR0eXBlIGVx
ICJJbnQxNkFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQzMkFycmF5IikpOyAKICAgICByZXR1cm4g
IldURiIgaWYgKCgkdHlwZSBlcSAiRmxvYXQzMkFycmF5Iikgb3IgKCR0eXBlIGVxICJGbG9hdDY0
QXJyYXkiKSk7ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQppbmRleCAzMWMxNjRiZjBiNjdlNGU4NWVmYmU1MjIwNDIyMzJmNDU2
ZjYzZDMyLi5hMDJiOGRiNzBiNDEwZDI0Y2U1YzA4MzIzYzM5MTE4NjY4MmM2MTA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpA
QCAtMzIwLDcgKzMyMCw3IEBAIHN1YiBJc1NjcmlwdFByb2ZpbGVUeXBlCiBzdWIgSXNUeXBlZEFy
cmF5VHlwZQogewogICAgIG15ICR0eXBlID0gc2hpZnQ7Ci0gICAgcmV0dXJuIDEgaWYgKCgkdHlw
ZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpKTsKKyAg
ICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJBcnJheUJ1ZmZlciIpIG9yICgkdHlwZSBlcSAiQXJy
YXlCdWZmZXJWaWV3Iikgb3IgKCR0eXBlIGVxICJUeXBlZEFycmF5IikpOwogICAgIHJldHVybiAx
IGlmICgoJHR5cGUgZXEgIlVpbnQ4QXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQ4Q2xhbXBlZEFy
cmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDMyQXJy
YXkiKSk7CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiSW50OEFycmF5Iikgb3IgKCR0eXBl
IGVxICJJbnQxNkFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQzMkFycmF5IikpOwogICAgIHJldHVy
biAxIGlmICgoJHR5cGUgZXEgIkZsb2F0MzJBcnJheSIpIG9yICgkdHlwZSBlcSAiRmxvYXQ2NEFy
cmF5IikpOwpAQCAtOTM0LDcgKzkzNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cbiIpOwogICAgIH0KIAotICAgIGlmIChJc1R5cGVk
QXJyYXlUeXBlKCRpbXBsVHlwZSkgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyVmlldyIp
IGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlciIpKSB7CisgICAgaWYgKElzVHlwZWRBcnJh
eVR5cGUoJGltcGxUeXBlKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXJWaWV3IikgYW5k
ICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyIikgYW5kICgkaW1wbFR5cGUgbmUgIlR5cGVkQXJy
YXkiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBK
U0M6OlR5cGVkQXJyYXlUeXBlIFR5cGVkQXJyYXlTdG9yYWdlVHlwZSA9IEpTQzo6Iik7CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJUeXBlZEFycmF5SW50OCIpIGlmICRpbXBsVHlwZSBl
cSAiSW50OEFycmF5IjsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlR5cGVkQXJyYXlJ
bnQxNiIpIGlmICRpbXBsVHlwZSBlcSAiSW50MTZBcnJheSI7CkBAIC0xNjIyLDcgKzE2MjIsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
InZvaWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7XG4i
KTsKLSAgICAgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGltcGxUeXBlKSBhbmQgKCRpbXBsVHlw
ZSBuZSAiQXJyYXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyIikp
IHsKKyAgICAgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGltcGxUeXBlKSBhbmQgKCRpbXBsVHlw
ZSBuZSAiQXJyYXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyIikg
YW5kICgkaW1wbFR5cGUgbmUgIlR5cGVkQXJyYXkiKSkgewogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgVHlwZWRBcnJheURlc2NyaXB0b3IgZGVzY3JpcHRvcigmJHtjbGFzc05h
bWV9OjpzX2luZm8sIE9CSkVDVF9PRkZTRVRPRigke2NsYXNzTmFtZX0sIG1fc3RvcmFnZSksIE9C
SkVDVF9PRkZTRVRPRigke2NsYXNzTmFtZX0sIG1fc3RvcmFnZUxlbmd0aCkpO1xuIik7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBnbG9iYWxEYXRhLnJlZ2lzdGVyVHlwZWRB
cnJheURlc2NyaXB0b3IoaW1wbCgpLCBkZXNjcmlwdG9yKTtcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgbV9zdG9yYWdlID0gaW1wbCgpLT5kYXRhKCk7XG4iKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
aW5kZXggM2IwMTE1YmRmZDg2NGM2M2ZiM2VkNGE5N2U1YWU4MTFkNzVkNjhkNS4uMDA5ZGRiYzNl
ZGZlNzdlZmQ5NTY0M2MxNjZmODAzOTI0OGE3MzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTI0NjEsNyArMjQ2MSw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTWFzcXVlcmFkZXNBc1VuZGVmaW5lZAogc3Vi
IElzVHlwZWRBcnJheVR5cGUKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJldHVybiAx
IGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0eXBlIGVxICJBcnJheUJ1ZmZlclZp
ZXciKSk7CisgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5
cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpIG9yICgkdHlwZSBlcSAiVHlwZWRBcnJheSIpKTsKICAg
ICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJVaW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50
OENsYW1wZWRBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDE2QXJyYXkiKSBvciAoJHR5cGUgZXEg
IlVpbnQzMkFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkludDhBcnJheSIp
IG9yICgkdHlwZSBlcSAiSW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiSW50MzJBcnJheSIpKTsK
ICAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJGbG9hdDMyQXJyYXkiKSBvciAoJHR5cGUgZXEg
IkZsb2F0NjRBcnJheSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0Zsb2F0MzJBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJy
YXkuaWRsCmluZGV4IDhlYWViZTRkZWQ4YTAyY2IwODhkMmEwMGQ5YjBkY2RiNjYyZDE1OTIuLjE0
OWY0Zjk0YzRmYTFmMjczOTY0MmE4MWI2YmQzNWI1MTI3YzhiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIEZsb2F0MzJBcnJheSA6IEFy
cmF5QnVmZmVyVmlldyB7CisgICAgXSBGbG9hdDMyQXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKaW5kZXggYWJmZWIyMTc4ODkwNDBhNTZjNWFi
YjkwOTNlNGFlY2VjMTJmMmNkOS4uMGI1OTE2ZDQyNGZjYWQ4MmY1YmE4MGMwMmQzZmEwZTk5MGQy
M2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsCkBA
IC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywK
ICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwot
ICAgIF0gRmxvYXQ2NEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIEZsb2F0NjRBcnJh
eSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9F
TEVNRU5UID0gODsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBs
ZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCmluZGV4IGY2
ZDA4OWVhMzM2ZmM3NTlkY2U3N2VlYzNlYjA4OWFiZjZhOTYxZWUuLjkxY2ZmNjIzMGQwYzk0MTA3
MDBkMWE2YTcxMjI1Y2QzNWIwMmM4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0ludDE2QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDE2QXJyYXkuaWRsCkBAIC0zMyw3ICszMyw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNO
b1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RD
aGVja0NvbnN0YW50cwotICAgIF0gSW50MTZBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAg
XSBJbnQxNkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcg
QllURVNfUEVSX0VMRU1FTlQgPSAyOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0ludDMyQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5p
ZGwKaW5kZXggZjk4ODM1YTJjN2NlMjk5ZjE5YWQwNzIzYTExMTY2YWMxNWVhMDI3Yi4uNWRhNmVh
MzcyMjgzNjFlMDVmNzE2NTg3OGVjOGJjNzFkYWRlNGI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MzJBcnJheS5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewog
ICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAg
ICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBJbnQzMkFycmF5IDogQXJyYXlCdWZmZXJW
aWV3IHsKKyAgICBdIEludDMyQXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAgICAgY29uc3QgdW5z
aWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50OEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDhBcnJheS5pZGwKaW5kZXggMDBmYWE0ZmMzOGM5YzZlOTgxMDQ5NjU2MDU3OTUxNmE4NTQwYmQ3
MC4uMzI2YmQ4OGIwMTRhNTExYjRkOWJkMzRhNmI0YzQyOGI5NDAyYjUyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVj
dCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gSW50OEFycmF5IDogQXJyYXlC
dWZmZXJWaWV3IHsKKyAgICBdIEludDhBcnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25z
dCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0gMTsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1R5cGVkQXJyYXkuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZjdmMGUzN2UzZWMxMmNhYmEwYTYxZDRm
MDliOTEyYzBlZDYwMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9UeXBlZEFycmF5LmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIEpTR2VuZXJhdGVUb05hdGl2
ZU9iamVjdCwKKyAgICBdIFR5cGVkQXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIH07Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwKaW5kZXggNzllMDVl
ZmM0ZWJmNjU3OTk3YTliNTNjZTAzZjU4MmMwZWE4YmZhZi4uOTBmMjEzNWI0ZDJkMWIyMmFiYzcy
MjExYmExZTk4Mzg4NDc4NWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvVWludDE2QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQx
NkFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9T
dGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hl
Y2tDb25zdGFudHMKLSAgICBdIFVpbnQxNkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBd
IFVpbnQxNkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcg
QllURVNfUEVSX0VMRU1FTlQgPSAyOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5
LmlkbAppbmRleCA2N2U2MWIyOWZkOGU5ZGNkMTkwNTY4NTJhOTc5OTg2ZDdmYTk1MTZjLi5hZTM4
NDU0MjNjNTc2ZGYzYzYyYjNiZDgzNDdkMTU2MDdkOTg5MDBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwK
ICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDMyQXJyYXkgOiBBcnJheUJ1
ZmZlclZpZXcgeworICAgIF0gVWludDMyQXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAgICAgY29u
c3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50OEFycmF5LmlkbAppbmRleCAyNjBhMzI3M2U4MjhmNTc2ODU5NzgwYTM1OTg1NWFh
MGEyNzlkY2Y4Li45MDg3MGFiMjY3ZDRjNjJlMTk4Yzc4Y2UzNmUzZTg0YjU4YjE4ZWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3Rv
bVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFVpbnQ4QXJy
YXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gVWludDhBcnJheSA6IFR5cGVkQXJyYXkgewog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0gMTsKIAogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXNh
bWUtdHlwZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25z
dHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDQ2NDE3NmI4MGExNTNjMmY0
MzA3N2ZiNjVjMTMyZTI1YzY1MGNhCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbApAQCAt
MCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFyIGxlbmd0aCA9IDEw
MDAwMDAwOwordmFyIHNvdXJjZSA9IG5ldyBVaW50OEFycmF5KGxlbmd0aCk7Citmb3IgKHZhciBp
ID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgc291cmNlW2ldID0gaTsKK30KKworUGVyZlRl
c3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciB0YXJnZXQgPSBuZXcgVWludDhBcnJh
eShzb3VyY2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tdHlwZWQuaHRtbCBi
L1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tdHlw
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZmNlOWY3OWFiN2U5YWFmY2UwZmQwYmQzMTAxNGMxY2ZlY2Ey
ZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1h
cnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgbGVuZ3RoID0gMTAwMDAwMDA7Cit2YXIgc291cmNlID0g
bmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKysp
IHsKKyAgICBzb3VyY2VbaV0gPSBpOworfQorCitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24o
KSB7CisgICAgdmFyIHRhcmdldCA9IG5ldyBGbG9hdDY0QXJyYXkoc291cmNlKTsKK30pOworPC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBi
L1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmMzVkYWUxMTkwN2ZiOWRiZDgzM2Y3
MjAxOTIxMGRjNjVhNzIxNGQuLjMyZjI0YTZmNzdmZDJjZmE2MmE2NjJlODAyOTE3YTljMDA1NWI4
MTQgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDctMTAgIEFybmF1ZCBS
ZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1
Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQmluZGluZ3MvdHlwZWQt
YXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIEJp
bmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5cGVkLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTA3LTAzICBKYW4gS2Vyb21uZXMgIDxqYW54QGxpbnV4LmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlciBzaG91bGQgYmUgcmVuYW1lZCBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvcgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151829</attachid>
            <date>2012-07-11 18:13:37 -0700</date>
            <delta_ts>2012-07-12 10:38:01 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-90838-20120711181334.patch</filename>
            <type>text/plain</type>
            <size>45322</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDUxZDgxMGM2NWNiN2E5NjhjNTg2Zjgz
MDU2Y2Q0OGRkYWE5N2EyMDEuLjIzMDIwNmUxMWY4NzRkYzVhZDQ5OWNjY2NkYzA2MjhjY2IxMGJl
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTItMDctMTEgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJy
YXkgZnJvbSBhbiBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUg
aWYgdGhlIGFyZ3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVu
dAorICAgICAgICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAu
aXRlbSgpIG1ldGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBh
IEpTVmFsdWUsIGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1h
dGl2ZWx5IDN4IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBl
KS4KKworICAgICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIGludHJvZHVjZSBhIG5l
dyBpbnRlcmZhY2UgVHlwZWRBcnJheS4gSXQKKyAgICAgICAgd2lsbCBiZSB1c2VkIHRvIGRldGVy
bWluZSBpZiBhIEphdmFTY3JpcHQgb2JqZWN0IGlzIFR5cGVkIEFycmF5LiBJdAorICAgICAgICBh
bHNvIGludHJvZHVjZXMgYSB2aXJ0dWFsIGdldFR5cGUgZnVuY3Rpb24uIFNvLCB0eXBlZCBhcnJh
eSBjYW4KKyAgICAgICAga25vd24gdGhlaXIgYWN0dWFsIHR5cGUuIFdlIGNhbiB1c2UgdGhpcyBp
bmZvcm1hdGlvbiB0byBjYXN0IHRoZQorICAgICAgICBUeXBlZEFycmF5IHRvIHRoZSBhY3R1YWwg
dHlwZSwgYW5kIHRoZW4gcmVhZCB0aGUgdmFsdWVzIGZyb20gdGhlCisgICAgICAgIHNvdXJjZS4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6Cisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0Zs
b2F0MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OmdldFR5cGUpOgorICAg
ICAgICAoRmxvYXQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvRmxvYXQ2NEFycmF5Lmg6CisgICAg
ICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChGbG9hdDY0QXJyYXkp
OgorICAgICAgICAqIHd0Zi9JbnQxNkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6
OmdldFR5cGUpOgorICAgICAgICAoSW50MTZBcnJheSk6CisgICAgICAgICogd3RmL0ludDMyQXJy
YXkuaDoKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQz
MkFycmF5KToKKyAgICAgICAgKiB3dGYvSW50OEFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDhB
cnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQ4QXJyYXkpOgorICAgICAgICAqIHd0Zi9JbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgICogd3RmL1R5cGVkQXJyYXkuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwuCisgICAgICAg
IChUeXBlZEFycmF5KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheTo6VHlwZWRBcnJheSk6Cisg
ICAgICAgICogd3RmL1R5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgIChUeXBlZEFycmF5QmFzZSk6
CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjppdGVtKToKKyAgICAgICAgKFdURjo6VHlw
ZWRBcnJheUJhc2U6OlR5cGVkQXJyYXlCYXNlKToKKyAgICAgICAgKiB3dGYvVWludDE2QXJyYXku
aDoKKyAgICAgICAgKFdURjo6VWludDE2QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDE2
QXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpVaW50
MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChVaW50MzJBcnJheSk6CisgICAgICAgICogd3Rm
L1VpbnQ4QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhBcnJheTo6Z2V0VHlwZSk6CisgICAg
ICAgIChVaW50OEFycmF5KToKKyAgICAgICAgKiB3dGYvVWludDhDbGFtcGVkQXJyYXkuaDoKKyAg
ICAgICAgKFdURjo6VWludDhDbGFtcGVkQXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDhD
bGFtcGVkQXJyYXkpOgorCiAyMDEyLTA3LTExICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIC1XdGF1dG9sb2dpY2FsLWNvbXBhcmUgYW5kIC1Xc2ln
bi1jb21wYXJlIHdhcm5pbmcgZmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MTFlNDgwNThjMzVkOWNkYTVl
MTU2NGZlMDc4M2JkZDBiNTQ1MTBhLi40YmM1Zjg5MzkwZTMzZmU1YzY0NWYzNDVjZTMwZDA0NzRk
MzNhY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTItMDctMTEgIEFybmF1ZCBS
ZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1
Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5n
IGEgdHlwZWQgYXJyYXkgZnJvbSBhbiBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAg
ICBkZXRlcm1pbmUgaWYgdGhlIGFyZ3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0
IHRoZSBhcmd1bWVudAorICAgICAgICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVs
ZW1lbnQgd2l0aCAuaXRlbSgpIG1ldGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRo
ZSB2YWx1ZSBhcyBhIEpTVmFsdWUsIGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAg
ICAgYXBwcm94aW1hdGl2ZWx5IDN4IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0
aGUgc2FtZSB0eXBlKS4KKworICAgICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIGlu
dHJvZHVjZSBhIG5ldyBpbnRlcmZhY2UgVHlwZWRBcnJheS4gSXQKKyAgICAgICAgd2lsbCBiZSB1
c2VkIHRvIGRldGVybWluZSBpZiBhIEphdmFTY3JpcHQgb2JqZWN0IGlzIFR5cGVkIEFycmF5LiBJ
dAorICAgICAgICBhbHNvIGludHJvZHVjZXMgYSB2aXJ0dWFsIGdldFR5cGUgZnVuY3Rpb24uIFNv
LCB0eXBlZCBhcnJheSBjYW4KKyAgICAgICAga25vd24gdGhlaXIgYWN0dWFsIHR5cGUuIFdlIGNh
biB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBjYXN0IHRoZQorICAgICAgICBUeXBlZEFycmF5IHRv
IHRoZSBhY3R1YWwgdHlwZSwgYW5kIHRoZW4gcmVhZCB0aGUgdmFsdWVzIGZyb20gdGhlCisgICAg
ICAgIHNvdXJjZS4KKworICAgICAgICBUZXN0czogUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90
eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCisgICAgICAgICAgICAgICBQZXJm
b3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlw
ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLnByaToKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5
QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbToKKyAgICAgICAgKEdldE5hbWVzcGFj
ZUZvckNsYXNzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKElzVHlwZWRBcnJheVR5cGUpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIp
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChJc1R5cGVkQXJyYXlUeXBlKToK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL0Zsb2F0NjRBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGw6CisgICAgICAgICog
aHRtbC9jYW52YXMvSW50OEFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9UeXBlZEFy
cmF5LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5pZGwuCisgICAgICAgICogaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9VaW50
OEFycmF5LmlkbDoKKwogMjAxMi0wNy0xMSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJv
bWl1bS5vcmc+IAogCiAgICAgICAgIFNWR1VzZUVsZW1lbnQgc2hvdWxkIG5vdCB1c2UgRWxlbWVu
dDo6ZW5zdXJlU2hhZG93Um9vdCgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZjQ4YTZj
ZTU1OWEyNGNjMjBiNzA3NThkZjhiYzRhODRkYzllZWQuLmFmZGNjZjk5YzhjN2FhZjc4NzY5MDRh
ZGNiZjJmZGQ4NGY5NjQ1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1Myw2ICsxNTMs
NyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVh
ZHMuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UeXBlVHJhaXRzLmNwcCBcCiAgICAgU291cmNl
L1dURi93dGYvVHlwZVRyYWl0cy5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5Lmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmggXAogICAgIFNvdXJjZS9XVEYv
d3RmL1VpbnQxNkFycmF5LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5k
ZXggODY3NTg1NTA2MWQzNzRlZmFmZmU3ZDYyZTE1M2RlYjExYmJhZDAzOS4uZTAxMzdkNjc3OTYx
YzY2MzhlNTlkMzRmMjE0MGRkZWU2ZGY2NjI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYu
Z3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC0xODgsNiArMTg4LDcgQEAKICAgICAg
ICAgICAgICd3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwJywKICAgICAgICAgICAgICd3dGYvVGhy
ZWFkaW5nV2luLmNwcCcsCiAgICAgICAgICAgICAnd3RmL1R5cGVUcmFpdHMuY3BwJywKKyAgICAg
ICAgICAgICd3dGYvVHlwZWRBcnJheS5oJywKICAgICAgICAgICAgICd3dGYvVHlwZWRBcnJheUJh
c2UuaCcsCiAgICAgICAgICAgICAnd3RmL1VpbnQxNkFycmF5LmgnLAogICAgICAgICAgICAgJ3d0
Zi9VaW50MzJBcnJheS5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDc3MjA0NjFlMjY0NjYxZmM4ZTk0MzVlOTA4ODE2NzRiY2QxYjc2NTguLjc1NjAxMGZk
ZTk3YTMxYTczNDJhMDk0N2ZjZWJiN2MzZmIzMThlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
V1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw2ICs3LDcgQEAKIAlvYmplY3RzID0gewogCiAvKiBC
ZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkxMUUyODVBNTE1QUU0NzNEMDA0QzRGQTEg
LyogVHlwZWRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTFFMjg1QTQxNUFFNDczRDAwNEM0RkExIC8qIFR5cGVkQXJyYXkuaCAqLzsgfTsKIAkJ
MTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRjYxMUQxNTY1RjBGOTAwREI1MTRBIC8q
IFJBTVNpemUuY3BwICovOyB9OwogCQkxNDNGNjEyMDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRjYx
MUUxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQ4MUFDNTE1NEZCMjJFMDA5ODNFNzIgLyogRmFz
dEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtMjQ1LDYgKzI0Niw3IEBACiAvKiBFbmQg
UEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0
aW9uICovCisJCTExRTI4NUE0MTVBRTQ3M0QwMDRDNEZBMSAvKiBUeXBlZEFycmF5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTQzRjYxMUQxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUkFNU2l6ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0M0Y2MTFFMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXpl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJBTVNpemUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRW
ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFzdEJpdFZlY3Rvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAyLDYgKzcwNCw3IEBACiAJCQkJQThB
NDczMzkxNTFBODI1QjAwNDEyM0ZGIC8qIHRocmVhZHMgKi8sCiAJCQkJQThBNDczM0UxNTFBODI1
QjAwNDEyM0ZGIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggKi8sCiAJCQkJQThBNDczM0YxNTFB
ODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNwZWNpZmljLmggKi8sCisJCQkJMTFFMjg1QTQxNUFFNDcz
RDAwNEM0RkExIC8qIFR5cGVkQXJyYXkuaCAqLywKIAkJCQlBOEE0NzM0MTE1MUE4MjVCMDA0MTIz
RkYgLyogVHlwZWRBcnJheUJhc2UuaCAqLywKIAkJCQlBOEE0NzM0MjE1MUE4MjVCMDA0MTIzRkYg
LyogVHlwZVRyYWl0cy5jcHAgKi8sCiAJCQkJQThBNDczNDMxNTFBODI1QjAwNDEyM0ZGIC8qIFR5
cGVUcmFpdHMuaCAqLywKQEAgLTEwNDEsNiArMTA0NCw3IEBACiAJCQkJQThBNDc0OEMxNTFBODI2
NDAwNDEyM0ZGIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQzRjYxMjAxNTY1RjBG
OTAwREI1MTRBIC8qIFJBTVNpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDgxQUM1MTU0RkIy
MkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxMUUyODVB
NTE1QUU0NzNEMDA0QzRGQTEgLyogVHlwZWRBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL0Zsb2F0
MzJBcnJheS5oCmluZGV4IDU1ZTYxZTAwNjRkMTVhNTJhMDRhNWUwZmEwY2ZkODQ5ZDA4MDA0Yjcu
LjE1ZmRhM2U5ZTlkYjFmZWI2MmFlNjk2NjlhYThlOGVjOTdlMjg4MDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0MzJBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Zsb2F0MzJB
cnJheS5oCkBAIC00OCwxOCArNDgsMTQgQEAgcHVibGljOgogICAgICAgICBUeXBlZEFycmF5QmFz
ZTxmbG9hdD46OmRhdGEoKVtpbmRleF0gPSBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpOwogICAg
IH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJm
b3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5n
IHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBmbG9hdCBpdGVt
KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKGluZGV4IDwgVHlw
ZWRBcnJheUJhc2U8ZmxvYXQ+OjptX2xlbmd0aCk7Ci0gICAgICAgIGZsb2F0IHJlc3VsdCA9IFR5
cGVkQXJyYXlCYXNlPGZsb2F0Pjo6ZGF0YSgpW2luZGV4XTsKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICB9Ci0KICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQzMkFycmF5PiBz
dWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUgZ2V0VHlw
ZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfRmxvYXQzMjsKKyAgICB9CisKIHByaXZh
dGU6CiAgICAgaW5saW5lIEZsb2F0MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oIGIvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmgK
aW5kZXggMzA2MzNkYmVjNWNhOWU1OTA2MzVjNDAwZTJjYjcyNmNlNzFlMTg0ZC4uNzEwOGNhOTRk
YzRiMWViNTc5MzExNjliZDAyNjZkMDA0M2JiMjFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvRmxvYXQ2NEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmgKQEAg
LTQ4LDE4ICs0OCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46
OmRhdGEoKVtpbmRleF0gPSBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKTsKICAgICB9CiAKLSAg
ICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5n
ZSBjaGVja3M7IGNhbGxlcgotICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQg
cmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3NhcnkuCi0gICAgZG91YmxlIGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5
QmFzZTxkb3VibGU+OjptX2xlbmd0aCk7Ci0gICAgICAgIGRvdWJsZSByZXN1bHQgPSBUeXBlZEFy
cmF5QmFzZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLQogICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0NjRBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IHN1YmFy
cmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkg
CisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9GbG9hdDY0OworICAgIH0KKwogcHJpdmF0ZToK
ICAgICBpbmxpbmUgRmxvYXQ2NEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSW50MTZBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MTZBcnJheS5oCmluZGV4IDI2YmJl
OGE5MjI1NzI0YTRiYjMzYzI3MThkYTYyNjMxNWU2OGZmYzUuLmI5MmY3Nzg0NzYzNDQ0Y2I2Y2Qz
ZjViNDgwNWNmOWY4MWU5ZjcyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJy
YXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKQEAgLTQ1LDYgKzQ1LDExIEBA
IHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBzdWJhcnJheShpbnQg
c3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisg
ICAgeworICAgICAgICByZXR1cm4gVFlQRV9JbnQxNjsKKyAgICB9CisKIHByaXZhdGU6CiAgICAg
aW5saW5lIEludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9J
bnQzMkFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKaW5kZXggY2U2ODY4Y2My
NjBmZmFlYWMyY2M1NDMzMGQyZTM3ZmUxOWZlNzFkNS4uZjZiYWU0MTRhOGNiMGE0MzA2NmYyZWNk
YTk2NWZjZjlkOWEyZDMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0ludDMyQXJyYXkuaApAQCAtNDQsNiArNDQsMTEgQEAgcHVi
bGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPEludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFy
dCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7
CisgICAgICAgIHJldHVybiBUWVBFX0ludDMyOworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxp
bmUgSW50MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJy
YXkuaCBiL1NvdXJjZS9XVEYvd3RmL0ludDhBcnJheS5oCmluZGV4IDU1NGY0YWNjOTc5NmU3ODgz
MzQxYWUyM2RjNWUwN2ZjZTU1ODgzM2QuLmQ0MWRjMjgxMzlmZjZhOTQwOGM5ZGI1YzkyNzNkMjc2
YjRmNDNmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludDhBcnJheS5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL0ludDhBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAg
aW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0Owog
ICAgIGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdDsKIAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJl
dHVybiBUWVBFX0ludDg7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBJbnQ4QXJyYXko
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0
ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJh
c2UuaCBiL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAppbmRleCBmMjc2
NDAwZjhkODc5OGI4NzJmOWY3YjNkZjJmNTIzMmJmYWFkNTZlLi4yM2RiZGRlNWQ1YTIyM2Y5M2Vj
MTY1NDE4YzlhOWEzZTY3MDcwMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlLmgKKysrIGIvU291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5
QmFzZS5oCkBAIC01MCwxNCArNTAsNiBAQCBjbGFzcyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDog
cHVibGljIFR5cGVkQXJyYXlCYXNlPFQ+IHsKICAgICAgICAgVHlwZWRBcnJheUJhc2U8VD46OmRh
dGEoKVtpbmRleF0gPSBzdGF0aWNfY2FzdDxUPihzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkp
OwogICAgIH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5v
dCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9y
IGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBUIGl0
ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBU
eXBlZEFycmF5QmFzZTxUPjo6bV9sZW5ndGgpOwotICAgICAgICByZXR1cm4gVHlwZWRBcnJheUJh
c2U8VD46OmRhdGEoKVtpbmRleF07Ci0gICAgfQotCiAgIHByb3RlY3RlZDoKICAgICBJbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQg
Ynl0ZU9mZnNldCwgdW5zaWduZWQgbGVuZ3RoKQogICAgICAgICA6IFR5cGVkQXJyYXlCYXNlPFQ+
KGJ1ZmZlciwgYnl0ZU9mZnNldCwgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VHlwZWRBcnJheS5oIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4
Njk2YTUxNTk4NjgzYjM0NWMxOGQ2ZGFjYTBjMDFkZTM0MjdhZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFR5cGVkQXJyYXlfaAorI2RlZmluZSBUeXBlZEFycmF5X2gKKwor
I2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZp
ZXcuaD4KKworbmFtZXNwYWNlIFdURiB7CitjbGFzcyBUeXBlZEFycmF5IDogcHVibGljIEFycmF5
QnVmZmVyVmlldyB7CisgIHB1YmxpYzoKKyAgICBlbnVtIFZpZXdUeXBlIHsKKyAgICAgICAgVFlQ
RV9JbnQ4LAorICAgICAgICBUWVBFX1VpbnQ4LAorICAgICAgICBUWVBFX1VpbnQ4Q2xhbXBlZCwK
KyAgICAgICAgVFlQRV9JbnQxNiwKKyAgICAgICAgVFlQRV9VaW50MTYsCisgICAgICAgIFRZUEVf
SW50MzIsCisgICAgICAgIFRZUEVfVWludDMyLAorICAgICAgICBUWVBFX0Zsb2F0MzIsCisgICAg
ICAgIFRZUEVfRmxvYXQ2NAorICAgIH07CisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRUeXBlKCkg
PSAwOworICBwcm90ZWN0ZWQ6CisgICAgVHlwZWRBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVy
PiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQpIAorICAgICAgICA6IEFycmF5QnVmZmVyVmll
dyhidWZmZXIsIGJ5dGVPZmZzZXQpCisgICAgeworICAgIH0KK307Cit9IC8vIG5hbWVzcGFjZSBX
VEYKKwordXNpbmcgV1RGOjpUeXBlZEFycmF5OworI2VuZGlmIC8vIFR5cGVkQXJyYXlfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9XVEYvd3Rm
L1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggNWVjN2ExOThhMWQ2YzhmZjU2ZGI0M2ZlMWZmNzM0YzY4
MWVlYjgxYi4uN2JkYmY5ZThlZjM2YzVlZGM0NmU2ZGVhY2YzYmU1Mjg4Yjc3NWUyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9UeXBlZEFycmF5QmFzZS5oCkBAIC0yOSwxMSArMjksMTIgQEAKIAogI2luY2x1ZGUgPHd0Zi9B
cnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KKyNpbmNsdWRl
IDx3dGYvVHlwZWRBcnJheS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+Ci1jbGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewor
Y2xhc3MgVHlwZWRBcnJheUJhc2UgOiBwdWJsaWMgVHlwZWRBcnJheSB7CiAgIHB1YmxpYzoKICAg
ICBUKiBkYXRhKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KGJhc2VBZGRyZXNzKCkp
OyB9CiAKQEAgLTY1LDkgKzY2LDE3IEBAIGNsYXNzIFR5cGVkQXJyYXlCYXNlIDogcHVibGljIEFy
cmF5QnVmZmVyVmlldyB7CiAgICAgICAgIHJldHVybiBtX2xlbmd0aCAqIHNpemVvZihUKTsKICAg
ICB9CiAKKyAgICAvLyBJbnZva2VkIGJ5IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVy
Zm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgorICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2lu
ZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBhcyBuZWNlc3NhcnkuCisgICAgVCBpdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKGluZGV4IDwgVHlwZWRB
cnJheUJhc2U8VD46Om1fbGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPFQ+
OjpkYXRhKClbaW5kZXhdOworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIFR5cGVkQXJyYXlCYXNl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQotICAgICAgICA6IEFycmF5QnVmZmVyVmlldyhidWZmZXIsIGJ5dGVPZmZz
ZXQpCisgICAgICAgIDogVHlwZWRBcnJheShidWZmZXIsIGJ5dGVPZmZzZXQpCiAgICAgICAgICwg
bV9sZW5ndGgobGVuZ3RoKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9VaW50MTZBcnJheS5oIGIvU291cmNlL1dURi93dGYvVWludDE2QXJyYXkuaAppbmRleCBjN2Y4
MTJjMDA5Zjk3OWYwMjM4YjhiNzJkNzc2NTc4MmZlYzg1Nzc2Li5lZGMxNDNiZGUwNDMzNzE3NmUw
ZGIyNzc4NGYwMzNlZDRlZDY2OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZB
cnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgKQEAgLTQ2LDYgKzQ2LDEx
IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gc3ViYXJyYXko
aW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MTZBcnJheT4gc3Vi
YXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIFZpZXdUeXBlIGdldFR5cGUo
KSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBFX1VpbnQxNjsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgaW5saW5lIFVpbnQxNkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvVWludDMyQXJyYXku
aAppbmRleCBhOWNmNmIxNTIxODA0YTcxYTcxMjBiN2RmMDMyZTA0ZjZlNTY1ODViLi5iMzkwYjlm
YWRhZjQ3MDZkMjM5ZjY3YTM4MmY3ZWE5ZTRhZjAyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9VaW50MzJBcnJheS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKQEAg
LTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50MzJBcnJh
eT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50
MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIFZpZXdU
eXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBFX1VpbnQzMjsKKyAgICB9
CisKIHByaXZhdGU6CiAgICAgaW5saW5lIFVpbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZm
ZXI+LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oIGIvU291cmNlL1dURi93dGYvVWlu
dDhBcnJheS5oCmluZGV4IGJlOTE3MjlkNmIwODYyZDUyM2Q4ZGNkNzE3NTc3MmNmMTQ0M2I1NzMu
LjU3ODhmN2ZhMmY3ZTlhY2RkOTE2YjczMzU2YThlMjhlMmRlN2FlMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFycmF5
LmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50
OEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRy
PFVpbnQ4QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBW
aWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9VaW50ODsKKyAg
ICB9CisKIHByb3RlY3RlZDoKICAgICBpbmxpbmUgVWludDhBcnJheShQYXNzUmVmUHRyPEFycmF5
QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oIGIvU291cmNl
L1dURi93dGYvVWludDhDbGFtcGVkQXJyYXkuaAppbmRleCBkOWY4MjQ5MGFjNTRlNzY4ZDdjZjE5
YzMwZjIyY2JjY2YxZjkxZTczLi5iZGI3YmZkMWNjZWMwYmE1M2FmM2I3OTQ5NTJmYzc5MjNmOGU0
YjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1VpbnQ4Q2xhbXBlZEFycmF5LmgKQEAgLTU1LDYgKzU1LDExIEBAIHB1
YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gc3ViYXJyYXko
aW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJh
eT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIFZpZXdUeXBlIGdl
dFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBUWVBFX1VpbnQ4Q2xhbXBlZDsKKyAgICB9
CisKIHByaXZhdGU6CiAgICAgaW5saW5lIFVpbnQ4Q2xhbXBlZEFycmF5KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zm
c2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlMDczN2Q4ZmQ1YzgzMTM3Nzg3ZGRiMmYwMTA3
OTFmYzkyN2ZhYjc4Li4xNWQ1NjU3MDJlNzkzMzcyZWQ4ODJjMGNhMTIyMTI0ZTExOTMzMDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMzYwLDYgKzM2MCw3IEBAIFNFVChXZWJDb3JlX0lETF9G
SUxFUwogICAgIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvSW50
MzJBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsCisgICAgaHRtbC9jYW52
YXMvVHlwZWRBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwKICAgICBo
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKICAgICBodG1sL2NhbnZhcy9VaW50OEFycmF5Lmlk
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDcyODdkOWNiYjI3NmUzMTczYTIwY2M0
NWU3ZTY1Nzc4M2VlZmVjZWYuLmExY2MyYzc3NWRmOWYxOGM3NWEwYWVkN2M4OWM1YzgxNDhkMTkx
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTQ1OCw2ICs0NTgsNyBAQAogI2lu
Y2x1ZGUgIkpTVG91Y2hFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNUb3VjaExpc3QuY3BwIgogI2lu
Y2x1ZGUgIkpTVHJlZVdhbGtlci5jcHAiCisjaW5jbHVkZSAiSlNUeXBlZEFycmF5LmNwcCIKICNp
bmNsdWRlICJKU1VpbnQxNkFycmF5LmNwcCIKICNpbmNsdWRlICJKU1VpbnQzMkFycmF5LmNwcCIK
ICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggNzY3MDczZTdkMjdiYzE3NThjN2U2NGI2NjU2ZWQ0ZWRmZTBkNTVlMi4uMzY1MTZjMjcy
NzY2ODJkZjkyODUwN2E2NzA0MzljOWEwODhiOGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0zNjgsNiArMzY4LDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9j
YW52YXMvVHlwZWRBcnJheS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDE2
QXJyYXkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKaW5kZXggMmY5M2M0YWUwYmVjZGFlZDk0ZTdhMTM4MmY4ZjBlOGNkNTQ5
YzcxMy4uNDg5MWFiYmU1Y2UwZTMxNDJiOGI1MjkyMTRmYTdiODQ4OWEwM2RlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMjkyLDYgKzI5Miw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgJCRQV0QvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwgXAogICAg
ICQkUFdEL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5pZGwgXAogICAgICQkUFdEL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBcCisgICAgJCRQV0QvaHRtbC9jYW52YXMv
VHlwZWRBcnJheS5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5p
ZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCBcCiAgICAgJCRQV0Qv
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IDM3ODE3MjdhYTZhMGU0ZTE1NGU5ZWJmNzYxOWVhOWYyY2Uz
Yzg0M2MuLmUwOTJjZDNhYjQyYTY0MWY2YzkzODFlOGE0YTJkZmZjYmYxOTk5ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTUyLDYgKzU1Miw4IEBAIHdlYmNvcmVfYnVpbHRf
c291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RyYWNrRXZlbnQuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RyZWVXYWxrZXIuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVHJlZVdhbGtlci5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHlw
ZWRBcnJheS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNUeXBlZEFycmF5LmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVSUV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1VJRXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VpbnQxNkFy
cmF5LmNwcCBcCkBAIC05MjAsNiArOTIyLDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChX
ZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCBcCiAJJChXZWJD
b3JlKS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL2NhbnZh
cy9UeXBlZEFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5p
ZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsIFwKIAkkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlMzhi
ZTkyYWQyOTRhOTIxOTVjZDY3MjI1NjczYmEwZjMxYTMyZmQ0Li4zODc1MDNlYjQ3YTE5YWFjYzA4
M2E5MDkzZmRjZjg1NzA3MDY1Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTE3LDYgKzExMTcs
NyBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaWRsJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwnLAorICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9VaW50MTZBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1VpbnQzMkFycmF5
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwnLApAQCAtODA2
NCw2ICs4MDY1LDggQEAKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVG91Y2hMaXN0LmgnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNUcmVlV2Fsa2VyLmNwcCcsCiAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RyZWVXYWxrZXIuaCcsCisgICAg
ICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1R5cGVkQXJy
YXkuY3BwJywKKyAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTVHlwZWRBcnJheS5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTVUlFdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVSUV2ZW50LmgnLAogICAgICAgICAgICAgJzwo
UFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVaW50MTZBcnJheS5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGRhZDliMDA0ZDZmMGUyODUxZmRmMDg2ZTBjMjJmOTNkNzUzNzFmMjIuLjZlZjEzMjA4M2Ew
NWQzODY4MzU4MzFjMWYzNmRiMGRmMzllZDI0MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MSw2ICsyODEsOCBAQAogCQkw
RkY1MDI3MTEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkY1MDI2RTEwMkJBOTY2MDA2NkYzOUEg
LyogU3R5bGVNZWRpYS5jcHAgKi87IH07CiAJCTBGRjUwMjcyMTAyQkE5NkEwMDY2RjM5QSAvKiBT
dHlsZU1lZGlhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkY1MDI2RjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oICovOyB9OwogCQkxMEZC
MDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUxNUM3RTAwQTNEQjk4
IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsKKwkJMTE5OTM1QUMxNUFFNUE0MzAwQTdCNDNG
IC8qIEpTVHlwZWRBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxMUUyODVCNTE1QUU0QzNGMDA0QzRGQTEgLyogSlNUeXBlZEFycmF5LmNwcCAq
LzsgfTsKKwkJMTFFMjg1QjgxNUFFNEM3QTAwNEM0RkExIC8qIEpTVHlwZWRBcnJheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFFMjg1QjcxNUFFNEM3
QTAwNEM0RkExIC8qIEpTVHlwZWRBcnJheS5oICovOyB9OwogCQkxNDAyNjQ1RTBBRkRDMTlCMDA1
OTE5RTIgLyogTG9nZ2luZ01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0MDI2NDVEMEFGREMxOUIwMDU5MTlFMiAvKiBMb2dnaW5nTWFjLm1tICov
OyB9OwogCQkxNDAzQjk5NzA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDAzQjk5NTA5RUIxM0FGMDA3
OTdDN0YgLyogRE9NV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMTQwM0I5OTgwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDAzQjk5NjA5
RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmNwcCAqLzsgfTsKQEAgLTcyMzUsNiArNzIzNyw5
IEBACiAJCTBGRjUwMjZGMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlTWVkaWEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZGNTAyNzAxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFN0eWxlTWVkaWEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxMEZCMDg0QTE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdWJsaWNVUkxNYW5hZ2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExRTI4NUFGMTVBRTQ4QUQwMDRDNEZBMSAvKiBU
eXBlZEFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBUeXBlZEFycmF5LmlkbDsgcGF0
aCA9IGNhbnZhcy9UeXBlZEFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MTFFMjg1QjUxNUFFNEMzRjAwNEM0RkExIC8qIEpTVHlwZWRBcnJheS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1R5cGVkQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxMUUyODVCNzE1QUU0QzdBMDA0QzRGQTEgLyogSlNUeXBlZEFycmF5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVHlwZWRBcnJheS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAyNjQ1RDBBRkRDMTlCMDA1OTE5RTIgLyogTG9n
Z2luZ01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2dn
aW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAzQjkwQzA5RUIxMjQ1
MDA3OTdDN0YgLyogRE9NV2luZG93LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01XaW5k
b3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDAzQjk5NTA5RUIxM0FGMDA3
OTdDN0YgLyogRE9NV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERP
TVdpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5MzcsNiArMTQ5NDIs
NyBAQAogCQkJCTc3QTE3QTZFMTJGMjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHAgKi8sCiAJCQkJNzdBMTdBNkYxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5
T2JqZWN0LmggKi8sCiAJCQkJNzdBMTdBNzAxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFy
cmF5T2JqZWN0LmlkbCAqLywKKwkJCQkxMUUyODVBRjE1QUU0OEFEMDA0QzRGQTEgLyogVHlwZWRB
cnJheS5pZGwgKi8sCiAJCQkJNDlFRUNEREUxMDUwM0MyNDAwMDk5RkFCIC8qIFVpbnQxNkFycmF5
LmlkbCAqLywKIAkJCQk0OUVFQ0REQjEwNTAzQzIzMDAwOTlGQUIgLyogVWludDMyQXJyYXkuaWRs
ICovLAogCQkJCTQ5RUVDREQ4MTA1MDNDMjMwMDA5OUZBQiAvKiBVaW50OEFycmF5LmlkbCAqLywK
QEAgLTE4MjQ1LDYgKzE4MjUxLDggQEAKIAkJCQlFNDQ2MTQxMzBDRDY4MjY5MDBGQURBNzUgLyog
SlNUaW1lUmFuZ2VzLmggKi8sCiAJCQkJMDc4NDYzNDAxNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJh
Y2tFdmVudC5jcHAgKi8sCiAJCQkJMDc4NDYzNDExNDVCMTUxQTAwQTU4REYxIC8qIEpTVHJhY2tF
dmVudC5oICovLAorCQkJCTExRTI4NUI1MTVBRTRDM0YwMDRDNEZBMSAvKiBKU1R5cGVkQXJyYXku
Y3BwICovLAorCQkJCTExRTI4NUI3MTVBRTRDN0EwMDRDNEZBMSAvKiBKU1R5cGVkQXJyYXkuaCAq
LywKIAkJCQk0OUVFQ0VGRTEwNTA3MEM0MDAwOTlGQUIgLyogSlNVaW50MTZBcnJheS5jcHAgKi8s
CiAJCQkJNDlFRUNFRkYxMDUwNzBDNDAwMDk5RkFCIC8qIEpTVWludDE2QXJyYXkuaCAqLywKIAkJ
CQk0OUVFQ0VGQzEwNTA3MEM0MDAwOTlGQUIgLyogSlNVaW50MzJBcnJheS5jcHAgKi8sCkBAIC0y
NTIwMiw2ICsyNTIxMCw3IEBACiAJCQkJNzY4MDhCNTAxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRN
TERpYWxvZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFGQUZCRjE5MTVBNUZBNzQwMDA4
M0EyMCAvKiBVVElVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0REFCNUIyMTVBNjIz
NTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCTExRTI4NUI4MTVBRTRDN0EwMDRDNEZBMSAvKiBKU1R5cGVkQXJyYXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjgyNjAsNiArMjgyNjksNyBAQAogCQkJCTc2ODA4QjRGMTU5REFERkEwMDJCNTIz
MyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFGQUZCRjE4
MTVBNUZBNkUwMDA4M0EyMCAvKiBVVElVdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk0
NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTExOTkzNUFDMTVBRTVBNDMwMEE3QjQzRiAvKiBKU1R5cGVkQXJy
YXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCBkZjllNDM5MDY0MDRkNDg1ODg4Mzhi
MGI5NmY0ZTdkZGNkNWI5Yzg0Li41YzRlNTJiMTFiYzAzNDRjMWZmYmViODMwM2ZhOGQ0Nzc0MWU4
MmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVy
Vmlld0hlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZm
ZXJWaWV3SGVscGVyLmgKQEAgLTMwLDEyICszMCwxNCBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNv
ZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCisjaW5jbHVkZSAiSlNUeXBlZEFycmF5LmgiCiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmg+CiAjaW5jbHVkZSA8cnVudGltZS9BcmdMaXN0Lmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVk
ZSA8d3RmL1R5cGVkQXJyYXlCYXNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtODYs
NiArODgsNjYgQEAgSlNDOjpKU1ZhbHVlIHNldFdlYkdMQXJyYXlIZWxwZXIoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIFQqIGltcGwsIFQqICgqY29udmVyc2lvbkYKIC8vIFRlbXBsYXRlIGZ1bmN0aW9u
IHVzZWQgYnkgWFhYQXJyYXlDb25zdHJ1Y3RvcnMuCiAvLyBJZiB0aGlzIHJldHVybnMgMCwgaXQg
d2lsbCBhbHJlYWR5IGhhdmUgdGhyb3duIGEgSmF2YVNjcmlwdCBleGNlcHRpb24uCiB0ZW1wbGF0
ZTxjbGFzcyBDLCB0eXBlbmFtZSBUPgorUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZl
clZpZXdXaXRoVHlwZWRBcnJheUFyZ3VtZW50KEpTQzo6RXhlY1N0YXRlKiBleGVjKQoreworICAg
IFJlZlB0cjxUeXBlZEFycmF5PiBzb3VyY2UgPSB0b1R5cGVkQXJyYXkoZXhlYy0+YXJndW1lbnQo
MCkpOworICAgIGlmICghc291cmNlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVpbnQzMl90
IGxlbmd0aCA9IGFzT2JqZWN0KGV4ZWMtPmFyZ3VtZW50KDApKS0+Z2V0KGV4ZWMsIEpTQzo6SWRl
bnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMpOworICAgIFJlZlB0cjxDPiBh
cnJheSA9IEM6OmNyZWF0ZShsZW5ndGgpOworICAgIGlmICghYXJyYXkpIHsKKyAgICAgICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKKyAgICAgICAgcmV0dXJuIGFycmF5
OworICAgIH0KKworICAgIGlmIChhcnJheS0+Z2V0VHlwZSgpID09IHNvdXJjZS0+Z2V0VHlwZSgp
KSB7CisgICAgICAgIG1lbWNweShhcnJheS0+YmFzZUFkZHJlc3MoKSwgc291cmNlLT5iYXNlQWRk
cmVzcygpLCBsZW5ndGggKiBzaXplb2YoVCkpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAg
fQorCisgICAgc3dpdGNoIChzb3VyY2UtPmdldFR5cGUoKSkgeworICAgIGNhc2UgVHlwZWRBcnJh
eTo6VFlQRV9JbnQ4OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5
QmFzZTxzaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfVWludDg6CisgICAgY2FzZSBUeXBlZEFy
cmF5OjpUWVBFX1VpbnQ4Q2xhbXBlZDoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8
VHlwZWRBcnJheUJhc2U8dW5zaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfSW50MTY6CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFy
cmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBzaG9ydD4g
Kj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5
cGVkQXJyYXk6OlRZUEVfVWludDE2OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxU
eXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfSW50MzI6CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFy
cmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGludD4gKj4oc291cmNl
LmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGVkQXJyYXk6
OlRZUEVfVWludDMyOgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyAr
K2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5
QmFzZTx1bnNpZ25lZCBpbnQ+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBUeXBlZEFycmF5OjpUWVBFX0Zsb2F0MzI6CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQo
aSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGZsb2F0PiAqPihzb3VyY2UuZ2V0KCkp
LT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9G
bG9hdDY0OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisg
ICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxk
b3VibGU+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgcmV0dXJuIGFycmF5OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5
IFhYWEFycmF5Q29uc3RydWN0b3JzLgorLy8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxy
ZWFkeSBoYXZlIHRocm93biBhIEphdmFTY3JpcHQgZXhjZXB0aW9uLgordGVtcGxhdGU8Y2xhc3Mg
QywgdHlwZW5hbWUgVD4KIFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0
aEFycmF5QnVmZmVyQXJndW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIgPSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsK
QEAgLTEzOCw2ICsyMDAsMTAgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZp
ZXcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAg
cmV0dXJuIHZpZXc7CiAgICAgCisgICAgICAgIHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZp
ZXdXaXRoVHlwZWRBcnJheUFyZ3VtZW50PEMsIFQ+KGV4ZWMpOworICAgICAgICBpZiAodmlldykK
KyAgICAgICAgICAgIHJldHVybiB2aWV3OworCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIHNyY0Fy
cmF5ID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpOwogICAgICAgICB1aW50MzJfdCBsZW5n
dGggPSBzcmNBcnJheS0+Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikp
LnRvVUludDMyKGV4ZWMpOwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUobGVu
Z3RoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckNQUC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckNQUC5wbQppbmRleCBlZDkwZGU4MjU4MGQyYjkwMjUzOWMyNWNmNmM5ODYxOThjZDViNmU4
Li5iODM3YWZjZGY5YjVlZTBiMzU1MDQ3OTNjZmY1NzMzYzZlMDllYzhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCkBAIC0z
NDUsNyArMzQ1LDcgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogc3ViIEdldE5hbWVzcGFjZUZv
ckNsYXNzCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICByZXR1cm4gIldURiIgaWYgKCgk
dHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpKTsg
CisgICAgcmV0dXJuICJXVEYiIGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0eXBl
IGVxICJBcnJheUJ1ZmZlclZpZXciKSBvciAoJHR5cGUgZXEgIlR5cGVkQXJyYXkiKSk7IAogICAg
IHJldHVybiAiV1RGIiBpZiAoKCR0eXBlIGVxICJVaW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJV
aW50OENsYW1wZWRBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDE2QXJyYXkiKSBvciAoJHR5cGUg
ZXEgIlVpbnQzMkFycmF5IikpOyAKICAgICByZXR1cm4gIldURiIgaWYgKCgkdHlwZSBlcSAiSW50
OEFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQxNkFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQzMkFy
cmF5IikpOyAKICAgICByZXR1cm4gIldURiIgaWYgKCgkdHlwZSBlcSAiRmxvYXQzMkFycmF5Iikg
b3IgKCR0eXBlIGVxICJGbG9hdDY0QXJyYXkiKSk7ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAzMWMxNjRiZjBiNjdl
NGU4NWVmYmU1MjIwNDIyMzJmNDU2ZjYzZDMyLi5hMDJiOGRiNzBiNDEwZDI0Y2U1YzA4MzIzYzM5
MTE4NjY4MmM2MTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzIwLDcgKzMyMCw3IEBAIHN1YiBJc1NjcmlwdFByb2Zp
bGVUeXBlCiBzdWIgSXNUeXBlZEFycmF5VHlwZQogewogICAgIG15ICR0eXBlID0gc2hpZnQ7Ci0g
ICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5cGUgZXEgIkFy
cmF5QnVmZmVyVmlldyIpKTsKKyAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJBcnJheUJ1ZmZl
ciIpIG9yICgkdHlwZSBlcSAiQXJyYXlCdWZmZXJWaWV3Iikgb3IgKCR0eXBlIGVxICJUeXBlZEFy
cmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIlVpbnQ4QXJyYXkiKSBvciAoJHR5
cGUgZXEgIlVpbnQ4Q2xhbXBlZEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MTZBcnJheSIpIG9y
ICgkdHlwZSBlcSAiVWludDMyQXJyYXkiKSk7CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAi
SW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQxNkFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQz
MkFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkZsb2F0MzJBcnJheSIpIG9y
ICgkdHlwZSBlcSAiRmxvYXQ2NEFycmF5IikpOwpAQCAtOTM0LDcgKzkzNCw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cbiIpOwogICAg
IH0KIAotICAgIGlmIChJc1R5cGVkQXJyYXlUeXBlKCRpbXBsVHlwZSkgYW5kICgkaW1wbFR5cGUg
bmUgIkFycmF5QnVmZmVyVmlldyIpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlciIpKSB7
CisgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGltcGxUeXBlKSBhbmQgKCRpbXBsVHlwZSBuZSAi
QXJyYXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyIikgYW5kICgk
aW1wbFR5cGUgbmUgIlR5cGVkQXJyYXkiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHN0YXRpYyBjb25zdCBKU0M6OlR5cGVkQXJyYXlUeXBlIFR5cGVkQXJyYXlTdG9yYWdl
VHlwZSA9IEpTQzo6Iik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJUeXBlZEFycmF5
SW50OCIpIGlmICRpbXBsVHlwZSBlcSAiSW50OEFycmF5IjsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIlR5cGVkQXJyYXlJbnQxNiIpIGlmICRpbXBsVHlwZSBlcSAiSW50MTZBcnJheSI7
CkBAIC0xNjIyLDcgKzE2MjIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsRGF0YSk7XG4iKTsKLSAgICAgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGlt
cGxUeXBlKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5
cGUgbmUgIkFycmF5QnVmZmVyIikpIHsKKyAgICAgICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGlt
cGxUeXBlKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5
cGUgbmUgIkFycmF5QnVmZmVyIikgYW5kICgkaW1wbFR5cGUgbmUgIlR5cGVkQXJyYXkiKSkgewog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVHlwZWRBcnJheURlc2NyaXB0b3Ig
ZGVzY3JpcHRvcigmJHtjbGFzc05hbWV9OjpzX2luZm8sIE9CSkVDVF9PRkZTRVRPRigke2NsYXNz
TmFtZX0sIG1fc3RvcmFnZSksIE9CSkVDVF9PRkZTRVRPRigke2NsYXNzTmFtZX0sIG1fc3RvcmFn
ZUxlbmd0aCkpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBnbG9i
YWxEYXRhLnJlZ2lzdGVyVHlwZWRBcnJheURlc2NyaXB0b3IoaW1wbCgpLCBkZXNjcmlwdG9yKTtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgbV9zdG9yYWdlID0gaW1w
bCgpLT5kYXRhKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggM2IwMTE1YmRmZDg2NGM2M2ZiM2VkNGE5N2U1YWU4
MTFkNzVkNjhkNS4uMDA5ZGRiYzNlZGZlNzdlZmQ5NTY0M2MxNjZmODAzOTI0OGE3MzZkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KQEAgLTI0NjEsNyArMjQ2MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTWFzcXVl
cmFkZXNBc1VuZGVmaW5lZAogc3ViIElzVHlwZWRBcnJheVR5cGUKIHsKICAgICBteSAkdHlwZSA9
IHNoaWZ0OwotICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0
eXBlIGVxICJBcnJheUJ1ZmZlclZpZXciKSk7CisgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAi
QXJyYXlCdWZmZXIiKSBvciAoJHR5cGUgZXEgIkFycmF5QnVmZmVyVmlldyIpIG9yICgkdHlwZSBl
cSAiVHlwZWRBcnJheSIpKTsKICAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJVaW50OEFycmF5
Iikgb3IgKCR0eXBlIGVxICJVaW50OENsYW1wZWRBcnJheSIpIG9yICgkdHlwZSBlcSAiVWludDE2
QXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQzMkFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgo
JHR5cGUgZXEgIkludDhBcnJheSIpIG9yICgkdHlwZSBlcSAiSW50MTZBcnJheSIpIG9yICgkdHlw
ZSBlcSAiSW50MzJBcnJheSIpKTsKICAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJGbG9hdDMy
QXJyYXkiKSBvciAoJHR5cGUgZXEgIkZsb2F0NjRBcnJheSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCmluZGV4IDhlYWViZTRkZWQ4YTAyY2IwODhkMmEw
MGQ5YjBkY2RiNjYyZDE1OTIuLjE0OWY0Zjk0YzRmYTFmMjczOTY0MmE4MWI2YmQzNWI1MTI3Yzhi
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0MzJBcnJheS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbApAQCAt
MzQsNyArMzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAg
ICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAg
ICBdIEZsb2F0MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBGbG9hdDMyQXJyYXkg
OiBUeXBlZEFycmF5IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxF
TUVOVCA9IDQ7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGwKaW5kZXgg
YWJmZWIyMTc4ODkwNDBhNTZjNWFiYjkwOTNlNGFlY2VjMTJmMmNkOS4uMGI1OTE2ZDQyNGZjYWQ4
MmY1YmE4MGMwMmQzZmEwZTk5MGQyM2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9GbG9hdDY0QXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAg
RG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gRmxvYXQ2NEFycmF5IDogQXJyYXlCdWZmZXJWaWV3
IHsKKyAgICBdIEZsb2F0NjRBcnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNp
Z25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0gODsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9JbnQxNkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0lu
dDE2QXJyYXkuaWRsCmluZGV4IGY2ZDA4OWVhMzM2ZmM3NTlkY2U3N2VlYzNlYjA4OWFiZjZhOTYx
ZWUuLjkxY2ZmNjIzMGQwYzk0MTA3MDBkMWE2YTcxMjI1Y2QzNWIwMmM4MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsCkBAIC0zMyw3ICszMyw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09i
amVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gSW50MTZBcnJheSA6IEFy
cmF5QnVmZmVyVmlldyB7CisgICAgXSBJbnQxNkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSAyOwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvSW50MzJBcnJheS5pZGwKaW5kZXggZjk4ODM1YTJjN2NlMjk5ZjE5YWQwNzIzYTEx
MTY2YWMxNWVhMDI3Yi4uNWRhNmVhMzcyMjgzNjFlMDVmNzE2NTg3OGVjOGJjNzFkYWRlNGI5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwKQEAgLTM0LDcgKzM0
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBD
dXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBJbnQz
MkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIEludDMyQXJyYXkgOiBUeXBlZEFycmF5
IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CiAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5pZGwKaW5kZXggMDBmYWE0ZmMzOGM5YzZlOTgx
MDQ5NjU2MDU3OTUxNmE4NTQwYmQ3MC4uMzI2YmQ4OGIwMTRhNTExYjRkOWJkMzRhNmI0YzQyOGI5
NDAyYjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50OEFycmF5
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsCkBAIC0z
NCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAg
ICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAg
IF0gSW50OEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIEludDhBcnJheSA6IFR5cGVk
QXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0g
MTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3Zjdm
MGUzN2UzZWMxMmNhYmEwYTYxZDRmMDliOTEyYzBlZDYwMjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbApAQCAtMCwwICsxLDMxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAg
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdCwKKyAgICBdIFR5cGVkQXJyYXkgOiBBcnJheUJ1
ZmZlclZpZXcgeworICAgIH07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9VaW50MTZBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MTZB
cnJheS5pZGwKaW5kZXggNzllMDVlZmM0ZWJmNjU3OTk3YTliNTNjZTAzZjU4MmMwZWE4YmZhZi4u
OTBmMjEzNWI0ZDJkMWIyMmFiYzcyMjExYmExZTk4Mzg4NDc4NWRjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmpl
Y3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIFVpbnQxNkFycmF5IDogQXJy
YXlCdWZmZXJWaWV3IHsKKyAgICBdIFVpbnQxNkFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSAyOwogCiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbAppbmRleCA2N2U2MWIyOWZkOGU5ZGNkMTkwNTY4NTJh
OTc5OTg2ZDdmYTk1MTZjLi5hZTM4NDU0MjNjNTc2ZGYzYzYyYjNiZDgzNDdkMTU2MDdkOTg5MDBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCkBAIC0zNCw3
ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAg
ICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0g
VWludDMyQXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gVWludDMyQXJyYXkgOiBUeXBl
ZEFycmF5IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9
IDQ7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbAppbmRleCAyNjBhMzI3M2U4
MjhmNTc2ODU5NzgwYTM1OTg1NWFhMGEyNzlkY2Y4Li45MDg3MGFiMjY3ZDRjNjJlMTk4Yzc4Y2Uz
NmUzZTg0YjU4YjE4ZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9V
aW50OEFycmF5LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5
LmlkbApAQCAtMzQsNyArMzQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNU
YWJsZXMsCiAgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25z
dGFudHMKLSAgICBdIFVpbnQ4QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gVWludDhB
cnJheSA6IFR5cGVkQXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BF
Ul9FTEVNRU5UID0gMTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFy
cmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDQ2NDE3NmI4MGExNTNjMmY0MzA3N2ZiNjVjMTMyZTI1YzY1MGNhCi0tLSAvZGV2L251bGwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJv
bS1zYW1lLXR5cGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKwordmFyIGxlbmd0aCA9IDEwMDAwMDAwOwordmFyIHNvdXJjZSA9IG5ldyBVaW50OEFycmF5
KGxlbmd0aCk7Citmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgc291cmNl
W2ldID0gaTsKK30KKworUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciB0
YXJnZXQgPSBuZXcgVWludDhBcnJheShzb3VyY2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3Ry
dWN0LWZyb20tdHlwZWQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJy
YXktY29uc3RydWN0LWZyb20tdHlwZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmNlOWY3OWFiN2U5YWFm
Y2UwZmQwYmQzMTAxNGMxY2ZlY2EyZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgbGVuZ3RoID0gMTAw
MDAwMDA7Cit2YXIgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBzb3VyY2VbaV0gPSBpOworfQorCitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IG5ldyBGbG9hdDY0QXJy
YXkoc291cmNlKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5
MWE4MmNhMTg3MmMyYjNkMDAxMTZiMGE0YmM5MGExMmIyZGMzNmQuLmUwODY0NWNkZDVjYTMzMTMw
Nzc1YzMxMGQzMzc4MDhkZDlhMjM5NWIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDctMTEgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNv
bT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlwZWRB
cnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIEJpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5
cGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTExICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgQWRkIGEgcGVyZm9ybWFuY2UgdGVzdCBmb3IgaGl0IHRlc3Rpbmcg
aW4gU1ZHCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151992</attachid>
            <date>2012-07-12 10:38:07 -0700</date>
            <delta_ts>2012-07-25 13:40:20 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-90838-20120712103805.patch</filename>
            <type>text/plain</type>
            <size>45600</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMxYWE3Y2M5OGJiMzFlZDUwZGM1ZGQ3
YmI1YWVlMmRlMWMzNDQ3MDUuLmVjM2MxODlmYTJjMzEzYzlmNjM1NzkzODIzNDAwZjRlMDNlZjI3
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTItMDctMTEgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJy
YXkgZnJvbSBhbiBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUg
aWYgdGhlIGFyZ3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVu
dAorICAgICAgICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAu
aXRlbSgpIG1ldGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBh
IEpTVmFsdWUsIGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1h
dGl2ZWx5IDN4IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBl
KS4KKworICAgICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIGludHJvZHVjZSBhIG5l
dyBpbnRlcmZhY2UgVHlwZWRBcnJheS4gSXQKKyAgICAgICAgd2lsbCBiZSB1c2VkIHRvIGRldGVy
bWluZSBpZiBhIEphdmFTY3JpcHQgb2JqZWN0IGlzIFR5cGVkIEFycmF5LiBJdAorICAgICAgICBh
bHNvIGludHJvZHVjZXMgYSB2aXJ0dWFsIGdldFR5cGUgZnVuY3Rpb24uIFNvLCB0eXBlZCBhcnJh
eSBjYW4KKyAgICAgICAga25vd24gdGhlaXIgYWN0dWFsIHR5cGUuIFdlIGNhbiB1c2UgdGhpcyBp
bmZvcm1hdGlvbiB0byBjYXN0IHRoZQorICAgICAgICBUeXBlZEFycmF5IHRvIHRoZSBhY3R1YWwg
dHlwZSwgYW5kIHRoZW4gcmVhZCB0aGUgdmFsdWVzIGZyb20gdGhlCisgICAgICAgIHNvdXJjZS4K
KworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6Cisg
ICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0Zs
b2F0MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpGbG9hdDMyQXJyYXk6OmdldFR5cGUpOgorICAg
ICAgICAoRmxvYXQzMkFycmF5KToKKyAgICAgICAgKiB3dGYvRmxvYXQ2NEFycmF5Lmg6CisgICAg
ICAgIChXVEY6OkZsb2F0NjRBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChGbG9hdDY0QXJyYXkp
OgorICAgICAgICAqIHd0Zi9JbnQxNkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDE2QXJyYXk6
OmdldFR5cGUpOgorICAgICAgICAoSW50MTZBcnJheSk6CisgICAgICAgICogd3RmL0ludDMyQXJy
YXkuaDoKKyAgICAgICAgKFdURjo6SW50MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQz
MkFycmF5KToKKyAgICAgICAgKiB3dGYvSW50OEFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDhB
cnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChJbnQ4QXJyYXkpOgorICAgICAgICAqIHd0Zi9JbnRl
Z3JhbFR5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgICogd3RmL1R5cGVkQXJyYXkuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwuCisgICAgICAg
IChUeXBlZEFycmF5KToKKyAgICAgICAgKFdURjo6VHlwZWRBcnJheTo6VHlwZWRBcnJheSk6Cisg
ICAgICAgICogd3RmL1R5cGVkQXJyYXlCYXNlLmg6CisgICAgICAgIChUeXBlZEFycmF5QmFzZSk6
CisgICAgICAgIChXVEY6OlR5cGVkQXJyYXlCYXNlOjppdGVtKToKKyAgICAgICAgKFdURjo6VHlw
ZWRBcnJheUJhc2U6OlR5cGVkQXJyYXlCYXNlKToKKyAgICAgICAgKiB3dGYvVWludDE2QXJyYXku
aDoKKyAgICAgICAgKFdURjo6VWludDE2QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDE2
QXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50MzJBcnJheS5oOgorICAgICAgICAoV1RGOjpVaW50
MzJBcnJheTo6Z2V0VHlwZSk6CisgICAgICAgIChVaW50MzJBcnJheSk6CisgICAgICAgICogd3Rm
L1VpbnQ4QXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDhBcnJheTo6Z2V0VHlwZSk6CisgICAg
ICAgIChVaW50OEFycmF5KToKKyAgICAgICAgKiB3dGYvVWludDhDbGFtcGVkQXJyYXkuaDoKKyAg
ICAgICAgKFdURjo6VWludDhDbGFtcGVkQXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDhD
bGFtcGVkQXJyYXkpOgorCiAyMDEyLTA3LTExICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+
CiAKICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvOTEwMjQ+IEJ1aWxkIGFnYWluc3QgdGhl
IGxhdGVzdCBTREsgd2hlbiB0YXJnZXRpbmcgb2xkZXIgT1MgWCB2ZXJzaW9ucy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA1OTU0N2IwNDhkOWEzYTYzY2EyY2Q1NWNiMmU0YjVmOWMwNTNlZGRhLi41YThhZTljNWJh
Y2U5YzBkNmU3NzlmMTIwMjYyNTMxYmIxMTE3ZmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTItMDctMTEgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5n
LmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlw
ZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJyYXkgZnJvbSBhbiBhcnJheSBsaWtl
IGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGFyZ3VtZW50IGlzIGEg
dHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVudAorICAgICAgICB0byBhIHR5cGVk
IGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAuaXRlbSgpIG1ldGhvZC4gVGhhdAor
ICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBhIEpTVmFsdWUsIGFuZCBzcGVlZHVw
cyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1hdGl2ZWx5IDN4IChldmVuIDMweCBp
ZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBlKS4KKworICAgICAgICBJbiBvcmRl
ciB0byBhY2hpZXZlIHRoYXQsIHdlIGludHJvZHVjZSBhIG5ldyBpbnRlcmZhY2UgVHlwZWRBcnJh
eS4gSXQKKyAgICAgICAgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSBpZiBhIEphdmFTY3JpcHQg
b2JqZWN0IGlzIFR5cGVkIEFycmF5LiBJdAorICAgICAgICBhbHNvIGludHJvZHVjZXMgYSB2aXJ0
dWFsIGdldFR5cGUgZnVuY3Rpb24uIFNvLCB0eXBlZCBhcnJheSBjYW4KKyAgICAgICAga25vd24g
dGhlaXIgYWN0dWFsIHR5cGUuIFdlIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBjYXN0IHRo
ZQorICAgICAgICBUeXBlZEFycmF5IHRvIHRoZSBhY3R1YWwgdHlwZSwgYW5kIHRoZW4gcmVhZCB0
aGUgdmFsdWVzIGZyb20gdGhlCisgICAgICAgIHNvdXJjZS4KKworICAgICAgICBUZXN0czogUGVy
Zm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5o
dG1sCisgICAgICAgICAgICAgICBQZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5
LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1
ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5w
bToKKyAgICAgICAgKEdldE5hbWVzcGFjZUZvckNsYXNzKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKElzVHlwZWRBcnJheVR5cGUpOgor
ICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAg
ICAgIChJc1R5cGVkQXJyYXlUeXBlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9GbG9hdDMyQXJy
YXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Zsb2F0NjRBcnJheS5pZGw6CisgICAgICAg
ICogaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50
MzJBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvSW50OEFycmF5LmlkbDoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9UeXBlZEFycmF5LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwuCisgICAgICAgICogaHRtbC9jYW52YXMvVWlu
dDE2QXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbDoKKwogMjAxMi0wNy0xMiAgVnNldm9s
b2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIHIx
MjI0NjAgaW5zcGVjdG9yIGNsb3N1cmUgY29tcGlsYXRpb24gZml4IGZvbGxvdyB1cC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCBjNWY0OGE2Y2U1NTlhMjRjYzIwYjcwNzU4ZGY4YmM0YTg0ZGM5
ZWVkLi5hZmRjY2Y5OWM4YzdhYWY3ODc2OTA0YWRjYmYyZmRkODRmOTY0NWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0xNTMsNiArMTUzLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNv
dXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYv
VHlwZVRyYWl0cy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL1R5cGVUcmFpdHMuaCBcCisgICAg
U291cmNlL1dURi93dGYvVHlwZWRBcnJheS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9UeXBlZEFy
cmF5QmFzZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9VaW50MTZBcnJheS5oIFwKICAgICBTb3Vy
Y2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5
cGkgYi9Tb3VyY2UvV1RGL1dURi5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUx
NTNkZWIxMWJiYWQwMzkuLmUwMTM3ZDY3Nzk2MWM2NjM4ZTU5ZDM0ZjIxNDBkZGVlNmRmNjYyOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lw
aQpAQCAtMTg4LDYgKzE4OCw3IEBACiAgICAgICAgICAgICAnd3RmL1RocmVhZGluZ1B0aHJlYWRz
LmNwcCcsCiAgICAgICAgICAgICAnd3RmL1RocmVhZGluZ1dpbi5jcHAnLAogICAgICAgICAgICAg
J3d0Zi9UeXBlVHJhaXRzLmNwcCcsCisgICAgICAgICAgICAnd3RmL1R5cGVkQXJyYXkuaCcsCiAg
ICAgICAgICAgICAnd3RmL1R5cGVkQXJyYXlCYXNlLmgnLAogICAgICAgICAgICAgJ3d0Zi9VaW50
MTZBcnJheS5oJywKICAgICAgICAgICAgICd3dGYvVWludDMyQXJyYXkuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NzIwNDYxZTI2NDY2MWZjOGU5NDM1
ZTkwODgxNjc0YmNkMWI3NjU4Li43NTYwMTBmZGU5N2EzMWE3MzQyYTA5NDdmY2ViYjdjM2ZiMzE4
ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTcsNiAr
Nyw3IEBACiAJb2JqZWN0cyA9IHsKIAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8K
KwkJMTFFMjg1QTUxNUFFNDczRDAwNEM0RkExIC8qIFR5cGVkQXJyYXkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExRTI4NUE0MTVBRTQ3M0QwMDRDNEZB
MSAvKiBUeXBlZEFycmF5LmggKi87IH07CiAJCTE0M0Y2MTFGMTU2NUYwRjkwMERCNTE0QSAvKiBS
QU1TaXplLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDE0M0Y2MTFEMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCAqLzsgfTsKIAkJMTQzRjYx
MjAxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0M0Y2MTFFMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXpl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZE
ODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDgxQUM0MTU0RkIyMkUwMDk4M0U3MiAv
KiBGYXN0Qml0VmVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsK
QEAgLTI0NSw2ICsyNDYsNyBAQAogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLworCQkxMUUyODVBNDE1QUU0NzNEMDA0
QzRGQTEgLyogVHlwZWRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
eXBlZEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0M0Y2MTFEMTU2NUYw
RjkwMERCNTE0QSAvKiBSQU1TaXplLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJBTVNpemUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDNGNjEx
RTE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSQU1TaXplLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDgxQUM0
MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZhc3RCaXRWZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTcwMiw2ICs3MDQsNyBAQAogCQkJCUE4QTQ3MzM5MTUxQTgyNUIwMDQxMjNGRiAvKiB0aHJl
YWRzICovLAogCQkJCUE4QTQ3MzNFMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTYWZlUmVmQ291
bnRlZC5oICovLAogCQkJCUE4QTQ3MzNGMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTcGVjaWZp
Yy5oICovLAorCQkJCTExRTI4NUE0MTVBRTQ3M0QwMDRDNEZBMSAvKiBUeXBlZEFycmF5LmggKi8s
CiAJCQkJQThBNDczNDExNTFBODI1QjAwNDEyM0ZGIC8qIFR5cGVkQXJyYXlCYXNlLmggKi8sCiAJ
CQkJQThBNDczNDIxNTFBODI1QjAwNDEyM0ZGIC8qIFR5cGVUcmFpdHMuY3BwICovLAogCQkJCUE4
QTQ3MzQzMTUxQTgyNUIwMDQxMjNGRiAvKiBUeXBlVHJhaXRzLmggKi8sCkBAIC0xMDQxLDYgKzEw
NDQsNyBAQAogCQkJCUE4QTQ3NDhDMTUxQTgyNjQwMDQxMjNGRiAvKiBjb25maWcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0M0Y2MTIwMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkQ4MUFDNTE1NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMTFFMjg1QTUxNUFFNDczRDAwNEM0RkExIC8qIFR5cGVkQXJy
YXkuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQzMkFy
cmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaAppbmRleCA1NWU2MWUwMDY0ZDE1
YTUyYTA0YTVlMGZhMGNmZDg0OWQwODAwNGI3Li4xNWZkYTNlOWU5ZGIxZmViNjJhZTY5NjY5YWE4
ZThlYzk3ZTI4ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDMyQXJyYXkuaApAQCAtNDgsMTggKzQ4LDE0IEBAIHB1
YmxpYzoKICAgICAgICAgVHlwZWRBcnJheUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdID0gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKTsKICAgICB9CiAKLSAgICAvLyBJbnZva2VkIGJ5IHRoZSBp
bmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxlcgotICAg
IC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZCBh
cyBuZWNlc3NhcnkuCi0gICAgZmxvYXQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPGZsb2F0Pjo6bV9sZW5ndGgp
OwotICAgICAgICBmbG9hdCByZXN1bHQgPSBUeXBlZEFycmF5QmFzZTxmbG9hdD46OmRhdGEoKVtp
bmRleF07Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NS
ZWZQdHI8RmxvYXQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGlu
ZSBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIAorICAgIFZpZXdUeXBlIGdldFR5cGUoKSAKKyAgICB7CisgICAgICAgIHJldHVybiBU
WVBFX0Zsb2F0MzI7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDMyQXJyYXko
UGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5
dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaCBiL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oCmluZGV4IDMwNjMzZGJlYzVjYTllNTkwNjM1YzQw
MGUyY2I3MjZjZTcxZTE4NGQuLjcxMDhjYTk0ZGM0YjFlYjU3OTMxMTY5YmQwMjY2ZDAwNDNiYjIx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0Zsb2F0NjRBcnJheS5oCkBAIC00OCwxOCArNDgsMTQgQEAgcHVibGljOgogICAg
ICAgICBUeXBlZEFycmF5QmFzZTxkb3VibGU+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8
ZG91YmxlPih2YWx1ZSk7CiAgICAgfQogCi0gICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBn
ZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyBy
ZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNz
YXJ5LgotICAgIGRvdWJsZSBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6bV9sZW5ndGgpOwotICAg
ICAgICBkb3VibGUgcmVzdWx0ID0gVHlwZWRBcnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4
XTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KICAgICBpbmxpbmUgUGFzc1JlZlB0
cjxGbG9hdDY0QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBh
c3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0
OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVf
RmxvYXQ2NDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5saW5lIEZsb2F0NjRBcnJheShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYv
d3RmL0ludDE2QXJyYXkuaAppbmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2MyNzE4ZGE2MjYzMTVl
NjhmZmM1Li5iOTJmNzc4NDc2MzQ0NGNiNmNkM2Y1YjQ4MDVjZjlmODFlOWY3Mjc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50
MTZBcnJheS5oCkBAIC00NSw2ICs0NSwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQ
dHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFz
c1JlZlB0cjxJbnQxNkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0Owog
CisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAgICAgICAgcmV0dXJuIFRZUEVfSW50
MTY7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBJbnQxNkFycmF5KFBhc3NSZWZQdHI8
QXJyYXlCdWZmZXI+LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYv
SW50MzJBcnJheS5oCmluZGV4IGNlNjg2OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcx
ZDUuLmY2YmFlNDE0YThjYjBhNDMwNjZmMmVjZGE5NjVmY2Y5ZDlhMmQzMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0ludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFy
cmF5LmgKQEAgLTQ0LDYgKzQ0LDExIEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJ
bnQzMkFycmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVm
UHRyPEludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAg
ICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9JbnQzMjsK
KyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5saW5lIEludDMyQXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJy
YXkuaAppbmRleCA1NTRmNGFjYzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5kNDFk
YzI4MTM5ZmY2YTk0MDhjOWRiNWM5MjczZDI3NmI0ZjQzZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9JbnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAt
NDYsNiArNDYsMTEgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPEludDhBcnJheT4g
c3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJy
YXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBn
ZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQRV9JbnQ4OworICAgIH0KKwogcHJp
dmF0ZToKICAgICBpbmxpbmUgSW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZzZXQsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3Jh
bFR5cGVkQXJyYXlCYXNlLmgKaW5kZXggZjI3NjQwMGY4ZDg3OThiODcyZjlmN2IzZGYyZjUyMzJi
ZmFhZDU2ZS4uMjNkYmRkZTVkNWEyMjNmOTNlYzE2NTQxOGM5YTlhM2U2NzA3MDAxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaApAQCAtNTAsMTQgKzUwLDYgQEAgY2xh
c3MgSW50ZWdyYWxUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBUeXBlZEFycmF5QmFzZTxUPiB7CiAg
ICAgICAgIFR5cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdID0gc3RhdGljX2Nhc3Q8VD4o
c3RhdGljX2Nhc3Q8aW50NjRfdD4odmFsdWUpKTsKICAgICB9CiAKLSAgICAvLyBJbnZva2VkIGJ5
IHRoZSBpbmRleGVkIGdldHRlci4gRG9lcyBub3QgcGVyZm9ybSByYW5nZSBjaGVja3M7IGNhbGxl
cgotICAgIC8vIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBzbyBhbmQgcmV0dXJuaW5nIHVuZGVm
aW5lZCBhcyBuZWNlc3NhcnkuCi0gICAgVCBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAg
IHsKLSAgICAgICAgQVNTRVJUKGluZGV4IDwgVHlwZWRBcnJheUJhc2U8VD46Om1fbGVuZ3RoKTsK
LSAgICAgICAgcmV0dXJuIFR5cGVkQXJyYXlCYXNlPFQ+OjpkYXRhKClbaW5kZXhdOwotICAgIH0K
LQogICBwcm90ZWN0ZWQ6CiAgICAgSW50ZWdyYWxUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFy
cmF5QnVmZmVyPiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkK
ICAgICAgICAgOiBUeXBlZEFycmF5QmFzZTxUPihidWZmZXIsIGJ5dGVPZmZzZXQsIGxlbmd0aCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3Rm
L1R5cGVkQXJyYXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODY5NmE1MTU5ODY4M2IzNDVjMThkNmRhY2EwYzAx
ZGUzNDI3YWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheS5o
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBUeXBlZEFycmF5
X2gKKyNkZWZpbmUgVHlwZWRBcnJheV9oCisKKyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4K
KyNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXJWaWV3Lmg+CisKK25hbWVzcGFjZSBXVEYgeworY2xh
c3MgVHlwZWRBcnJheSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgeworICBwdWJsaWM6CisgICAg
ZW51bSBWaWV3VHlwZSB7CisgICAgICAgIFRZUEVfSW50OCwKKyAgICAgICAgVFlQRV9VaW50OCwK
KyAgICAgICAgVFlQRV9VaW50OENsYW1wZWQsCisgICAgICAgIFRZUEVfSW50MTYsCisgICAgICAg
IFRZUEVfVWludDE2LAorICAgICAgICBUWVBFX0ludDMyLAorICAgICAgICBUWVBFX1VpbnQzMiwK
KyAgICAgICAgVFlQRV9GbG9hdDMyLAorICAgICAgICBUWVBFX0Zsb2F0NjQKKyAgICB9OworICAg
IHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpID0gMDsKKyAgcHJvdGVjdGVkOgorICAgIFR5cGVk
QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0
KSAKKyAgICAgICAgOiBBcnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQorICAgIHsK
KyAgICB9Cit9OworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6VHlwZWRBcnJheTsK
KyNlbmRpZiAvLyBUeXBlZEFycmF5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1R5cGVk
QXJyYXlCYXNlLmggYi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCmluZGV4IDVlYzdh
MTk4YTFkNmM4ZmY1NmRiNDNmZTFmZjczNGM2ODFlZWI4MWIuLjdiZGJmOWU4ZWYzNmM1ZWRjNDZl
NmRlYWNmM2JlNTI4OGI3NzVlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJy
YXlCYXNlLmgKKysrIGIvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaApAQCAtMjksMTEg
KzI5LDEyIEBACiAKICNpbmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYv
QXJyYXlCdWZmZXJWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL1R5cGVkQXJyYXkuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotY2xhc3MgVHlwZWRBcnJheUJhc2Ug
OiBwdWJsaWMgQXJyYXlCdWZmZXJWaWV3IHsKK2NsYXNzIFR5cGVkQXJyYXlCYXNlIDogcHVibGlj
IFR5cGVkQXJyYXkgewogICBwdWJsaWM6CiAgICAgVCogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PFQqPihiYXNlQWRkcmVzcygpKTsgfQogCkBAIC02NSw5ICs2NiwxNyBAQCBjbGFz
cyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICByZXR1
cm4gbV9sZW5ndGggKiBzaXplb2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0aGUg
aW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIKKyAg
ICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmluZWQg
YXMgbmVjZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7CisgICAg
ICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisKIHBy
b3RlY3RlZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLSAgICAgICAgOiBBcnJh
eUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQorICAgICAgICA6IFR5cGVkQXJyYXkoYnVm
ZmVyLCBieXRlT2Zmc2V0KQogICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKICAgICB7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYv
d3RmL1VpbnQxNkFycmF5LmgKaW5kZXggYzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJm
ZWM4NTc3Ni4uZWRjMTQzYmRlMDQzMzcxNzZlMGRiMjc3ODRmMDMzZWQ0ZWQ2NjhiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvVWludDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9V
aW50MTZBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NS
ZWZQdHI8VWludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5l
IFBhc3NSZWZQdHI8VWludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVuZCkgY29u
c3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1cm4gVFlQ
RV9VaW50MTY7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50MTZBcnJheShQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaCBi
L1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKaW5kZXggYTljZjZiMTUyMTgwNGE3MWE3MTIw
YjdkZjAzMmUwNGY2ZTU2NTg1Yi4uYjM5MGI5ZmFkYWY0NzA2ZDIzOWY2N2EzODJmN2VhOWU0YWYw
MmJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWludDMyQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAg
aW5saW5lIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7
CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDMyQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwg
aW50IGVuZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAg
ICByZXR1cm4gVFlQRV9VaW50MzI7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50
MzJBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4
QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkxNzI5ZDZiMDg2
MmQ1MjNkOGRjZDcxNzU3NzJjZjE0NDNiNTczLi41Nzg4ZjdmYTJmN2U5YWNkZDkxNmI3MzM1NmE4
ZTI4ZTJkZTdhZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFycmF5LmgKKysr
IGIvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oCkBAIC00Niw2ICs0NiwxMSBAQCBwdWJsaWM6
CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBj
b25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50OEFycmF5PiBzdWJhcnJheShpbnQgc3Rh
cnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgVmlld1R5cGUgZ2V0VHlwZSgpIAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFRZUEVfVWludDg7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgaW5saW5l
IFVpbnQ4QXJyYXkoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
VWludDhDbGFtcGVkQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4Q2xhbXBlZEFycmF5LmgK
aW5kZXggZDlmODI0OTBhYzU0ZTc2OGQ3Y2YxOWMzMGYyMmNiY2NmMWY5MWU3My4uYmRiN2JmZDFj
Y2VjMGJhNTNhZjNiNzk0OTUyZmM3OTIzZjhlNGI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvVWludDhDbGFtcGVkQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRB
cnJheS5oCkBAIC01NSw2ICs1NSwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8
VWludDhDbGFtcGVkQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5l
IFBhc3NSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVu
ZCkgY29uc3Q7CiAKKyAgICBWaWV3VHlwZSBnZXRUeXBlKCkgCisgICAgeworICAgICAgICByZXR1
cm4gVFlQRV9VaW50OENsYW1wZWQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBVaW50
OENsYW1wZWRBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YzAyYjIxMWU0MTI2MTc0ZmZiZGNiMmFhZGFlYzBmOGY4MjY3ZTVkYy4uNDI4YTExZjc3NzlkYWQ1
OWUyZTg4ZDAwNGQyNjcwNTZmM2UyNjBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM2Myw2
ICszNjMsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL2NhbnZhcy9JbnQxNkFy
cmF5LmlkbAogICAgIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMv
SW50OEFycmF5LmlkbAorICAgIGh0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsCiAgICAgaHRtbC9j
YW52YXMvVWludDE2QXJyYXkuaWRsCiAgICAgaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsCiAg
ICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApp
bmRleCA3Mjg3ZDljYmIyNzZlMzE3M2EyMGNjNDVlN2U2NTc3ODNlZWZlY2VmLi5hMWNjMmM3NzVk
ZjlmMThjNzVhMGFlZDdjODljNWM4MTQ4ZDE5MWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCkBAIC00NTgsNiArNDU4LDcgQEAKICNpbmNsdWRlICJKU1RvdWNoRXZlbnQuY3BwIgogI2lu
Y2x1ZGUgIkpTVG91Y2hMaXN0LmNwcCIKICNpbmNsdWRlICJKU1RyZWVXYWxrZXIuY3BwIgorI2lu
Y2x1ZGUgIkpTVHlwZWRBcnJheS5jcHAiCiAjaW5jbHVkZSAiSlNVaW50MTZBcnJheS5jcHAiCiAj
aW5jbHVkZSAiSlNVaW50MzJBcnJheS5jcHAiCiAjaW5jbHVkZSAiSlNVaW50OEFycmF5LmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDc2NzA3M2U3ZDI3YmMxNzU4YzdlNjRi
NjY1NmVkNGVkZmUwZDU1ZTIuLjM2NTE2YzI3Mjc2NjgyZGY5Mjg1MDdhNjcwNDM5YzlhMDg4Yjhi
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzY4LDYgKzM2OCw3IEBAIEJJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9h
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3Qu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMv
VWludDhBcnJheS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDJmOTNjNGFl
MGJlY2RhZWQ5NGU3YTEzODJmOGYwZThjZDU0OWM3MTMuLjQ4OTFhYmJlNWNlMGUzMTQyYjhiNTI5
MjE0ZmE3Yjg0ODlhMDNkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTI5Miw2
ICsyOTIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2h0bWwvY2FudmFzL09FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNUZXh0dXJl
RmxvYXQuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5p
ZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsIFwKICAgICAkJFBXRC9o
dG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4ZjQzZGI4
MDJkOTZlYjFiMGM5MmJkZTYwYTgyNDYzMDdmZTBlNDRiLi44NTQxZGVlZWI0YmYwNzJjYjYxNmNi
NmI1NjRmYjk0N2JkNjUzMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU1
Miw2ICs1NTIsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNUcmFja0V2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNUcmVl
V2Fsa2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RyZWVXYWxrZXIuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1R5cGVkQXJyYXkuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTVHlwZWRBcnJheS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVUlF
dmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNVSUV2ZW50LmggXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNVaW50MTZBcnJheS5jcHAgXApAQCAtOTIxLDYgKzkyMyw3IEBA
IGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTU3RhbmRh
cmREZXJpdmF0aXZlcy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZs
b2F0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5p
ZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVHlwZWRBcnJheS5pZGwgXAogCSQoV2ViQ29y
ZSkvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFz
L1VpbnQzMkFycmF5LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9VaW50OEFycmF5Lmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjgzMmZjNWEzMGI0ZGUxMjFmMTczYTViNWU3ZTcwMzlj
N2E5NjRjMi4uZTAzZTA1MDRmOWE3NTBlYmJiYmQ3MzczMzAyMThhNmViMjNmYjc0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMTExOCw2ICsxMTE4LDcgQEAKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvT0VTVmVydGV4
QXJyYXlPYmplY3QuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9UeXBlZEFycmF5Lmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1VpbnQ4QXJyYXkuaWRsJywKQEAgLTgwNjQsNiArODA2NSw4IEBACiAgICAgICAgICAgICAn
PChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RvdWNoTGlzdC5oJywKICAg
ICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJlZVdh
bGtlci5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNUcmVlV2Fsa2VyLmgnLAorICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNUeXBlZEFycmF5LmNwcCcsCisgICAgICAgICAgICAnPChQUk9E
VUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1R5cGVkQXJyYXkuaCcsCiAgICAgICAg
ICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VJRXZlbnQuY3Bw
JywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
VUlFdmVudC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTVWludDE2QXJyYXkuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTUyMGE3NGM2NjNkZjBhZTBhNzNhYmFk
MTA3MDNiNjNkMDI5YWRmLi40ZGM2ZDU0OTljMzUyNjEzMjU1YjA3YjI0NDYwZTYyOWZmNDRlMmQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yODEsNiArMjgxLDggQEAKIAkJMEZGNTAyNzExMDJCQTk2QTAwNjZGMzlBIC8qIFN0
eWxlTWVkaWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZGNTAyNkUxMDJCQTk2NjAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuY3BwICovOyB9OwogCQkw
RkY1MDI3MjEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZGNTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8q
IFN0eWxlTWVkaWEuaCAqLzsgfTsKIAkJMTBGQjA4NEIxNEUxNUM3RTAwQTNEQjk4IC8qIFB1Ymxp
Y1VSTE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDEwRkIwODRBMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggKi87IH07
CisJCTExOTkzNUFDMTVBRTVBNDMwMEE3QjQzRiAvKiBKU1R5cGVkQXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFFMjg1QjUxNUFFNEMzRjAw
NEM0RkExIC8qIEpTVHlwZWRBcnJheS5jcHAgKi87IH07CisJCTExRTI4NUI4MTVBRTRDN0EwMDRD
NEZBMSAvKiBKU1R5cGVkQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDExRTI4NUI3MTVBRTRDN0EwMDRDNEZBMSAvKiBKU1R5cGVkQXJyYXkuaCAq
LzsgfTsKIAkJMTQwMjY0NUUwQUZEQzE5QjAwNTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDAyNjQ1RDBBRkRDMTlC
MDA1OTE5RTIgLyogTG9nZ2luZ01hYy5tbSAqLzsgfTsKIAkJMTQwM0I5OTcwOUVCMTNBRjAwNzk3
QzdGIC8qIERPTVdpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTQwM0I5OTUwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0MDNCOTk4MDlFQjEz
QUYwMDc5N0M3RiAvKiBET01XaW5kb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQwM0I5OTYwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5j
cHAgKi87IH07CkBAIC03MjMzLDYgKzcyMzUsOSBAQAogCQkwRkY1MDI2RjEwMkJBOTZBMDA2NkYz
OUEgLyogU3R5bGVNZWRpYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHls
ZU1lZGlhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjUwMjcwMTAyQkE5NkEw
MDY2RjM5QSAvKiBTdHlsZU1lZGlhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHlsZU1l
ZGlhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTBGQjA4NEExNEUxNUM3RTAw
QTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUHVibGljVVJMTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
MUUyODVBRjE1QUU0OEFEMDA0QzRGQTEgLyogVHlwZWRBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gVHlwZWRBcnJheS5pZGw7IHBhdGggPSBjYW52YXMvVHlwZWRBcnJheS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTExRTI4NUI1MTVBRTRDM0YwMDRDNEZBMSAvKiBK
U1R5cGVkQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNU
eXBlZEFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTFFMjg1QjcxNUFF
NEM3QTAwNEM0RkExIC8qIEpTVHlwZWRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1R5cGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQw
MjY0NUQwQUZEQzE5QjAwNTkxOUUyIC8qIExvZ2dpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9nZ2luZ01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTQwM0I5MEMwOUVCMTI0NTAwNzk3QzdGIC8qIERPTVdpbmRvdy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NV2luZG93LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMTQwM0I5OTUwOUVCMTNBRjAwNzk3QzdGIC8qIERPTVdpbmRvdy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE0OTM1LDYgKzE0OTQwLDcgQEAKIAkJCQk3N0ExN0E2RTEyRjI4MTgyMDA0
RTAyRjYgLyogT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwICovLAogCQkJCTc3QTE3QTZGMTJGMjgx
ODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5oICovLAogCQkJCTc3QTE3QTcwMTJG
MjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgKi8sCisJCQkJMTFFMjg1
QUYxNUFFNDhBRDAwNEM0RkExIC8qIFR5cGVkQXJyYXkuaWRsICovLAogCQkJCTQ5RUVDRERFMTA1
MDNDMjQwMDA5OUZBQiAvKiBVaW50MTZBcnJheS5pZGwgKi8sCiAJCQkJNDlFRUNEREIxMDUwM0My
MzAwMDk5RkFCIC8qIFVpbnQzMkFycmF5LmlkbCAqLywKIAkJCQk0OUVFQ0REODEwNTAzQzIzMDAw
OTlGQUIgLyogVWludDhBcnJheS5pZGwgKi8sCkBAIC0xODI1MSw2ICsxODI1Nyw4IEBACiAJCQkJ
RTQ0NjE0MTMwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpTVGltZVJhbmdlcy5oICovLAogCQkJCTA3ODQ2
MzQwMTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZlbnQuY3BwICovLAogCQkJCTA3ODQ2MzQx
MTQ1QjE1MUEwMEE1OERGMSAvKiBKU1RyYWNrRXZlbnQuaCAqLywKKwkJCQkxMUUyODVCNTE1QUU0
QzNGMDA0QzRGQTEgLyogSlNUeXBlZEFycmF5LmNwcCAqLywKKwkJCQkxMUUyODVCNzE1QUU0QzdB
MDA0QzRGQTEgLyogSlNUeXBlZEFycmF5LmggKi8sCiAJCQkJNDlFRUNFRkUxMDUwNzBDNDAwMDk5
RkFCIC8qIEpTVWludDE2QXJyYXkuY3BwICovLAogCQkJCTQ5RUVDRUZGMTA1MDcwQzQwMDA5OUZB
QiAvKiBKU1VpbnQxNkFycmF5LmggKi8sCiAJCQkJNDlFRUNFRkMxMDUwNzBDNDAwMDk5RkFCIC8q
IEpTVWludDMyQXJyYXkuY3BwICovLApAQCAtMjM5NzUsNiArMjM5ODMsNyBAQAogCQkJCTA3ODQ2
Mzg1MTQ1QjFCOEUwMEE1OERGMSAvKiBKU1RyYWNrQ3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzg0NjM0MzE0NUIxNTFBMDBBNThERjEgLyogSlNUcmFja0V2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTc1MEQ1RDBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxMUUyODVCODE1QUU0QzdBMDA0QzRGQTEgLyogSlNUeXBlZEFycmF5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVFQ0YwRDEwNTA3MEM0MDAwOTlGQUIgLyogSlNVaW50
MTZBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNGMEIxMDUwNzBDNDAwMDk5RkFCIC8q
IEpTVWludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLApAQCAtMjcyMjgsNiArMjcyMzcsNyBAQAog
CQkJCTA3QkRENkVDMTQ2OUI0QzIwMDlDOUY4NSAvKiBKU1RyYWNrRXZlbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE3NTBENUMwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTZCQjc5NDBDRTkxRTY4MDA1MTJGNzkgLyogSlNU
cmVlV2Fsa2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTExOTkzNUFDMTVBRTVBNDMw
MEE3QjQzRiAvKiBKU1R5cGVkQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg2NjI5RDAw
OURBMkI0ODAwOTYzM0E1IC8qIEpTVUlFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVF
Q0YwQzEwNTA3MEM0MDAwOTlGQUIgLyogSlNVaW50MTZBcnJheS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0OUVFQ0Y3RTEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50MTZBcnJheUN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXJyYXlCdWZmZXJWaWV3SGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fy
cmF5QnVmZmVyVmlld0hlbHBlci5oCmluZGV4IGRmOWU0MzkwNjQwNGQ0ODU4ODgzOGIwYjk2ZjRl
N2RkY2Q1YjljODQuLjVjNGU1MmIxMWJjMDM0NGMxZmZiZWI4MzAzZmE4ZDQ3NzQxZTgyZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVs
cGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdI
ZWxwZXIuaApAQCAtMzAsMTIgKzMwLDE0IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNp
bmNsdWRlICJKU1R5cGVkQXJyYXkuaCIKICNpbmNsdWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUu
aD4KICNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3QuaD4KICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU09iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNW
YWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlclZpZXcuaD4KKyNpbmNsdWRlIDx3dGYv
VHlwZWRBcnJheUJhc2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04Niw2ICs4OCw2
NiBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgVCogaW1wbCwgVCogKCpjb252ZXJzaW9uRgogLy8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBi
eSBYWFhBcnJheUNvbnN0cnVjdG9ycy4KIC8vIElmIHRoaXMgcmV0dXJucyAwLCBpdCB3aWxsIGFs
cmVhZHkgaGF2ZSB0aHJvd24gYSBKYXZhU2NyaXB0IGV4Y2VwdGlvbi4KIHRlbXBsYXRlPGNsYXNz
IEMsIHR5cGVuYW1lIFQ+CitQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dp
dGhUeXBlZEFycmF5QXJndW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgUmVmUHRy
PFR5cGVkQXJyYXk+IHNvdXJjZSA9IHRvVHlwZWRBcnJheShleGVjLT5hcmd1bWVudCgwKSk7Cisg
ICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgdWludDMyX3QgbGVuZ3Ro
ID0gYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVy
KGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAgUmVmUHRyPEM+IGFycmF5ID0g
Qzo6Y3JlYXRlKGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBzZXRET01FeGNl
cHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAg
fQorCisgICAgaWYgKGFycmF5LT5nZXRUeXBlKCkgPT0gc291cmNlLT5nZXRUeXBlKCkpIHsKKyAg
ICAgICAgbWVtY3B5KGFycmF5LT5iYXNlQWRkcmVzcygpLCBzb3VyY2UtPmJhc2VBZGRyZXNzKCks
IGxlbmd0aCAqIHNpemVvZihUKSk7CisgICAgICAgIHJldHVybiBhcnJheTsKKyAgICB9CisKKyAg
ICBzd2l0Y2ggKHNvdXJjZS0+Z2V0VHlwZSgpKSB7CisgICAgY2FzZSBUeXBlZEFycmF5OjpUWVBF
X0ludDg6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPHNp
Z25lZCBjaGFyPiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9VaW50ODoKKyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZ
UEVfVWludDhDbGFtcGVkOgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFy
cmF5QmFzZTx1bnNpZ25lZCBjaGFyPiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9JbnQxNjoKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXktPnNl
dChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8c2lnbmVkIHNob3J0PiAqPihzb3Vy
Y2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJh
eTo6VFlQRV9VaW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9JbnQzMjoKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXktPnNl
dChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8aW50PiAqPihzb3VyY2UuZ2V0KCkp
LT5pdGVtKGkpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZWRBcnJheTo6VFlQRV9V
aW50MzI6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPHVu
c2lnbmVkIGludD4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFR5cGVkQXJyYXk6OlRZUEVfRmxvYXQzMjoKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCko
c3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8ZmxvYXQ+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0o
aSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlZEFycmF5OjpUWVBFX0Zsb2F0NjQ6
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAg
ICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGRvdWJsZT4g
Kj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICByZXR1cm4gYXJyYXk7Cit9CisKKy8vIFRlbXBsYXRlIGZ1bmN0aW9uIHVzZWQgYnkgWFhYQXJy
YXlDb25zdHJ1Y3RvcnMuCisvLyBJZiB0aGlzIHJldHVybnMgMCwgaXQgd2lsbCBhbHJlYWR5IGhh
dmUgdGhyb3duIGEgSmF2YVNjcmlwdCBleGNlcHRpb24uCit0ZW1wbGF0ZTxjbGFzcyBDLCB0eXBl
bmFtZSBUPgogUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoQXJyYXlC
dWZmZXJBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciA9IHRvQXJyYXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOwpAQCAtMTM4
LDYgKzIwMCwxMCBAQCBQYXNzUmVmUHRyPEM+IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldyhKU0M6
OkV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgaWYgKHZpZXcpCiAgICAgICAgICAgICByZXR1cm4g
dmlldzsKICAgICAKKyAgICAgICAgdmlldyA9IGNvbnN0cnVjdEFycmF5QnVmZmVyVmlld1dpdGhU
eXBlZEFycmF5QXJndW1lbnQ8QywgVD4oZXhlYyk7CisgICAgICAgIGlmICh2aWV3KQorICAgICAg
ICAgICAgcmV0dXJuIHZpZXc7CisKICAgICAgICAgSlNDOjpKU09iamVjdCogc3JjQXJyYXkgPSBh
c09iamVjdChleGVjLT5hcmd1bWVudCgwKSk7CiAgICAgICAgIHVpbnQzMl90IGxlbmd0aCA9IHNy
Y0FycmF5LT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50
MzIoZXhlYyk7CiAgICAgICAgIFJlZlB0cjxDPiBhcnJheSA9IEM6OmNyZWF0ZShsZW5ndGgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
Q1BQLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQ
LnBtCmluZGV4IGVkOTBkZTgyNTgwZDJiOTAyNTM5YzI1Y2Y2Yzk4NjE5OGNkNWI2ZTguLmI4Mzdh
ZmNkZjliNWVlMGIzNTUwNDc5M2NmZjU3MzNjNmUwOWVjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JDUFAucG0KQEAgLTM0NSw3ICsz
NDUsNyBAQCBzdWIgQWRkSW5jbHVkZXNGb3JUeXBlCiBzdWIgR2V0TmFtZXNwYWNlRm9yQ2xhc3MK
IHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJldHVybiAiV1RGIiBpZiAoKCR0eXBlIGVx
ICJBcnJheUJ1ZmZlciIpIG9yICgkdHlwZSBlcSAiQXJyYXlCdWZmZXJWaWV3IikpOyAKKyAgICBy
ZXR1cm4gIldURiIgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5cGUgZXEgIkFy
cmF5QnVmZmVyVmlldyIpIG9yICgkdHlwZSBlcSAiVHlwZWRBcnJheSIpKTsgCiAgICAgcmV0dXJu
ICJXVEYiIGlmICgoJHR5cGUgZXEgIlVpbnQ4QXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQ4Q2xh
bXBlZEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MTZBcnJheSIpIG9yICgkdHlwZSBlcSAiVWlu
dDMyQXJyYXkiKSk7IAogICAgIHJldHVybiAiV1RGIiBpZiAoKCR0eXBlIGVxICJJbnQ4QXJyYXki
KSBvciAoJHR5cGUgZXEgIkludDE2QXJyYXkiKSBvciAoJHR5cGUgZXEgIkludDMyQXJyYXkiKSk7
IAogICAgIHJldHVybiAiV1RGIiBpZiAoKCR0eXBlIGVxICJGbG9hdDMyQXJyYXkiKSBvciAoJHR5
cGUgZXEgIkZsb2F0NjRBcnJheSIpKTsgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDMxYzE2NGJmMGI2N2U0ZTg1ZWZi
ZTUyMjA0MjIzMmY0NTZmNjNkMzIuLmEwMmI4ZGI3MGI0MTBkMjRjZTVjMDgzMjNjMzkxMTg2Njgy
YzYxMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCkBAIC0zMjAsNyArMzIwLDcgQEAgc3ViIElzU2NyaXB0UHJvZmlsZVR5cGUK
IHN1YiBJc1R5cGVkQXJyYXlUeXBlCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICByZXR1
cm4gMSBpZiAoKCR0eXBlIGVxICJBcnJheUJ1ZmZlciIpIG9yICgkdHlwZSBlcSAiQXJyYXlCdWZm
ZXJWaWV3IikpOworICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3Ig
KCR0eXBlIGVxICJBcnJheUJ1ZmZlclZpZXciKSBvciAoJHR5cGUgZXEgIlR5cGVkQXJyYXkiKSk7
CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiVWludDhBcnJheSIpIG9yICgkdHlwZSBlcSAi
VWludDhDbGFtcGVkQXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQxNkFycmF5Iikgb3IgKCR0eXBl
IGVxICJVaW50MzJBcnJheSIpKTsKICAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJJbnQ4QXJy
YXkiKSBvciAoJHR5cGUgZXEgIkludDE2QXJyYXkiKSBvciAoJHR5cGUgZXEgIkludDMyQXJyYXki
KSk7CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiRmxvYXQzMkFycmF5Iikgb3IgKCR0eXBl
IGVxICJGbG9hdDY0QXJyYXkiKSk7CkBAIC05MzQsNyArOTM0LDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuIik7CiAgICAgfQogCi0g
ICAgaWYgKElzVHlwZWRBcnJheVR5cGUoJGltcGxUeXBlKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJy
YXlCdWZmZXJWaWV3IikgYW5kICgkaW1wbFR5cGUgbmUgIkFycmF5QnVmZmVyIikpIHsKKyAgICBp
ZiAoSXNUeXBlZEFycmF5VHlwZSgkaW1wbFR5cGUpIGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1
ZmZlclZpZXciKSBhbmQgKCRpbXBsVHlwZSBuZSAiQXJyYXlCdWZmZXIiKSBhbmQgKCRpbXBsVHlw
ZSBuZSAiVHlwZWRBcnJheSIpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljIGNvbnN0IEpTQzo6VHlwZWRBcnJheVR5cGUgVHlwZWRBcnJheVN0b3JhZ2VUeXBlID0g
SlNDOjoiKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlR5cGVkQXJyYXlJbnQ4Iikg
aWYgJGltcGxUeXBlIGVxICJJbnQ4QXJyYXkiOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiVHlwZWRBcnJheUludDE2IikgaWYgJGltcGxUeXBlIGVxICJJbnQxNkFycmF5IjsKQEAgLTE2
MjIsNyArMTYyMiw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTtcbiIpOwotICAgICAgICBpZiAoSXNUeXBlZEFycmF5VHlwZSgkaW1wbFR5cGUp
IGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlclZpZXciKSBhbmQgKCRpbXBsVHlwZSBuZSAi
QXJyYXlCdWZmZXIiKSkgeworICAgICAgICBpZiAoSXNUeXBlZEFycmF5VHlwZSgkaW1wbFR5cGUp
IGFuZCAoJGltcGxUeXBlIG5lICJBcnJheUJ1ZmZlclZpZXciKSBhbmQgKCRpbXBsVHlwZSBuZSAi
QXJyYXlCdWZmZXIiKSBhbmQgKCRpbXBsVHlwZSBuZSAiVHlwZWRBcnJheSIpKSB7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBUeXBlZEFycmF5RGVzY3JpcHRvciBkZXNjcmlw
dG9yKCYke2NsYXNzTmFtZX06OnNfaW5mbywgT0JKRUNUX09GRlNFVE9GKCR7Y2xhc3NOYW1lfSwg
bV9zdG9yYWdlKSwgT0JKRUNUX09GRlNFVE9GKCR7Y2xhc3NOYW1lfSwgbV9zdG9yYWdlTGVuZ3Ro
KSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGdsb2JhbERhdGEu
cmVnaXN0ZXJUeXBlZEFycmF5RGVzY3JpcHRvcihpbXBsKCksIGRlc2NyaXB0b3IpO1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBtX3N0b3JhZ2UgPSBpbXBsKCktPmRh
dGEoKTtcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQppbmRleCAzYjAxMTViZGZkODY0YzYzZmIzZWQ0YTk3ZTVhZTgxMWQ3NWQ2
OGQ1Li4wMDlkZGJjM2VkZmU3N2VmZDk1NjQzYzE2NmY4MDM5MjQ4YTczNmQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAt
MjQ2MSw3ICsyNDYxLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25NYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkCiBzdWIgSXNUeXBlZEFycmF5VHlwZQogewogICAgIG15ICR0eXBlID0gc2hpZnQ7
Ci0gICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiQXJyYXlCdWZmZXIiKSBvciAoJHR5cGUgZXEg
IkFycmF5QnVmZmVyVmlldyIpKTsKKyAgICByZXR1cm4gMSBpZiAoKCR0eXBlIGVxICJBcnJheUJ1
ZmZlciIpIG9yICgkdHlwZSBlcSAiQXJyYXlCdWZmZXJWaWV3Iikgb3IgKCR0eXBlIGVxICJUeXBl
ZEFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIlVpbnQ4QXJyYXkiKSBvciAo
JHR5cGUgZXEgIlVpbnQ4Q2xhbXBlZEFycmF5Iikgb3IgKCR0eXBlIGVxICJVaW50MTZBcnJheSIp
IG9yICgkdHlwZSBlcSAiVWludDMyQXJyYXkiKSk7CiAgICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBl
cSAiSW50OEFycmF5Iikgb3IgKCR0eXBlIGVxICJJbnQxNkFycmF5Iikgb3IgKCR0eXBlIGVxICJJ
bnQzMkFycmF5IikpOwogICAgIHJldHVybiAxIGlmICgoJHR5cGUgZXEgIkZsb2F0MzJBcnJheSIp
IG9yICgkdHlwZSBlcSAiRmxvYXQ2NEFycmF5IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0Zsb2F0MzJBcnJheS5pZGwKaW5kZXggOGVhZWJlNGRlZDhhMDJjYjA4OGQyYTAwZDliMGRj
ZGI2NjJkMTU5Mi4uMTQ5ZjRmOTRjNGZhMWYyNzM5NjQyYTgxYjZiZDM1YjUxMjdjOGJkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQzMkFycmF5LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDMyQXJyYXkuaWRsCkBAIC0zNCw3ICsz
NCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAg
Q3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gRmxv
YXQzMkFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKKyAgICBdIEZsb2F0MzJBcnJheSA6IFR5cGVk
QXJyYXkgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0g
NDsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9GbG9hdDY0QXJyYXkuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRmxvYXQ2NEFycmF5LmlkbAppbmRleCBhYmZlYjIx
Nzg4OTA0MGE1NmM1YWJiOTA5M2U0YWVjZWMxMmYyY2Q5Li4wYjU5MTZkNDI0ZmNhZDgyZjViYTgw
YzAyZDNmYTBlOTkwZDIzYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9GbG9hdDY0QXJyYXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Zsb2F0
NjRBcnJheS5pZGwKQEAgLTM0LDcgKzM0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05v
U3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENo
ZWNrQ29uc3RhbnRzCi0gICAgXSBGbG9hdDY0QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAg
IF0gRmxvYXQ2NEFycmF5IDogVHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgQllURVNfUEVSX0VMRU1FTlQgPSA4OwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0ludDE2QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJh
eS5pZGwKaW5kZXggZjZkMDg5ZWEzMzZmYzc1OWRjZTc3ZWVjM2ViMDg5YWJmNmE5NjFlZS4uOTFj
ZmY2MjMwZDBjOTQxMDcwMGQxYTZhNzEyMjVjZDM1YjAyYzgyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50MTZBcnJheS5pZGwKQEAgLTMzLDcgKzMzLDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAog
ICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBJbnQxNkFycmF5IDogQXJyYXlCdWZm
ZXJWaWV3IHsKKyAgICBdIEludDE2QXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDI7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvSW50MzJBcnJheS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9JbnQzMkFycmF5LmlkbAppbmRleCBmOTg4MzVhMmM3Y2UyOTlmMTlhZDA3MjNhMTExNjZhYzE1
ZWEwMjdiLi41ZGE2ZWEzNzIyODM2MWUwNWY3MTY1ODc4ZWM4YmM3MWRhZGU0Yjk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbApAQCAtMzQsNyArMzQsNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIEpTTm9TdGF0aWNUYWJsZXMsCiAgICAgICAgIEN1c3RvbVRv
SlNPYmplY3QsCiAgICAgICAgIERvTm90Q2hlY2tDb25zdGFudHMKLSAgICBdIEludDMyQXJyYXkg
OiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gSW50MzJBcnJheSA6IFR5cGVkQXJyYXkgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0gNDsKIAogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvSW50OEFycmF5LmlkbAppbmRleCAwMGZhYTRmYzM4YzljNmU5ODEwNDk2NTYw
NTc5NTE2YTg1NDBiZDcwLi4zMjZiZDg4YjAxNGE1MTFiNGQ5YmQzNGE2YjRjNDI4Yjk0MDJiNTIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0ludDhBcnJheS5pZGwKQEAgLTM0LDcgKzM0
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBD
dXN0b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBJbnQ4
QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgeworICAgIF0gSW50OEFycmF5IDogVHlwZWRBcnJheSB7
CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1FTlQgPSAxOwogCiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvVHlwZWRBcnJheS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdmN2YwZTM3ZTNl
YzEyY2FiYTBhNjFkNGYwOWI5MTJjMGVkNjAyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1R5cGVkQXJyYXkuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgSlNH
ZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorICAgIF0gVHlwZWRBcnJheSA6IEFycmF5QnVmZmVyVmll
dyB7CisgICAgfTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1Vp
bnQxNkFycmF5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQxNkFycmF5Lmlk
bAppbmRleCA3OWUwNWVmYzRlYmY2NTc5OTdhOWI1M2NlMDNmNTgyYzBlYThiZmFmLi45MGYyMTM1
YjRkMmQxYjIyYWJjNzIyMTFiYTFlOTgzODg0Nzg1ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9VaW50MTZBcnJheS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvVWludDE2QXJyYXkuaWRsCkBAIC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywKICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAg
ICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwotICAgIF0gVWludDE2QXJyYXkgOiBBcnJheUJ1ZmZl
clZpZXcgeworICAgIF0gVWludDE2QXJyYXkgOiBUeXBlZEFycmF5IHsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgbG9uZyBCWVRFU19QRVJfRUxFTUVOVCA9IDI7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvVWludDMyQXJyYXkuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvVWludDMyQXJyYXkuaWRsCmluZGV4IDY3ZTYxYjI5ZmQ4ZTlkY2QxOTA1Njg1MmE5Nzk5ODZk
N2ZhOTUxNmMuLmFlMzg0NTQyM2M1NzZkZjNjNjJiM2JkODM0N2QxNTYwN2Q5ODkwMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKQEAgLTM0LDcgKzM0LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBKU05vU3RhdGljVGFibGVzLAogICAgICAgICBDdXN0
b21Ub0pTT2JqZWN0LAogICAgICAgICBEb05vdENoZWNrQ29uc3RhbnRzCi0gICAgXSBVaW50MzJB
cnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBVaW50MzJBcnJheSA6IFR5cGVkQXJyYXkg
ewogICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIEJZVEVTX1BFUl9FTEVNRU5UID0gNDsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFycmF5LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCmluZGV4IDI2MGEzMjczZTgyOGY1NzY4
NTk3ODBhMzU5ODU1YWEwYTI3OWRjZjguLjkwODcwYWIyNjdkNGM2MmUxOThjNzhjZTM2ZTNlODRi
NThiMThlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJy
YXkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1VpbnQ4QXJyYXkuaWRsCkBA
IC0zNCw3ICszNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgSlNOb1N0YXRpY1RhYmxlcywK
ICAgICAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICAgICAgRG9Ob3RDaGVja0NvbnN0YW50cwot
ICAgIF0gVWludDhBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CisgICAgXSBVaW50OEFycmF5IDog
VHlwZWRBcnJheSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQllURVNfUEVSX0VMRU1F
TlQgPSAxOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0
aDsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29u
c3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5
cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNDY0
MTc2YjgwYTE1M2MyZjQzMDc3ZmI2NWMxMzJlMjVjNjUwY2EKLS0tIC9kZXYvbnVsbAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUt
dHlwZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2
YXIgbGVuZ3RoID0gMTAwMDAwMDA7Cit2YXIgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3Ro
KTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBzb3VyY2VbaV0gPSBp
OworfQorCitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9
IG5ldyBVaW50OEFycmF5KHNvdXJjZSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJv
bS10eXBlZC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25z
dHJ1Y3QtZnJvbS10eXBlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmY2U5Zjc5YWI3ZTlhYWZjZTBmZDBi
ZDMxMDE0YzFjZmVjYTJlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Jp
bmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5cGVkLmh0bWwKQEAgLTAsMCArMSwx
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
cnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBsZW5ndGggPSAxMDAwMDAwMDsK
K3ZhciBzb3VyY2UgPSBuZXcgVWludDhBcnJheShsZW5ndGgpOworZm9yICh2YXIgaSA9IDA7IGkg
PCBsZW5ndGg7IGkrKykgeworICAgIHNvdXJjZVtpXSA9IGk7Cit9CisKK1BlcmZUZXN0UnVubmVy
LnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0gbmV3IEZsb2F0NjRBcnJheShzb3Vy
Y2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzkxYTgyY2Ex
ODcyYzJiM2QwMDExNmIwYTRiYzkwYTEyYjJkYzM2ZC4uZTA4NjQ1Y2RkNWNhMzMxMzA3NzVjMzEw
ZDMzNzgwOGRkOWEyMzk1YiAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0w
Ny0xMSAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29tPgorCisg
ICAgICAgIGNvbnN0cnVjdGluZyBUeXBlZEFycmF5IGZyb20gYW5vdGhlciBUeXBlZEFycmF5IGlz
IHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
ODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBC
aW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tdHlwZWQuaHRt
bDogQWRkZWQuCisKIDIwMTItMDctMTEgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBBZGQgYSBwZXJmb3JtYW5jZSB0ZXN0IGZvciBoaXQgdGVzdGluZyBpbiBTVkcK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154429</attachid>
            <date>2012-07-25 13:40:26 -0700</date>
            <delta_ts>2012-07-25 14:59:12 -0700</delta_ts>
            <desc>updated patch to address review</desc>
            <filename>bug-90838-20120725134015.patch</filename>
            <type>text/plain</type>
            <size>28688</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmZjEyNjJjM2NmOGRkMGJiZDJmYzZm
MTAwMzE1ODk1NTM4YjkxM2EuLjY2NjhiZTA1ZWJhZjFmYjczZGYxNWI3OWY2MGEzZDhiMmNhZTVm
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSB2aXJ0dWFsIG1ldGhvZCBnZXRU
eXBlIG9uIEFycmF5QnVmZmVyVmlldy4gSXQgcmV0dXJucyB0aGUgYWN0dWFsCisgICAgICAgIHR5
cGUgb2YgdGhlIHZpZXcuIFRoaXMgbWV0aG9kIHJlcGxhY2VzIHByZXZpb3VzIGlzPFR5cGU+QXJy
YXkoKSBtZXRob2RzLgorCisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5oOgorICAgICAg
ICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5OjpnZXRU
eXBlKToKKyAgICAgICAgKEZsb2F0MzJBcnJheSk6CisgICAgICAgICogd3RmL0Zsb2F0NjRBcnJh
eS5oOgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoRmxv
YXQ2NEFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOgorICAgICAgICAoV1RGOjpJ
bnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKEludDE2QXJyYXkpOgorICAgICAgICAqIHd0
Zi9JbnQzMkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OmdldFR5cGUpOgorICAg
ICAgICAoSW50MzJBcnJheSk6CisgICAgICAgICogd3RmL0ludDhBcnJheS5oOgorICAgICAgICAo
V1RGOjpJbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50OEFycmF5KToKKyAgICAgICAg
KiB3dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5
QmFzZS5oOgorICAgICAgICAoVHlwZWRBcnJheUJhc2UpOgorICAgICAgICAoV1RGOjpUeXBlZEFy
cmF5QmFzZTo6aXRlbSk6CisgICAgICAgICogd3RmL1VpbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OlVpbnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQxNkFycmF5KToKKyAgICAg
ICAgKiB3dGYvVWludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDMyQXJyYXk6OmdldFR5
cGUpOgorICAgICAgICAoVWludDMyQXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDhBcnJh
eSk6CisgICAgICAgICogd3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg6CisgICAgICAgIChXVEY6OlVp
bnQ4Q2xhbXBlZEFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQ4Q2xhbXBlZEFycmF5KToK
KwogMjAxMi0wNy0yNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gVGhlcmUgYXJlIHBhcmFsbGVsIEdDIHJlbGF0ZWQgY3Jhc2hlcyByZWd1bGFy
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhMDUzYjVhZGY5MmZlMWQzNTVjZDVlOTQ4OTg1YjU1MzllYjUxYjRh
Li5iMTIwOTE1ZWQzMjJmZjg5YTc3NmM5OWE5ZDgzN2UxMWM3YzIxY2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJA
c2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9t
IGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJyYXkgZnJvbSBh
biBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGFy
Z3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVudAorICAgICAg
ICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAuaXRlbSgpIG1l
dGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBhIEpTVmFsdWUs
IGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1hdGl2ZWx5IDN4
IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBlKS4KKworICAg
ICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIHVzZSB2aXJ0dWFsIGdldFR5cGUgbWV0
aG9kLiBXZSBjYW4gdXNlCisgICAgICAgIHRoaXMgaW5mb3JtYXRpb24gdG8gY2FzdCB0aGUgVHlw
ZWRBcnJheSB0byB0aGUgYWN0dWFsIHR5cGUsIGFuZCB0aGVuCisgICAgICAgIHJlYWQgdGhlIHZh
bHVlcyBmcm9tIHRoZSBzb3VyY2UuCisKKyAgICAgICAgSW50cm9kdWNlIGNvbnN0cnVjdEFycmF5
QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQgdGVtcGxhdGUKKyAgICAgICAgZnVuY3Rp
b24gd2hpY2ggcmV0dXJucyBhIG5ldyB0eXBlZCBhcnJheSBpZiBmaXJzdCBhcmd1bWVudCBpcyBh
IHR5cGVkCisgICAgICAgIGFycmF5LCBvciAwIG90aGVyd2lzZS4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gcmVwbGFjZXMgcHJldmlvdXMgaXM8VHlwZT5BcnJheSgpIGNhbGxzIHdpdGggbmV3
CisgICAgICAgIGdldFR5cGUgbWV0aG9kLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMv
RGF0YVZpZXcuaDoKKyAgICAgICAgKERhdGFWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFW
aWV3OjpnZXRUeXBlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZVRleEZ1bmNEYXRhKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5j
cHA6CisKIDIwMTItMDctMjUgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVuaWZ5IGNvbXBvc2l0b3IgcXVhZFRyYW5zZm9ybS9kcmF3VHJh
bnNmb3JtL29yaWdpblRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXJyYXlC
dWZmZXJWaWV3LmggYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaAppbmRleCA1ZWY0
ODI5MDgyYmYyZDM2Y2MyMWRiMTk0ZDVhYmE0MjA2NDA0YWFmLi40NTFjMWI2ZWQ5OWMxYWZiNjU5
NzYxYTc1NThmMTEzYTQ2ODQ1NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1
ZmZlclZpZXcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaApAQCAtMzgs
MTYgKzM4LDE5IEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEVf
UlRUSSBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+
IHsKICAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkQnl0ZUNsYW1w
ZWRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5z
aWduZWRTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRmxvYXRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBlbnVtIFZp
ZXdUeXBlIHsKKyAgICAgICAgVHlwZUludDgsCisgICAgICAgIFR5cGVVaW50OCwKKyAgICAgICAg
VHlwZVVpbnQ4Q2xhbXBlZCwKKyAgICAgICAgVHlwZUludDE2LAorICAgICAgICBUeXBlVWludDE2
LAorICAgICAgICBUeXBlSW50MzIsCisgICAgICAgIFR5cGVVaW50MzIsCisgICAgICAgIFR5cGVG
bG9hdDMyLAorICAgICAgICBUeXBlRmxvYXQ2NCwKKyAgICAgICAgVHlwZURhdGFWaWV3CisgICAg
fTsKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5
LmgKaW5kZXggNTVlNjFlMDA2NGQxNWE1MmEwNGE1ZTBmYTBjZmQ4NDlkMDgwMDRiNy4uZWJmNzlh
ZThhN2Q2MDg1Yzk2ZjllMDEyMmNmNTkwZjgzOTVmZjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRmxvYXQzMkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgK
QEAgLTQ4LDI3ICs0OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CiAgICAgfQogCi0g
ICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFu
Z2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5k
IHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5
QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKLSAgICAgICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJh
eUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLQogICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0
YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5
cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFR5cGVGbG9hdDMyOworICAgIH0KKwog
cHJpdmF0ZToKICAgICBpbmxpbmUgRmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJs
ZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxmbG9hdD47
Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwg
Ym9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0
Zi9GbG9hdDY0QXJyYXkuaAppbmRleCAzMDYzM2RiZWM1Y2E5ZTU5MDYzNWM0MDBlMmNiNzI2Y2U3
MWUxODRkLi4xNWFmMTYxMjMxYjQwMmFiMGVjMWE0ZDczNTc2NTYxOGYzMmQ1ZTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9G
bG9hdDY0QXJyYXkuaApAQCAtNDgsMjcgKzQ4LDIwIEBAIHB1YmxpYzoKICAgICAgICAgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGRvdWJsZT4odmFs
dWUpOwogICAgIH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2Vz
IG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUg
Zm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBk
b3VibGUgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
bmRleCA8IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVuZ3RoKTsKLSAgICAgICAgZG91Ymxl
IHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRleF07Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQ2NEFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEZs
b2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlw
ZUZsb2F0NjQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDY0QXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPGRvdWJsZT47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3
LgotICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKIAogUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBi
L1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaAppbmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2My
NzE4ZGE2MjYzMTVlNjhmZmM1Li41MGU5YWEzYTIwNmM4ZDA0YzU1YjFjNjcwZjY1MTAxMDk2MDUx
MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNl
L1dURi93dGYvSW50MTZBcnJheS5oCkBAIC00NSwxNSArNDUsMTcgQEAgcHVibGljOgogICAgIGlu
bGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAg
ICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gVHlwZUludDE2OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxp
bmUgSW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KICAg
ICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8c2hvcnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRl
biBmcm9tIEFycmF5QnVmZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oCmluZGV4IGNlNjg2
OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcxZDUuLmMyNjI0YzhjYTg4YTM3MzgxZTAw
NTI3ZGYzMGI1YzFmNjgzY2JmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludDMyQXJy
YXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKQEAgLTQ0LDE1ICs0NCwxNyBA
QCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRU
eXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50MzI7CisgICAgfQorCiBw
cml2YXRlOgogICAgIGlubGluZSBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAog
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1
cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGludD47Ci0KLSAgICAv
LyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc0lu
dEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQzMkFy
cmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaAppbmRl
eCA1NTRmNGFjYzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5lZDhiYTZmNWUzZDdm
YmRjZWI1M2JkNmZjZGY5MDI2NGQyOWUyMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9J
bnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAtNDYsMTUgKzQ2
LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBn
ZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50ODsKKyAgICB9CisK
IHByaXZhdGU6CiAgICAgaW5saW5lIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwK
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFy
PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVh
bCBib29sIGlzQnl0ZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1Jl
ZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9X
VEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAppbmRleCBmMjc2NDAwZjhkODc5OGI4NzJm
OWY3YjNkZjJmNTIzMmJmYWFkNTZlLi4yM2RiZGRlNWQ1YTIyM2Y5M2VjMTY1NDE4YzlhOWEzZTY3
MDcwMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCkBAIC01MCwx
NCArNTAsNiBAQCBjbGFzcyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJy
YXlCYXNlPFQ+IHsKICAgICAgICAgVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtpbmRleF0gPSBz
dGF0aWNfY2FzdDxUPihzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpOwogICAgIH0KIAotICAg
IC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdl
IGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCBy
ZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBUIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxU
Pjo6bV9sZW5ndGgpOwotICAgICAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtp
bmRleF07Ci0gICAgfQotCiAgIHByb3RlY3RlZDoKICAgICBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQogICAgICAgICA6IFR5cGVkQXJyYXlCYXNlPFQ+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2Uu
aCBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggNWVjN2ExOThhMWQ2Yzhm
ZjU2ZGI0M2ZlMWZmNzM0YzY4MWVlYjgxYi4uMTg1Y2Y3NzYyMzFjYjU5MTBiZTFkMjM2YzRmMTBm
MDhjYWM2OTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCkBAIC02NSw2ICs2NSwxNCBAQCBj
bGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBy
ZXR1cm4gbV9sZW5ndGggKiBzaXplb2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0
aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIK
KyAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmlu
ZWQgYXMgbmVjZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisK
IHByb3RlY3RlZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgOiBB
cnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgKaW5kZXgg
YzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJmZWM4NTc3Ni4uZjAwNDRmNjc3NWU0YjI0
YzZmM2Y0Y2I0Njk1NzQ2NDM5NWU1ZjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWlu
dDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZBcnJheS5oCkBAIC00NiwxNSAr
NDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3
VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDE2Owor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8v
IE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFz
cyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZy
b20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJh
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKaW5k
ZXggYTljZjZiMTUyMTgwNGE3MWE3MTIwYjdkZjAzMmUwNGY2ZTU2NTg1Yi4uMGUzNTU0NmUyNjk4
MGUwZTBmY2NjMDgxZjM3ZjQxYzFmNjZkNjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VWludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oCkBAIC00Niwx
NSArNDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBz
dWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBW
aWV3VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDMy
OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDMyQXJyYXkoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8g
TWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNz
IFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20g
QXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50
MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkx
NzI5ZDZiMDg2MmQ1MjNkOGRjZDcxNzU3NzJjZjE0NDNiNTczLi5mYzQ0MTdkOTgzYWZjZDUwNWRj
MmU0MzdmNDg1ZjRmNzJkODRkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFy
cmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oCkBAIC00NiwxNSArNDYsMTcg
QEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHN1YmFycmF5KGlu
dCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJy
YXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0
VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlwZVVpbnQ4OworICAgIH0KKwog
cHJvdGVjdGVkOgogICAgIGlubGluZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVm
ZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4
Q2xhbXBlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oCmluZGV4
IGQ5ZjgyNDkwYWM1NGU3NjhkN2NmMTljMzBmMjJjYmNjZjFmOTFlNzMuLjlhYzE1NjQ5MjQ0N2Ix
MGU0OTA3ZGMwZGYxNDcxN2ZkNWVhYjcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Vp
bnQ4Q2xhbXBlZEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVkQXJyYXku
aApAQCAtNTUsMTUgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFz
c1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gVHlwZVVpbnQ4Q2xhbXBlZDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5s
aW5lIFVpbnQ4Q2xhbXBlZEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3Ig
dmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBjaGFyPjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcu
Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gVWludDhD
bGFtcGVkQXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCBkZjllNDM5
MDY0MDRkNDg1ODg4MzhiMGI5NmY0ZTdkZGNkNWI5Yzg0Li43NmU2MTE2NmM1MTk1ZGE4ODRjNTg3
YTdhMTI4ZTAxYzQyYzRkNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCisjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3Qu
aD4KQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5o
PgorI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5QmFzZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTg2LDYgKzg4LDcyIEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJHTEFycmF5SGVscGVyKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBUKiBpbXBsLCBUKiAoKmNvbnZlcnNpb25GCiAvLyBUZW1wbGF0
ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgogLy8gSWYgdGhpcyByZXR1
cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEphdmFTY3JpcHQgZXhjZXB0aW9u
LgogdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzb3VyY2UgPSB0b0FycmF5QnVmZmVy
VmlldyhleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVy
biAwOworCisgICAgQXJyYXlCdWZmZXJWaWV3OjpWaWV3VHlwZSBzb3VyY2VUeXBlID0gc291cmNl
LT5nZXRUeXBlKCk7CisgICAgaWYgKHNvdXJjZVR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBl
RGF0YVZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgdWludDMyX3QgbGVuZ3RoID0gYXNP
YmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMs
ICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAgUmVmUHRyPEM+IGFycmF5ID0gQzo6Y3Jl
YXRlKGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisg
ICAgaWYgKGFycmF5LT5nZXRUeXBlKCkgPT0gc291cmNlVHlwZSkgeworICAgICAgICBtZW1jcHko
YXJyYXktPmJhc2VBZGRyZXNzKCksIHNvdXJjZS0+YmFzZUFkZHJlc3MoKSwgbGVuZ3RoICogc2l6
ZW9mKFQpKTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIHN3aXRjaCAoc291
cmNlVHlwZSkgeworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50ODoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+ICo+KHNv
dXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50ODoKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4
Q2xhbXBlZDoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZUludDE2OgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGks
IChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxzaWduZWQgc2hvcnQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MzI6CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5
LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGludD4gKj4oc291cmNlLmdl
dCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMjoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKQorICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJh
eUJhc2U8dW5zaWduZWQgaW50PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlRmxvYXQzMjoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8ZmxvYXQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVGbG9hdDY0OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFy
cmF5QmFzZTxkb3VibGU+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJu
IGFycmF5OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3Ry
dWN0b3JzLgorLy8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93
biBhIEphdmFTY3JpcHQgZXhjZXB0aW9uLgordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4K
IFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJn
dW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIgPSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsKQEAgLTEzOCw2ICsyMDYs
MTAgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAg
ICAgCisgICAgICAgIHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJh
eUFyZ3VtZW50PEMsIFQ+KGV4ZWMpOworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHJl
dHVybiB2aWV3OworCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIHNyY0FycmF5ID0gYXNPYmplY3Qo
ZXhlYy0+YXJndW1lbnQoMCkpOwogICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+
Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMp
OwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUobGVuZ3RoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IGRlMjJlMjllZTZkOTY2YTk4OWFkNjQ3MTUxYzBlY2EyZTcwODcyOTcuLjhjOGY1NTcyMTEz
YTI2MjM3NjM1ZDljZjhlZmJhYjk1MGUzMDdiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNDEyLDI1ICs0MTIs
MjcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGFycmF5QnVmZmVyLmRhdGEoKSkgKyBhcnJheUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpID09CiAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJWaWV3
LmJhc2VBZGRyZXNzKCkpKTsKICNlbmRpZgotICAgICAgICBpZiAoYXJyYXlCdWZmZXJWaWV3Lmlz
Qnl0ZUFycmF5KCkpCisgICAgICAgIEFycmF5QnVmZmVyVmlldzo6Vmlld1R5cGUgdHlwZSA9IGFy
cmF5QnVmZmVydmlldy0+Z2V0VHlwZSgpOworCisgICAgICAgIGlmICh0eXBlID09IEFycmF5QnVm
ZmVyVmlldzo6VHlwZUludDgpCiAgICAgICAgICAgICBhcHBlbmQoQnl0ZUFycmF5VGFnKTsKLSAg
ICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5
KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVUludDhD
bGFtcGVkKQogICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkQnl0ZUNsYW1wZWRBcnJheVRhZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkp
CisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVUludDgpCiAg
ICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRCeXRlQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlm
IChhcnJheUJ1ZmZlclZpZXcuaXNTaG9ydEFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUg
PT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MTYpCiAgICAgICAgICAgICBhcHBlbmQoU2hvcnRB
cnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKQorICAgICAgICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlw
ZVVpbnQxNikKICAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZFNob3J0QXJyYXlUYWcpOwotICAg
ICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNJbnRBcnJheSgpKQorICAgICAgICBlbHNl
IGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUludDMyKQogICAgICAgICAgICAgYXBw
ZW5kKEludEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5z
aWduZWRJbnRBcnJheSgpKQorICAgICAgICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMikKICAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZEludEFycmF5VGFnKTsK
LSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRmxvYXRBcnJheSgpKQorICAgICAg
ICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUZsb2F0MzIpCiAgICAgICAg
ICAgICBhcHBlbmQoRmxvYXRBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVy
Vmlldy5pc0RvdWJsZUFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZm
ZXJWaWV3OjpUeXBlRmxvYXQ2NCkKICAgICAgICAgICAgIGFwcGVuZChEb3VibGVBcnJheVRhZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RhdGFWaWV3KCkpCisgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlRGF0YVZpZXcpCiAgICAgICAg
ICAgICBhcHBlbmQoRGF0YVZpZXdUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCmluZGV4
IDYzYjE1NmQzZDJkZGZhZWE0NmNmNTRkYmE5YzhiM2RhZTkzN2E0MzQuLjAwZDU2ZDhmMTg3Zjlm
OTZlN2ZkMGI3NDU4YjdkMjQ4NDBiZDUwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0
YVZpZXcuaApAQCAtMzgsNyArMzgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YVZpZXc+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogCi0gICAgdmlydHVhbCBib29sIGlzRGF0YVZp
ZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5
dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzbGljZShpbnQsIGludCkgY29uc3QgeyByZXR1cm4g
MDsgfQpAQCAtNzMsNiArNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmxvYXQ2NCh1bnNp
Z25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEZs
b2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KICAgICB2b2lkIHNldEZsb2F0
NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYpOwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRUeXBlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBUeXBlRGF0YVZpZXc7CisgICAgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3NmY2YmUwODVmYzE4
MGQxZDk2YzI4OGMwODNlZjhlZjEzY2UzNDcxLi4zMmYzNWIxZWIyNjA0ZDgzNTViN2NiOTVkYTE0
Zjc0NjY5ZjQ0MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTMyNzgsNyArMzI3OCw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxzKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6
ZWkgd2lkdGgsIEdDCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gVmFsaWRhdGUgYXJy
YXkgdHlwZSBhZ2FpbnN0IHBpeGVsIHR5cGUuCi0gICAgaWYgKCFwaXhlbHMtPmlzVW5zaWduZWRC
eXRlQXJyYXkoKSkgeworICAgIGlmIChwaXhlbHMtPmdldFR5cGUoKSAhPSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50OCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJyZWFkUGl4ZWxzIiwgIkFycmF5QnVmZmVyVmlldyBu
b3QgVWludDhBcnJheSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDkzNCw3ICs0OTM0
LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0RhdGEoY29u
c3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEaW4KIAogICAgIHN3aXRjaCAodHlwZSkgewogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEU6Ci0gICAgICAgIGlmICghcGl4
ZWxzLT5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlw
ZSgpICE9IEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4KSB7CiAgICAgICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sIGZ1bmN0aW9u
TmFtZSwgInR5cGUgVU5TSUdORURfQllURSBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBVaW50OEFy
cmF5Iik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTQ5NDIsMTMg
KzQ5NDIsMTMgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0Rh
dGEoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEaW4KICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9TSE9SVF80XzRfNF80OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX1NIT1JUXzVfNV81XzE6Ci0gICAgICAgIGlmICghcGl4ZWxzLT5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKSB7CisgICAgICAgIGlmIChwaXhlbHMtPmdldFR5cGUoKSAhPSBBcnJheUJ1ZmZl
clZpZXc6OlR5cGVVaW50MTYpIHsKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAidHlwZSBVTlNJ
R05FRF9TSE9SVCBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBVaW50MTZBcnJheSIpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOiAvLyBPRVNfdGV4dHVyZV9mbG9hdAotICAgICAgICBp
ZiAoIXBpeGVscy0+aXNGbG9hdEFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlw
ZSgpICE9IEFycmF5QnVmZmVyVmlldzo6VHlwZUZsb2F0MzIpIHsKICAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rp
b25OYW1lLCAidHlwZSBGTE9BVCBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBGbG9hdDMyQXJyYXki
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
Y3BwCmluZGV4IDk4NjU4NGQxODg5MGQ0Yjg2ZjU3MWU5ZmJhYTMyNjMxNWYyOTVlM2IuLmUzODM1
MGFiMTkyZDNmMDczYTVlNGMzMDA1ZWVjZmE3OGRmZTIyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJDcnlwdG8uaCIKIAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgorI2luY2x1ZGUgPHd0
Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsMTMgKzQwLDE0IEBAIG5h
bWVzcGFjZSB7CiAKIGJvb2wgaXNJbnRlZ2VyQXJyYXkoQXJyYXlCdWZmZXJWaWV3KiBhcnJheSkK
IHsKLSAgICByZXR1cm4gYXJyYXktPmlzQnl0ZUFycmF5KCkKLSAgICAgICAgfHwgYXJyYXktPmlz
VW5zaWduZWRCeXRlQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNVbnNpZ25lZEJ5dGVDbGFt
cGVkQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNTaG9ydEFycmF5KCkKLSAgICAgICAgfHwg
YXJyYXktPmlzVW5zaWduZWRTaG9ydEFycmF5KCkKLSAgICAgICAgfHwgYXJyYXktPmlzSW50QXJy
YXkoKQotICAgICAgICB8fCBhcnJheS0+aXNVbnNpZ25lZEludEFycmF5KCk7CisgICAgQXJyYXlC
dWZmZXJWaWV3OjpWaWV3VHlwZSB0eXBlID0gYXJyYXktPmdldFR5cGUoKTsKKyAgICByZXR1cm4g
dHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVJbnQ4CisgICAgICAgICAgIHx8IHR5cGUgPT0g
QXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDgKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50OENsYW1wZWQKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVJbnQxNgorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQxNgorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlw
ZUludDMyCisgICAgICAgICAgIHx8IHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDMy
OwogfQogCiB9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFy
cmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDQ2NDE3NmI4MGExNTNjMmY0MzA3N2ZiNjVjMTMyZTI1YzY1MGNhCi0tLSAvZGV2L251bGwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJv
bS1zYW1lLXR5cGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKwordmFyIGxlbmd0aCA9IDEwMDAwMDAwOwordmFyIHNvdXJjZSA9IG5ldyBVaW50OEFycmF5
KGxlbmd0aCk7Citmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgc291cmNl
W2ldID0gaTsKK30KKworUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciB0
YXJnZXQgPSBuZXcgVWludDhBcnJheShzb3VyY2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3Ry
dWN0LWZyb20tdHlwZWQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJy
YXktY29uc3RydWN0LWZyb20tdHlwZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmNlOWY3OWFiN2U5YWFm
Y2UwZmQwYmQzMTAxNGMxY2ZlY2EyZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgbGVuZ3RoID0gMTAw
MDAwMDA7Cit2YXIgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBzb3VyY2VbaV0gPSBpOworfQorCitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IG5ldyBGbG9hdDY0QXJy
YXkoc291cmNlKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVi
ODIzMjhiNDk3YWUyY2RiZmRmZDg3MWJmMGM3NTZiMzIyYmVmMjEuLjA4ZWMzZjllYjhkMmNmYmU5
MTcwNmNhMjUzZTY4MzZjM2RiNjhkZjEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNv
bT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlwZWRB
cnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIEJpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5
cGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEFkZCBzb21lIEphcGFuZXNlIGFuZCBTd2VkaXNoIHdlYnNpdGVz
IHRvIHJlcGxheSB0ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154453</attachid>
            <date>2012-07-25 14:59:18 -0700</date>
            <delta_ts>2012-07-25 15:08:49 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-90838-20120725145908.patch</filename>
            <type>text/plain</type>
            <size>28688</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmZjEyNjJjM2NmOGRkMGJiZDJmYzZm
MTAwMzE1ODk1NTM4YjkxM2EuLjY2NjhiZTA1ZWJhZjFmYjczZGYxNWI3OWY2MGEzZDhiMmNhZTVm
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSB2aXJ0dWFsIG1ldGhvZCBnZXRU
eXBlIG9uIEFycmF5QnVmZmVyVmlldy4gSXQgcmV0dXJucyB0aGUgYWN0dWFsCisgICAgICAgIHR5
cGUgb2YgdGhlIHZpZXcuIFRoaXMgbWV0aG9kIHJlcGxhY2VzIHByZXZpb3VzIGlzPFR5cGU+QXJy
YXkoKSBtZXRob2RzLgorCisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5oOgorICAgICAg
ICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5OjpnZXRU
eXBlKToKKyAgICAgICAgKEZsb2F0MzJBcnJheSk6CisgICAgICAgICogd3RmL0Zsb2F0NjRBcnJh
eS5oOgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoRmxv
YXQ2NEFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOgorICAgICAgICAoV1RGOjpJ
bnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKEludDE2QXJyYXkpOgorICAgICAgICAqIHd0
Zi9JbnQzMkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OmdldFR5cGUpOgorICAg
ICAgICAoSW50MzJBcnJheSk6CisgICAgICAgICogd3RmL0ludDhBcnJheS5oOgorICAgICAgICAo
V1RGOjpJbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50OEFycmF5KToKKyAgICAgICAg
KiB3dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5
QmFzZS5oOgorICAgICAgICAoVHlwZWRBcnJheUJhc2UpOgorICAgICAgICAoV1RGOjpUeXBlZEFy
cmF5QmFzZTo6aXRlbSk6CisgICAgICAgICogd3RmL1VpbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OlVpbnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQxNkFycmF5KToKKyAgICAg
ICAgKiB3dGYvVWludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDMyQXJyYXk6OmdldFR5
cGUpOgorICAgICAgICAoVWludDMyQXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDhBcnJh
eSk6CisgICAgICAgICogd3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg6CisgICAgICAgIChXVEY6OlVp
bnQ4Q2xhbXBlZEFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQ4Q2xhbXBlZEFycmF5KToK
KwogMjAxMi0wNy0yNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gVGhlcmUgYXJlIHBhcmFsbGVsIEdDIHJlbGF0ZWQgY3Jhc2hlcyByZWd1bGFy
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhMDUzYjVhZGY5MmZlMWQzNTVjZDVlOTQ4OTg1YjU1MzllYjUxYjRh
Li5iMTIwOTE1ZWQzMjJmZjg5YTc3NmM5OWE5ZDgzN2UxMWM3YzIxY2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJA
c2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9t
IGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJyYXkgZnJvbSBh
biBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGFy
Z3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVudAorICAgICAg
ICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAuaXRlbSgpIG1l
dGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBhIEpTVmFsdWUs
IGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1hdGl2ZWx5IDN4
IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBlKS4KKworICAg
ICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIHVzZSB2aXJ0dWFsIGdldFR5cGUgbWV0
aG9kLiBXZSBjYW4gdXNlCisgICAgICAgIHRoaXMgaW5mb3JtYXRpb24gdG8gY2FzdCB0aGUgVHlw
ZWRBcnJheSB0byB0aGUgYWN0dWFsIHR5cGUsIGFuZCB0aGVuCisgICAgICAgIHJlYWQgdGhlIHZh
bHVlcyBmcm9tIHRoZSBzb3VyY2UuCisKKyAgICAgICAgSW50cm9kdWNlIGNvbnN0cnVjdEFycmF5
QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQgdGVtcGxhdGUKKyAgICAgICAgZnVuY3Rp
b24gd2hpY2ggcmV0dXJucyBhIG5ldyB0eXBlZCBhcnJheSBpZiBmaXJzdCBhcmd1bWVudCBpcyBh
IHR5cGVkCisgICAgICAgIGFycmF5LCBvciAwIG90aGVyd2lzZS4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gcmVwbGFjZXMgcHJldmlvdXMgaXM8VHlwZT5BcnJheSgpIGNhbGxzIHdpdGggbmV3
CisgICAgICAgIGdldFR5cGUgbWV0aG9kLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMv
RGF0YVZpZXcuaDoKKyAgICAgICAgKERhdGFWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFW
aWV3OjpnZXRUeXBlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZVRleEZ1bmNEYXRhKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5j
cHA6CisKIDIwMTItMDctMjUgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVuaWZ5IGNvbXBvc2l0b3IgcXVhZFRyYW5zZm9ybS9kcmF3VHJh
bnNmb3JtL29yaWdpblRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXJyYXlC
dWZmZXJWaWV3LmggYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaAppbmRleCA1ZWY0
ODI5MDgyYmYyZDM2Y2MyMWRiMTk0ZDVhYmE0MjA2NDA0YWFmLi40NTFjMWI2ZWQ5OWMxYWZiNjU5
NzYxYTc1NThmMTEzYTQ2ODQ1NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1
ZmZlclZpZXcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaApAQCAtMzgs
MTYgKzM4LDE5IEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEVf
UlRUSSBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+
IHsKICAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkQnl0ZUNsYW1w
ZWRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5z
aWduZWRTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRmxvYXRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBlbnVtIFZp
ZXdUeXBlIHsKKyAgICAgICAgVHlwZUludDgsCisgICAgICAgIFR5cGVVaW50OCwKKyAgICAgICAg
VHlwZVVpbnQ4Q2xhbXBlZCwKKyAgICAgICAgVHlwZUludDE2LAorICAgICAgICBUeXBlVWludDE2
LAorICAgICAgICBUeXBlSW50MzIsCisgICAgICAgIFR5cGVVaW50MzIsCisgICAgICAgIFR5cGVG
bG9hdDMyLAorICAgICAgICBUeXBlRmxvYXQ2NCwKKyAgICAgICAgVHlwZURhdGFWaWV3CisgICAg
fTsKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5
LmgKaW5kZXggNTVlNjFlMDA2NGQxNWE1MmEwNGE1ZTBmYTBjZmQ4NDlkMDgwMDRiNy4uZWJmNzlh
ZThhN2Q2MDg1Yzk2ZjllMDEyMmNmNTkwZjgzOTVmZjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRmxvYXQzMkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgK
QEAgLTQ4LDI3ICs0OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CiAgICAgfQogCi0g
ICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFu
Z2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5k
IHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5
QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKLSAgICAgICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJh
eUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLQogICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0
YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5
cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFR5cGVGbG9hdDMyOworICAgIH0KKwog
cHJpdmF0ZToKICAgICBpbmxpbmUgRmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJs
ZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxmbG9hdD47
Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwg
Ym9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0
Zi9GbG9hdDY0QXJyYXkuaAppbmRleCAzMDYzM2RiZWM1Y2E5ZTU5MDYzNWM0MDBlMmNiNzI2Y2U3
MWUxODRkLi4xNWFmMTYxMjMxYjQwMmFiMGVjMWE0ZDczNTc2NTYxOGYzMmQ1ZTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9G
bG9hdDY0QXJyYXkuaApAQCAtNDgsMjcgKzQ4LDIwIEBAIHB1YmxpYzoKICAgICAgICAgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGRvdWJsZT4odmFs
dWUpOwogICAgIH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2Vz
IG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUg
Zm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBk
b3VibGUgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
bmRleCA8IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVuZ3RoKTsKLSAgICAgICAgZG91Ymxl
IHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRleF07Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQ2NEFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEZs
b2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlw
ZUZsb2F0NjQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDY0QXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPGRvdWJsZT47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3
LgotICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKIAogUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBi
L1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaAppbmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2My
NzE4ZGE2MjYzMTVlNjhmZmM1Li41MGU5YWEzYTIwNmM4ZDA0YzU1YjFjNjcwZjY1MTAxMDk2MDUx
MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNl
L1dURi93dGYvSW50MTZBcnJheS5oCkBAIC00NSwxNSArNDUsMTcgQEAgcHVibGljOgogICAgIGlu
bGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAg
ICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gVHlwZUludDE2OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxp
bmUgSW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KICAg
ICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8c2hvcnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRl
biBmcm9tIEFycmF5QnVmZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oCmluZGV4IGNlNjg2
OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcxZDUuLmMyNjI0YzhjYTg4YTM3MzgxZTAw
NTI3ZGYzMGI1YzFmNjgzY2JmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludDMyQXJy
YXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKQEAgLTQ0LDE1ICs0NCwxNyBA
QCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRU
eXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50MzI7CisgICAgfQorCiBw
cml2YXRlOgogICAgIGlubGluZSBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAog
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1
cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGludD47Ci0KLSAgICAv
LyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc0lu
dEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQzMkFy
cmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaAppbmRl
eCA1NTRmNGFjYzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5lZDhiYTZmNWUzZDdm
YmRjZWI1M2JkNmZjZGY5MDI2NGQyOWUyMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9J
bnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAtNDYsMTUgKzQ2
LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBn
ZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50ODsKKyAgICB9CisK
IHByaXZhdGU6CiAgICAgaW5saW5lIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwK
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFy
PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVh
bCBib29sIGlzQnl0ZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1Jl
ZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9X
VEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAppbmRleCBmMjc2NDAwZjhkODc5OGI4NzJm
OWY3YjNkZjJmNTIzMmJmYWFkNTZlLi4yM2RiZGRlNWQ1YTIyM2Y5M2VjMTY1NDE4YzlhOWEzZTY3
MDcwMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCkBAIC01MCwx
NCArNTAsNiBAQCBjbGFzcyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJy
YXlCYXNlPFQ+IHsKICAgICAgICAgVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtpbmRleF0gPSBz
dGF0aWNfY2FzdDxUPihzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpOwogICAgIH0KIAotICAg
IC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdl
IGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCBy
ZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBUIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxU
Pjo6bV9sZW5ndGgpOwotICAgICAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtp
bmRleF07Ci0gICAgfQotCiAgIHByb3RlY3RlZDoKICAgICBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQogICAgICAgICA6IFR5cGVkQXJyYXlCYXNlPFQ+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2Uu
aCBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggNWVjN2ExOThhMWQ2Yzhm
ZjU2ZGI0M2ZlMWZmNzM0YzY4MWVlYjgxYi4uMTg1Y2Y3NzYyMzFjYjU5MTBiZTFkMjM2YzRmMTBm
MDhjYWM2OTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCkBAIC02NSw2ICs2NSwxNCBAQCBj
bGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBy
ZXR1cm4gbV9sZW5ndGggKiBzaXplb2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0
aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIK
KyAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmlu
ZWQgYXMgbmVjZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisK
IHByb3RlY3RlZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgOiBB
cnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgKaW5kZXgg
YzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJmZWM4NTc3Ni4uZjAwNDRmNjc3NWU0YjI0
YzZmM2Y0Y2I0Njk1NzQ2NDM5NWU1ZjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWlu
dDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZBcnJheS5oCkBAIC00NiwxNSAr
NDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3
VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDE2Owor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8v
IE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFz
cyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZy
b20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJh
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKaW5k
ZXggYTljZjZiMTUyMTgwNGE3MWE3MTIwYjdkZjAzMmUwNGY2ZTU2NTg1Yi4uMGUzNTU0NmUyNjk4
MGUwZTBmY2NjMDgxZjM3ZjQxYzFmNjZkNjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VWludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oCkBAIC00Niwx
NSArNDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBz
dWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBW
aWV3VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDMy
OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDMyQXJyYXkoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8g
TWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNz
IFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20g
QXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50
MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkx
NzI5ZDZiMDg2MmQ1MjNkOGRjZDcxNzU3NzJjZjE0NDNiNTczLi5mYzQ0MTdkOTgzYWZjZDUwNWRj
MmU0MzdmNDg1ZjRmNzJkODRkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFy
cmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oCkBAIC00NiwxNSArNDYsMTcg
QEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHN1YmFycmF5KGlu
dCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJy
YXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0
VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlwZVVpbnQ4OworICAgIH0KKwog
cHJvdGVjdGVkOgogICAgIGlubGluZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVm
ZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4
Q2xhbXBlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oCmluZGV4
IGQ5ZjgyNDkwYWM1NGU3NjhkN2NmMTljMzBmMjJjYmNjZjFmOTFlNzMuLjlhYzE1NjQ5MjQ0N2Ix
MGU0OTA3ZGMwZGYxNDcxN2ZkNWVhYjcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Vp
bnQ4Q2xhbXBlZEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVkQXJyYXku
aApAQCAtNTUsMTUgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFz
c1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gVHlwZVVpbnQ4Q2xhbXBlZDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5s
aW5lIFVpbnQ4Q2xhbXBlZEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3Ig
dmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBjaGFyPjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcu
Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gVWludDhD
bGFtcGVkQXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCBkZjllNDM5
MDY0MDRkNDg1ODg4MzhiMGI5NmY0ZTdkZGNkNWI5Yzg0Li43NmU2MTE2NmM1MTk1ZGE4ODRjNTg3
YTdhMTI4ZTAxYzQyYzRkNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCisjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3Qu
aD4KQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5o
PgorI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5QmFzZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTg2LDYgKzg4LDcyIEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJHTEFycmF5SGVscGVyKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBUKiBpbXBsLCBUKiAoKmNvbnZlcnNpb25GCiAvLyBUZW1wbGF0
ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgogLy8gSWYgdGhpcyByZXR1
cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEphdmFTY3JpcHQgZXhjZXB0aW9u
LgogdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzb3VyY2UgPSB0b0FycmF5QnVmZmVy
VmlldyhleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVy
biAwOworCisgICAgQXJyYXlCdWZmZXJWaWV3OjpWaWV3VHlwZSBzb3VyY2VUeXBlID0gc291cmNl
LT5nZXRUeXBlKCk7CisgICAgaWYgKHNvdXJjZVR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBl
RGF0YVZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgdWludDMyX3QgbGVuZ3RoID0gYXNP
YmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMs
ICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAgUmVmUHRyPEM+IGFycmF5ID0gQzo6Y3Jl
YXRlKGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisg
ICAgaWYgKGFycmF5LT5nZXRUeXBlKCkgPT0gc291cmNlVHlwZSkgeworICAgICAgICBtZW1jcHko
YXJyYXktPmJhc2VBZGRyZXNzKCksIHNvdXJjZS0+YmFzZUFkZHJlc3MoKSwgbGVuZ3RoICogc2l6
ZW9mKFQpKTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIHN3aXRjaCAoc291
cmNlVHlwZSkgeworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50ODoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+ICo+KHNv
dXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50ODoKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4
Q2xhbXBlZDoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZUludDE2OgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGks
IChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxzaWduZWQgc2hvcnQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MzI6CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5
LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGludD4gKj4oc291cmNlLmdl
dCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMjoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKQorICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJh
eUJhc2U8dW5zaWduZWQgaW50PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlRmxvYXQzMjoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8ZmxvYXQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVGbG9hdDY0OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFy
cmF5QmFzZTxkb3VibGU+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJu
IGFycmF5OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3Ry
dWN0b3JzLgorLy8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93
biBhIEphdmFTY3JpcHQgZXhjZXB0aW9uLgordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4K
IFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJn
dW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIgPSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsKQEAgLTEzOCw2ICsyMDYs
MTAgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAg
ICAgCisgICAgICAgIHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJh
eUFyZ3VtZW50PEMsIFQ+KGV4ZWMpOworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHJl
dHVybiB2aWV3OworCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIHNyY0FycmF5ID0gYXNPYmplY3Qo
ZXhlYy0+YXJndW1lbnQoMCkpOwogICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+
Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMp
OwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUobGVuZ3RoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IGRlMjJlMjllZTZkOTY2YTk4OWFkNjQ3MTUxYzBlY2EyZTcwODcyOTcuLjFiZmYyMjhiMmFh
Y2IzMTIyZDgwZWFjMTE5Y2U2N2VlMzkyNWYyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNDEyLDI1ICs0MTIs
MjcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGFycmF5QnVmZmVyLmRhdGEoKSkgKyBhcnJheUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpID09CiAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJWaWV3
LmJhc2VBZGRyZXNzKCkpKTsKICNlbmRpZgotICAgICAgICBpZiAoYXJyYXlCdWZmZXJWaWV3Lmlz
Qnl0ZUFycmF5KCkpCisgICAgICAgIEFycmF5QnVmZmVyVmlldzo6Vmlld1R5cGUgdHlwZSA9IGFy
cmF5QnVmZmVydmlldy0+Z2V0VHlwZSgpOworCisgICAgICAgIGlmICh0eXBlID09IEFycmF5QnVm
ZmVyVmlldzo6VHlwZUludDgpCiAgICAgICAgICAgICBhcHBlbmQoQnl0ZUFycmF5VGFnKTsKLSAg
ICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5
KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDhD
bGFtcGVkKQogICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkQnl0ZUNsYW1wZWRBcnJheVRhZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkp
CisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDgpCiAg
ICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRCeXRlQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlm
IChhcnJheUJ1ZmZlclZpZXcuaXNTaG9ydEFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUg
PT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MTYpCiAgICAgICAgICAgICBhcHBlbmQoU2hvcnRB
cnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKQorICAgICAgICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlw
ZVVpbnQxNikKICAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZFNob3J0QXJyYXlUYWcpOwotICAg
ICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNJbnRBcnJheSgpKQorICAgICAgICBlbHNl
IGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUludDMyKQogICAgICAgICAgICAgYXBw
ZW5kKEludEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5z
aWduZWRJbnRBcnJheSgpKQorICAgICAgICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMikKICAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZEludEFycmF5VGFnKTsK
LSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRmxvYXRBcnJheSgpKQorICAgICAg
ICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUZsb2F0MzIpCiAgICAgICAg
ICAgICBhcHBlbmQoRmxvYXRBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVy
Vmlldy5pc0RvdWJsZUFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZm
ZXJWaWV3OjpUeXBlRmxvYXQ2NCkKICAgICAgICAgICAgIGFwcGVuZChEb3VibGVBcnJheVRhZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RhdGFWaWV3KCkpCisgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlRGF0YVZpZXcpCiAgICAgICAg
ICAgICBhcHBlbmQoRGF0YVZpZXdUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCmluZGV4
IDYzYjE1NmQzZDJkZGZhZWE0NmNmNTRkYmE5YzhiM2RhZTkzN2E0MzQuLjAwZDU2ZDhmMTg3Zjlm
OTZlN2ZkMGI3NDU4YjdkMjQ4NDBiZDUwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0
YVZpZXcuaApAQCAtMzgsNyArMzgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YVZpZXc+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogCi0gICAgdmlydHVhbCBib29sIGlzRGF0YVZp
ZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5
dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzbGljZShpbnQsIGludCkgY29uc3QgeyByZXR1cm4g
MDsgfQpAQCAtNzMsNiArNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmxvYXQ2NCh1bnNp
Z25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEZs
b2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KICAgICB2b2lkIHNldEZsb2F0
NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYpOwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRUeXBlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBUeXBlRGF0YVZpZXc7CisgICAgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3NmY2YmUwODVmYzE4
MGQxZDk2YzI4OGMwODNlZjhlZjEzY2UzNDcxLi4zMmYzNWIxZWIyNjA0ZDgzNTViN2NiOTVkYTE0
Zjc0NjY5ZjQ0MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTMyNzgsNyArMzI3OCw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxzKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6
ZWkgd2lkdGgsIEdDCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gVmFsaWRhdGUgYXJy
YXkgdHlwZSBhZ2FpbnN0IHBpeGVsIHR5cGUuCi0gICAgaWYgKCFwaXhlbHMtPmlzVW5zaWduZWRC
eXRlQXJyYXkoKSkgeworICAgIGlmIChwaXhlbHMtPmdldFR5cGUoKSAhPSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50OCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJyZWFkUGl4ZWxzIiwgIkFycmF5QnVmZmVyVmlldyBu
b3QgVWludDhBcnJheSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDkzNCw3ICs0OTM0
LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0RhdGEoY29u
c3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEaW4KIAogICAgIHN3aXRjaCAodHlwZSkgewogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEU6Ci0gICAgICAgIGlmICghcGl4
ZWxzLT5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlw
ZSgpICE9IEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4KSB7CiAgICAgICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sIGZ1bmN0aW9u
TmFtZSwgInR5cGUgVU5TSUdORURfQllURSBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBVaW50OEFy
cmF5Iik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTQ5NDIsMTMg
KzQ5NDIsMTMgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0Rh
dGEoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEaW4KICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9TSE9SVF80XzRfNF80OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX1NIT1JUXzVfNV81XzE6Ci0gICAgICAgIGlmICghcGl4ZWxzLT5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKSB7CisgICAgICAgIGlmIChwaXhlbHMtPmdldFR5cGUoKSAhPSBBcnJheUJ1ZmZl
clZpZXc6OlR5cGVVaW50MTYpIHsKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAidHlwZSBVTlNJ
R05FRF9TSE9SVCBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBVaW50MTZBcnJheSIpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOiAvLyBPRVNfdGV4dHVyZV9mbG9hdAotICAgICAgICBp
ZiAoIXBpeGVscy0+aXNGbG9hdEFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlw
ZSgpICE9IEFycmF5QnVmZmVyVmlldzo6VHlwZUZsb2F0MzIpIHsKICAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rp
b25OYW1lLCAidHlwZSBGTE9BVCBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBGbG9hdDMyQXJyYXki
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
Y3BwCmluZGV4IDk4NjU4NGQxODg5MGQ0Yjg2ZjU3MWU5ZmJhYTMyNjMxNWYyOTVlM2IuLmUzODM1
MGFiMTkyZDNmMDczYTVlNGMzMDA1ZWVjZmE3OGRmZTIyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJDcnlwdG8uaCIKIAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgorI2luY2x1ZGUgPHd0
Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsMTMgKzQwLDE0IEBAIG5h
bWVzcGFjZSB7CiAKIGJvb2wgaXNJbnRlZ2VyQXJyYXkoQXJyYXlCdWZmZXJWaWV3KiBhcnJheSkK
IHsKLSAgICByZXR1cm4gYXJyYXktPmlzQnl0ZUFycmF5KCkKLSAgICAgICAgfHwgYXJyYXktPmlz
VW5zaWduZWRCeXRlQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNVbnNpZ25lZEJ5dGVDbGFt
cGVkQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNTaG9ydEFycmF5KCkKLSAgICAgICAgfHwg
YXJyYXktPmlzVW5zaWduZWRTaG9ydEFycmF5KCkKLSAgICAgICAgfHwgYXJyYXktPmlzSW50QXJy
YXkoKQotICAgICAgICB8fCBhcnJheS0+aXNVbnNpZ25lZEludEFycmF5KCk7CisgICAgQXJyYXlC
dWZmZXJWaWV3OjpWaWV3VHlwZSB0eXBlID0gYXJyYXktPmdldFR5cGUoKTsKKyAgICByZXR1cm4g
dHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVJbnQ4CisgICAgICAgICAgIHx8IHR5cGUgPT0g
QXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDgKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50OENsYW1wZWQKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVJbnQxNgorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQxNgorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlw
ZUludDMyCisgICAgICAgICAgIHx8IHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDMy
OwogfQogCiB9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFy
cmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDQ2NDE3NmI4MGExNTNjMmY0MzA3N2ZiNjVjMTMyZTI1YzY1MGNhCi0tLSAvZGV2L251bGwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJv
bS1zYW1lLXR5cGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKwordmFyIGxlbmd0aCA9IDEwMDAwMDAwOwordmFyIHNvdXJjZSA9IG5ldyBVaW50OEFycmF5
KGxlbmd0aCk7Citmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgc291cmNl
W2ldID0gaTsKK30KKworUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciB0
YXJnZXQgPSBuZXcgVWludDhBcnJheShzb3VyY2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3Ry
dWN0LWZyb20tdHlwZWQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJy
YXktY29uc3RydWN0LWZyb20tdHlwZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmNlOWY3OWFiN2U5YWFm
Y2UwZmQwYmQzMTAxNGMxY2ZlY2EyZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgbGVuZ3RoID0gMTAw
MDAwMDA7Cit2YXIgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBzb3VyY2VbaV0gPSBpOworfQorCitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IG5ldyBGbG9hdDY0QXJy
YXkoc291cmNlKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVi
ODIzMjhiNDk3YWUyY2RiZmRmZDg3MWJmMGM3NTZiMzIyYmVmMjEuLjA4ZWMzZjllYjhkMmNmYmU5
MTcwNmNhMjUzZTY4MzZjM2RiNjhkZjEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNv
bT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlwZWRB
cnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIEJpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5
cGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEFkZCBzb21lIEphcGFuZXNlIGFuZCBTd2VkaXNoIHdlYnNpdGVz
IHRvIHJlcGxheSB0ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154456</attachid>
            <date>2012-07-25 15:08:55 -0700</date>
            <delta_ts>2012-07-26 13:32:36 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-90838-20120725150845.patch</filename>
            <type>text/plain</type>
            <size>28688</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmZjEyNjJjM2NmOGRkMGJiZDJmYzZm
MTAwMzE1ODk1NTM4YjkxM2EuLjY2NjhiZTA1ZWJhZjFmYjczZGYxNWI3OWY2MGEzZDhiMmNhZTVm
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSB2aXJ0dWFsIG1ldGhvZCBnZXRU
eXBlIG9uIEFycmF5QnVmZmVyVmlldy4gSXQgcmV0dXJucyB0aGUgYWN0dWFsCisgICAgICAgIHR5
cGUgb2YgdGhlIHZpZXcuIFRoaXMgbWV0aG9kIHJlcGxhY2VzIHByZXZpb3VzIGlzPFR5cGU+QXJy
YXkoKSBtZXRob2RzLgorCisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5oOgorICAgICAg
ICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5OjpnZXRU
eXBlKToKKyAgICAgICAgKEZsb2F0MzJBcnJheSk6CisgICAgICAgICogd3RmL0Zsb2F0NjRBcnJh
eS5oOgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoRmxv
YXQ2NEFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOgorICAgICAgICAoV1RGOjpJ
bnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKEludDE2QXJyYXkpOgorICAgICAgICAqIHd0
Zi9JbnQzMkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OmdldFR5cGUpOgorICAg
ICAgICAoSW50MzJBcnJheSk6CisgICAgICAgICogd3RmL0ludDhBcnJheS5oOgorICAgICAgICAo
V1RGOjpJbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50OEFycmF5KToKKyAgICAgICAg
KiB3dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5
QmFzZS5oOgorICAgICAgICAoVHlwZWRBcnJheUJhc2UpOgorICAgICAgICAoV1RGOjpUeXBlZEFy
cmF5QmFzZTo6aXRlbSk6CisgICAgICAgICogd3RmL1VpbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OlVpbnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQxNkFycmF5KToKKyAgICAg
ICAgKiB3dGYvVWludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDMyQXJyYXk6OmdldFR5
cGUpOgorICAgICAgICAoVWludDMyQXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDhBcnJh
eSk6CisgICAgICAgICogd3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg6CisgICAgICAgIChXVEY6OlVp
bnQ4Q2xhbXBlZEFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQ4Q2xhbXBlZEFycmF5KToK
KwogMjAxMi0wNy0yNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gVGhlcmUgYXJlIHBhcmFsbGVsIEdDIHJlbGF0ZWQgY3Jhc2hlcyByZWd1bGFy
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhMDUzYjVhZGY5MmZlMWQzNTVjZDVlOTQ4OTg1YjU1MzllYjUxYjRh
Li5iMTIwOTE1ZWQzMjJmZjg5YTc3NmM5OWE5ZDgzN2UxMWM3YzIxY2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJA
c2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9t
IGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJyYXkgZnJvbSBh
biBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGFy
Z3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVudAorICAgICAg
ICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAuaXRlbSgpIG1l
dGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBhIEpTVmFsdWUs
IGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1hdGl2ZWx5IDN4
IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBlKS4KKworICAg
ICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIHVzZSB2aXJ0dWFsIGdldFR5cGUgbWV0
aG9kLiBXZSBjYW4gdXNlCisgICAgICAgIHRoaXMgaW5mb3JtYXRpb24gdG8gY2FzdCB0aGUgVHlw
ZWRBcnJheSB0byB0aGUgYWN0dWFsIHR5cGUsIGFuZCB0aGVuCisgICAgICAgIHJlYWQgdGhlIHZh
bHVlcyBmcm9tIHRoZSBzb3VyY2UuCisKKyAgICAgICAgSW50cm9kdWNlIGNvbnN0cnVjdEFycmF5
QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQgdGVtcGxhdGUKKyAgICAgICAgZnVuY3Rp
b24gd2hpY2ggcmV0dXJucyBhIG5ldyB0eXBlZCBhcnJheSBpZiBmaXJzdCBhcmd1bWVudCBpcyBh
IHR5cGVkCisgICAgICAgIGFycmF5LCBvciAwIG90aGVyd2lzZS4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gcmVwbGFjZXMgcHJldmlvdXMgaXM8VHlwZT5BcnJheSgpIGNhbGxzIHdpdGggbmV3
CisgICAgICAgIGdldFR5cGUgbWV0aG9kLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMv
RGF0YVZpZXcuaDoKKyAgICAgICAgKERhdGFWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFW
aWV3OjpnZXRUeXBlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZVRleEZ1bmNEYXRhKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5j
cHA6CisKIDIwMTItMDctMjUgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVuaWZ5IGNvbXBvc2l0b3IgcXVhZFRyYW5zZm9ybS9kcmF3VHJh
bnNmb3JtL29yaWdpblRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXJyYXlC
dWZmZXJWaWV3LmggYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaAppbmRleCA1ZWY0
ODI5MDgyYmYyZDM2Y2MyMWRiMTk0ZDVhYmE0MjA2NDA0YWFmLi40NTFjMWI2ZWQ5OWMxYWZiNjU5
NzYxYTc1NThmMTEzYTQ2ODQ1NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1
ZmZlclZpZXcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaApAQCAtMzgs
MTYgKzM4LDE5IEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEVf
UlRUSSBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+
IHsKICAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkQnl0ZUNsYW1w
ZWRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5z
aWduZWRTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRmxvYXRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBlbnVtIFZp
ZXdUeXBlIHsKKyAgICAgICAgVHlwZUludDgsCisgICAgICAgIFR5cGVVaW50OCwKKyAgICAgICAg
VHlwZVVpbnQ4Q2xhbXBlZCwKKyAgICAgICAgVHlwZUludDE2LAorICAgICAgICBUeXBlVWludDE2
LAorICAgICAgICBUeXBlSW50MzIsCisgICAgICAgIFR5cGVVaW50MzIsCisgICAgICAgIFR5cGVG
bG9hdDMyLAorICAgICAgICBUeXBlRmxvYXQ2NCwKKyAgICAgICAgVHlwZURhdGFWaWV3CisgICAg
fTsKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5
LmgKaW5kZXggNTVlNjFlMDA2NGQxNWE1MmEwNGE1ZTBmYTBjZmQ4NDlkMDgwMDRiNy4uZWJmNzlh
ZThhN2Q2MDg1Yzk2ZjllMDEyMmNmNTkwZjgzOTVmZjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRmxvYXQzMkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgK
QEAgLTQ4LDI3ICs0OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CiAgICAgfQogCi0g
ICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFu
Z2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5k
IHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5
QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKLSAgICAgICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJh
eUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLQogICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0
YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5
cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFR5cGVGbG9hdDMyOworICAgIH0KKwog
cHJpdmF0ZToKICAgICBpbmxpbmUgRmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJs
ZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxmbG9hdD47
Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwg
Ym9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0
Zi9GbG9hdDY0QXJyYXkuaAppbmRleCAzMDYzM2RiZWM1Y2E5ZTU5MDYzNWM0MDBlMmNiNzI2Y2U3
MWUxODRkLi4xNWFmMTYxMjMxYjQwMmFiMGVjMWE0ZDczNTc2NTYxOGYzMmQ1ZTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9G
bG9hdDY0QXJyYXkuaApAQCAtNDgsMjcgKzQ4LDIwIEBAIHB1YmxpYzoKICAgICAgICAgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGRvdWJsZT4odmFs
dWUpOwogICAgIH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2Vz
IG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUg
Zm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBk
b3VibGUgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
bmRleCA8IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVuZ3RoKTsKLSAgICAgICAgZG91Ymxl
IHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRleF07Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQ2NEFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEZs
b2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlw
ZUZsb2F0NjQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDY0QXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPGRvdWJsZT47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3
LgotICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKIAogUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBi
L1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaAppbmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2My
NzE4ZGE2MjYzMTVlNjhmZmM1Li41MGU5YWEzYTIwNmM4ZDA0YzU1YjFjNjcwZjY1MTAxMDk2MDUx
MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNl
L1dURi93dGYvSW50MTZBcnJheS5oCkBAIC00NSwxNSArNDUsMTcgQEAgcHVibGljOgogICAgIGlu
bGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAg
ICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gVHlwZUludDE2OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxp
bmUgSW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KICAg
ICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8c2hvcnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRl
biBmcm9tIEFycmF5QnVmZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oCmluZGV4IGNlNjg2
OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcxZDUuLmMyNjI0YzhjYTg4YTM3MzgxZTAw
NTI3ZGYzMGI1YzFmNjgzY2JmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludDMyQXJy
YXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKQEAgLTQ0LDE1ICs0NCwxNyBA
QCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRU
eXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50MzI7CisgICAgfQorCiBw
cml2YXRlOgogICAgIGlubGluZSBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAog
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1
cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGludD47Ci0KLSAgICAv
LyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc0lu
dEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQzMkFy
cmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaAppbmRl
eCA1NTRmNGFjYzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5lZDhiYTZmNWUzZDdm
YmRjZWI1M2JkNmZjZGY5MDI2NGQyOWUyMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9J
bnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAtNDYsMTUgKzQ2
LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBn
ZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50ODsKKyAgICB9CisK
IHByaXZhdGU6CiAgICAgaW5saW5lIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwK
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFy
PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVh
bCBib29sIGlzQnl0ZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1Jl
ZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9X
VEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAppbmRleCBmMjc2NDAwZjhkODc5OGI4NzJm
OWY3YjNkZjJmNTIzMmJmYWFkNTZlLi4yM2RiZGRlNWQ1YTIyM2Y5M2VjMTY1NDE4YzlhOWEzZTY3
MDcwMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCkBAIC01MCwx
NCArNTAsNiBAQCBjbGFzcyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJy
YXlCYXNlPFQ+IHsKICAgICAgICAgVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtpbmRleF0gPSBz
dGF0aWNfY2FzdDxUPihzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpOwogICAgIH0KIAotICAg
IC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdl
IGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCBy
ZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBUIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxU
Pjo6bV9sZW5ndGgpOwotICAgICAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtp
bmRleF07Ci0gICAgfQotCiAgIHByb3RlY3RlZDoKICAgICBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQogICAgICAgICA6IFR5cGVkQXJyYXlCYXNlPFQ+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2Uu
aCBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggNWVjN2ExOThhMWQ2Yzhm
ZjU2ZGI0M2ZlMWZmNzM0YzY4MWVlYjgxYi4uMTg1Y2Y3NzYyMzFjYjU5MTBiZTFkMjM2YzRmMTBm
MDhjYWM2OTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCkBAIC02NSw2ICs2NSwxNCBAQCBj
bGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBy
ZXR1cm4gbV9sZW5ndGggKiBzaXplb2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0
aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIK
KyAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmlu
ZWQgYXMgbmVjZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisK
IHByb3RlY3RlZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgOiBB
cnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgKaW5kZXgg
YzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJmZWM4NTc3Ni4uZjAwNDRmNjc3NWU0YjI0
YzZmM2Y0Y2I0Njk1NzQ2NDM5NWU1ZjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWlu
dDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZBcnJheS5oCkBAIC00NiwxNSAr
NDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3
VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDE2Owor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8v
IE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFz
cyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZy
b20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJh
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKaW5k
ZXggYTljZjZiMTUyMTgwNGE3MWE3MTIwYjdkZjAzMmUwNGY2ZTU2NTg1Yi4uMGUzNTU0NmUyNjk4
MGUwZTBmY2NjMDgxZjM3ZjQxYzFmNjZkNjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VWludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oCkBAIC00Niwx
NSArNDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBz
dWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBW
aWV3VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDMy
OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDMyQXJyYXkoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8g
TWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNz
IFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20g
QXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50
MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkx
NzI5ZDZiMDg2MmQ1MjNkOGRjZDcxNzU3NzJjZjE0NDNiNTczLi5mYzQ0MTdkOTgzYWZjZDUwNWRj
MmU0MzdmNDg1ZjRmNzJkODRkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFy
cmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oCkBAIC00NiwxNSArNDYsMTcg
QEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHN1YmFycmF5KGlu
dCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJy
YXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0
VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlwZVVpbnQ4OworICAgIH0KKwog
cHJvdGVjdGVkOgogICAgIGlubGluZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVm
ZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4
Q2xhbXBlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oCmluZGV4
IGQ5ZjgyNDkwYWM1NGU3NjhkN2NmMTljMzBmMjJjYmNjZjFmOTFlNzMuLjlhYzE1NjQ5MjQ0N2Ix
MGU0OTA3ZGMwZGYxNDcxN2ZkNWVhYjcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Vp
bnQ4Q2xhbXBlZEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVkQXJyYXku
aApAQCAtNTUsMTUgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFz
c1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gVHlwZVVpbnQ4Q2xhbXBlZDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5s
aW5lIFVpbnQ4Q2xhbXBlZEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3Ig
dmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBjaGFyPjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcu
Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gVWludDhD
bGFtcGVkQXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCBkZjllNDM5
MDY0MDRkNDg1ODg4MzhiMGI5NmY0ZTdkZGNkNWI5Yzg0Li43NmU2MTE2NmM1MTk1ZGE4ODRjNTg3
YTdhMTI4ZTAxYzQyYzRkNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCisjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3Qu
aD4KQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5o
PgorI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5QmFzZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTg2LDYgKzg4LDcyIEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJHTEFycmF5SGVscGVyKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBUKiBpbXBsLCBUKiAoKmNvbnZlcnNpb25GCiAvLyBUZW1wbGF0
ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgogLy8gSWYgdGhpcyByZXR1
cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEphdmFTY3JpcHQgZXhjZXB0aW9u
LgogdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzb3VyY2UgPSB0b0FycmF5QnVmZmVy
VmlldyhleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVy
biAwOworCisgICAgQXJyYXlCdWZmZXJWaWV3OjpWaWV3VHlwZSBzb3VyY2VUeXBlID0gc291cmNl
LT5nZXRUeXBlKCk7CisgICAgaWYgKHNvdXJjZVR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBl
RGF0YVZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgdWludDMyX3QgbGVuZ3RoID0gYXNP
YmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMs
ICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAgUmVmUHRyPEM+IGFycmF5ID0gQzo6Y3Jl
YXRlKGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisg
ICAgaWYgKGFycmF5LT5nZXRUeXBlKCkgPT0gc291cmNlVHlwZSkgeworICAgICAgICBtZW1jcHko
YXJyYXktPmJhc2VBZGRyZXNzKCksIHNvdXJjZS0+YmFzZUFkZHJlc3MoKSwgbGVuZ3RoICogc2l6
ZW9mKFQpKTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIHN3aXRjaCAoc291
cmNlVHlwZSkgeworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50ODoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+ICo+KHNv
dXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50ODoKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4
Q2xhbXBlZDoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZUludDE2OgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGks
IChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxzaWduZWQgc2hvcnQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MzI6CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5
LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGludD4gKj4oc291cmNlLmdl
dCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMjoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKQorICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJh
eUJhc2U8dW5zaWduZWQgaW50PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlRmxvYXQzMjoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8ZmxvYXQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVGbG9hdDY0OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFy
cmF5QmFzZTxkb3VibGU+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJu
IGFycmF5OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3Ry
dWN0b3JzLgorLy8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93
biBhIEphdmFTY3JpcHQgZXhjZXB0aW9uLgordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4K
IFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJn
dW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIgPSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsKQEAgLTEzOCw2ICsyMDYs
MTAgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAg
ICAgCisgICAgICAgIHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJh
eUFyZ3VtZW50PEMsIFQ+KGV4ZWMpOworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHJl
dHVybiB2aWV3OworCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIHNyY0FycmF5ID0gYXNPYmplY3Qo
ZXhlYy0+YXJndW1lbnQoMCkpOwogICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+
Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMp
OwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUobGVuZ3RoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IGRlMjJlMjllZTZkOTY2YTk4OWFkNjQ3MTUxYzBlY2EyZTcwODcyOTcuLjI2NzQ4YzRkMTMx
MDNlZTcxMjJiNzdhMDY2ZmUzNmUwYmFmNTBlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNDEyLDI1ICs0MTIs
MjcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGFycmF5QnVmZmVyLmRhdGEoKSkgKyBhcnJheUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpID09CiAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJWaWV3
LmJhc2VBZGRyZXNzKCkpKTsKICNlbmRpZgotICAgICAgICBpZiAoYXJyYXlCdWZmZXJWaWV3Lmlz
Qnl0ZUFycmF5KCkpCisgICAgICAgIEFycmF5QnVmZmVyVmlldzo6Vmlld1R5cGUgdHlwZSA9IGFy
cmF5QnVmZmVyVmlldy0+Z2V0VHlwZSgpOworCisgICAgICAgIGlmICh0eXBlID09IEFycmF5QnVm
ZmVyVmlldzo6VHlwZUludDgpCiAgICAgICAgICAgICBhcHBlbmQoQnl0ZUFycmF5VGFnKTsKLSAg
ICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5
KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDhD
bGFtcGVkKQogICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkQnl0ZUNsYW1wZWRBcnJheVRhZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkp
CisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDgpCiAg
ICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRCeXRlQXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlm
IChhcnJheUJ1ZmZlclZpZXcuaXNTaG9ydEFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUg
PT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MTYpCiAgICAgICAgICAgICBhcHBlbmQoU2hvcnRB
cnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKQorICAgICAgICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlw
ZVVpbnQxNikKICAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZFNob3J0QXJyYXlUYWcpOwotICAg
ICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNJbnRBcnJheSgpKQorICAgICAgICBlbHNl
IGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUludDMyKQogICAgICAgICAgICAgYXBw
ZW5kKEludEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5z
aWduZWRJbnRBcnJheSgpKQorICAgICAgICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMikKICAgICAgICAgICAgIGFwcGVuZChVbnNpZ25lZEludEFycmF5VGFnKTsK
LSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRmxvYXRBcnJheSgpKQorICAgICAg
ICBlbHNlIGlmICh0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUZsb2F0MzIpCiAgICAgICAg
ICAgICBhcHBlbmQoRmxvYXRBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVy
Vmlldy5pc0RvdWJsZUFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZm
ZXJWaWV3OjpUeXBlRmxvYXQ2NCkKICAgICAgICAgICAgIGFwcGVuZChEb3VibGVBcnJheVRhZyk7
Ci0gICAgICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0RhdGFWaWV3KCkpCisgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlRGF0YVZpZXcpCiAgICAgICAg
ICAgICBhcHBlbmQoRGF0YVZpZXdUYWcpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0RhdGFWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRhVmlldy5oCmluZGV4
IDYzYjE1NmQzZDJkZGZhZWE0NmNmNTRkYmE5YzhiM2RhZTkzN2E0MzQuLjAwZDU2ZDhmMTg3Zjlm
OTZlN2ZkMGI3NDU4YjdkMjQ4NDBiZDUwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0RhdGFWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRGF0
YVZpZXcuaApAQCAtMzgsNyArMzgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YVZpZXc+IGNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERhdGFWaWV3PiBjcmVhdGUoUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4sIHVuc2lnbmVkIGJ5dGVP
ZmZzZXQsIHVuc2lnbmVkIGJ5dGVMZW5ndGgpOwogCi0gICAgdmlydHVhbCBib29sIGlzRGF0YVZp
ZXcoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGJ5
dGVMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2J5dGVMZW5ndGg7IH0KICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzbGljZShpbnQsIGludCkgY29uc3QgeyByZXR1cm4g
MDsgfQpAQCAtNzMsNiArNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmxvYXQ2NCh1bnNp
Z25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHNldEZs
b2F0NjQoYnl0ZU9mZnNldCwgdmFsdWUsIGZhbHNlLCBlYyk7IH0KICAgICB2b2lkIHNldEZsb2F0
NjQodW5zaWduZWQgYnl0ZU9mZnNldCwgZG91YmxlIHZhbHVlLCBib29sIGxpdHRsZUVuZGlhbiwg
RXhjZXB0aW9uQ29kZSYpOwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRUeXBlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBUeXBlRGF0YVZpZXc7CisgICAgfQorCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIG5ldXRlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3NmY2YmUwODVmYzE4
MGQxZDk2YzI4OGMwODNlZjhlZjEzY2UzNDcxLi4zMmYzNWIxZWIyNjA0ZDgzNTViN2NiOTVkYTE0
Zjc0NjY5ZjQ0MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTMyNzgsNyArMzI3OCw3IEBAIHZvaWQgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpyZWFkUGl4ZWxzKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6
ZWkgd2lkdGgsIEdDCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gVmFsaWRhdGUgYXJy
YXkgdHlwZSBhZ2FpbnN0IHBpeGVsIHR5cGUuCi0gICAgaWYgKCFwaXhlbHMtPmlzVW5zaWduZWRC
eXRlQXJyYXkoKSkgeworICAgIGlmIChwaXhlbHMtPmdldFR5cGUoKSAhPSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50OCkgewogICAgICAgICBzeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRl
eHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sICJyZWFkUGl4ZWxzIiwgIkFycmF5QnVmZmVyVmlldyBu
b3QgVWludDhBcnJheSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDkzNCw3ICs0OTM0
LDcgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0RhdGEoY29u
c3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEaW4KIAogICAgIHN3aXRjaCAodHlwZSkgewogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX0JZVEU6Ci0gICAgICAgIGlmICghcGl4
ZWxzLT5pc1Vuc2lnbmVkQnl0ZUFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlw
ZSgpICE9IEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4KSB7CiAgICAgICAgICAgICBzeW50aGVz
aXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9PUEVSQVRJT04sIGZ1bmN0aW9u
TmFtZSwgInR5cGUgVU5TSUdORURfQllURSBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBVaW50OEFy
cmF5Iik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KQEAgLTQ5NDIsMTMg
KzQ5NDIsMTMgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnZhbGlkYXRlVGV4RnVuY0Rh
dGEoY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBHQzNEaW4KICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpVTlNJR05FRF9TSE9SVF80XzRfNF80OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVO
U0lHTkVEX1NIT1JUXzVfNV81XzE6Ci0gICAgICAgIGlmICghcGl4ZWxzLT5pc1Vuc2lnbmVkU2hv
cnRBcnJheSgpKSB7CisgICAgICAgIGlmIChwaXhlbHMtPmdldFR5cGUoKSAhPSBBcnJheUJ1ZmZl
clZpZXc6OlR5cGVVaW50MTYpIHsKICAgICAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBo
aWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25OYW1lLCAidHlwZSBVTlNJ
R05FRF9TSE9SVCBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBVaW50MTZBcnJheSIpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkZMT0FUOiAvLyBPRVNfdGV4dHVyZV9mbG9hdAotICAgICAgICBp
ZiAoIXBpeGVscy0+aXNGbG9hdEFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlw
ZSgpICE9IEFycmF5QnVmZmVyVmlldzo6VHlwZUZsb2F0MzIpIHsKICAgICAgICAgICAgIHN5bnRo
ZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rp
b25OYW1lLCAidHlwZSBGTE9BVCBidXQgQXJyYXlCdWZmZXJWaWV3IG5vdCBGbG9hdDMyQXJyYXki
KTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8u
Y3BwCmluZGV4IDk4NjU4NGQxODg5MGQ0Yjg2ZjU3MWU5ZmJhYTMyNjMxNWYyOTVlM2IuLmUzODM1
MGFiMTkyZDNmMDczYTVlNGMzMDA1ZWVjZmE3OGRmZTIyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJDcnlwdG8uaCIKIAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlIDx3dGYvVWludDhBcnJheS5oPgorI2luY2x1ZGUgPHd0
Zi9BcnJheUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5k
b21OdW1iZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsMTMgKzQwLDE0IEBAIG5h
bWVzcGFjZSB7CiAKIGJvb2wgaXNJbnRlZ2VyQXJyYXkoQXJyYXlCdWZmZXJWaWV3KiBhcnJheSkK
IHsKLSAgICByZXR1cm4gYXJyYXktPmlzQnl0ZUFycmF5KCkKLSAgICAgICAgfHwgYXJyYXktPmlz
VW5zaWduZWRCeXRlQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNVbnNpZ25lZEJ5dGVDbGFt
cGVkQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNTaG9ydEFycmF5KCkKLSAgICAgICAgfHwg
YXJyYXktPmlzVW5zaWduZWRTaG9ydEFycmF5KCkKLSAgICAgICAgfHwgYXJyYXktPmlzSW50QXJy
YXkoKQotICAgICAgICB8fCBhcnJheS0+aXNVbnNpZ25lZEludEFycmF5KCk7CisgICAgQXJyYXlC
dWZmZXJWaWV3OjpWaWV3VHlwZSB0eXBlID0gYXJyYXktPmdldFR5cGUoKTsKKyAgICByZXR1cm4g
dHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVJbnQ4CisgICAgICAgICAgIHx8IHR5cGUgPT0g
QXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDgKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50OENsYW1wZWQKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVJbnQxNgorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQxNgorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlw
ZUludDMyCisgICAgICAgICAgIHx8IHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDMy
OwogfQogCiB9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFy
cmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5k
aW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMDQ2NDE3NmI4MGExNTNjMmY0MzA3N2ZiNjVjMTMyZTI1YzY1MGNhCi0tLSAvZGV2L251bGwK
KysrIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJv
bS1zYW1lLXR5cGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9ydW5uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKwordmFyIGxlbmd0aCA9IDEwMDAwMDAwOwordmFyIHNvdXJjZSA9IG5ldyBVaW50OEFycmF5
KGxlbmd0aCk7Citmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgc291cmNl
W2ldID0gaTsKK30KKworUGVyZlRlc3RSdW5uZXIucnVuKGZ1bmN0aW9uKCkgeworICAgIHZhciB0
YXJnZXQgPSBuZXcgVWludDhBcnJheShzb3VyY2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3Ry
dWN0LWZyb20tdHlwZWQuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJy
YXktY29uc3RydWN0LWZyb20tdHlwZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmNlOWY3OWFiN2U5YWFm
Y2UwZmQwYmQzMTAxNGMxY2ZlY2EyZWI5Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCkBAIC0w
LDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgbGVuZ3RoID0gMTAw
MDAwMDA7Cit2YXIgc291cmNlID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBzb3VyY2VbaV0gPSBpOworfQorCitQZXJmVGVz
dFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIHRhcmdldCA9IG5ldyBGbG9hdDY0QXJy
YXkoc291cmNlKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVi
ODIzMjhiNDk3YWUyY2RiZmRmZDg3MWJmMGM3NTZiMzIyYmVmMjEuLjA4ZWMzZjllYjhkMmNmYmU5
MTcwNmNhMjUzZTY4MzZjM2RiNjhkZjEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNv
bT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9tIGFub3RoZXIgVHlwZWRB
cnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIEJpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5
cGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTI0ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEFkZCBzb21lIEphcGFuZXNlIGFuZCBTd2VkaXNoIHdlYnNpdGVz
IHRvIHJlcGxheSB0ZXN0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154735</attachid>
            <date>2012-07-26 13:32:43 -0700</date>
            <delta_ts>2012-07-26 17:25:26 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-90838-20120726133231.patch</filename>
            <type>text/plain</type>
            <size>28687</size>
            <attacher name="arno.">a.renevier</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFmZjEyNjJjM2NmOGRkMGJiZDJmYzZm
MTAwMzE1ODk1NTM4YjkxM2EuLjY2NjhiZTA1ZWJhZjFmYjczZGYxNWI3OWY2MGEzZDhiMmNhZTVm
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEu
cmVuZXZpZXJAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRB
cnJheSBmcm9tIGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSB2aXJ0dWFsIG1ldGhvZCBnZXRU
eXBlIG9uIEFycmF5QnVmZmVyVmlldy4gSXQgcmV0dXJucyB0aGUgYWN0dWFsCisgICAgICAgIHR5
cGUgb2YgdGhlIHZpZXcuIFRoaXMgbWV0aG9kIHJlcGxhY2VzIHByZXZpb3VzIGlzPFR5cGU+QXJy
YXkoKSBtZXRob2RzLgorCisgICAgICAgICogd3RmL0FycmF5QnVmZmVyVmlldy5oOgorICAgICAg
ICAqIHd0Zi9GbG9hdDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6RmxvYXQzMkFycmF5OjpnZXRU
eXBlKToKKyAgICAgICAgKEZsb2F0MzJBcnJheSk6CisgICAgICAgICogd3RmL0Zsb2F0NjRBcnJh
eS5oOgorICAgICAgICAoV1RGOjpGbG9hdDY0QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoRmxv
YXQ2NEFycmF5KToKKyAgICAgICAgKiB3dGYvSW50MTZBcnJheS5oOgorICAgICAgICAoV1RGOjpJ
bnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKEludDE2QXJyYXkpOgorICAgICAgICAqIHd0
Zi9JbnQzMkFycmF5Lmg6CisgICAgICAgIChXVEY6OkludDMyQXJyYXk6OmdldFR5cGUpOgorICAg
ICAgICAoSW50MzJBcnJheSk6CisgICAgICAgICogd3RmL0ludDhBcnJheS5oOgorICAgICAgICAo
V1RGOjpJbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoSW50OEFycmF5KToKKyAgICAgICAg
KiB3dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oOgorICAgICAgICAqIHd0Zi9UeXBlZEFycmF5
QmFzZS5oOgorICAgICAgICAoVHlwZWRBcnJheUJhc2UpOgorICAgICAgICAoV1RGOjpUeXBlZEFy
cmF5QmFzZTo6aXRlbSk6CisgICAgICAgICogd3RmL1VpbnQxNkFycmF5Lmg6CisgICAgICAgIChX
VEY6OlVpbnQxNkFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQxNkFycmF5KToKKyAgICAg
ICAgKiB3dGYvVWludDMyQXJyYXkuaDoKKyAgICAgICAgKFdURjo6VWludDMyQXJyYXk6OmdldFR5
cGUpOgorICAgICAgICAoVWludDMyQXJyYXkpOgorICAgICAgICAqIHd0Zi9VaW50OEFycmF5Lmg6
CisgICAgICAgIChXVEY6OlVpbnQ4QXJyYXk6OmdldFR5cGUpOgorICAgICAgICAoVWludDhBcnJh
eSk6CisgICAgICAgICogd3RmL1VpbnQ4Q2xhbXBlZEFycmF5Lmg6CisgICAgICAgIChXVEY6OlVp
bnQ4Q2xhbXBlZEFycmF5OjpnZXRUeXBlKToKKyAgICAgICAgKFVpbnQ4Q2xhbXBlZEFycmF5KToK
KwogMjAxMi0wNy0yNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFtRdF0gVGhlcmUgYXJlIHBhcmFsbGVsIEdDIHJlbGF0ZWQgY3Jhc2hlcyByZWd1bGFy
bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhMDUzYjVhZGY5MmZlMWQzNTVjZDVlOTQ4OTg1YjU1MzllYjUxYjRh
Li5iMTIwOTE1ZWQzMjJmZjg5YTc3NmM5OWE5ZDgzN2UxMWM3YzIxY2RjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTItMDctMjUgIEFybmF1ZCBSZW5ldmllciAgPGEucmVuZXZpZXJA
c2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBjb25zdHJ1Y3RpbmcgVHlwZWRBcnJheSBmcm9t
IGFub3RoZXIgVHlwZWRBcnJheSBpcyBzbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MDgzOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdoZW4gY29uc3RydWN0aW5nIGEgdHlwZWQgYXJyYXkgZnJvbSBh
biBhcnJheSBsaWtlIGVsZW1lbnQsIHRyeSB0bworICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGFy
Z3VtZW50IGlzIGEgdHlwZWQgYXJyYXkuIElmIHNvLCBjYXN0IHRoZSBhcmd1bWVudAorICAgICAg
ICB0byBhIHR5cGVkIGFycmF5LCBhbmQgcmVhZCBlYWNoIGVsZW1lbnQgd2l0aCAuaXRlbSgpIG1l
dGhvZC4gVGhhdAorICAgICAgICBhdm9pZCByZWFkaW5nIHRoZSB2YWx1ZSBhcyBhIEpTVmFsdWUs
IGFuZCBzcGVlZHVwcyBjb25zdHJ1Y3Rpb24gYnkKKyAgICAgICAgYXBwcm94aW1hdGl2ZWx5IDN4
IChldmVuIDMweCBpZiBUeXBlZEFycmF5cyBhcmUgYm90aCB0aGUgc2FtZSB0eXBlKS4KKworICAg
ICAgICBJbiBvcmRlciB0byBhY2hpZXZlIHRoYXQsIHdlIHVzZSB2aXJ0dWFsIGdldFR5cGUgbWV0
aG9kLiBXZSBjYW4gdXNlCisgICAgICAgIHRoaXMgaW5mb3JtYXRpb24gdG8gY2FzdCB0aGUgVHlw
ZWRBcnJheSB0byB0aGUgYWN0dWFsIHR5cGUsIGFuZCB0aGVuCisgICAgICAgIHJlYWQgdGhlIHZh
bHVlcyBmcm9tIHRoZSBzb3VyY2UuCisKKyAgICAgICAgSW50cm9kdWNlIGNvbnN0cnVjdEFycmF5
QnVmZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQgdGVtcGxhdGUKKyAgICAgICAgZnVuY3Rp
b24gd2hpY2ggcmV0dXJucyBhIG5ldyB0eXBlZCBhcnJheSBpZiBmaXJzdCBhcmd1bWVudCBpcyBh
IHR5cGVkCisgICAgICAgIGFycmF5LCBvciAwIG90aGVyd2lzZS4KKworICAgICAgICBUaGlzIHBh
dGNoIGFsc28gcmVwbGFjZXMgcHJldmlvdXMgaXM8VHlwZT5BcnJheSgpIGNhbGxzIHdpdGggbmV3
CisgICAgICAgIGdldFR5cGUgbWV0aG9kLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBcnJh
eUJ1ZmZlclZpZXdIZWxwZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdEFycmF5QnVm
ZmVyVmlld1dpdGhUeXBlZEFycmF5QXJndW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMv
RGF0YVZpZXcuaDoKKyAgICAgICAgKERhdGFWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFW
aWV3OjpnZXRUeXBlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0Ojp2YWxpZGF0ZVRleEZ1bmNEYXRhKToKKyAgICAgICAgKiBwYWdlL0NyeXB0by5j
cHA6CisKIDIwMTItMDctMjUgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIFVuaWZ5IGNvbXBvc2l0b3IgcXVhZFRyYW5zZm9ybS9kcmF3VHJh
bnNmb3JtL29yaWdpblRyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXJyYXlC
dWZmZXJWaWV3LmggYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaAppbmRleCA1ZWY0
ODI5MDgyYmYyZDM2Y2MyMWRiMTk0ZDVhYmE0MjA2NDA0YWFmLi40NTFjMWI2ZWQ5OWMxYWZiNjU5
NzYxYTc1NThmMTEzYTQ2ODQ1NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1
ZmZlclZpZXcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BcnJheUJ1ZmZlclZpZXcuaApAQCAtMzgs
MTYgKzM4LDE5IEBAIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBXVEZfRVhQT1JUX1BSSVZBVEVf
UlRUSSBBcnJheUJ1ZmZlclZpZXcgOiBwdWJsaWMgUmVmQ291bnRlZDxBcnJheUJ1ZmZlclZpZXc+
IHsKICAgcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc0J5dGVBcnJheSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQXJyYXkoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkQnl0ZUNsYW1w
ZWRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2hv
cnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVW5z
aWduZWRTaG9ydEFycmF5KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29s
IGlzVW5zaWduZWRJbnRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRmxvYXRBcnJheSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCBib29sIGlzRG91YmxlQXJyYXkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc0RhdGFWaWV3KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBlbnVtIFZp
ZXdUeXBlIHsKKyAgICAgICAgVHlwZUludDgsCisgICAgICAgIFR5cGVVaW50OCwKKyAgICAgICAg
VHlwZVVpbnQ4Q2xhbXBlZCwKKyAgICAgICAgVHlwZUludDE2LAorICAgICAgICBUeXBlVWludDE2
LAorICAgICAgICBUeXBlSW50MzIsCisgICAgICAgIFR5cGVVaW50MzIsCisgICAgICAgIFR5cGVG
bG9hdDMyLAorICAgICAgICBUeXBlRmxvYXQ2NCwKKyAgICAgICAgVHlwZURhdGFWaWV3CisgICAg
fTsKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5cGUoKSBjb25zdCA9IDA7CiAKICAgICBQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL0Zsb2F0MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5
LmgKaW5kZXggNTVlNjFlMDA2NGQxNWE1MmEwNGE1ZTBmYTBjZmQ4NDlkMDgwMDRiNy4uZWJmNzlh
ZThhN2Q2MDg1Yzk2ZjllMDEyMmNmNTkwZjgzOTVmZjE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvRmxvYXQzMkFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvRmxvYXQzMkFycmF5LmgK
QEAgLTQ4LDI3ICs0OCwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVkQXJyYXlCYXNlPGZsb2F0
Pjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSk7CiAgICAgfQogCi0g
ICAgLy8gSW52b2tlZCBieSB0aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFu
Z2UgY2hlY2tzOyBjYWxsZXIKLSAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5k
IHJldHVybmluZyB1bmRlZmluZWQgYXMgbmVjZXNzYXJ5LgotICAgIGZsb2F0IGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5
QmFzZTxmbG9hdD46Om1fbGVuZ3RoKTsKLSAgICAgICAgZmxvYXQgcmVzdWx0ID0gVHlwZWRBcnJh
eUJhc2U8ZmxvYXQ+OjpkYXRhKClbaW5kZXhdOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
IH0KLQogICAgIGlubGluZSBQYXNzUmVmUHRyPEZsb2F0MzJBcnJheT4gc3ViYXJyYXkoaW50IHN0
YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxGbG9hdDMyQXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCwgaW50IGVuZCkgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5
cGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFR5cGVGbG9hdDMyOworICAgIH0KKwog
cHJpdmF0ZToKICAgICBpbmxpbmUgRmxvYXQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3IgdmlzaWJs
ZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTxmbG9hdD47
Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwg
Ym9vbCBpc0Zsb2F0QXJyYXkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVm
UHRyPEZsb2F0MzJBcnJheT4gRmxvYXQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0
Zi9GbG9hdDY0QXJyYXkuaAppbmRleCAzMDYzM2RiZWM1Y2E5ZTU5MDYzNWM0MDBlMmNiNzI2Y2U3
MWUxODRkLi4xNWFmMTYxMjMxYjQwMmFiMGVjMWE0ZDczNTc2NTYxOGYzMmQ1ZTBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9GbG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9G
bG9hdDY0QXJyYXkuaApAQCAtNDgsMjcgKzQ4LDIwIEBAIHB1YmxpYzoKICAgICAgICAgVHlwZWRB
cnJheUJhc2U8ZG91YmxlPjo6ZGF0YSgpW2luZGV4XSA9IHN0YXRpY19jYXN0PGRvdWJsZT4odmFs
dWUpOwogICAgIH0KIAotICAgIC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2Vz
IG5vdCBwZXJmb3JtIHJhbmdlIGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUg
Zm9yIGRvaW5nIHNvIGFuZCByZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBk
b3VibGUgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChp
bmRleCA8IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46Om1fbGVuZ3RoKTsKLSAgICAgICAgZG91Ymxl
IHJlc3VsdCA9IFR5cGVkQXJyYXlCYXNlPGRvdWJsZT46OmRhdGEoKVtpbmRleF07Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgfQotCiAgICAgaW5saW5lIFBhc3NSZWZQdHI8RmxvYXQ2NEFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPEZs
b2F0NjRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZp
cnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlw
ZUZsb2F0NjQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGlubGluZSBGbG9hdDY0QXJyYXkoUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPGRvdWJsZT47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3
LgotICAgIHZpcnR1YWwgYm9vbCBpc0RvdWJsZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogfTsKIAogUGFzc1JlZlB0cjxGbG9hdDY0QXJyYXk+IEZsb2F0NjRBcnJheTo6Y3JlYXRlKHVu
c2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaCBi
L1NvdXJjZS9XVEYvd3RmL0ludDE2QXJyYXkuaAppbmRleCAyNmJiZThhOTIyNTcyNGE0YmIzM2My
NzE4ZGE2MjYzMTVlNjhmZmM1Li41MGU5YWEzYTIwNmM4ZDA0YzU1YjFjNjcwZjY1MTAxMDk2MDUx
MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxNkFycmF5LmgKKysrIGIvU291cmNl
L1dURi93dGYvSW50MTZBcnJheS5oCkBAIC00NSwxNSArNDUsMTcgQEAgcHVibGljOgogICAgIGlu
bGluZSBQYXNzUmVmUHRyPEludDE2QXJyYXk+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7CiAg
ICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MTZBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQg
ZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gVHlwZUludDE2OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxp
bmUgSW50MTZBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwKICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVu
Z3RoKTsKICAgICAvLyBNYWtlIGNvbnN0cnVjdG9yIHZpc2libGUgdG8gc3VwZXJjbGFzcy4KICAg
ICBmcmllbmQgY2xhc3MgVHlwZWRBcnJheUJhc2U8c2hvcnQ+OwotCi0gICAgLy8gT3ZlcnJpZGRl
biBmcm9tIEFycmF5QnVmZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNTaG9ydEFycmF5KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQxNkFycmF5PiBJbnQx
NkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvSW50MzJBcnJheS5oIGIvU291cmNlL1dURi93dGYvSW50MzJBcnJheS5oCmluZGV4IGNlNjg2
OGNjMjYwZmZhZWFjMmNjNTQzMzBkMmUzN2ZlMTlmZTcxZDUuLmMyNjI0YzhjYTg4YTM3MzgxZTAw
NTI3ZGYzMGI1YzFmNjgzY2JmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ludDMyQXJy
YXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQzMkFycmF5LmgKQEAgLTQ0LDE1ICs0NCwxNyBA
QCBwdWJsaWM6CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50MzJBcnJheT4gc3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQzMkFycmF5PiBzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBnZXRU
eXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50MzI7CisgICAgfQorCiBw
cml2YXRlOgogICAgIGlubGluZSBJbnQzMkFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAog
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1
cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPGludD47Ci0KLSAgICAv
LyBPdmVycmlkZGVuIGZyb20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc0lu
dEFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxJbnQzMkFy
cmF5PiBJbnQzMkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSW50OEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaAppbmRl
eCA1NTRmNGFjYzk3OTZlNzg4MzM0MWFlMjNkYzVlMDdmY2U1NTg4MzNkLi5lZDhiYTZmNWUzZDdm
YmRjZWI1M2JkNmZjZGY5MDI2NGQyOWUyMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9J
bnQ4QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9JbnQ4QXJyYXkuaApAQCAtNDYsMTUgKzQ2
LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxJbnQ4QXJyYXk+IHN1YmFycmF5
KGludCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8SW50OEFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3VHlwZSBn
ZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlSW50ODsKKyAgICB9CisK
IHByaXZhdGU6CiAgICAgaW5saW5lIEludDhBcnJheShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwK
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRv
IHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJyYXlCYXNlPHNpZ25lZCBjaGFy
PjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcuCi0gICAgdmlydHVh
bCBib29sIGlzQnl0ZUFycmF5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1Jl
ZlB0cjxJbnQ4QXJyYXk+IEludDhBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaCBiL1NvdXJjZS9X
VEYvd3RmL0ludGVncmFsVHlwZWRBcnJheUJhc2UuaAppbmRleCBmMjc2NDAwZjhkODc5OGI4NzJm
OWY3YjNkZjJmNTIzMmJmYWFkNTZlLi4yM2RiZGRlNWQ1YTIyM2Y5M2VjMTY1NDE4YzlhOWEzZTY3
MDcwMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
LmgKKysrIGIvU291cmNlL1dURi93dGYvSW50ZWdyYWxUeXBlZEFycmF5QmFzZS5oCkBAIC01MCwx
NCArNTAsNiBAQCBjbGFzcyBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNlIDogcHVibGljIFR5cGVkQXJy
YXlCYXNlPFQ+IHsKICAgICAgICAgVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtpbmRleF0gPSBz
dGF0aWNfY2FzdDxUPihzdGF0aWNfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpOwogICAgIH0KIAotICAg
IC8vIEludm9rZWQgYnkgdGhlIGluZGV4ZWQgZ2V0dGVyLiBEb2VzIG5vdCBwZXJmb3JtIHJhbmdl
IGNoZWNrczsgY2FsbGVyCi0gICAgLy8gaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHNvIGFuZCBy
ZXR1cm5pbmcgdW5kZWZpbmVkIGFzIG5lY2Vzc2FyeS4KLSAgICBUIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQoaW5kZXggPCBUeXBlZEFycmF5QmFzZTxU
Pjo6bV9sZW5ndGgpOwotICAgICAgICByZXR1cm4gVHlwZWRBcnJheUJhc2U8VD46OmRhdGEoKVtp
bmRleF07Ci0gICAgfQotCiAgIHByb3RlY3RlZDoKICAgICBJbnRlZ3JhbFR5cGVkQXJyYXlCYXNl
KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKQogICAgICAgICA6IFR5cGVkQXJyYXlCYXNlPFQ+KGJ1ZmZlciwgYnl0ZU9m
ZnNldCwgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2Uu
aCBiL1NvdXJjZS9XVEYvd3RmL1R5cGVkQXJyYXlCYXNlLmgKaW5kZXggNWVjN2ExOThhMWQ2Yzhm
ZjU2ZGI0M2ZlMWZmNzM0YzY4MWVlYjgxYi4uMTg1Y2Y3NzYyMzFjYjU5MTBiZTFkMjM2YzRmMTBm
MDhjYWM2OTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVHlwZWRBcnJheUJhc2UuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UeXBlZEFycmF5QmFzZS5oCkBAIC02NSw2ICs2NSwxNCBAQCBj
bGFzcyBUeXBlZEFycmF5QmFzZSA6IHB1YmxpYyBBcnJheUJ1ZmZlclZpZXcgewogICAgICAgICBy
ZXR1cm4gbV9sZW5ndGggKiBzaXplb2YoVCk7CiAgICAgfQogCisgICAgLy8gSW52b2tlZCBieSB0
aGUgaW5kZXhlZCBnZXR0ZXIuIERvZXMgbm90IHBlcmZvcm0gcmFuZ2UgY2hlY2tzOyBjYWxsZXIK
KyAgICAvLyBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgc28gYW5kIHJldHVybmluZyB1bmRlZmlu
ZWQgYXMgbmVjZXNzYXJ5LgorICAgIFQgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7
CisgICAgICAgIEFTU0VSVChpbmRleCA8IFR5cGVkQXJyYXlCYXNlPFQ+OjptX2xlbmd0aCk7Cisg
ICAgICAgIHJldHVybiBUeXBlZEFycmF5QmFzZTxUPjo6ZGF0YSgpW2luZGV4XTsKKyAgICB9CisK
IHByb3RlY3RlZDoKICAgICBUeXBlZEFycmF5QmFzZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKICAgICAgICAgOiBB
cnJheUJ1ZmZlclZpZXcoYnVmZmVyLCBieXRlT2Zmc2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvVWludDE2QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQxNkFycmF5LmgKaW5kZXgg
YzdmODEyYzAwOWY5NzlmMDIzOGI4YjcyZDc3NjU3ODJmZWM4NTc3Ni4uZjAwNDRmNjc3NWU0YjI0
YzZmM2Y0Y2I0Njk1NzQ2NDM5NWU1ZjkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVWlu
dDE2QXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MTZBcnJheS5oCkBAIC00NiwxNSAr
NDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5PiBzdWJh
cnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQxNkFycmF5
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBWaWV3
VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDE2Owor
ICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDE2QXJyYXkoUGFzc1JlZlB0cjxBcnJh
eUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8v
IE1ha2UgY29uc3RydWN0b3IgdmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFz
cyBUeXBlZEFycmF5QmFzZTx1bnNpZ25lZCBzaG9ydD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZy
b20gQXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkU2hvcnRBcnJh
eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDE2QXJyYXk+
IFVpbnQxNkFycmF5OjpjcmVhdGUodW5zaWduZWQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVWludDMyQXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQzMkFycmF5LmgKaW5k
ZXggYTljZjZiMTUyMTgwNGE3MWE3MTIwYjdkZjAzMmUwNGY2ZTU2NTg1Yi4uMGUzNTU0NmUyNjk4
MGUwZTBmY2NjMDgxZjM3ZjQxYzFmNjZkNjg1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VWludDMyQXJyYXkuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VaW50MzJBcnJheS5oCkBAIC00Niwx
NSArNDYsMTcgQEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBz
dWJhcnJheShpbnQgc3RhcnQpIGNvbnN0OwogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQzMkFy
cmF5PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogCisgICAgdmlydHVhbCBW
aWV3VHlwZSBnZXRUeXBlKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBUeXBlVWludDMy
OworICAgIH0KKwogcHJpdmF0ZToKICAgICBpbmxpbmUgVWludDMyQXJyYXkoUGFzc1JlZlB0cjxB
cnJheUJ1ZmZlcj4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVPZmZz
ZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8g
TWFrZSBjb25zdHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNz
IFR5cGVkQXJyYXlCYXNlPHVuc2lnbmVkIGludD47Ci0KLSAgICAvLyBPdmVycmlkZGVuIGZyb20g
QXJyYXlCdWZmZXJWaWV3LgotICAgIHZpcnR1YWwgYm9vbCBpc1Vuc2lnbmVkSW50QXJyYXkoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiB9OwogCiBQYXNzUmVmUHRyPFVpbnQzMkFycmF5PiBVaW50
MzJBcnJheTo6Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1VpbnQ4QXJyYXkuaCBiL1NvdXJjZS9XVEYvd3RmL1VpbnQ4QXJyYXkuaAppbmRleCBiZTkx
NzI5ZDZiMDg2MmQ1MjNkOGRjZDcxNzU3NzJjZjE0NDNiNTczLi5mYzQ0MTdkOTgzYWZjZDUwNWRj
MmU0MzdmNDg1ZjRmNzJkODRkMmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VaW50OEFy
cmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhBcnJheS5oCkBAIC00NiwxNSArNDYsMTcg
QEAgcHVibGljOgogICAgIGlubGluZSBQYXNzUmVmUHRyPFVpbnQ4QXJyYXk+IHN1YmFycmF5KGlu
dCBzdGFydCkgY29uc3Q7CiAgICAgaW5saW5lIFBhc3NSZWZQdHI8VWludDhBcnJheT4gc3ViYXJy
YXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0
VHlwZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gVHlwZVVpbnQ4OworICAgIH0KKwog
cHJvdGVjdGVkOgogICAgIGlubGluZSBVaW50OEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYnl0ZU9mZnNldCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgLy8gTWFrZSBjb25z
dHJ1Y3RvciB2aXNpYmxlIHRvIHN1cGVyY2xhc3MuCiAgICAgZnJpZW5kIGNsYXNzIFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIGNoYXI+OwotCi0gICAgLy8gT3ZlcnJpZGRlbiBmcm9tIEFycmF5QnVm
ZmVyVmlldy4KLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnNpZ25lZEJ5dGVBcnJheSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIH07CiAKIFBhc3NSZWZQdHI8VWludDhBcnJheT4gVWludDhBcnJheTo6
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VpbnQ4
Q2xhbXBlZEFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VaW50OENsYW1wZWRBcnJheS5oCmluZGV4
IGQ5ZjgyNDkwYWM1NGU3NjhkN2NmMTljMzBmMjJjYmNjZjFmOTFlNzMuLjlhYzE1NjQ5MjQ0N2Ix
MGU0OTA3ZGMwZGYxNDcxN2ZkNWVhYjcwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Vp
bnQ4Q2xhbXBlZEFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVWludDhDbGFtcGVkQXJyYXku
aApAQCAtNTUsMTUgKzU1LDE3IEBAIHB1YmxpYzoKICAgICBpbmxpbmUgUGFzc1JlZlB0cjxVaW50
OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKICAgICBpbmxpbmUgUGFz
c1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gc3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBj
b25zdDsKIAorICAgIHZpcnR1YWwgVmlld1R5cGUgZ2V0VHlwZSgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gVHlwZVVpbnQ4Q2xhbXBlZDsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgaW5s
aW5lIFVpbnQ4Q2xhbXBlZEFycmF5KFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGgpOwogICAgIC8vIE1ha2UgY29uc3RydWN0b3Ig
dmlzaWJsZSB0byBzdXBlcmNsYXNzLgogICAgIGZyaWVuZCBjbGFzcyBUeXBlZEFycmF5QmFzZTx1
bnNpZ25lZCBjaGFyPjsKLQotICAgIC8vIE92ZXJyaWRkZW4gZnJvbSBBcnJheUJ1ZmZlclZpZXcu
Ci0gICAgdmlydHVhbCBib29sIGlzVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogfTsKIAogUGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gVWludDhD
bGFtcGVkQXJyYXk6OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAppbmRleCBkZjllNDM5
MDY0MDRkNDg1ODg4MzhiMGI5NmY0ZTdkZGNkNWI5Yzg0Li43NmU2MTE2NmM1MTk1ZGE4ODRjNTg3
YTdhMTI4ZTAxYzQyYzRkNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCisjaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNs
dWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0FyZ0xpc3Qu
aD4KQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxydW50aW1lL0pTT2JqZWN0Lmg+CiAjaW5j
bHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyVmlldy5o
PgorI2luY2x1ZGUgPHd0Zi9UeXBlZEFycmF5QmFzZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTg2LDYgKzg4LDcyIEBAIEpTQzo6SlNWYWx1ZSBzZXRXZWJHTEFycmF5SGVscGVyKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBUKiBpbXBsLCBUKiAoKmNvbnZlcnNpb25GCiAvLyBUZW1wbGF0
ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3RydWN0b3JzLgogLy8gSWYgdGhpcyByZXR1
cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93biBhIEphdmFTY3JpcHQgZXhjZXB0aW9u
LgogdGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8Qz4gY29uc3RydWN0
QXJyYXlCdWZmZXJWaWV3V2l0aFR5cGVkQXJyYXlBcmd1bWVudChKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKK3sKKyAgICBSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBzb3VyY2UgPSB0b0FycmF5QnVmZmVy
VmlldyhleGVjLT5hcmd1bWVudCgwKSk7CisgICAgaWYgKCFzb3VyY2UpCisgICAgICAgIHJldHVy
biAwOworCisgICAgQXJyYXlCdWZmZXJWaWV3OjpWaWV3VHlwZSBzb3VyY2VUeXBlID0gc291cmNl
LT5nZXRUeXBlKCk7CisgICAgaWYgKHNvdXJjZVR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBl
RGF0YVZpZXcpCisgICAgICAgIHJldHVybiAwOworCisgICAgdWludDMyX3QgbGVuZ3RoID0gYXNP
YmplY3QoZXhlYy0+YXJndW1lbnQoMCkpLT5nZXQoZXhlYywgSlNDOjpJZGVudGlmaWVyKGV4ZWMs
ICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAgUmVmUHRyPEM+IGFycmF5ID0gQzo6Y3Jl
YXRlKGxlbmd0aCk7CisgICAgaWYgKCFhcnJheSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24o
ZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gYXJyYXk7CisgICAgfQorCisg
ICAgaWYgKGFycmF5LT5nZXRUeXBlKCkgPT0gc291cmNlVHlwZSkgeworICAgICAgICBtZW1jcHko
YXJyYXktPmJhc2VBZGRyZXNzKCksIHNvdXJjZS0+YmFzZUFkZHJlc3MoKSwgbGVuZ3RoICogc2l6
ZW9mKFQpKTsKKyAgICAgICAgcmV0dXJuIGFycmF5OworICAgIH0KKworICAgIHN3aXRjaCAoc291
cmNlVHlwZSkgeworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50ODoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8c2lnbmVkIGNoYXI+ICo+KHNv
dXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1
ZmZlclZpZXc6OlR5cGVVaW50ODoKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZVVpbnQ4
Q2xhbXBlZDoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQor
ICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8
dW5zaWduZWQgY2hhcj4gKj4oc291cmNlLmdldCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmlldzo6VHlwZUludDE2OgorICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGks
IChUKShzdGF0aWNfY2FzdDxUeXBlZEFycmF5QmFzZTxzaWduZWQgc2hvcnQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVVaW50MTY6CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkKKyAgICAgICAgICAgIGFycmF5LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJy
YXlCYXNlPHVuc2lnbmVkIHNob3J0PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MzI6CisgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGFycmF5
LT5zZXQoaSwgKFQpKHN0YXRpY19jYXN0PFR5cGVkQXJyYXlCYXNlPGludD4gKj4oc291cmNlLmdl
dCgpKS0+aXRlbShpKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQzMjoKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKQorICAgICAgICAgICAgYXJyYXktPnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJh
eUJhc2U8dW5zaWduZWQgaW50PiAqPihzb3VyY2UuZ2V0KCkpLT5pdGVtKGkpKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgQXJyYXlCdWZmZXJWaWV3OjpUeXBlRmxvYXQzMjoKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQorICAgICAgICAgICAgYXJyYXkt
PnNldChpLCAoVCkoc3RhdGljX2Nhc3Q8VHlwZWRBcnJheUJhc2U8ZmxvYXQ+ICo+KHNvdXJjZS5n
ZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcnJheUJ1ZmZlclZp
ZXc6OlR5cGVGbG9hdDY0OgorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICBhcnJheS0+c2V0KGksIChUKShzdGF0aWNfY2FzdDxUeXBlZEFy
cmF5QmFzZTxkb3VibGU+ICo+KHNvdXJjZS5nZXQoKSktPml0ZW0oaSkpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJu
IGFycmF5OworfQorCisvLyBUZW1wbGF0ZSBmdW5jdGlvbiB1c2VkIGJ5IFhYWEFycmF5Q29uc3Ry
dWN0b3JzLgorLy8gSWYgdGhpcyByZXR1cm5zIDAsIGl0IHdpbGwgYWxyZWFkeSBoYXZlIHRocm93
biBhIEphdmFTY3JpcHQgZXhjZXB0aW9uLgordGVtcGxhdGU8Y2xhc3MgQywgdHlwZW5hbWUgVD4K
IFBhc3NSZWZQdHI8Qz4gY29uc3RydWN0QXJyYXlCdWZmZXJWaWV3V2l0aEFycmF5QnVmZmVyQXJn
dW1lbnQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBi
dWZmZXIgPSB0b0FycmF5QnVmZmVyKGV4ZWMtPmFyZ3VtZW50KDApKTsKQEAgLTEzOCw2ICsyMDYs
MTAgQEAgUGFzc1JlZlB0cjxDPiBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIGlmICh2aWV3KQogICAgICAgICAgICAgcmV0dXJuIHZpZXc7CiAg
ICAgCisgICAgICAgIHZpZXcgPSBjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXdXaXRoVHlwZWRBcnJh
eUFyZ3VtZW50PEMsIFQ+KGV4ZWMpOworICAgICAgICBpZiAodmlldykKKyAgICAgICAgICAgIHJl
dHVybiB2aWV3OworCiAgICAgICAgIEpTQzo6SlNPYmplY3QqIHNyY0FycmF5ID0gYXNPYmplY3Qo
ZXhlYy0+YXJndW1lbnQoMCkpOwogICAgICAgICB1aW50MzJfdCBsZW5ndGggPSBzcmNBcnJheS0+
Z2V0KGV4ZWMsIEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMp
OwogICAgICAgICBSZWZQdHI8Qz4gYXJyYXkgPSBDOjpjcmVhdGUobGVuZ3RoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmlu
ZGV4IGRlMjJlMjllZTZkOTY2YTk4OWFkNjQ3MTUxYzBlY2EyZTcwODcyOTcuLjlmMWUzMjk4ZjBk
MTI1NzFmMzczZjcyOTdjNDJkZTI1ZDJkYzE1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAtNDEyLDI1ICs0MTIs
MjcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGFycmF5QnVmZmVyLmRhdGEoKSkgKyBhcnJheUJ1ZmZlclZpZXcuYnl0ZU9mZnNldCgpID09CiAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oYXJyYXlCdWZmZXJWaWV3
LmJhc2VBZGRyZXNzKCkpKTsKICNlbmRpZgotICAgICAgICBpZiAoYXJyYXlCdWZmZXJWaWV3Lmlz
Qnl0ZUFycmF5KCkpCisgICAgICAgIEFycmF5QnVmZmVyVmlldzo6Vmlld1R5cGUgdHlwZSA9IGFy
cmF5QnVmZmVyVmlldy5nZXRUeXBlKCk7CisKKyAgICAgICAgaWYgKHR5cGUgPT0gQXJyYXlCdWZm
ZXJWaWV3OjpUeXBlSW50OCkKICAgICAgICAgICAgIGFwcGVuZChCeXRlQXJyYXlUYWcpOwotICAg
ICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNpZ25lZEJ5dGVDbGFtcGVkQXJyYXko
KSkKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVVaW50OENs
YW1wZWQpCiAgICAgICAgICAgICBhcHBlbmQoVW5zaWduZWRCeXRlQ2xhbXBlZEFycmF5VGFnKTsK
LSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRCeXRlQXJyYXkoKSkK
KyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVVaW50OCkKICAg
ICAgICAgICAgIGFwcGVuZChVbnNpZ25lZEJ5dGVBcnJheVRhZyk7Ci0gICAgICAgIGVsc2UgaWYg
KGFycmF5QnVmZmVyVmlldy5pc1Nob3J0QXJyYXkoKSkKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9
PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVJbnQxNikKICAgICAgICAgICAgIGFwcGVuZChTaG9ydEFy
cmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzVW5zaWduZWRTaG9y
dEFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBl
VWludDE2KQogICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkU2hvcnRBcnJheVRhZyk7Ci0gICAg
ICAgIGVsc2UgaWYgKGFycmF5QnVmZmVyVmlldy5pc0ludEFycmF5KCkpCisgICAgICAgIGVsc2Ug
aWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlSW50MzIpCiAgICAgICAgICAgICBhcHBl
bmQoSW50QXJyYXlUYWcpOwotICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNVbnNp
Z25lZEludEFycmF5KCkpCisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3
OjpUeXBlVWludDMyKQogICAgICAgICAgICAgYXBwZW5kKFVuc2lnbmVkSW50QXJyYXlUYWcpOwot
ICAgICAgICBlbHNlIGlmIChhcnJheUJ1ZmZlclZpZXcuaXNGbG9hdEFycmF5KCkpCisgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlRmxvYXQzMikKICAgICAgICAg
ICAgIGFwcGVuZChGbG9hdEFycmF5VGFnKTsKLSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJW
aWV3LmlzRG91YmxlQXJyYXkoKSkKKyAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBBcnJheUJ1ZmZl
clZpZXc6OlR5cGVGbG9hdDY0KQogICAgICAgICAgICAgYXBwZW5kKERvdWJsZUFycmF5VGFnKTsK
LSAgICAgICAgZWxzZSBpZiAoYXJyYXlCdWZmZXJWaWV3LmlzRGF0YVZpZXcoKSkKKyAgICAgICAg
ZWxzZSBpZiAodHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVEYXRhVmlldykKICAgICAgICAg
ICAgIGFwcGVuZChEYXRhVmlld1RhZyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
RGF0YVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0RhdGFWaWV3LmgKaW5kZXgg
NjNiMTU2ZDNkMmRkZmFlYTQ2Y2Y1NGRiYTljOGIzZGFlOTM3YTQzNC4uMDBkNTZkOGYxODdmOWY5
NmU3ZmQwYjc0NThiN2QyNDg0MGJkNTA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRGF0YVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9EYXRh
Vmlldy5oCkBAIC0zOCw3ICszOCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRhVmlldz4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGF0YVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgYnl0ZUxlbmd0aCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNEYXRhVmll
dygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZUxlbmd0aDsgfQogICAgIHZpcnR1YWwgdW5zaWduZWQgYnl0
ZUxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYnl0ZUxlbmd0aDsgfQogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxBcnJheUJ1ZmZlclZpZXc+IHNsaWNlKGludCwgaW50KSBjb25zdCB7IHJldHVybiAw
OyB9CkBAIC03Myw2ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGbG9hdDY0KHVuc2ln
bmVkIGJ5dGVPZmZzZXQsIGRvdWJsZSB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgc2V0Rmxv
YXQ2NChieXRlT2Zmc2V0LCB2YWx1ZSwgZmFsc2UsIGVjKTsgfQogICAgIHZvaWQgc2V0RmxvYXQ2
NCh1bnNpZ25lZCBieXRlT2Zmc2V0LCBkb3VibGUgdmFsdWUsIGJvb2wgbGl0dGxlRW5kaWFuLCBF
eGNlcHRpb25Db2RlJik7CiAKKyAgICB2aXJ0dWFsIFZpZXdUeXBlIGdldFR5cGUoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFR5cGVEYXRhVmlldzsKKyAgICB9CisKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIHZvaWQgbmV1dGVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDc2ZjZiZTA4NWZjMTgw
ZDFkOTZjMjg4YzA4M2VmOGVmMTNjZTM0NzEuLjMyZjM1YjFlYjI2MDRkODM1NWI3Y2I5NWRhMTRm
NzQ2NjlmNDQxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzI3OCw3ICszMjc4LDcgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBWYWxpZGF0ZSBhcnJh
eSB0eXBlIGFnYWluc3QgcGl4ZWwgdHlwZS4KLSAgICBpZiAoIXBpeGVscy0+aXNVbnNpZ25lZEJ5
dGVBcnJheSgpKSB7CisgICAgaWYgKHBpeGVscy0+Z2V0VHlwZSgpICE9IEFycmF5QnVmZmVyVmll
dzo6VHlwZVVpbnQ4KSB7CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4
dDNEOjpJTlZBTElEX09QRVJBVElPTiwgInJlYWRQaXhlbHMiLCAiQXJyYXlCdWZmZXJWaWV3IG5v
dCBVaW50OEFycmF5Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00OTM0LDcgKzQ5MzQs
NyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXhGdW5jRGF0YShjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RpbgogCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURToKLSAgICAgICAgaWYgKCFwaXhl
bHMtPmlzVW5zaWduZWRCeXRlQXJyYXkoKSkgeworICAgICAgICBpZiAocGl4ZWxzLT5nZXRUeXBl
KCkgIT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlVWludDgpIHsKICAgICAgICAgICAgIHN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX09QRVJBVElPTiwgZnVuY3Rpb25O
YW1lLCAidHlwZSBVTlNJR05FRF9CWVRFIGJ1dCBBcnJheUJ1ZmZlclZpZXcgbm90IFVpbnQ4QXJy
YXkiKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQpAQCAtNDk0MiwxMyAr
NDk0MiwxMyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6dmFsaWRhdGVUZXhGdW5jRGF0
YShjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUsIEdDM0RpbgogICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlVOU0lHTkVEX1NIT1JUXzVfNl81OgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlVOU0lHTkVEX1NIT1JUXzRfNF80XzQ6CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VU5T
SUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgaWYgKCFwaXhlbHMtPmlzVW5zaWduZWRTaG9y
dEFycmF5KCkpIHsKKyAgICAgICAgaWYgKHBpeGVscy0+Z2V0VHlwZSgpICE9IEFycmF5QnVmZmVy
Vmlldzo6VHlwZVVpbnQxNikgewogICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBmdW5jdGlvbk5hbWUsICJ0eXBlIFVOU0lH
TkVEX1NIT1JUIGJ1dCBBcnJheUJ1ZmZlclZpZXcgbm90IFVpbnQxNkFycmF5Iik7CiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RkxPQVQ6IC8vIE9FU190ZXh0dXJlX2Zsb2F0Ci0gICAgICAgIGlm
ICghcGl4ZWxzLT5pc0Zsb2F0QXJyYXkoKSkgeworICAgICAgICBpZiAocGl4ZWxzLT5nZXRUeXBl
KCkgIT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBlRmxvYXQzMikgewogICAgICAgICAgICAgc3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OLCBmdW5jdGlv
bk5hbWUsICJ0eXBlIEZMT0FUIGJ1dCBBcnJheUJ1ZmZlclZpZXcgbm90IEZsb2F0MzJBcnJheSIp
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5j
cHAKaW5kZXggOTg2NTg0ZDE4ODkwZDRiODZmNTcxZTlmYmFhMzI2MzE1ZjI5NWUzYi4uZTM4MzUw
YWIxOTJkM2YwNzNhNWU0YzMwMDVlZWNmYTc4ZGZlMjI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNw
cApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIkNyeXB0by5oIgogCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgPHd0Zi9VaW50OEFycmF5Lmg+CisjaW5jbHVkZSA8d3Rm
L0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRv
bU51bWJlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCwxMyArNDAsMTQgQEAgbmFt
ZXNwYWNlIHsKIAogYm9vbCBpc0ludGVnZXJBcnJheShBcnJheUJ1ZmZlclZpZXcqIGFycmF5KQog
ewotICAgIHJldHVybiBhcnJheS0+aXNCeXRlQXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNV
bnNpZ25lZEJ5dGVBcnJheSgpCi0gICAgICAgIHx8IGFycmF5LT5pc1Vuc2lnbmVkQnl0ZUNsYW1w
ZWRBcnJheSgpCi0gICAgICAgIHx8IGFycmF5LT5pc1Nob3J0QXJyYXkoKQotICAgICAgICB8fCBh
cnJheS0+aXNVbnNpZ25lZFNob3J0QXJyYXkoKQotICAgICAgICB8fCBhcnJheS0+aXNJbnRBcnJh
eSgpCi0gICAgICAgIHx8IGFycmF5LT5pc1Vuc2lnbmVkSW50QXJyYXkoKTsKKyAgICBBcnJheUJ1
ZmZlclZpZXc6OlZpZXdUeXBlIHR5cGUgPSBhcnJheS0+Z2V0VHlwZSgpOworICAgIHJldHVybiB0
eXBlID09IEFycmF5QnVmZmVyVmlldzo6VHlwZUludDgKKyAgICAgICAgICAgfHwgdHlwZSA9PSBB
cnJheUJ1ZmZlclZpZXc6OlR5cGVVaW50OAorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVm
ZmVyVmlldzo6VHlwZVVpbnQ4Q2xhbXBlZAorICAgICAgICAgICB8fCB0eXBlID09IEFycmF5QnVm
ZmVyVmlldzo6VHlwZUludDE2CisgICAgICAgICAgIHx8IHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3
OjpUeXBlVWludDE2CisgICAgICAgICAgIHx8IHR5cGUgPT0gQXJyYXlCdWZmZXJWaWV3OjpUeXBl
SW50MzIKKyAgICAgICAgICAgfHwgdHlwZSA9PSBBcnJheUJ1ZmZlclZpZXc6OlR5cGVVaW50MzI7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQmluZGluZ3MvdHlwZWQtYXJy
YXktY29uc3RydWN0LWZyb20tc2FtZS10eXBlLmh0bWwgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRp
bmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXNhbWUtdHlwZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMwNDY0MTc2YjgwYTE1M2MyZjQzMDc3ZmI2NWMxMzJlMjVjNjUwY2EKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9t
LXNhbWUtdHlwZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3J1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCit2YXIgbGVuZ3RoID0gMTAwMDAwMDA7Cit2YXIgc291cmNlID0gbmV3IFVpbnQ4QXJyYXko
bGVuZ3RoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBzb3VyY2Vb
aV0gPSBpOworfQorCitQZXJmVGVzdFJ1bm5lci5ydW4oZnVuY3Rpb24oKSB7CisgICAgdmFyIHRh
cmdldCA9IG5ldyBVaW50OEFycmF5KHNvdXJjZSk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1
Y3QtZnJvbS10eXBlZC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9CaW5kaW5ncy90eXBlZC1hcnJh
eS1jb25zdHJ1Y3QtZnJvbS10eXBlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmY2U5Zjc5YWI3ZTlhYWZj
ZTBmZDBiZDMxMDE0YzFjZmVjYTJlYjkKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRl
c3RzL0JpbmRpbmdzL3R5cGVkLWFycmF5LWNvbnN0cnVjdC1mcm9tLXR5cGVkLmh0bWwKQEAgLTAs
MCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvcnVubmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBsZW5ndGggPSAxMDAw
MDAwMDsKK3ZhciBzb3VyY2UgPSBuZXcgVWludDhBcnJheShsZW5ndGgpOworZm9yICh2YXIgaSA9
IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgIHNvdXJjZVtpXSA9IGk7Cit9CisKK1BlcmZUZXN0
UnVubmVyLnJ1bihmdW5jdGlvbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0gbmV3IEZsb2F0NjRBcnJh
eShzb3VyY2UpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWI4
MjMyOGI0OTdhZTJjZGJmZGZkODcxYmYwYzc1NmIzMjJiZWYyMS4uMDhlYzNmOWViOGQyY2ZiZTkx
NzA2Y2EyNTNlNjgzNmMzZGI2OGRmMSAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wNy0yNSAgQXJuYXVkIFJlbmV2aWVyICA8YS5yZW5ldmllckBzaXNhLnNhbXN1bmcuY29t
PgorCisgICAgICAgIGNvbnN0cnVjdGluZyBUeXBlZEFycmF5IGZyb20gYW5vdGhlciBUeXBlZEFy
cmF5IGlzIHNsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBCaW5kaW5ncy90eXBlZC1hcnJheS1jb25zdHJ1Y3QtZnJvbS1zYW1lLXR5cGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogQmluZGluZ3MvdHlwZWQtYXJyYXktY29uc3RydWN0LWZyb20tdHlw
ZWQuaHRtbDogQWRkZWQuCisKIDIwMTItMDctMjQgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQWRkIHNvbWUgSmFwYW5lc2UgYW5kIFN3ZWRpc2ggd2Vic2l0ZXMg
dG8gcmVwbGF5IHRlc3RzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>