<?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>28851</bug_id>
          
          <creation_ts>2009-08-31 11:51:18 -0700</creation_ts>
          <short_desc>Emit last progress notification before calling dispatchDidFinishLoad</short_desc>
          <delta_ts>2011-09-05 09:41:26 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>
          
          <blocked>66243</blocked>
    
    <blocked>66772</blocked>
    
    <blocked>66773</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>beidson</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>143695</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-08-31 11:51:18 -0700</bug_when>
    <thetext>When a frame finishes loading the last batch of progress reports and status signals goes like this:

... 80%, 90%, FINISHED, 100%.

This is because the code in FrameLoader::checkLoadCompleteForThisFrame will call first progressCompleted() and then dispatchDidFinishLoad(). IMHO this goes against the natural expectation of receiving all the progress reports before the FINISHED notification, so I propose to reverse the order of the function calls. The attached patch does that, and does not seem to regress any layout tests here.

This surely should get some tests with it, but I&apos;m not sure of what should I be testing, so suggestions are welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143696</commentid>
    <comment_count>1</comment_count>
      <attachid>38827</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-08-31 11:53:22 -0700</bug_when>
    <thetext>Created attachment 38827
progressbeforefinished.patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143744</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-31 15:45:46 -0700</bug_when>
    <thetext>I believe Brady is still our loader expert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143778</commentid>
    <comment_count>3</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-08-31 23:01:01 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; This is because the code in FrameLoader::checkLoadCompleteForThisFrame will
&gt; call first progressCompleted() and then dispatchDidFinishLoad(). 

I guess it&apos;s obvious, but the current code does exactly the opposite and that is what I&apos;m proposing to do now. Sorry for the confusion :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146477</commentid>
    <comment_count>4</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-09-11 00:44:37 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146608</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-09-11 09:34:03 -0700</bug_when>
    <thetext>The concept is fine.
If all layout tests continue to pass on all platforms, then the patch is fine.

It makes me nervous that we&apos;ve had this behavior forever and are changing it now.

But we need tests.  That we&apos;ve had this bizarre behavior forever and no layout test covered it is something that needs to change.

DRT already listens to didFinishLoadForFrame, but can definitely be augmented to listen for the progress notifications also.

Sometimes the DRT changes to test a patch are 20 times bigger than the patch itself - This might be one of those times...  ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146609</commentid>
    <comment_count>6</comment_count>
      <attachid>38827</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2009-09-11 09:34:36 -0700</bug_when>
    <thetext>Comment on attachment 38827
progressbeforefinished.patch

Code change looks good, but we can&apos;t land this without layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147784</commentid>
    <comment_count>7</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-09-17 04:54:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 38827 [details])
&gt; Code change looks good, but we can&apos;t land this without layout tests.

Right, so my point is that I&apos;m not really sure what should I be testing exactly. I suppose ideally you&apos;d identify possible places in the code that *could* be relying on the old behavior and see that they don&apos;t break, but that&apos;s surely impossible to do correctly or thoroughly? Could you give me any indication about what kind of test would you like to see here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449414</commentid>
    <comment_count>8</comment_count>
      <attachid>103537</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-10 14:52:48 -0700</bug_when>
    <thetext>Created attachment 103537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449416</commentid>
    <comment_count>9</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-10 14:54:39 -0700</bug_when>
    <thetext>This patch still doesn&apos;t cover all the platforms, but it&apos;s already working on Qt port. I uploaded to get some feedback whether the test is correct, or if we need a different kind of testing.

The &quot;unnatural&quot; ordering also surfaces on QtWebKit API, I&apos;m making tests to cover the API as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449419</commentid>
    <comment_count>10</comment_count>
      <attachid>103537</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-10 15:00:41 -0700</bug_when>
    <thetext>Comment on attachment 103537
Patch

I think this is the right approach, but we&apos;ll need implementations on all the ports (sadly).  I agree with Comment #5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452615</commentid>
    <comment_count>11</comment_count>
      <attachid>104251</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-17 14:46:29 -0700</bug_when>
    <thetext>Created attachment 104251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452622</commentid>
    <comment_count>12</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-17 14:53:35 -0700</bug_when>
    <thetext>(Work in progress)

Implemented the necessary things in Chromium and GTK DRT. Chromium and GTK LayoutTests work exactly like without them in my machine. I don&apos;t get 100% pass in neither, but the number of failings don&apos;t change, some help in testing will be appreciated.

API tests for Chromium pass, but I think they don&apos;t exercise this change. GTK ones showed a problem, that I think I&apos;ve fixed in bug 66243, that I&apos;m marking as dependency for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452774</commentid>
    <comment_count>13</comment_count>
      <attachid>104251</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 18:03:20 -0700</bug_when>
    <thetext>Comment on attachment 104251
Patch

Attachment 104251 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9420263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453020</commentid>
    <comment_count>14</comment_count>
      <attachid>104336</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-18 07:16:27 -0700</bug_when>
    <thetext>Created attachment 104336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455372</commentid>
    <comment_count>15</comment_count>
      <attachid>104834</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-23 06:31:44 -0700</bug_when>
    <thetext>Created attachment 104834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455375</commentid>
    <comment_count>16</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-23 06:34:25 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=104834) [details]
&gt; Patch

Adding skips for Mac and Win ports with links to bug reports to implement them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455378</commentid>
    <comment_count>17</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-23 06:35:45 -0700</bug_when>
    <thetext>Martin and Xan, since the patch involves a bit of non-trivial changes in GTK implementation of DRT would be very nice to get some review/comments from GTK reviewers. Could one of you take a look at this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456139</commentid>
    <comment_count>18</comment_count>
      <attachid>104834</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-08-24 09:33:16 -0700</bug_when>
    <thetext>Comment on attachment 104834
Patch

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

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:785
&gt; +    // The deprecated &quot;load-finished&quot; signal is triggered by postProgressFinishedNotification(),
&gt; +    // so we can use it here in the DRT to provide the correct dump.
&gt;      if (frame != topLoadingFrame)
&gt;          return;
&gt; -
&gt; -    topLoadingFrame = 0;
&gt; -    WorkQueue::shared()-&gt;setFrozen(true); // first complete load freezes the queue for the rest of this test
&gt; -    if (gLayoutTestController-&gt;waitToDump())
&gt; -        return;
&gt; -
&gt; -    if (WorkQueue::shared()-&gt;count())
&gt; -        g_timeout_add(0, processWork, 0);
&gt; -    else
&gt; -        dump();
&gt; +    if (gLayoutTestController-&gt;dumpProgressFinishedCallback())
&gt; +        printf(&quot;postProgressFinishedNotification\n&quot;);

I&apos;m not sure I understand why you are doing this work at a different time now.

&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1051
&gt;          case WEBKIT_LOAD_FINISHED:
&gt; -            if (frame != topLoadingFrame || !done)
&gt; +            if (!done)
&gt;                  printf(&quot;%s - didFinishLoadForFrame\n&quot;, frameName.get());
&gt;              break;

Why do we now print this notification for non-main-frames?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456188</commentid>
    <comment_count>19</comment_count>
      <attachid>104834</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-24 10:40:02 -0700</bug_when>
    <thetext>Comment on attachment 104834
Patch

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

Martin, thanks for the review.

&gt;&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:785
&gt;&gt; +        printf(&quot;postProgressFinishedNotification\n&quot;);
&gt; 
&gt; I&apos;m not sure I understand why you are doing this work at a different time now.

This work was happening (in FrameLoaderClient terms) after the load has finished, during the progress finished. With the patch those two moments will happen in reverse order. Which means that is too soon for clearing &quot;topLoadingFrame&quot; as well as to call dump() (that will set &quot;done = true&quot;), because we still have an load-status callback to process later.

&gt;&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1051
&gt;&gt;              break;
&gt; 
&gt; Why do we now print this notification for non-main-frames?

I didn&apos;t understand your question. Did you mean &quot;for main-frames&quot;?

If so, we should print the didFinishLoadForFrame for main frames as well, and this is done even before this patch. The topLoadingFrame was being printed because we were &quot;!done&quot; yet, and after we would get progress finished that would change set done to true and reset topLoadingFrame. My understanding is that in this code, the first half of the condition wasn&apos;t helping at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456194</commentid>
    <comment_count>20</comment_count>
      <attachid>104834</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-08-24 10:51:41 -0700</bug_when>
    <thetext>Comment on attachment 104834
Patch

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

The GTK+ parts look good to me.

&gt;&gt;&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:785
&gt;&gt;&gt; +        printf(&quot;postProgressFinishedNotification\n&quot;);
&gt;&gt; 
&gt;&gt; I&apos;m not sure I understand why you are doing this work at a different time now.
&gt; 
&gt; This work was happening (in FrameLoaderClient terms) after the load has finished, during the progress finished. With the patch those two moments will happen in reverse order. Which means that is too soon for clearing &quot;topLoadingFrame&quot; as well as to call dump() (that will set &quot;done = true&quot;), because we still have an load-status callback to process later.

Makes sense.

&gt;&gt;&gt; Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1051
&gt;&gt;&gt;              break;
&gt;&gt; 
&gt;&gt; Why do we now print this notification for non-main-frames?
&gt; 
&gt; I didn&apos;t understand your question. Did you mean &quot;for main-frames&quot;?
&gt; 
&gt; If so, we should print the didFinishLoadForFrame for main frames as well, and this is done even before this patch. The topLoadingFrame was being printed because we were &quot;!done&quot; yet, and after we would get progress finished that would change set done to true and reset topLoadingFrame. My understanding is that in this code, the first half of the condition wasn&apos;t helping at all.

Thanks for clearing that up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459090</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-30 12:30:50 -0700</bug_when>
    <thetext>Looks like everyone is happy with this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459097</commentid>
    <comment_count>22</comment_count>
      <attachid>104834</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 12:41:18 -0700</bug_when>
    <thetext>Comment on attachment 104834
Patch

Rejecting attachment 104834 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
rTree/chromium/LayoutTestController.h
Hunk #2 succeeded at 415 (offset 2 lines).
Hunk #3 succeeded at 549 (offset 2 lines).
patching file Tools/DumpRenderTree/chromium/WebViewHost.cpp
patching file Tools/DumpRenderTree/gtk/DumpRenderTree.cpp
patching file Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
patching file Tools/DumpRenderTree/qt/LayoutTestControllerQt.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9564544</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459100</commentid>
    <comment_count>23</comment_count>
      <attachid>105671</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-30 12:47:59 -0700</bug_when>
    <thetext>Created attachment 105671
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459135</commentid>
    <comment_count>24</comment_count>
      <attachid>105671</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 13:24:06 -0700</bug_when>
    <thetext>Comment on attachment 105671
Patch for landing

Rejecting attachment 105671 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
tTestController.h
patching file Tools/DumpRenderTree/chromium/LayoutTestController.cpp
patching file Tools/DumpRenderTree/chromium/LayoutTestController.h
patching file Tools/DumpRenderTree/chromium/WebViewHost.cpp
patching file Tools/DumpRenderTree/gtk/DumpRenderTree.cpp
patching file Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
patching file Tools/DumpRenderTree/qt/LayoutTestControllerQt.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9567518</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459141</commentid>
    <comment_count>25</comment_count>
      <attachid>105684</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2011-08-30 13:29:04 -0700</bug_when>
    <thetext>Created attachment 105684
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459150</commentid>
    <comment_count>26</comment_count>
      <attachid>105684</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 13:41:53 -0700</bug_when>
    <thetext>Comment on attachment 105684
Patch for landing

Clearing flags on attachment: 105684

Committed r94105: &lt;http://trac.webkit.org/changeset/94105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459151</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-30 13:41:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462173</commentid>
    <comment_count>28</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-09-05 09:41:26 -0700</bug_when>
    <thetext>Revision r94105 cherry-picked into qtwebkit-2.2 with commit 3f29aef &lt;http://gitorious.org/webkit/qtwebkit/commit/3f29aef&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38827</attachid>
            <date>2009-08-31 11:53:22 -0700</date>
            <delta_ts>2011-08-10 14:52:36 -0700</delta_ts>
            <desc>progressbeforefinished.patch</desc>
            <filename>progressbeforefinished.patch</filename>
            <type>text/plain</type>
            <size>2193</size>
            <attacher name="Xan Lopez">xan.lopez</attacher>
            
              <data encoding="base64">RnJvbSA2YmM3N2E0NGI0YzkxZTIzMjg2NmQzY2Y1ZTlmZmRkYTRlNmVlNGI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBYYW4gTG9wZXogPHhsb3BlekBpZ2FsaWEuY29tPgpEYXRlOiBN
b24sIDMxIEF1ZyAyMDA5IDIxOjUyOjIxICswMzAwClN1YmplY3Q6IFtQQVRDSF0gMjAwOS0wOC0z
MSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgoKICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mjg4NTEKICAgICAgICBFbWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9y
ZSBjYWxsaW5nIGRpc3BhdGNoRGlkRmluaXNoTG9hZAoKICAgICAgICBFbWl0IHRoZSBsYXN0IHBy
b2dyZXNzIHJlcG9ydCBiZWZvcmUgdGhlIGZpbmlzaGVkIG5vdGlmaWNhdGlvbiB0bwogICAgICAg
IGdldCBhIG1vcmUgbmF0dXJhbCBzZXF1ZW5jZSBvZiBzaWduYWxzLgoKICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlci5jcHA6CiAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xv
YWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgIHwgICAxMyArKysrKysrKysrKysrCiBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
fCAgICA1ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDIgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBmOTg0NGQxLi4xMDIwYzI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDA5LTA4LTMxICBYYW4g
TG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKyAgICAgICAgRW1pdCBsYXN0IHByb2dyZXNzIG5vdGlmaWNhdGlvbiBiZWZvcmUg
Y2FsbGluZyBkaXNwYXRjaERpZEZpbmlzaExvYWQKKworICAgICAgICBFbWl0IHRoZSBsYXN0IHBy
b2dyZXNzIHJlcG9ydCBiZWZvcmUgdGhlIGZpbmlzaGVkIG5vdGlmaWNhdGlvbiB0bworICAgICAg
ICBnZXQgYSBtb3JlIG5hdHVyYWwgc2VxdWVuY2Ugb2Ygc2lnbmFscy4KKworICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hl
Y2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOgorCiAyMDA5LTA4LTI5ICBBZGVsZSBQZXRlcnNv
biAgPGFkZWxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDQ1MzBjMTEuLmYxODdiNWQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKQEAgLTMzODYsMTMgKzMzODYsMTQgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hl
Y2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUoKQogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAg
IG1fZGlkRGlzcGF0Y2hEaWRDb21taXRMb2FkID0gZmFsc2U7CiAjZW5kaWYKKyAgICAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgICAgIHBhZ2Ut
PnByb2dyZXNzKCktPnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOworCiAgICAgICAgICAgICBp
ZiAoIWVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERp
ZEZhaWxMb2FkKGVycm9yKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2Ns
aWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7CiAKLSAgICAgICAgICAgIGlmIChQYWdlKiBw
YWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPnByb2dyZXNzKCkt
PnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIAotLSAKMS42LjQuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103537</attachid>
            <date>2011-08-10 14:52:48 -0700</date>
            <delta_ts>2011-08-17 14:46:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-28851-20110810185246.patch</filename>
            <type>text/plain</type>
            <size>11362</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI3NjkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzIxY2FjMWRhOTQ2NDY3MjI1ZTAx
NmM5YzM2NGQxYTIyM2IyMjgzLi41YjUyODY0MTAxYzQ4YWQzNmRkMGNhYzI1NTJjZjU4OWRiNWJl
ZjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMTAgIENhaW8gTWFyY2VsbyBkZSBP
bGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
bWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlk
RmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBLZWVwIHRyYWNrIG9mIHRoZSBvcmRlciBleHBlY3RlZCBmb3IgdGhlIHByb2dyZXNzRmluaXNo
ZWROb3RpZmljYXRpb24sIHdoaWNoIGlzCisgICAgICAgIGJlZm9yZSB0aGUgZGlkRmluaXNoTG9h
ZEZvckZyYW1lLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlz
aGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9s
b2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4
LTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBV
bmlmeSB0aGUgd2F5IHdlIGdlbmVyYXRlIEhUTUwgZm9yIGFuIGltYWdlIGluIHRoZSBDbGlwYm9h
cmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1m
aW5pc2hlZC1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
YWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjliZTRkYjFkYzJiNDkzYmExMWNlZjY2ZDk1MzY4Yzc1NDJkNThlNzYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2Fs
bGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorbWFpbiBmcmFtZSAtIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRDb21taXRMb2FkRm9yRnJh
bWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFt
ZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gcG9zdFByb2dy
ZXNzRmluaXNoZWROb3RpZmljYXRpb24KK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJh
bWUKK1RoaXMgaXMgYSB0ZXN0IG9mIHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNrIG9yZGVyaW5n
IGluIHJlbGF0aW9uIHRvIGZyYW1lIGxvYWRlciBjYWxsYmFja3MuIEl0IGlzIG9ubHkgdXNlZnVs
IGluc2lkZSB0aGUgcmVncmVzc2lvbiB0ZXN0IHRvb2wuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY5YjUxZmMzNzhjNzVkOTc3YTYzNGIxNjgzOWFmNjZkMTI2NjY4NjYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jl
c3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVzc0NhbGxi
YWNrcygpOworfQorPC9zY3JpcHQ+CitUaGlzIGlzIGEgdGVzdCBvZiBwcm9ncmVzcyBmaW5pc2hl
ZCBjYWxsYmFjayBvcmRlcmluZyBpbiByZWxhdGlvbiB0byBmcmFtZSBsb2FkZXIgY2FsbGJhY2tz
LiBJdCBpcyBvbmx5IHVzZWZ1bCBpbnNpZGUgdGhlIHJlZ3Jlc3Npb24gdGVzdCB0b29sLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDI3OGQ5MTIyZjFhNTAwOWE5ZWQxMmQ1ZDcwZjMzMGY5MDdlZTQ1YzAuLmJlOTBi
NzQ4Y2FhOTliNzM5NDhhMWY3ZjEzYzQ1Nzc1ZWM1YmVhMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMS0wOC0xMCAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fp
by5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEVtaXQgbGFzdCBwcm9ncmVzcyBu
b3RpZmljYXRpb24gYmVmb3JlIGNhbGxpbmcgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg1MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIHRoZSBvcmln
aW5hbCBwYXRjaCBieSBYYW4gTG9wZXouIENoYW5nZSBGcmFtZUxvYWRlciB0byBkaXNwYXRjaCB0
aGUKKyAgICAgICAgbm90aWZpY2F0aW9ucyBpbiBhIG1vcmUgbmF0dXJhbCBzZXF1ZW5jZS4KKwor
ICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJh
Y2suaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisKIDIw
MTEtMDgtMTAgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJhdGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENs
aXBib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZTVjOThkYjNh
OTU2MzE3MGY3YWIzMjkwYjc5M2U5ZDc3ZDg5OTZkNC4uNDYzYzEyZDViOTJlYWNmZTA2NDcxNGIz
NDIxMTAyMmE2MGRiZTRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0yMjU5LDE0ICsyMjU5LDE1IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRl
Rm9yVGhpc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtX3N0YXRlTWFjaGluZS5jcmVhdGluZ0lu
aXRpYWxFbXB0eURvY3VtZW50KCkgfHwgIW1fc3RhdGVNYWNoaW5lLmNvbW1pdHRlZEZpcnN0UmVh
bERvY3VtZW50TG9hZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgcGFnZS0+
cHJvZ3Jlc3MoKS0+cHJvZ3Jlc3NDb21wbGV0ZWQobV9mcmFtZSk7CisKICAgICAgICAgICAgIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gZGwtPm1haW5Eb2N1bWVudEVycm9yKCk7CiAgICAg
ICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5k
aXNwYXRjaERpZEZhaWxMb2FkKGVycm9yKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7CiAKLSAgICAgICAgICAgIGlm
IChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPnBy
b2dyZXNzKCktPnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAxMzhlM2Y4NGY5ZTZkODM2
YmI2ZmNmMmE3NjVhODdjNjBjMTIyZTkxLi5kZGNlM2Y5YjQyYzEzOTZmZmU3YTdlY2FkODdmYjkw
YjZkNmU5NzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTA4LTEwICBD
YWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgRW1pdCBsYXN0IHByb2dyZXNzIG5vdGlmaWNhdGlvbiBiZWZvcmUgY2Fs
bGluZyBkaXNwYXRjaERpZEZpbmlzaExvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGR1bXAgcHJvZ3Jlc3NGaW5p
c2hlZE5vdGlmaWNhdGlvbiBjYWxsYmFjayBpbiBEUlQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6ZHVtcFByb2dyZXNzQ2FsbGJhY2tzKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRRdDo6cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24pOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKwogMjAxMS0wOC0wOSAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjkyNjgzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCAxODgwMTI1
NzYxNWE0OGJlNTZkNjYxZjMwZjVkM2Y5Y2NiNmVmZDQ0Li42NjIwMTdjZDJkYjAzNDQ3NTk0NjMy
ZThkMTNjYWEzMGVlOWQ5ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNjgxLDYgKzY4
MSwxMSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVMb2FkZXIoYm9v
bCBiKQogICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcyA9
IGI7CiB9CiAKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0NhbGxi
YWNrcyhib29sIGIpCit7CisgICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFByb2dyZXNzQ2Fs
bGJhY2tzID0gYjsKK30KKwogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFVzZXJH
ZXN0dXJlSW5GcmFtZUxvYWRlcihib29sIGIpCiB7CiAgICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6
ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlckNhbGxiYWNrcyA9IGI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmgKaW5kZXggODZkYWE2YjVlNjNlMDg3NTFiOTAxNTAyYjhiNmUyNDM1NWUzZmZhNC4uNDgyMTJl
MjBmNTIwYmJmMzY5ZmM1MGY4Yzg1ZDZkNmFlNjAwMzkxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApA
QCAtMTYzLDYgKzE2Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUVN0cmluZyBwbGFpblRleHQo
Y29uc3QgUVZhcmlhbnQmIHJuZyk7CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wRnJhbWVMb2FkZXIo
Ym9vbCBiKTsKKyAgICBzdGF0aWMgdm9pZCBkdW1wUHJvZ3Jlc3NDYWxsYmFja3MoYm9vbCk7CiAg
ICAgc3RhdGljIHZvaWQgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlcihib29sIGIpOwogICAg
IHN0YXRpYyB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoYm9vbCBiKTsKICAgICBzdGF0
aWMgdm9pZCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhib29sIGIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAKaW5kZXggNThkNzZjZjRiOWY3MWQ1Y2YxMzMyOWRjZDJmNjA2MjgwOGVhNmIwMC4uYTViMWE4
NjIyZDJhMWYzOGZhNjk5MWQxYWJlZTg3Njc5ZGJiMzkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBAIC0x
NzAsNiArMTcwLDcgQEAgc3RhdGljIFFTdHJpbmcgZHJ0RGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQoY29uc3QgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG4KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3Mg
PSBmYWxzZTsKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFByb2dyZXNzQ2FsbGJhY2tz
ID0gZmFsc2U7CiBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkZXJDYWxsYmFja3MgPSBmYWxzZTsKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVt
cFJlc291cmNlTG9hZENhbGxiYWNrcyA9IGZhbHNlOwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0
OjpzZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCA9IGZhbHNlOwpAQCAtNTkyLDYgKzU5
Myw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFu
Z2VkTm90aWZpY2F0aW9uKCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jl
c3NGaW5pc2hlZE5vdGlmaWNhdGlvbigpCiB7CisgICAgaWYgKGR1bXBQcm9ncmVzc0NhbGxiYWNr
cykKKyAgICAgICAgcHJpbnRmKCIlcyAtIHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9u
XG4iLCBxUHJpbnRhYmxlKGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KG1fZnJh
bWUpKSk7CisKICAgICAvLyBTZW5kIGEgbW91c2Vtb3ZlIGV2ZW50IHRvOgogICAgIC8vICgxKSB1
cGRhdGUgdGhlIGN1cnNvciB0byBjaGFuZ2UgYWNjb3JkaW5nIHRvIHdoYXRldmVyIGlzIHVuZGVy
bmVhdGggdGhlIG1vdXNlIGN1cnNvciByaWdodCBub3c7CiAgICAgLy8gKDIpIGRpc3BsYXkgdGhl
IHRvb2wgdGlwIGlmIHRoZSBtb3VzZSBob3ZlcnMgYSBub2RlIHdoaWNoIGhhcyBhIHRvb2wgdGlw
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50UXQuaAppbmRleCBiMzAwYjY5N2EzNzIyMGQxMDNlMDUzODQzYmUxN2ZiYWIzYjM4YmUz
Li45ODA0YmU2YzI2NjBkOGJhOTRkMTZhNDM3Y2U3OTZhN2MwZGJiZGE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApA
QCAtMjQ3LDYgKzI0Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBLVVJMJiBsYXN0UmVxdWVzdGVk
VXJsKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UmVxdWVzdGVkVXJsOyB9CiAKICAgICBzdGF0aWMg
Ym9vbCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CisgICAgc3RhdGljIGJvb2wgZHVtcFByb2dy
ZXNzQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2Fk
ZXJDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsK
ICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4Y2M5YTJjMzc1ODI5
MDgxMmZhN2U3NWQ5NDhhMzYwZDdmNzY4Y2JlLi5mMWMzZGI5ZjYzN2Q4YjA0NjUwYTY2YmZiM2Rj
MTkyOWFhY2ZhOWNhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDgtMTAgIENhaW8gTWFyY2VsbyBkZSBPbGl2
ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBFbWl0
IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlkRmlu
aXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgZHVtcFByb2dyZXNzQ2FsbGJhY2tzKCkgaW4gbGF5b3V0VGVzdENvbnRyb2xsZXIu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCk6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzQ2FsbGJhY2tzKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisKIDIwMTEtMDgtMTAgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaGUgVVJMIHdlIHdlcmUg
Y29tcHV0aW5nIGZvciByZXRyaWV2aW5nIGJhc2VsaW5lcyB3YXMgbWlzc2luZyBhIHNsYXNoCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
CmluZGV4IDI0NGE5NGEzNDhhN2RjODFhYWI0M2VjNzFkY2EzM2U4NjE3OGMwZjUuLjlhMTMxODk2
NGJjZGVkZGVlN2RiNWRmMjFkOTYzZDkwZDQ2NTM1M2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03Niw2ICs3Niw3IEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KCkKIAogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpkdW1wRWRpdGluZ0NhbGxiYWNrcyhmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcihmYWxzZSk7CisgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0NhbGxiYWNrcyhmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXIoZmFsc2UpOwogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGZhbHNlKTsK
ICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMoZmFsc2UpOwpAQCAtMjYxLDYgKzI2MiwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
ZHVtcEZyYW1lTG9hZGVyKHRydWUpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpk
dW1wUHJvZ3Jlc3NDYWxsYmFja3MoKQoreworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpk
dW1wUHJvZ3Jlc3NDYWxsYmFja3ModHJ1ZSk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkKIHsKICAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlcih0cnVlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRl
eCAyMDUzOTIwZDBjYWQ4OTJiM2NiY2ZhNjczOGMyYzQ5OWYyMTRhZWI3Li4zNjRjMjY2M2YzYzFl
MDAwM2UwZjM3N2U2N2I2MDEzYjFlYTNmNGQxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGlj
IHNsb3RzOgogICAgIHZvaWQgaGFuZGxlRXJyb3JQYWdlcygpIHsgbV9oYW5kbGVFcnJvclBhZ2Vz
ID0gdHJ1ZTsgfQogICAgIHZvaWQgZHVtcEVkaXRpbmdDYWxsYmFja3MoKTsKICAgICB2b2lkIGR1
bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAgICB2b2lkIGR1bXBQcm9ncmVzc0NhbGxiYWNrcygp
OwogICAgIHZvaWQgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKTsKICAgICB2
b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKICAgICB2b2lkIGR1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104251</attachid>
            <date>2011-08-17 14:46:29 -0700</date>
            <delta_ts>2011-08-18 07:16:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-28851-20110817184627.patch</filename>
            <type>text/plain</type>
            <size>24280</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMyNDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDY4ODYzNmQyNWEyMTJiN2Q1YWYw
MzJmZTZmMWRjZmM2M2NjZWExLi5kYzFkZGEwYjZhOTkxN2IzNDAyMWMzNDg5NmI3MWRlMzZjMzRk
YmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMTcgIENhaW8gTWFyY2VsbyBkZSBP
bGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
bWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlk
RmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBLZWVwIHRyYWNrIG9mIHRoZSBvcmRlciBleHBlY3RlZCBmb3IgdGhlIHByb2dyZXNzRmluaXNo
ZWROb3RpZmljYXRpb24sIHdoaWNoIGlzCisgICAgICAgIGJlZm9yZSB0aGUgZGlkRmluaXNoTG9h
ZEZvckZyYW1lLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlz
aGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9s
b2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4
LTE3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIER1bXAtYXMt
bWFya3VwIGNvbnZlcnNpb246IGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC0zNzg2MzYyLWZpeC5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3Mt
ZmluaXNoZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MWNlZWZiYTU1MmYyM2E0YzJlM2VjMWE4MTBkYTQxNmY1NWU1MzQ2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNh
bGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK21haW4gZnJhbWUgLSBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJh
bWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorcG9zdFByb2dyZXNzRmluaXNoZWRO
b3RpZmljYXRpb24KK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK1RoaXMgaXMg
YSB0ZXN0IG9mIHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNrIG9yZGVyaW5nIGluIHJlbGF0aW9u
IHRvIGZyYW1lIGxvYWRlciBjYWxsYmFja3MuIEl0IGlzIG9ubHkgdXNlZnVsIGluc2lkZSB0aGUg
cmVncmVzc2lvbiB0ZXN0IHRvb2wuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjZjBiN2U3OTc3NWJkNDhmOGYyNTUzMjQzZTRhZTQ4YWQ2YzJlZTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQt
Y2FsbGJhY2suaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2so
KTsKK30KKzwvc2NyaXB0PgorVGhpcyBpcyBhIHRlc3Qgb2YgcHJvZ3Jlc3MgZmluaXNoZWQgY2Fs
bGJhY2sgb3JkZXJpbmcgaW4gcmVsYXRpb24gdG8gZnJhbWUgbG9hZGVyIGNhbGxiYWNrcy4gSXQg
aXMgb25seSB1c2VmdWwgaW5zaWRlIHRoZSByZWdyZXNzaW9uIHRlc3QgdG9vbC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBlMDAyNzdjYTczODk3YjIwNjg1Yjg2Mjk5YjYyMGEyYWQ3YmY1Zjk0Li5mMTg2ODM4ZmJl
ZmE2MWZiYTBiZmQ5ZjViNTkwNmQwYWZkODIwMjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTEtMDgtMTcgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xp
dmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBFbWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZp
Y2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlkRmluaXNoTG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4NTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBYYW4g
TG9wZXouIENoYW5nZSBGcmFtZUxvYWRlciB0byBkaXNwYXRjaCB0aGUgbm90aWZpY2F0aW9ucyBp
bgorICAgICAgICBhIG1vcmUgbmF0dXJhbCBzZXF1ZW5jZS4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbAorCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
OjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisKIDIwMTEtMDgtMTcgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBY2Nlc3NpYmlsaXR5IHN0
YWNrIGV4aGF1c3Rpb24gdXNpbmcgcm9sZSBhdHRyaWJ1dGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDlkYWNhZDU0MTQzOGNkNmNlNWZmM2MxZTVkZGRmMjgzZjVhYmNi
MzMuLmJiYjU4YjQxMTUwYWFhYWI5NzBmMWI0MDg4ODk3NjNlZWVhOGRkYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjI1OSwxNCArMjI1OSwxNSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSgpCiAgICAgICAgICAgICBp
ZiAobV9zdGF0ZU1hY2hpbmUuY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpIHx8ICFtX3N0
YXRlTWFjaGluZS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExvYWQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAKKyAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFn
ZSgpKQorICAgICAgICAgICAgICAgIHBhZ2UtPnByb2dyZXNzKCktPnByb2dyZXNzQ29tcGxldGVk
KG1fZnJhbWUpOworCiAgICAgICAgICAgICBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciA9IGRs
LT5tYWluRG9jdW1lbnRFcnJvcigpOwogICAgICAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkK
ICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGYWlsTG9hZChlcnJvcik7CiAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkRmlu
aXNoTG9hZCgpOwogCi0gICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KSkKLSAgICAgICAgICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5wcm9ncmVzc0NvbXBsZXRlZCht
X2ZyYW1lKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggMmMwNjQzZTM0ZWIzMjNjNjlkZmUyYjM5ZDJhNTgyNzdhYjZkMmQwYy4uMGFi
OTMzN2QwYzVlNWQ4MzRhNmFiMjQ0MmI2MzkxMmJjZWEzMWU2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAxMS0wOC0xNyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhv
ICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEVtaXQgbGFzdCBwcm9n
cmVzcyBub3RpZmljYXRpb24gYmVmb3JlIGNhbGxpbmcgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg1MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbmZyYXN0
cnVjdHVyZSB0byBkdW1wIHByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24gY2FsbGJhY2sgaW4g
RFJULgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0Zpbmlz
aGVkQ2FsbGJhY2spOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jlc3NG
aW5pc2hlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oOgorCiAyMDExLTA4LTE2ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+
CiAKICAgICAgICAgU3VwcG9ydCByZXNldCBpbiBXZWJDb3JlOjpJbnRlcm5hbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHAKaW5kZXggYWY4NmUyMmQ5NjhhZjAyZjk1ZTU4ODI2MTk4MzEzYmQyYWNkZjM2
MC4uZjRhMTU5NjFjOTM2MzMwZjdmNzFiYzdlYzI0YTQ0NDY0OTRjN2IxMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHAKQEAgLTY4MSw2ICs2ODEsMTEgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6ZHVtcEZyYW1lTG9hZGVyKGJvb2wgYikKICAgICBGcmFtZUxvYWRlckNsaWVudFF0Ojpk
dW1wRnJhbWVMb2FkZXJDYWxsYmFja3MgPSBiOwogfQogCit2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wgYikKK3sKKyAgICBGcmFt
ZUxvYWRlckNsaWVudFF0OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gYjsKK30KKwog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRl
cihib29sIGIpCiB7CiAgICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5G
cmFtZUxvYWRlckNhbGxiYWNrcyA9IGI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggYjBjZmY4YTlj
YjlkZWQ3YWRlNzU5OTNhNTI2NGJjNzk1NzllYTNkZC4uNTA3MTgzNzNhMGQ5YzQ3M2UxMWZjN2Nk
M2ViNmEzNjQxMzIyNjM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTYzLDYgKzE2Myw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUVN0cmluZyBwbGFpblRleHQoY29uc3QgUVZhcmlhbnQmIHJu
Zyk7CiAKICAgICBzdGF0aWMgdm9pZCBkdW1wRnJhbWVMb2FkZXIoYm9vbCBiKTsKKyAgICBzdGF0
aWMgdm9pZCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wpOwogICAgIHN0YXRpYyB2
b2lkIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXIoYm9vbCBiKTsKICAgICBzdGF0aWMgdm9p
ZCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGJvb2wgYik7CiAgICAgc3RhdGljIHZvaWQgZHVt
cFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoYm9vbCBiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDA4
YjljZDAzNTcxNDkzZDkyNDgzMzU5NTQ1OWRlNjkxNDIzNzI0NmEuLjkyYmRiZGViNjdiMWZkYjky
YWJhYmJkNGE5OGU5MmU3NTE3MTA2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTcwLDYgKzE3MCw3
IEBAIHN0YXRpYyBRU3RyaW5nIGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNv
bnN0IFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBuCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGJvb2wg
RnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzID0gZmFsc2U7Citi
b29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSBm
YWxzZTsKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxv
YWRlckNhbGxiYWNrcyA9IGZhbHNlOwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CiBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNl
bmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0ID0gZmFsc2U7CkBAIC01OTIsNiArNTkzLDkg
QEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWRO
b3RpZmljYXRpb24oKQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnBvc3RQcm9ncmVzc0Zp
bmlzaGVkTm90aWZpY2F0aW9uKCkKIHsKKyAgICBpZiAoZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjaykKKyAgICAgICAgcHJpbnRmKCJwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvblxu
Iik7CisKICAgICAvLyBTZW5kIGEgbW91c2Vtb3ZlIGV2ZW50IHRvOgogICAgIC8vICgxKSB1cGRh
dGUgdGhlIGN1cnNvciB0byBjaGFuZ2UgYWNjb3JkaW5nIHRvIHdoYXRldmVyIGlzIHVuZGVybmVh
dGggdGhlIG1vdXNlIGN1cnNvciByaWdodCBub3c7CiAgICAgLy8gKDIpIGRpc3BsYXkgdGhlIHRv
b2wgdGlwIGlmIHRoZSBtb3VzZSBob3ZlcnMgYSBub2RlIHdoaWNoIGhhcyBhIHRvb2wgdGlwLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuaAppbmRleCA2YWY4NTJiNTQyNDU2NjkwMTRlMGQ3OTkzZTZmODU2ZmZhZTE1NzAwLi4y
MjQ0YjI2NGMxYTE3ZTczNjg4MTMxMTU2ZjdkMWI4MjczNDJjNWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApAQCAt
MjQ3LDYgKzI0Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBLVVJMJiBsYXN0UmVxdWVzdGVkVXJs
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UmVxdWVzdGVkVXJsOyB9CiAKICAgICBzdGF0aWMgYm9v
bCBkdW1wRnJhbWVMb2FkZXJDYWxsYmFja3M7CisgICAgc3RhdGljIGJvb2wgZHVtcFByb2dyZXNz
RmluaXNoZWRDYWxsYmFjazsKICAgICBzdGF0aWMgYm9vbCBkdW1wVXNlckdlc3R1cmVJbkZyYW1l
TG9hZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODA3OTM0YWVl
Nzk4Yzg2N2QxMGQ4MzZlY2RkZTlhNjYwY2EyZWUyZC4uMmQ1ODFhNmFjY2NmYjc5NmE5ZmNjZGNm
MDVjN2I2Y2E1NmJjOTE4MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDExLTA4LTE3ICBDYWlvIE1hcmNlbG8gZGUg
T2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAg
RW1pdCBsYXN0IHByb2dyZXNzIG5vdGlmaWNhdGlvbiBiZWZvcmUgY2FsbGluZyBkaXNwYXRjaERp
ZEZpbmlzaExvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI4ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiB0aGUgbGF5b3V0
VGVzdENvbnRyb2xsZXIgZm9yIFF0LAorICAgICAgICBDaHJvbWl1bSBhbmQgR1RLIHBvcnRzLiBU
aGUgZmlyc3QgdHdvIHdlcmUgc2ltcGxlIGNoYW5nZXMuCisKKyAgICAgICAgU29tZSByZWZhY3Rv
cmluZyB3YXMgbmVlZGVkIGluIEdUSyBwb3J0IHRvIGFzc3VyZSB0aGF0IHRoZSBkdW1wcyBhcmUg
ZW1pdHRlZAorICAgICAgICBjb3JyZWN0bHkgYW5kIHRoZSBwcm9jZXNzaW5nIGFmdGVyIHRoZSBw
YWdlIGxvYWQgZmluaXNoZWQgaXMgaW4gdGhlIHJpZ2h0IHBsYWNlLgorCisgICAgICAgIFRvIGRl
dGVjdCB0aGUgbG9hZCBmaW5pc2hlZCwgd2UgdXNlIHRoZSBjYWxsYmFjayBmb3IgdGhlICJsb2Fk
LXN0YXR1cyIgbm90aWZpZXIKKyAgICAgICAgc2lnbmFsIG9mIHRoZSB0b3AgbG9hZGluZyBmcmFt
ZS4gQW5kIHdlIHVzZSB0aGUgZGVwcmVjYXRlZCAibG9hZC1maW5pc2hlZCIgc2lnbmFsCisgICAg
ICAgIGZvciBkdW1waW5nIChpZiBlbmFibGVkKSB0aGUgcHJvZ3Jlc3MgZmluaXNoZWQgZXhwZWN0
ZWQgb3V0cHV0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9s
bGVyKToKKyAgICAgICAgKGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2tDYWxsYmFjayk6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkRHVtcFByb2dyZXNz
RmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmRpZFN0b3BMb2FkaW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
d2ViVmlld0xvYWRGaW5pc2hlZCk6CisgICAgICAgICh0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNo
ZWQpOgorICAgICAgICAod2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisKIDIwMTEtMDgtMTcgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVcGRhdGUgVG9vbHMgdG8gYWNjb3VudCBm
b3IgKENHKSBiZWluZyBhZGRlZCB0byBDaHJvbWl1bSBidWlsZGVyIG5hbWVzCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNzgwNTRiY2U1ODM1
MWNkNDhmZWM3YzNhNjcxNTZhYzgxZDJkNjZjOS4uYjkyYTQwZWJjZWMyMzUzZmU2ZTQ5Y2NiYWE2
N2QxNmE2ZGVkMGRjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcApAQCAtNTUsNiArNTUsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0
VGVzdENvbnRyb2xsZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbgogICAg
ICwgbV9kdW1wRGF0YWJhc2VDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBFZGl0aW5nQ2Fs
bGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGZhbHNlKQorICAg
ICwgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGZhbHNlKQogICAgICwgbV9kdW1wVXNl
ckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyhmYWxzZSkKICAgICAsIG1fZHVtcEhpc3RvcnlE
ZWxlZ2F0ZUNhbGxiYWNrcyhmYWxzZSkKICAgICAsIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNr
cyhmYWxzZSkKQEAgLTIwNCw2ICsyMDUsMTMgQEAgc3RhdGljIEpTVmFsdWVSZWYgZHVtcEZyYW1l
TG9hZENhbGxiYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFIKICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1Zh
bHVlUmVmIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2tDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCit7CisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0RHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayh0cnVlKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9
CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tz
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIExheW91dFRlc3RD
b250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIq
PihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjI5Niw2ICsyMzA0LDcgQEAg
SlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygp
CiAgICAgICAgIHsgImR1bXBEYXRhYmFzZUNhbGxiYWNrcyIsIGR1bXBEYXRhYmFzZUNhbGxiYWNr
c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBFZGl0aW5nQ2FsbGJhY2tzIiwgZHVt
cEVkaXRpbmdDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzIiwgZHVtcEZyYW1lTG9hZENhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisg
ICAgICAgIHsgImR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2siLCBkdW1wUHJvZ3Jlc3NGaW5p
c2hlZENhbGxiYWNrQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcFVzZXJHZXN0dXJl
SW5GcmFtZUxvYWRDYWxsYmFja3MiLCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sICAgICAgICAKICAgICAgICAgeyAiZHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcyIsIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyIsIGR1bXBSZXNvdXJjZVJlc3Bv
bnNlTUlNRVR5cGVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDliNzYyODgwZWNhZjVmODA4YTk2N2Y3YTk0MzI2OTEz
MjA1NjVkYTAuLjkyOGNmYzdhYTMxOTczYzZjMjUxNzY4NDVhODRlOGZjYmZhNTZiNzkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDYgKzE4
MSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0
IHsgcmV0dXJuIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0RHVtcEZy
YW1lTG9hZENhbGxiYWNrcyhib29sIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MpIHsgbV9kdW1wRnJh
bWVMb2FkQ2FsbGJhY2tzID0gZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQorCisgICAgYm9vbCBk
dW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrOyB9CisgICAgdm9pZCBzZXREdW1wUHJvZ3Jlc3NGaW5pc2hlZENh
bGxiYWNrKGJvb2wgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaykgeyBtX2R1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2sgPSBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOyB9CiAgICAg
CiAgICAgYm9vbCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsg
cmV0dXJuIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lk
IHNldER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgZHVtcFVzZXJHZXN0
dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MpIHsgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENh
bGxiYWNrcyA9IGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOyB9ICAgIApAQCAt
MzY5LDYgKzM3Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2R1bXBEYXRhYmFzZUNhbGxiYWNr
czsKICAgICBib29sIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBGcmFt
ZUxvYWRDYWxsYmFja3M7CisgICAgYm9vbCBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2s7
CiAgICAgYm9vbCBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOwogICAgIGJv
b2wgbV9kdW1wSGlzdG9yeURlbGVnYXRlQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDQwOWY4NTM4ZmY2MzQ2NmIzYjE0ZDQy
ZWJmM2QwYWVhMjM0ZTI2NjEuLjFiNmNkYTMwMmQzZDY4MzM4Njg0MGIzYjFiNWRiZjk0MGI0MTQz
NTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwMiw2ICsxMDIsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9k
KCJkdW1wRGF0YWJhc2VDYWxsYmFja3MiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBEYXRh
YmFzZUNhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcEVkaXRpbmdDYWxsYmFja3MiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBFZGl0aW5nQ2FsbGJhY2tzKTsKICAgICBiaW5kTWV0
aG9kKCJkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKTsKKyAgICBiaW5kTWV0aG9kKCJkdW1wUHJvZ3Jlc3NGaW5pc2hl
ZENhbGxiYWNrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENh
bGxiYWNrKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxi
YWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRD
YWxsYmFja3MpOwogICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MpOwogICAgIGJp
bmRNZXRob2QoImR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyk7CkBAIC0zMjIsNiArMzIzLDEy
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAK
K3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2so
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIG1fZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IHRydWU7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkK
IHsKICAgICBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKQEAg
LTU3Niw2ICs1ODMsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgpCiAgICAg
bV9kdW1wQXNBdWRpbyA9IGZhbHNlOwogICAgIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MgPSBmYWxz
ZTsKICAgICBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBtX2R1bXBQcm9n
cmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSBmYWxzZTsKICAgICBtX2R1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CiAgICAgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tz
ID0gZmFsc2U7CiAgICAgbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyA9IGZhbHNlOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKaW5kZXggNmFlYTdlY2YyNzhmMDQzNGFhZGNkMTk2N2Q0NWUzNjNhNGVhNmM4Yi4uODlj
ZTBiNzA5ZTIxOGVkMjM0ZjljOWM2MTcyZTNmYmQ0MzNmOThlOSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC05NCw2
ICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24g
c2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YK
KyAgICAvLyBkZXNjcmlwdGl2ZSB0ZXh0IGZvciB0aGUgcHJvZ3Jlc3MgZmluaXNoZWQgY2FsbGJh
Y2suIEl0IHRha2VzIG5vCisgICAgLy8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBt
YXkgYmUgcHJlc2VudC4KKyAgICB2b2lkIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCisgICAgLy8gVGhpcyBmdW5jdGlv
biBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IGEgbGluZSBv
ZgogICAgIC8vIHVzZXIgZ2VzdHVyZSBzdGF0dXMgdGV4dCBmb3Igc29tZSBmcmFtZSBsb2FkIGNh
bGxiYWNrcy4gSXQgdGFrZXMgbm8KICAgICAvLyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueSB0
aGF0IG1heSBiZSBwcmVzZW50LgogICAgIHZvaWQgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRD
YWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpAQCAtNDA4LDYg
KzQxMyw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkg
eyByZXR1cm4gbV9kdW1wRWRpdGluZ0NhbGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpIHsgcmV0dXJuIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQog
ICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1f
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9IHZhbHVlOyB9CisgICAgYm9vbCBzaG91bGREdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgeyByZXR1cm4gbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENh
bGxiYWNrOyB9CisgICAgYm9vbCBzZXRTaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNr
KGJvb2wgdmFsdWUpIHsgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gdmFsdWU7IH0K
ICAgICBib29sIHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgeyBy
ZXR1cm4gbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrczsgfQogICAgIHZvaWQg
c2V0U2hvdWxkRHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkg
eyBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzID0gdmFsdWU7IH0KICAgICBi
b29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSB7cmV0dXJuIG1fZHVtcFJlc291
cmNlTG9hZENhbGxiYWNrczsgfQpAQCAtNTQwLDYgKzU0NywxMCBAQCBwcml2YXRlOgogICAgIC8v
IGxvYWQgY2FsbGJhY2suCiAgICAgYm9vbCBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7CiAKKyAg
ICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCBhIGRlc2NyaXB0aXZlIGxp
bmUgZm9yIHRoZSBwcm9ncmVzcworICAgIC8vIGZpbmlzaGVkIGNhbGxiYWNrLgorICAgIGJvb2wg
bV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOworCiAgICAgLy8gSWYgdHJ1ZSwgdGhlIHRl
c3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBsaW5lIG9mIHRoZSB1c2VyIGdlc3R1cmUgc3RhdHVzCiAg
ICAgLy8gdGV4dCBmb3Igc29tZSBmcmFtZSBsb2FkIGNhbGxiYWNrcy4KICAgICBib29sIG1fZHVt
cFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggN2RiZWNkOGQyMWZkNzYyOWYyNWQ2MzMx
MGU4MjAyMTI2MWVlNzczNy4uYjUzMDY3MDI5OWNlMWRhN2UxOTc0ZWY5M2UzMDEyYTYxZTgwM2Q2
MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApA
QCAtMjg3LDYgKzI4Nyw4IEBAIHZvaWQgV2ViVmlld0hvc3Q6OmRpZFN0YXJ0TG9hZGluZygpCiAK
IHZvaWQgV2ViVmlld0hvc3Q6OmRpZFN0b3BMb2FkaW5nKCkKIHsKKyAgICBpZiAobGF5b3V0VGVz
dENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpKQorICAg
ICAgICBmcHV0cygicG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIsIHN0ZG91dCk7
CiAgICAgbV9zaGVsbC0+c2V0SXNMb2FkaW5nKGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggMjMwODFjYzU1YzQxY2VlYmJmZjg3
ODFjMTkyNDdhNjQ0M2FmZWNhNi4uODQ3MDM2ZDIzMDYyNjQ1YzAzOGM2OTBlZDRlYWJjY2YwYzdk
MDJjZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC03NzcsMTggKzc3NywxMiBAQCBzdGF0aWMgY2hhciogZ2V0RnJhbWVOYW1lU3VpdGFibGVGb3JU
ZXN0UmVzdWx0KFdlYktpdFdlYlZpZXcqIHZpZXcsIFdlYktpdFdlYkZyYQogCiBzdGF0aWMgdm9p
ZCB3ZWJWaWV3TG9hZEZpbmlzaGVkKFdlYktpdFdlYlZpZXcqIHZpZXcsIFdlYktpdFdlYkZyYW1l
KiBmcmFtZSwgdm9pZCopCiB7CisgICAgLy8gVGhlIGRlcHJlY2F0ZWQgImxvYWQtZmluaXNoZWQi
IHNpZ25hbCBpcyB0cmlnZ2VyZWQgYnkgcG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24o
KSwKKyAgICAvLyBzbyB3ZSBjYW4gdXNlIGl0IGhlcmUgaW4gdGhlIERSVCB0byBwcm92aWRlIHRo
ZSBjb3JyZWN0IGR1bXAuCiAgICAgaWYgKGZyYW1lICE9IHRvcExvYWRpbmdGcmFtZSkKICAgICAg
ICAgcmV0dXJuOwotCi0gICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKLSAgICBXb3JrUXVldWU6OnNo
YXJlZCgpLT5zZXRGcm96ZW4odHJ1ZSk7IC8vIGZpcnN0IGNvbXBsZXRlIGxvYWQgZnJlZXplcyB0
aGUgcXVldWUgZm9yIHRoZSByZXN0IG9mIHRoaXMgdGVzdAotICAgIGlmIChnTGF5b3V0VGVzdENv
bnRyb2xsZXItPndhaXRUb0R1bXAoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFdvcmtR
dWV1ZTo6c2hhcmVkKCktPmNvdW50KCkpCi0gICAgICAgIGdfdGltZW91dF9hZGQoMCwgcHJvY2Vz
c1dvcmssIDApOwotICAgIGVsc2UKLSAgICAgICAgZHVtcCgpOworICAgIGlmIChnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSkKKyAgICAgICAgcHJp
bnRmKCJwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvblxuIik7CiB9CiAKIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJWaWV3TG9hZEVycm9yKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRXZWJGcmFtZSos
IGdjaGFyKiwgZ3BvaW50ZXIsIGdwb2ludGVyKQpAQCAtMTAyMiw2ICsxMDE2LDE5IEBAIHN0YXRp
YyBXZWJLaXRXZWJWaWV3KiB3ZWJJbnNwZWN0b3JJbnNwZWN0V2ViVmlldyhXZWJLaXRXZWJJbnNw
ZWN0b3IqLCBncG9pbnRlciBkCiAgICAgcmV0dXJuIFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3KTsK
IH0KIAorc3RhdGljIHZvaWQgdG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCkKK3sKKyAgICB0
b3BMb2FkaW5nRnJhbWUgPSAwOworICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3plbih0
cnVlKTsgLy8gZmlyc3QgY29tcGxldGUgbG9hZCBmcmVlemVzIHRoZSBxdWV1ZSBmb3IgdGhlIHJl
c3Qgb2YgdGhpcyB0ZXN0CisgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+d2FpdFRvRHVt
cCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y291
bnQoKSkKKyAgICAgICAgZ190aW1lb3V0X2FkZCgwLCBwcm9jZXNzV29yaywgMCk7CisgICAgZWxz
ZQorICAgICAgICBkdW1wKCk7Cit9CisKIHN0YXRpYyB2b2lkIHdlYkZyYW1lTG9hZFN0YXR1c05v
dGlmaWVkKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQogewogICAg
IFdlYktpdExvYWRTdGF0dXMgbG9hZFN0YXR1cyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvYWRf
c3RhdHVzKGZyYW1lKTsKQEAgLTEwMzksMTMgKzEwNDYsMTcgQEAgc3RhdGljIHZvaWQgd2ViRnJh
bWVMb2FkU3RhdHVzTm90aWZpZWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBncG9pbnRlciB1c2Vy
X2RhdGEKICAgICAgICAgICAgICAgICBwcmludGYoIiVzIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1l
XG4iLCBmcmFtZU5hbWUuZ2V0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
V0VCS0lUX0xPQURfRklOSVNIRUQ6Ci0gICAgICAgICAgICBpZiAoZnJhbWUgIT0gdG9wTG9hZGlu
Z0ZyYW1lIHx8ICFkb25lKQorICAgICAgICAgICAgaWYgKCFkb25lKQogICAgICAgICAgICAgICAg
IHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS5nZXQoKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKChsb2FkU3RhdHVzID09IFdFQktJVF9MT0FE
X0ZJTklTSEVEIHx8IGxvYWRTdGF0dXMgPT0gV0VCS0lUX0xPQURfRkFJTEVEKQorICAgICAgICAm
JiBmcmFtZSA9PSB0b3BMb2FkaW5nRnJhbWUpCisgICAgICAgIHRvcExvYWRpbmdGcmFtZUxvYWRG
aW5pc2hlZCgpOwogfQogCiBzdGF0aWMgdm9pZCBmcmFtZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRXZWJGcmFtZSogd2ViRnJhbWUsIGdwb2ludGVyIHVzZXJf
ZGF0YSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAKaW5kZXggMjQ0YTk0YTM0OGE3ZGM4MWFhYjQzZWM3MWRjYTMzZTg2MTc4YzBmNS4u
ZjQ2MTVhYmRkZDgyY2Y5MjlhOGU5MzUwNTI2MWUwMDI0MzUzOWIxZCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTc2LDYg
Kzc2LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogCiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBFZGl0aW5nQ2FsbGJhY2tzKGZhbHNlKTsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcEZyYW1lTG9hZGVyKGZhbHNlKTsKKyAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhmYWxzZSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXIo
ZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzKGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFJlc291cmNl
UmVzcG9uc2VNSU1FVHlwZXMoZmFsc2UpOwpAQCAtMjYxLDYgKzI2MiwxMSBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6ZHVtcEZyYW1lTG9hZGVyKHRydWUpOwogfQogCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkKK3sKKyAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayh0cnVlKTsK
K30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxv
YWRDYWxsYmFja3MoKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wVXNlckdl
c3R1cmVJbkZyYW1lTG9hZGVyKHRydWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDIwNTM5MjBkMGNhZDg5MmIzY2JjZmE2NzM4
YzJjNDk5ZjIxNGFlYjcuLjE1ZmQ4ZmMyMmUxOTJlZDI0M2E4ZTVkYTliZDI0MGQ1M2RiM2YxZGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBoYW5kbGVFcnJv
clBhZ2VzKCkgeyBtX2hhbmRsZUVycm9yUGFnZXMgPSB0cnVlOyB9CiAgICAgdm9pZCBkdW1wRWRp
dGluZ0NhbGxiYWNrcygpOwogICAgIHZvaWQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpOworICAg
IHZvaWQgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpOwogICAgIHZvaWQgZHVtcFVzZXJH
ZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKTsKICAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRD
YWxsYmFja3MoKTsKICAgICB2b2lkIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104336</attachid>
            <date>2011-08-18 07:16:27 -0700</date>
            <delta_ts>2011-08-23 06:31:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-28851-20110818111625.patch</filename>
            <type>text/plain</type>
            <size>24306</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMyNDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ODk1MzgxNDM1ZmFhYTcwNTRiMDVk
ZTFjYmNhMThmMjZiNjFlMzk3Li4xMzQ2MGQ0YTdhZDcxOTRkN2QyNDIzMDc1YWVhNzUwYjNiNDFl
NjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDgtMTcgIENhaW8gTWFyY2VsbyBkZSBP
bGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
bWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlk
RmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBLZWVwIHRyYWNrIG9mIHRoZSBvcmRlciBleHBlY3RlZCBmb3IgdGhlIHByb2dyZXNzRmluaXNo
ZWROb3RpZmljYXRpb24sIHdoaWNoIGlzCisgICAgICAgIGJlZm9yZSB0aGUgZGlkRmluaXNoTG9h
ZEZvckZyYW1lLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlz
aGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9s
b2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorCiAyMDExLTA4
LTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNTQgYW5kIDxyZGFyOi8vcHJvYmxl
bS85OTY1MjA5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3By
b2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzFjZWVmYmE1NTJmMjNhNGMyZTNlYzFhODEwZGE0MTZmNTVlNTM0NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5p
c2hlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACittYWluIGZyYW1lIC0g
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK3Bvc3RQcm9ncmVzc0Zp
bmlzaGVkTm90aWZpY2F0aW9uCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitU
aGlzIGlzIGEgdGVzdCBvZiBwcm9ncmVzcyBmaW5pc2hlZCBjYWxsYmFjayBvcmRlcmluZyBpbiBy
ZWxhdGlvbiB0byBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzLiBJdCBpcyBvbmx5IHVzZWZ1bCBpbnNp
ZGUgdGhlIHJlZ3Jlc3Npb24gdGVzdCB0b29sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43Y2YwYjdlNzk3NzViZDQ4ZjhmMjU1MzI0M2U0YWU0OGFkNmMyZWU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZp
bmlzaGVkLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSw3IEBACis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wUHJvZ3Jlc3NGaW5pc2hlZENh
bGxiYWNrKCk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgaXMgYSB0ZXN0IG9mIHByb2dyZXNzIGZpbmlz
aGVkIGNhbGxiYWNrIG9yZGVyaW5nIGluIHJlbGF0aW9uIHRvIGZyYW1lIGxvYWRlciBjYWxsYmFj
a3MuIEl0IGlzIG9ubHkgdXNlZnVsIGluc2lkZSB0aGUgcmVncmVzc2lvbiB0ZXN0IHRvb2wuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNWFlYTA4YjFmYjNlYTk5MmEzMjEyOTI1YTIxMjlmNTg2Zjc5ZGU1ZS4uZTNj
MjllZDlhMjgzNDUwNTk0NTRiMDczODQ1YzNlMjI0YzliM2RkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDExLTA4LTE3ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxj
YWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRW1pdCBsYXN0IHByb2dyZXNz
IG5vdGlmaWNhdGlvbiBiZWZvcmUgY2FsbGluZyBkaXNwYXRjaERpZEZpbmlzaExvYWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4ODUxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3JpZ2luYWwgcGF0Y2gg
YnkgWGFuIExvcGV6LiBDaGFuZ2UgRnJhbWVMb2FkZXIgdG8gZGlzcGF0Y2ggdGhlIG5vdGlmaWNh
dGlvbnMgaW4KKyAgICAgICAgYSBtb3JlIG5hdHVyYWwgc2VxdWVuY2UuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWwKKwor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUpOgorCiAyMDExLTA4LTE3ICBC
cmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYzNTQgYW5kIDxyZGFyOi8vcHJvYmxlbS85OTY1
MjA5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggOWRhY2FkNTQxNDM4
Y2Q2Y2U1ZmYzYzFlNWRkZGYyODNmNWFiY2IzMy4uYmJiNThiNDExNTBhYWFhYjk3MGYxYjQwODg4
OTc2M2VlZWE4ZGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0y
MjU5LDE0ICsyMjU5LDE1IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9y
VGhpc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtX3N0YXRlTWFjaGluZS5jcmVhdGluZ0luaXRp
YWxFbXB0eURvY3VtZW50KCkgfHwgIW1fc3RhdGVNYWNoaW5lLmNvbW1pdHRlZEZpcnN0UmVhbERv
Y3VtZW50TG9hZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgcGFnZS0+cHJv
Z3Jlc3MoKS0+cHJvZ3Jlc3NDb21wbGV0ZWQobV9mcmFtZSk7CisKICAgICAgICAgICAgIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yID0gZGwtPm1haW5Eb2N1bWVudEVycm9yKCk7CiAgICAgICAg
ICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNw
YXRjaERpZEZhaWxMb2FkKGVycm9yKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7CiAKLSAgICAgICAgICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPnByb2dy
ZXNzKCktPnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyYzA2NDNlMzRlYjMyM2M2OWRm
ZTJiMzlkMmE1ODI3N2FiNmQyZDBjLi4wYWI5MzM3ZDBjNWU1ZDgzNGE2YWIyNDQyYjYzOTEyYmNl
YTMxZTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDExLTA4LTE3ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgRW1pdCBsYXN0IHByb2dyZXNzIG5vdGlmaWNhdGlvbiBiZWZvcmUgY2FsbGlu
ZyBkaXNwYXRjaERpZEZpbmlzaExvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI4ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGR1bXAgcHJvZ3Jlc3NGaW5pc2hl
ZE5vdGlmaWNhdGlvbiBjYWxsYmFjayBpbiBEUlQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIwMTEtMDgtMTYgIENo
YW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KIAogICAgICAgICBTdXBwb3J0IHJlc2V0IGluIFdl
YkNvcmU6OkludGVybmFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCBhZjg2ZTIyZDk2OGFm
MDJmOTVlNTg4MjYxOTgzMTNiZDJhY2RmMzYwLi5mNGExNTk2MWM5MzYzMzBmN2Y3MWJjN2VjMjRh
NDQ0NjQ5NGM3YjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtNjgxLDYgKzY4MSwxMSBA
QCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVMb2FkZXIoYm9vbCBiKQog
ICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcyA9IGI7CiB9
CiAKK3ZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2Fs
bGJhY2soYm9vbCBiKQoreworICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBQcm9ncmVzc0Zp
bmlzaGVkQ2FsbGJhY2sgPSBiOworfQorCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpk
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyKGJvb2wgYikKIHsKICAgICBGcmFtZUxvYWRlckNs
aWVudFF0OjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyQ2FsbGJhY2tzID0gYjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuaAppbmRleCBiMGNmZjhhOWNiOWRlZDdhZGU3NTk5M2E1MjY0YmM3OTU3OWVhM2Rk
Li41MDcxODM3M2EwZDljNDczZTExZmM3Y2QzZWI2YTM2NDEzMjI2MzgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oCkBAIC0xNjMsNiArMTYzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBRU3RyaW5nIHBs
YWluVGV4dChjb25zdCBRVmFyaWFudCYgcm5nKTsKIAogICAgIHN0YXRpYyB2b2lkIGR1bXBGcmFt
ZUxvYWRlcihib29sIGIpOworICAgIHN0YXRpYyB2b2lkIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2Fs
bGJhY2soYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRl
cihib29sIGIpOwogICAgIHN0YXRpYyB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoYm9v
bCBiKTsKICAgICBzdGF0aWMgdm9pZCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhib29s
IGIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMDhiOWNkMDM1NzE0OTNkOTI0ODMzNTk1NDU5ZGU2OTE0
MjM3MjQ2YS4uOTJiZGJkZWI2N2IxZmRiOTJhYmFiYmQ0YTk4ZTkyZTc1MTcxMDYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCkBAIC0xNzAsNiArMTcwLDcgQEAgc3RhdGljIFFTdHJpbmcgZHJ0RGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3QgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG4KIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wRnJhbWVM
b2FkZXJDYWxsYmFja3MgPSBmYWxzZTsKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IGZhbHNlOwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0
OjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyQ2FsbGJhY2tzID0gZmFsc2U7CiBib29sIEZy
YW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKIGJv
b2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6c2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3Qg
PSBmYWxzZTsKQEAgLTU5Miw2ICs1OTMsOSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnBv
c3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigpCiAKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRRdDo6cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKQogeworICAgIGlm
IChkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKQorICAgICAgICBwcmludGYoInBvc3RQcm9n
cmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iKTsKKwogICAgIC8vIFNlbmQgYSBtb3VzZW1vdmUg
ZXZlbnQgdG86CiAgICAgLy8gKDEpIHVwZGF0ZSB0aGUgY3Vyc29yIHRvIGNoYW5nZSBhY2NvcmRp
bmcgdG8gd2hhdGV2ZXIgaXMgdW5kZXJuZWF0aCB0aGUgbW91c2UgY3Vyc29yIHJpZ2h0IG5vdzsK
ICAgICAvLyAoMikgZGlzcGxheSB0aGUgdG9vbCB0aXAgaWYgdGhlIG1vdXNlIGhvdmVycyBhIG5v
ZGUgd2hpY2ggaGFzIGEgdG9vbCB0aXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oCmluZGV4IDZhZjg1MmI1NDI0NTY2OTAx
NGUwZDc5OTNlNmY4NTZmZmFlMTU3MDAuLjIyNDRiMjY0YzFhMTdlNzM2ODgxMzExNTZmN2QxYjgy
NzM0MmM1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5oCkBAIC0yNDcsNiArMjQ3LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IEtVUkwmIGxhc3RSZXF1ZXN0ZWRVcmwoKSBjb25zdCB7IHJldHVybiBtX2xhc3RSZXF1ZXN0
ZWRVcmw7IH0KIAogICAgIHN0YXRpYyBib29sIGR1bXBGcmFtZUxvYWRlckNhbGxiYWNrczsKKyAg
ICBzdGF0aWMgYm9vbCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOwogICAgIHN0YXRpYyBi
b29sIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXJDYWxsYmFja3M7CiAgICAgc3RhdGljIGJv
b2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3Vy
Y2VSZXNwb25zZU1JTUVUeXBlczsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA4MDc5MzRhZWU3OThjODY3ZDEwZDgzNmVjZGRlOWE2NjBjYTJlZTJk
Li4yZDU4MWE2YWNjY2ZiNzk2YTlmY2NkY2YwNWM3YjZjYTU2YmM5MTgxIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIw
MTEtMDgtMTcgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFA
b3BlbmJvc3NhLm9yZz4KKworICAgICAgICBFbWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9u
IGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlkRmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgZHVtcFByb2dyZXNzRmluaXNo
ZWRDYWxsYmFjaygpIGluIHRoZSBsYXlvdXRUZXN0Q29udHJvbGxlciBmb3IgUXQsCisgICAgICAg
IENocm9taXVtIGFuZCBHVEsgcG9ydHMuIFRoZSBmaXJzdCB0d28gd2VyZSBzaW1wbGUgY2hhbmdl
cy4KKworICAgICAgICBTb21lIHJlZmFjdG9yaW5nIHdhcyBuZWVkZWQgaW4gR1RLIHBvcnQgdG8g
YXNzdXJlIHRoYXQgdGhlIGR1bXBzIGFyZSBlbWl0dGVkCisgICAgICAgIGNvcnJlY3RseSBhbmQg
dGhlIHByb2Nlc3NpbmcgYWZ0ZXIgdGhlIHBhZ2UgbG9hZCBmaW5pc2hlZCBpcyBpbiB0aGUgcmln
aHQgcGxhY2UuCisKKyAgICAgICAgVG8gZGV0ZWN0IHRoZSBsb2FkIGZpbmlzaGVkLCB3ZSB1c2Ug
dGhlIGNhbGxiYWNrIGZvciB0aGUgImxvYWQtc3RhdHVzIiBub3RpZmllcgorICAgICAgICBzaWdu
YWwgb2YgdGhlIHRvcCBsb2FkaW5nIGZyYW1lLiBBbmQgd2UgdXNlIHRoZSBkZXByZWNhdGVkICJs
b2FkLWZpbmlzaGVkIiBzaWduYWwKKyAgICAgICAgZm9yIGR1bXBpbmcgKGlmIGVuYWJsZWQpIHRo
ZSBwcm9ncmVzcyBmaW5pc2hlZCBleHBlY3RlZCBvdXRwdXQuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoZHVtcFByb2dyZXNzRmlu
aXNoZWRDYWxsYmFja0NhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpz
dGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmlu
aXNoZWRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzaG91bGRE
dW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRTaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3
SG9zdDo6ZGlkU3RvcExvYWRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1w
UmVuZGVyVHJlZS5jcHA6CisgICAgICAgICh3ZWJWaWV3TG9hZEZpbmlzaGVkKToKKyAgICAgICAg
KHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCk6CisgICAgICAgICh3ZWJGcmFtZUxvYWRTdGF0
dXNOb3RpZmllZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoK
KwogMjAxMS0wOC0xNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVwZGF0ZSBUb29scyB0byBhY2NvdW50IGZvciAoQ0cpIGJlaW5nIGFkZGVkIHRvIENocm9taXVt
IGJ1aWxkZXIgbmFtZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCA3ODA1NGJjZTU4MzUxY2Q0OGZlYzdjM2E2NzE1NmFjODFkMmQ2NmM5Li5i
OTJhNDBlYmNlYzIzNTNmZTZlNDljY2JhYTY3ZDE2YTZkZWQwZGNhIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC01NSw2ICs1NSw3IEBAIExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmlu
ZyYgdGVzdFBhdGhPclVSTCwgY29uCiAgICAgLCBtX2R1bXBEYXRhYmFzZUNhbGxiYWNrcyhmYWxz
ZSkKICAgICAsIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoZmFsc2UpCisgICAgLCBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2soZmFsc2UpCiAgICAgLCBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGZh
bHNlKQogICAgICwgbV9kdW1wSGlzdG9yeURlbGVnYXRlQ2FsbGJhY2tzKGZhbHNlKQogICAgICwg
bV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGZhbHNlKQpAQCAtMjA0LDYgKzIwNSwxMyBAQCBz
dGF0aWMgSlNWYWx1ZVJlZiBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBMYXlvdXRU
ZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9s
bGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5z
ZXREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKHRydWUpOworICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgZHVtcFVzZXJH
ZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3NDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7CkBAIC0yMjk2LDYgKzIzMDQsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAiZHVtcERhdGFiYXNlQ2FsbGJh
Y2tzIiwgZHVtcERhdGFiYXNlQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
ZHVtcEVkaXRpbmdDYWxsYmFja3MiLCBkdW1wRWRpdGluZ0NhbGxiYWNrc0NhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgImR1bXBGcmFtZUxvYWRDYWxsYmFja3MiLCBkdW1wRnJhbWVMb2FkQ2Fs
bGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjayIsIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2tDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyIsIGR1bXBVc2Vy
R2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgICAgICAgIAogICAg
ICAgICB7ICJkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzIiwgZHVtcFJlc291cmNlTG9hZENhbGxi
YWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzIiwgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggOWI3NjI4
ODBlY2FmNWY4MDhhOTY3ZjdhOTQzMjY5MTMyMDU2NWRhMC4uOTI4Y2ZjN2FhMzE5NzNjNmMyNTE3
Njg0NWE4NGU4ZmNiZmE1NmI3OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCkBAIC0xODEsNiArMTgxLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzOyB9CiAgICAgdm9pZCBzZXREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgZHVtcEZyYW1l
TG9hZENhbGxiYWNrcykgeyBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3MgPSBkdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzOyB9CisKKyAgICBib29sIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBj
b25zdCB7IHJldHVybiBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2s7IH0KKyAgICB2b2lk
IHNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soYm9vbCBkdW1wUHJvZ3Jlc3NGaW5pc2hl
ZENhbGxiYWNrKSB7IG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IGR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2s7IH0KICAgICAKICAgICBib29sIGR1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1l
TG9hZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0RHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRD
YWxsYmFja3MoYm9vbCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcykgeyBtX2R1
bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzID0gZHVtcFVzZXJHZXN0dXJlSW5GcmFt
ZUxvYWRDYWxsYmFja3M7IH0gICAgCkBAIC0zNjksNiArMzcyLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fZHVtcERhdGFiYXNlQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wRWRpdGluZ0NhbGxi
YWNrczsKICAgICBib29sIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsKKyAgICBib29sIG1fZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjazsKICAgICBib29sIG1fZHVtcFVzZXJHZXN0dXJlSW5G
cmFtZUxvYWRDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBIaXN0b3J5RGVsZWdhdGVDYWxsYmFj
a3M7CiAgICAgYm9vbCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggNDA5Zjg1MzhmZjYzNDY2YjNiMTRkNDJlYmYzZDBhZWEyMzRlMjY2MS4uMWI2Y2RhMzAyZDNk
NjgzMzg2ODQwYjNiMWI1ZGJmOTQwYjQxNDM1MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTAyLDYgKzEw
Miw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hl
bGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoImR1bXBEYXRhYmFzZUNhbGxiYWNrcyIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcERhdGFiYXNlQ2FsbGJhY2tzKTsKICAgICBiaW5kTWV0aG9k
KCJkdW1wRWRpdGluZ0NhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEVkaXRp
bmdDYWxsYmFja3MpOwogICAgIGJpbmRNZXRob2QoImR1bXBGcmFtZUxvYWRDYWxsYmFja3MiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBGcmFtZUxvYWRDYWxsYmFja3MpOworICAgIGJpbmRN
ZXRob2QoImR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2siLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOwogICAgIGJpbmRNZXRob2QoImR1bXBV
c2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpk
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVt
cFJlc291cmNlTG9hZENhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFJlc291
cmNlTG9hZENhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFJlc291cmNlUmVzcG9uc2VN
SU1FVHlwZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzKTsKQEAgLTMyMiw2ICszMjMsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXIKICAg
ICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50KiByZXN1bHQpCit7CisgICAgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gdHJ1
ZTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFt
ZUxvYWRDYWxsYmFja3MgPSB0cnVlOwpAQCAtNTc2LDYgKzU4Myw3IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnJlc2V0KCkKICAgICBtX2R1bXBBc0F1ZGlvID0gZmFsc2U7CiAgICAgbV9k
dW1wRWRpdGluZ0NhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNr
cyA9IGZhbHNlOworICAgIG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IGZhbHNlOwog
ICAgIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKICAgICBt
X2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKICAgICBtX2R1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA2YWVhN2VjZjI3OGYwNDM0YWFk
Y2QxOTY3ZDQ1ZTM2M2E0ZWE2YzhiLi40YzhiZTBiZGU1NmVjNzdiN2FiMWViNWM0YTA0OGFmMDI4
ODBiNGRjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmgKQEAgLTk0LDYgKzk0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGR1
bXBGcmFtZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0
X3NoZWxsIHRvIHByaW50IGEgbGluZSBvZgorICAgIC8vIGRlc2NyaXB0aXZlIHRleHQgZm9yIHRo
ZSBwcm9ncmVzcyBmaW5pc2hlZCBjYWxsYmFjay4gSXQgdGFrZXMgbm8KKyAgICAvLyBhcmd1bWVu
dHMsIGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgorICAgIHZvaWQgZHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CisKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRl
c3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lIG9mCiAgICAgLy8gdXNlciBnZXN0dXJlIHN0YXR1cyB0
ZXh0IGZvciBzb21lIGZyYW1lIGxvYWQgY2FsbGJhY2tzLiBJdCB0YWtlcyBubwogICAgIC8vIGFy
Z3VtZW50cywgYW5kIGlnbm9yZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCiAgICAgdm9pZCBk
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CkBAIC00MDgsNiArNDEzLDggQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkRHVtcEVkaXRpbmdDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tz
OyB9CiAgICAgYm9vbCBzaG91bGREdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9k
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBzZXRTaG91bGREdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKGJvb2wgdmFsdWUpIHsgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzID0gdmFsdWU7
IH0KKyAgICBib29sIHNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSB7IHJldHVy
biBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2s7IH0KKyAgICB2b2lkIHNldFNob3VsZER1
bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soYm9vbCB2YWx1ZSkgeyBtX2R1bXBQcm9ncmVzc0Zp
bmlzaGVkQ2FsbGJhY2sgPSB2YWx1ZTsgfQogICAgIGJvb2wgc2hvdWxkRHVtcFVzZXJHZXN0dXJl
SW5GcmFtZUxvYWRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBzZXRTaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1l
TG9hZENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRD
YWxsYmFja3MgPSB2YWx1ZTsgfQogICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcygpIHtyZXR1cm4gbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOyB9CkBAIC01NDAsNiAr
NTQ3LDEwIEBAIHByaXZhdGU6CiAgICAgLy8gbG9hZCBjYWxsYmFjay4KICAgICBib29sIG1fZHVt
cEZyYW1lTG9hZENhbGxiYWNrczsKIAorICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdp
bGwgb3V0cHV0IGEgZGVzY3JpcHRpdmUgbGluZSBmb3IgdGhlIHByb2dyZXNzCisgICAgLy8gZmlu
aXNoZWQgY2FsbGJhY2suCisgICAgYm9vbCBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2s7
CisKICAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCBhIGxpbmUgb2Yg
dGhlIHVzZXIgZ2VzdHVyZSBzdGF0dXMKICAgICAvLyB0ZXh0IGZvciBzb21lIGZyYW1lIGxvYWQg
Y2FsbGJhY2tzLgogICAgIGJvb2wgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
czsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRl
eCA3ZGJlY2Q4ZDIxZmQ3NjI5ZjI1ZDYzMzEwZTgyMDIxMjYxZWU3NzM3Li5iNTMwNjcwMjk5Y2Ux
ZGE3ZTE5NzRlZjkzZTMwMTJhNjFlODAzZDYyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0yODcsNiArMjg3LDggQEAgdm9pZCBXZWJWaWV3
SG9zdDo6ZGlkU3RhcnRMb2FkaW5nKCkKIAogdm9pZCBXZWJWaWV3SG9zdDo6ZGlkU3RvcExvYWRp
bmcoKQogeworICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrKCkpCisgICAgICAgIGZwdXRzKCJwb3N0UHJvZ3Jlc3NGaW5pc2hl
ZE5vdGlmaWNhdGlvblxuIiwgc3Rkb3V0KTsKICAgICBtX3NoZWxsLT5zZXRJc0xvYWRpbmcoZmFs
c2UpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCAyMzA4MWNjNTVjNDFjZWViYmZmODc4MWMxOTI0N2E2NDQzYWZlY2E2Li44NDcwMzZkMjMw
NjI2NDVjMDM4YzY5MGVkNGVhYmNjZjBjN2QwMmNkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTc3NywxOCArNzc3LDEyIEBAIHN0YXRpYyBjaGFy
KiBnZXRGcmFtZU5hbWVTdWl0YWJsZUZvclRlc3RSZXN1bHQoV2ViS2l0V2ViVmlldyogdmlldywg
V2ViS2l0V2ViRnJhCiAKIHN0YXRpYyB2b2lkIHdlYlZpZXdMb2FkRmluaXNoZWQoV2ViS2l0V2Vi
VmlldyogdmlldywgV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCB2b2lkKikKIHsKKyAgICAvLyBUaGUg
ZGVwcmVjYXRlZCAibG9hZC1maW5pc2hlZCIgc2lnbmFsIGlzIHRyaWdnZXJlZCBieSBwb3N0UHJv
Z3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbigpLAorICAgIC8vIHNvIHdlIGNhbiB1c2UgaXQgaGVy
ZSBpbiB0aGUgRFJUIHRvIHByb3ZpZGUgdGhlIGNvcnJlY3QgZHVtcC4KICAgICBpZiAoZnJhbWUg
IT0gdG9wTG9hZGluZ0ZyYW1lKQogICAgICAgICByZXR1cm47Ci0KLSAgICB0b3BMb2FkaW5nRnJh
bWUgPSAwOwotICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3plbih0cnVlKTsgLy8gZmly
c3QgY29tcGxldGUgbG9hZCBmcmVlemVzIHRoZSBxdWV1ZSBmb3IgdGhlIHJlc3Qgb2YgdGhpcyB0
ZXN0Ci0gICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+d2FpdFRvRHVtcCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKLSAgICAg
ICAgZ190aW1lb3V0X2FkZCgwLCBwcm9jZXNzV29yaywgMCk7Ci0gICAgZWxzZQotICAgICAgICBk
dW1wKCk7CisgICAgaWYgKGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcFByb2dyZXNzRmluaXNo
ZWRDYWxsYmFjaygpKQorICAgICAgICBwcmludGYoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZp
Y2F0aW9uXG4iKTsKIH0KIAogc3RhdGljIGdib29sZWFuIHdlYlZpZXdMb2FkRXJyb3IoV2ViS2l0
V2ViVmlldyosIFdlYktpdFdlYkZyYW1lKiwgZ2NoYXIqLCBncG9pbnRlciwgZ3BvaW50ZXIpCkBA
IC0xMDIyLDYgKzEwMTYsMTkgQEAgc3RhdGljIFdlYktpdFdlYlZpZXcqIHdlYkluc3BlY3Rvcklu
c3BlY3RXZWJWaWV3KFdlYktpdFdlYkluc3BlY3RvciosIGdwb2ludGVyIGQKICAgICByZXR1cm4g
V0VCS0lUX1dFQl9WSUVXKHdlYlZpZXcpOwogfQogCitzdGF0aWMgdm9pZCB0b3BMb2FkaW5nRnJh
bWVMb2FkRmluaXNoZWQoKQoreworICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7CisgICAgV29ya1F1
ZXVlOjpzaGFyZWQoKS0+c2V0RnJvemVuKHRydWUpOyAvLyBmaXJzdCBjb21wbGV0ZSBsb2FkIGZy
ZWV6ZXMgdGhlIHF1ZXVlIGZvciB0aGUgcmVzdCBvZiB0aGlzIHRlc3QKKyAgICBpZiAoZ0xheW91
dFRlc3RDb250cm9sbGVyLT53YWl0VG9EdW1wKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChXb3JrUXVldWU6OnNoYXJlZCgpLT5jb3VudCgpKQorICAgICAgICBnX3RpbWVvdXRfYWRkKDAs
IHByb2Nlc3NXb3JrLCAwKTsKKyAgICBlbHNlCisgICAgICAgIGR1bXAoKTsKK30KKwogc3RhdGlj
IHZvaWQgd2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQoV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBn
cG9pbnRlciB1c2VyX2RhdGEpCiB7CiAgICAgV2ViS2l0TG9hZFN0YXR1cyBsb2FkU3RhdHVzID0g
d2Via2l0X3dlYl9mcmFtZV9nZXRfbG9hZF9zdGF0dXMoZnJhbWUpOwpAQCAtMTAzOSwxMyArMTA0
NiwxNyBAQCBzdGF0aWMgdm9pZCB3ZWJGcmFtZUxvYWRTdGF0dXNOb3RpZmllZChXZWJLaXRXZWJG
cmFtZSogZnJhbWUsIGdwb2ludGVyIHVzZXJfZGF0YQogICAgICAgICAgICAgICAgIHByaW50Zigi
JXMgLSBkaWRDb21taXRMb2FkRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS5nZXQoKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBXRUJLSVRfTE9BRF9GSU5JU0hFRDoKLSAgICAgICAg
ICAgIGlmIChmcmFtZSAhPSB0b3BMb2FkaW5nRnJhbWUgfHwgIWRvbmUpCisgICAgICAgICAgICBp
ZiAoIWRvbmUpCiAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZpbmlzaExvYWRGb3JG
cmFtZVxuIiwgZnJhbWVOYW1lLmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBpZiAo
KGxvYWRTdGF0dXMgPT0gV0VCS0lUX0xPQURfRklOSVNIRUQgfHwgbG9hZFN0YXR1cyA9PSBXRUJL
SVRfTE9BRF9GQUlMRUQpCisgICAgICAgICYmIGZyYW1lID09IHRvcExvYWRpbmdGcmFtZSkKKyAg
ICAgICAgdG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGZy
YW1lQ3JlYXRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYkZyYW1l
KiB3ZWJGcmFtZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCAyNDRhOTRhMzQ4YTdkYzgx
YWFiNDNlYzcxZGNhMzNlODYxNzhjMGY1Li5mNDYxNWFiZGRkODJjZjkyOWE4ZTkzNTA1MjYxZTAw
MjQzNTM5YjFkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcApAQCAtNzYsNiArNzYsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpyZXNldCgpCiAKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcEVkaXRpbmdD
YWxsYmFja3MoZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVM
b2FkZXIoZmFsc2UpOworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrKGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVt
cFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlcihmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoZmFsc2UpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhmYWxzZSk7CkBAIC0y
NjEsNiArMjYyLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wRnJhbWVMb2FkZXIo
dHJ1ZSk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBQcm9ncmVzc0Zpbmlz
aGVkQ2FsbGJhY2soKQoreworICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrKHRydWUpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpCiB7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXIodHJ1ZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXgg
MjA1MzkyMGQwY2FkODkyYjNjYmNmYTY3MzhjMmM0OTlmMjE0YWViNy4uMTVmZDhmYzIyZTE5MmVk
MjQzYThlNWRhOWJkMjQwZDUzZGIzZjFkYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMTEyLDYgKzExMiw3IEBAIHB1YmxpYyBz
bG90czoKICAgICB2b2lkIGhhbmRsZUVycm9yUGFnZXMoKSB7IG1faGFuZGxlRXJyb3JQYWdlcyA9
IHRydWU7IH0KICAgICB2b2lkIGR1bXBFZGl0aW5nQ2FsbGJhY2tzKCk7CiAgICAgdm9pZCBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCk7CisgICAgdm9pZCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxi
YWNrKCk7CiAgICAgdm9pZCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpOwog
ICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpOwogICAgIHZvaWQgZHVtcFJlc291
cmNlUmVzcG9uc2VNSU1FVHlwZXMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104834</attachid>
            <date>2011-08-23 06:31:44 -0700</date>
            <delta_ts>2011-08-30 12:47:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-28851-20110823103142.patch</filename>
            <type>text/plain</type>
            <size>25529</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM2MDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZjhkNTRjNzM0MWU1NzZkMWFiOGU3
YjY2YTYyYTA2MDg3ZTQ3NTEyLi5jNjBiYmZhMzRiMWNkMDQ1MTcxNDBlMGNlMmY4ZDQ4ZTYzMDdh
YjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMjMgIENhaW8gTWFyY2VsbyBkZSBP
bGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
bWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlk
RmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBLZWVwIHRyYWNrIG9mIHRoZSBvcmRlciBleHBlY3RlZCBmb3IgdGhlIHByb2dyZXNzRmluaXNo
ZWROb3RpZmljYXRpb24sIHdoaWNoIGlzCisgICAgICAgIGJlZm9yZSB0aGUgZGlkRmluaXNoTG9h
ZEZvckZyYW1lLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlz
aGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9s
b2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgor
CiAyMDExLTA4LTIzICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4gUmVtb3ZlIGEgbm9uLWV4aXN0ZW50IHRl
c3QgZnJvbSB0aGUgc2tpcHBlZCBsaXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFjZWVmYmE1NTJmMjNhNGMyZTNlYzFhODEwZGE0MTZm
NTVlNTM0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGlu
Zy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFt
ZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUK
K3Bvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uCittYWluIGZyYW1lIC0gZGlkRmluaXNo
TG9hZEZvckZyYW1lCitUaGlzIGlzIGEgdGVzdCBvZiBwcm9ncmVzcyBmaW5pc2hlZCBjYWxsYmFj
ayBvcmRlcmluZyBpbiByZWxhdGlvbiB0byBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzLiBJdCBpcyBv
bmx5IHVzZWZ1bCBpbnNpZGUgdGhlIHJlZ3Jlc3Npb24gdGVzdCB0b29sLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNr
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQt
Y2FsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2YwYjdlNzk3NzViZDQ4ZjhmMjU1MzI0M2U0YWU0
OGFkNmMyZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2Fk
aW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSw3IEBACis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrKCk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgaXMgYSB0ZXN0IG9m
IHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNrIG9yZGVyaW5nIGluIHJlbGF0aW9uIHRvIGZyYW1l
IGxvYWRlciBjYWxsYmFja3MuIEl0IGlzIG9ubHkgdXNlZnVsIGluc2lkZSB0aGUgcmVncmVzc2lv
biB0ZXN0IHRvb2wuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDY0Y2JlNTZiYTE4ZWVk
MDdkZjNjZjk1ZDZkMWVjODU4ZjNhODY2MjQuLjY1YjMyMDE2YzVjNTFkMTQwNzg2YTU1ZGI0OTEx
YzlmYzZjZmQyNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC00MTEsMyArNDExLDYg
QEAgY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwKIAogIyBUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCBhIG1pc21hdGNoIHJlZnRlc3Qgd2lsbCBmYWlsIGFzIGludGVuZGVk
IGlmIGJvdGggcmVzdWx0cyBhcmUgc2FtZS4KIGZhc3QvaGFybmVzcy9zYW1wbGUtZmFpbC1taXNt
YXRjaC1yZWZ0ZXN0Lmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjY3NzIKK2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFj
ay5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDQ1Y2NhMWI1ZGMyNjg5OGYzMDgx
NzdjYTVjMmM0YWRmYjgzMjVkNzcuLjlmMWQ0Mzc5NjNhZDU3ZmZhZWJmZTdhM2M5MjBjMDNiZjhk
YjcwZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xMzk4LDMgKzEzOTgsNiBAQCBm
YXN0L2hhcm5lc3Mvc2FtcGxlLWZhaWwtbWlzbWF0Y2gtcmVmdGVzdC5odG1sCiAjIGVkaXRpbmcv
c2VsZWN0aW9uL2NhcmV0LWF0LWJpZGktYm91bmRhcnkuaHRtbCB0aW1pbmcgb3V0IG9uIFdpbmRv
d3Mgc2luY2UgaXQgd2FzIGFkZGVkCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NjU1MQogZWRpdGluZy9zZWxlY3Rpb24vY2FyZXQtYXQtYmlkaS1ib3VuZGFyeS5o
dG1sCisKKyMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzczCito
dHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDE3OGE5ZDdhYTRjMDkwYmUzNTczMjY1MGFkZGVhMjlhOGI3NjZjZjUuLjM2OTMzOGQ0
M2I3NjJjODIwYmMxMWZjZWZkZDU3MjcwYWE5MzQxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMS0wOC0yMyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5v
bGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEVtaXQgbGFzdCBwcm9ncmVzcyBub3Rp
ZmljYXRpb24gYmVmb3JlIGNhbGxpbmcgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IFhh
biBMb3Blei4gQ2hhbmdlIEZyYW1lTG9hZGVyIHRvIGRpc3BhdGNoIHRoZSBub3RpZmljYXRpb25z
IGluCisgICAgICAgIGEgbW9yZSBuYXR1cmFsIHNlcXVlbmNlLgorCisgICAgICAgIFRlc3Q6IGh0
dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay5odG1sCisKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKwogMjAxMS0wOC0yMyAgVG9yIEFy
bmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBG
aXggYnVpbGQgb24gTGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
NGYwZjFmMzU2ZWE3YTI4N2FiYWNkYWVmNDg2ODQzY2Y5NTM4Nzg2ZS4uMTliMWU4YzllNzQ0Yzg5
ODQzZjY2OTRiZmI1MTI1ZTg0MTI0YWU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0yMjkyLDE0ICsyMjkyLDE1IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9h
ZENvbXBsZXRlRm9yVGhpc0ZyYW1lKCkKICAgICAgICAgICAgIGlmIChtX3N0YXRlTWFjaGluZS5j
cmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkgfHwgIW1fc3RhdGVNYWNoaW5lLmNvbW1pdHRl
ZEZpcnN0UmVhbERvY3VtZW50TG9hZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAg
ICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAg
ICAgcGFnZS0+cHJvZ3Jlc3MoKS0+cHJvZ3Jlc3NDb21wbGV0ZWQobV9mcmFtZSk7CisKICAgICAg
ICAgICAgIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yID0gZGwtPm1haW5Eb2N1bWVudEVycm9y
KCk7CiAgICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT5kaXNwYXRjaERpZEZhaWxMb2FkKGVycm9yKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7CiAKLSAgICAg
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgICAg
IHBhZ2UtPnByb2dyZXNzKCktPnByb2dyZXNzQ29tcGxldGVkKG1fZnJhbWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5NzM0MDEy
ODIwNzQyYzgwZjIzYjBhYTk4NTRlMDEyZjdhMTIyMzY3Li4zYzY0NmQzZTQxMGM3ZjRhMzg4ODhl
ZGVlNzkxYWNlMzhkN2ZiOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEx
LTA4LTIzICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9w
ZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRW1pdCBsYXN0IHByb2dyZXNzIG5vdGlmaWNhdGlvbiBi
ZWZvcmUgY2FsbGluZyBkaXNwYXRjaERpZEZpbmlzaExvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGluZnJhc3RydWN0dXJlIHRvIGR1bXAgcHJv
Z3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbiBjYWxsYmFjayBpbiBEUlQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9u
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIw
MTEtMDgtMjMgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgog
CiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIG9uIExpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5k
ZXggYWY4NmUyMmQ5NjhhZjAyZjk1ZTU4ODI2MTk4MzEzYmQyYWNkZjM2MC4uZjRhMTU5NjFjOTM2
MzMwZjdmNzFiYzdlYzI0YTQ0NDY0OTRjN2IxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAg
LTY4MSw2ICs2ODEsMTEgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcEZyYW1l
TG9hZGVyKGJvb2wgYikKICAgICBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wRnJhbWVMb2FkZXJD
YWxsYmFja3MgPSBiOwogfQogCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wgYikKK3sKKyAgICBGcmFtZUxvYWRlckNsaWVudFF0
OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gYjsKK30KKwogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlcihib29sIGIpCiB7CiAg
ICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlckNhbGxi
YWNrcyA9IGI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggYjBjZmY4YTljYjlkZWQ3YWRlNzU5OTNh
NTI2NGJjNzk1NzllYTNkZC4uNTA3MTgzNzNhMGQ5YzQ3M2UxMWZjN2NkM2ViNmEzNjQxMzIyNjM4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTYzLDYgKzE2Myw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgUVN0cmluZyBwbGFpblRleHQoY29uc3QgUVZhcmlhbnQmIHJuZyk7CiAKICAgICBzdGF0
aWMgdm9pZCBkdW1wRnJhbWVMb2FkZXIoYm9vbCBiKTsKKyAgICBzdGF0aWMgdm9pZCBkdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIGR1bXBVc2VyR2Vz
dHVyZUluRnJhbWVMb2FkZXIoYm9vbCBiKTsKICAgICBzdGF0aWMgdm9pZCBkdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKGJvb2wgYik7CiAgICAgc3RhdGljIHZvaWQgZHVtcFJlc291cmNlUmVzcG9u
c2VNSU1FVHlwZXMoYm9vbCBiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDA4YjljZDAzNTcxNDkzZDky
NDgzMzU5NTQ1OWRlNjkxNDIzNzI0NmEuLjkyYmRiZGViNjdiMWZkYjkyYWJhYmJkNGE5OGU5MmU3
NTE3MTA2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMTcwLDYgKzE3MCw3IEBAIHN0YXRpYyBRU3Ry
aW5nIGRydERlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNvbnN0IFJlZlB0cjxXZWJD
b3JlOjpOb2RlPiBuCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGJvb2wgRnJhbWVMb2FkZXJDbGll
bnRRdDo6ZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzID0gZmFsc2U7Citib29sIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSBmYWxzZTsKIGJvb2wgRnJh
bWVMb2FkZXJDbGllbnRRdDo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlckNhbGxiYWNrcyA9
IGZhbHNlOwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzID0gZmFsc2U7CiBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNlbmRSZXF1ZXN0UmV0dXJu
c051bGxPblJlZGlyZWN0ID0gZmFsc2U7CkBAIC01OTIsNiArNTkzLDkgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24oKQog
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0
aW9uKCkKIHsKKyAgICBpZiAoZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaykKKyAgICAgICAg
cHJpbnRmKCJwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvblxuIik7CisKICAgICAvLyBT
ZW5kIGEgbW91c2Vtb3ZlIGV2ZW50IHRvOgogICAgIC8vICgxKSB1cGRhdGUgdGhlIGN1cnNvciB0
byBjaGFuZ2UgYWNjb3JkaW5nIHRvIHdoYXRldmVyIGlzIHVuZGVybmVhdGggdGhlIG1vdXNlIGN1
cnNvciByaWdodCBub3c7CiAgICAgLy8gKDIpIGRpc3BsYXkgdGhlIHRvb2wgdGlwIGlmIHRoZSBt
b3VzZSBob3ZlcnMgYSBub2RlIHdoaWNoIGhhcyBhIHRvb2wgdGlwLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmggYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCA2
YWY4NTJiNTQyNDU2NjkwMTRlMGQ3OTkzZTZmODU2ZmZhZTE1NzAwLi4yMjQ0YjI2NGMxYTE3ZTcz
Njg4MTMxMTU2ZjdkMWI4MjczNDJjNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaApAQCAtMjQ3LDYgKzI0Nyw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBLVVJMJiBsYXN0UmVxdWVzdGVkVXJsKCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0UmVxdWVzdGVkVXJsOyB9CiAKICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2Fk
ZXJDYWxsYmFja3M7CisgICAgc3RhdGljIGJvb2wgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
azsKICAgICBzdGF0aWMgYm9vbCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyQ2FsbGJhY2tz
OwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7CiAgICAgc3RhdGlj
IGJvb2wgZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODI2ZGE3YTcyNmMyNjZhNzk5MGY3MjNl
ZDFlYTI3Nzg1MDc3MTBiMC4uOGJiZDhhNzgwYTE0NDM5Zjk2YmEyYmQzY2QyNjdlNmFlODg2MmY1
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ1IEBACisyMDExLTA4LTIzICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8g
IDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRW1pdCBsYXN0IHByb2dy
ZXNzIG5vdGlmaWNhdGlvbiBiZWZvcmUgY2FsbGluZyBkaXNwYXRjaERpZEZpbmlzaExvYWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4ODUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGR1
bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiB0aGUgbGF5b3V0VGVzdENvbnRyb2xsZXIg
Zm9yIFF0LAorICAgICAgICBDaHJvbWl1bSBhbmQgR1RLIHBvcnRzLiBUaGUgZmlyc3QgdHdvIHdl
cmUgc2ltcGxlIGNoYW5nZXMuCisKKyAgICAgICAgU29tZSByZWZhY3RvcmluZyB3YXMgbmVlZGVk
IGluIEdUSyBwb3J0IHRvIGFzc3VyZSB0aGF0IHRoZSBkdW1wcyBhcmUgZW1pdHRlZAorICAgICAg
ICBjb3JyZWN0bHkgYW5kIHRoZSBwcm9jZXNzaW5nIGFmdGVyIHRoZSBwYWdlIGxvYWQgZmluaXNo
ZWQgaXMgaW4gdGhlIHJpZ2h0IHBsYWNlLgorCisgICAgICAgIFRvIGRldGVjdCB0aGUgbG9hZCBm
aW5pc2hlZCwgd2UgdXNlIHRoZSBjYWxsYmFjayBmb3IgdGhlICJsb2FkLXN0YXR1cyIgbm90aWZp
ZXIKKyAgICAgICAgc2lnbmFsIG9mIHRoZSB0b3AgbG9hZGluZyBmcmFtZS4gQW5kIHdlIHVzZSB0
aGUgZGVwcmVjYXRlZCAibG9hZC1maW5pc2hlZCIgc2lnbmFsCisgICAgICAgIGZvciBkdW1waW5n
IChpZiBlbmFibGVkKSB0aGUgcHJvZ3Jlc3MgZmluaXNoZWQgZXhwZWN0ZWQgb3V0cHV0LgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2tDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgor
ICAgICAgICAoV2ViVmlld0hvc3Q6OmRpZFN0b3BMb2FkaW5nKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAod2ViVmlld0xvYWRGaW5p
c2hlZCk6CisgICAgICAgICh0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQpOgorICAgICAgICAo
d2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnJlc2V0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0Lmg6CisKIDIwMTEtMDgtMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KIAogICAgICAgICB3ZWJraXRweS9jb21tb24vY29uZmlnL2J1aWxkLnB5IHNob3VsZG4n
dCBtZW50aW9uIG5vbi1leGlzdGFudCBBbmRyb2lkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDlkZTA3NWUxMjcyYjVkZjlh
NDAyMTBhZThjMTljYjkzYThjNjQ3NTAuLjJlMWJkYjQ5MzY1MTVmYTBmMWJlOWQ2MDE2YmUwNmM5
NjdjYjkyZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RD
b250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb24KICAgICAsIG1f
ZHVtcERhdGFiYXNlQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wRWRpdGluZ0NhbGxiYWNr
cyhmYWxzZSkKICAgICAsIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhmYWxzZSkKKyAgICAsIG1f
ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhmYWxzZSkKICAgICAsIG1fZHVtcFVzZXJHZXN0
dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBIaXN0b3J5RGVsZWdh
dGVDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoZmFs
c2UpCkBAIC0yMDUsNiArMjA2LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBGcmFtZUxvYWRD
YWxsYmFja3NDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJl
ZiBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQoreworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3Rh
dGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2so
dHJ1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBz
dGF0aWMgSlNWYWx1ZVJlZiBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrc0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJv
bGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNP
YmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIyOTcsNiArMjMwNSw3IEBAIEpTU3Rh
dGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAg
ICAgICB7ICJkdW1wRGF0YWJhc2VDYWxsYmFja3MiLCBkdW1wRGF0YWJhc2VDYWxsYmFja3NDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wRWRpdGluZ0NhbGxiYWNrcyIsIGR1bXBFZGl0
aW5nQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEZyYW1lTG9hZENh
bGxiYWNrcyIsIGR1bXBGcmFtZUxvYWRDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAg
ICB7ICJkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrIiwgZHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkQ2FsbGJhY2tzIiwgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3NDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LCAgICAgICAgCiAgICAgICAgIHsgImR1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3MiLCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAiZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMiLCBkdW1wUmVzb3VyY2VSZXNwb25zZU1J
TUVUeXBlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAppbmRleCA5Yjc2Mjg4MGVjYWY1ZjgwOGE5NjdmN2E5NDMyNjkxMzIwNTY1
ZGEwLi45MjhjZmM3YWEzMTk3M2M2YzI1MTc2ODQ1YTg0ZThmY2JmYTU2Yjc5IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE4MSw2ICsxODEsOSBA
QCBwdWJsaWM6CiAKICAgICBib29sIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJl
dHVybiBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lkIHNldER1bXBGcmFtZUxv
YWRDYWxsYmFja3MoYm9vbCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKSB7IG1fZHVtcEZyYW1lTG9h
ZENhbGxiYWNrcyA9IGR1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KKworICAgIGJvb2wgZHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFByb2dyZXNzRmlu
aXNoZWRDYWxsYmFjazsgfQorICAgIHZvaWQgc2V0RHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayhib29sIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spIHsgbV9kdW1wUHJvZ3Jlc3NGaW5p
c2hlZENhbGxiYWNrID0gZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjazsgfQogICAgIAogICAg
IGJvb2wgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVy
biBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBzZXRE
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyhib29sIGR1bXBVc2VyR2VzdHVyZUlu
RnJhbWVMb2FkQ2FsbGJhY2tzKSB7IG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFj
a3MgPSBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrczsgfSAgICAKQEAgLTM2OSw2
ICszNzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wRGF0YWJhc2VDYWxsYmFja3M7CiAg
ICAgYm9vbCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzOworICAgIGJvb2wgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOwogICAg
IGJvb2wgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrczsKICAgICBib29sIG1f
ZHVtcEhpc3RvcnlEZWxlZ2F0ZUNhbGxiYWNrczsKICAgICBib29sIG1fZHVtcFJlc291cmNlTG9h
ZENhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA0MDlmODUzOGZmNjM0NjZiM2IxNGQ0MmViZjNk
MGFlYTIzNGUyNjYxLi4xYjZjZGEzMDJkM2Q2ODMzODY4NDBiM2IxYjVkYmY5NDBiNDE0MzUwIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6Okxh
eW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgiZHVt
cERhdGFiYXNlQ2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRGF0YWJhc2VD
YWxsYmFja3MpOwogICAgIGJpbmRNZXRob2QoImR1bXBFZGl0aW5nQ2FsbGJhY2tzIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpkdW1wRWRpdGluZ0NhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhvZCgi
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEZyYW1l
TG9hZENhbGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgiZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3Mi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJh
Y2tzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKTsKICAgICBiaW5kTWV0
aG9kKCJkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOwpAQCAtMzIyLDYgKzMyMywxMiBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBtX2R1bXBQcm9n
cmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSB0cnVlOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQor
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENh
bGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAg
ICAgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyA9IHRydWU7CkBAIC01NzYs
NiArNTgzLDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIG1fZHVt
cEFzQXVkaW8gPSBmYWxzZTsKICAgICBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzID0gZmFsc2U7CiAg
ICAgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgbV9kdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrID0gZmFsc2U7CiAgICAgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9h
ZENhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9IGZh
bHNlOwogICAgIG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMgPSBmYWxzZTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CmluZGV4IDZhZWE3ZWNmMjc4ZjA0MzRhYWRjZDE5NjdkNDVlMzYzYTRlYTZjOGIuLjRjOGJlMGJk
ZTU2ZWM3N2I3YWIxZWI1YzRhMDQ4YWYwMjg4MGI0ZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtOTQsNiArOTQs
MTEgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMg
YSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lIG9mCisgICAg
Ly8gZGVzY3JpcHRpdmUgdGV4dCBmb3IgdGhlIHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNrLiBJ
dCB0YWtlcyBubworICAgIC8vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55IHRoYXQgbWF5IGJl
IHByZXNlbnQuCisgICAgdm9pZCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKworICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0
cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YKICAg
ICAvLyB1c2VyIGdlc3R1cmUgc3RhdHVzIHRleHQgZm9yIHNvbWUgZnJhbWUgbG9hZCBjYWxsYmFj
a3MuIEl0IHRha2VzIG5vCiAgICAgLy8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBt
YXkgYmUgcHJlc2VudC4KICAgICB2b2lkIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJh
Y2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKQEAgLTQwOCw2ICs0MTMs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpIHsgcmV0
dXJuIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7IH0KICAgICBib29sIHNob3VsZER1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2
b2lkIHNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkgeyBtX2R1bXBG
cmFtZUxvYWRDYWxsYmFja3MgPSB2YWx1ZTsgfQorICAgIGJvb2wgc2hvdWxkRHVtcFByb2dyZXNz
RmluaXNoZWRDYWxsYmFjaygpIHsgcmV0dXJuIG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
azsgfQorICAgIHZvaWQgc2V0U2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhib29s
IHZhbHVlKSB7IG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IHZhbHVlOyB9CiAgICAg
Ym9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIHsgcmV0dXJu
IG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lkIHNldFNo
b3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpIHsgbV9k
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyA9IHZhbHVlOyB9CiAgICAgYm9vbCBz
aG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkge3JldHVybiBtX2R1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3M7IH0KQEAgLTU0MCw2ICs1NDcsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBsb2Fk
IGNhbGxiYWNrLgogICAgIGJvb2wgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzOwogCisgICAgLy8g
SWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGZv
ciB0aGUgcHJvZ3Jlc3MKKyAgICAvLyBmaW5pc2hlZCBjYWxsYmFjay4KKyAgICBib29sIG1fZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjazsKKwogICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3No
ZWxsIHdpbGwgb3V0cHV0IGEgbGluZSBvZiB0aGUgdXNlciBnZXN0dXJlIHN0YXR1cwogICAgIC8v
IHRleHQgZm9yIHNvbWUgZnJhbWUgbG9hZCBjYWxsYmFja3MuCiAgICAgYm9vbCBtX2R1bXBVc2Vy
R2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDdkYmVjZDhkMjFmZDc2MjlmMjVkNjMzMTBlODIw
MjEyNjFlZTc3MzcuLmI1MzA2NzAyOTljZTFkYTdlMTk3NGVmOTNlMzAxMmE2MWU4MDNkNjIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTI4
Nyw2ICsyODcsOCBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWRTdGFydExvYWRpbmcoKQogCiB2b2lk
IFdlYlZpZXdIb3N0OjpkaWRTdG9wTG9hZGluZygpCiB7CisgICAgaWYgKGxheW91dFRlc3RDb250
cm9sbGVyKCktPnNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSkKKyAgICAgICAg
ZnB1dHMoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iLCBzdGRvdXQpOwogICAg
IG1fc2hlbGwtPnNldElzTG9hZGluZyhmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDNiMDFjYzg1NzFjMmVlM2M0MDNkZDk5Y2Ni
YTBhMzljYjI5MmU0YTQuLjUzYmRiOGRhYTI5NDMzZTdmNGZlMTQwN2JiYzhlZTRmN2Q0NzliOTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNzc3
LDE4ICs3NzcsMTIgQEAgc3RhdGljIGNoYXIqIGdldEZyYW1lTmFtZVN1aXRhYmxlRm9yVGVzdFJl
c3VsdChXZWJLaXRXZWJWaWV3KiB2aWV3LCBXZWJLaXRXZWJGcmEKIAogc3RhdGljIHZvaWQgd2Vi
Vmlld0xvYWRGaW5pc2hlZChXZWJLaXRXZWJWaWV3KiB2aWV3LCBXZWJLaXRXZWJGcmFtZSogZnJh
bWUsIHZvaWQqKQogeworICAgIC8vIFRoZSBkZXByZWNhdGVkICJsb2FkLWZpbmlzaGVkIiBzaWdu
YWwgaXMgdHJpZ2dlcmVkIGJ5IHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCksCisg
ICAgLy8gc28gd2UgY2FuIHVzZSBpdCBoZXJlIGluIHRoZSBEUlQgdG8gcHJvdmlkZSB0aGUgY29y
cmVjdCBkdW1wLgogICAgIGlmIChmcmFtZSAhPSB0b3BMb2FkaW5nRnJhbWUpCiAgICAgICAgIHJl
dHVybjsKLQotICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7Ci0gICAgV29ya1F1ZXVlOjpzaGFyZWQo
KS0+c2V0RnJvemVuKHRydWUpOyAvLyBmaXJzdCBjb21wbGV0ZSBsb2FkIGZyZWV6ZXMgdGhlIHF1
ZXVlIGZvciB0aGUgcmVzdCBvZiB0aGlzIHRlc3QKLSAgICBpZiAoZ0xheW91dFRlc3RDb250cm9s
bGVyLT53YWl0VG9EdW1wKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChXb3JrUXVldWU6
OnNoYXJlZCgpLT5jb3VudCgpKQotICAgICAgICBnX3RpbWVvdXRfYWRkKDAsIHByb2Nlc3NXb3Jr
LCAwKTsKLSAgICBlbHNlCi0gICAgICAgIGR1bXAoKTsKKyAgICBpZiAoZ0xheW91dFRlc3RDb250
cm9sbGVyLT5kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkpCisgICAgICAgIHByaW50Zigi
cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOwogfQogCiBzdGF0aWMgZ2Jvb2xl
YW4gd2ViVmlld0xvYWRFcnJvcihXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqLCBnY2hh
ciosIGdwb2ludGVyLCBncG9pbnRlcikKQEAgLTEwMjIsNiArMTAxNiwxOSBAQCBzdGF0aWMgV2Vi
S2l0V2ViVmlldyogd2ViSW5zcGVjdG9ySW5zcGVjdFdlYlZpZXcoV2ViS2l0V2ViSW5zcGVjdG9y
KiwgZ3BvaW50ZXIgZAogICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVcod2ViVmlldyk7CiB9CiAK
K3N0YXRpYyB2b2lkIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpCit7CisgICAgdG9wTG9h
ZGluZ0ZyYW1lID0gMDsKKyAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4odHJ1ZSk7
IC8vIGZpcnN0IGNvbXBsZXRlIGxvYWQgZnJlZXplcyB0aGUgcXVldWUgZm9yIHRoZSByZXN0IG9m
IHRoaXMgdGVzdAorICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50KCkp
CisgICAgICAgIGdfdGltZW91dF9hZGQoMCwgcHJvY2Vzc1dvcmssIDApOworICAgIGVsc2UKKyAg
ICAgICAgZHVtcCgpOworfQorCiBzdGF0aWMgdm9pZCB3ZWJGcmFtZUxvYWRTdGF0dXNOb3RpZmll
ZChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGdwb2ludGVyIHVzZXJfZGF0YSkKIHsKICAgICBXZWJL
aXRMb2FkU3RhdHVzIGxvYWRTdGF0dXMgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0YXR1
cyhmcmFtZSk7CkBAIC0xMDM5LDEzICsxMDQ2LDE3IEBAIHN0YXRpYyB2b2lkIHdlYkZyYW1lTG9h
ZFN0YXR1c05vdGlmaWVkKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgZ3BvaW50ZXIgdXNlcl9kYXRh
CiAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcyAtIGRpZENvbW1pdExvYWRGb3JGcmFtZVxuIiwg
ZnJhbWVOYW1lLmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdFQktJ
VF9MT0FEX0ZJTklTSEVEOgotICAgICAgICAgICAgaWYgKGZyYW1lICE9IHRvcExvYWRpbmdGcmFt
ZSB8fCAhZG9uZSkKKyAgICAgICAgICAgIGlmICghZG9uZSkKICAgICAgICAgICAgICAgICBwcmlu
dGYoIiVzIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUuZ2V0KCkpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgIH0KKworICAgIGlmICgobG9hZFN0YXR1cyA9PSBXRUJLSVRfTE9BRF9GSU5J
U0hFRCB8fCBsb2FkU3RhdHVzID09IFdFQktJVF9MT0FEX0ZBSUxFRCkKKyAgICAgICAgJiYgZnJh
bWUgPT0gdG9wTG9hZGluZ0ZyYW1lKQorICAgICAgICB0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNo
ZWQoKTsKIH0KIAogc3RhdGljIHZvaWQgZnJhbWVDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lLCBncG9pbnRlciB1c2VyX2RhdGEp
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwCmluZGV4IDI0NGE5NGEzNDhhN2RjODFhYWI0M2VjNzFkY2EzM2U4NjE3OGMwZjUuLmY0NjE1
YWJkZGQ4MmNmOTI5YThlOTM1MDUyNjFlMDAyNDM1MzliMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03Niw2ICs3Niw3
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KCkKIAogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpkdW1wRWRpdGluZ0NhbGxiYWNrcyhmYWxzZSk7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcihmYWxzZSk7CisgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soZmFsc2UpOwogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyKGZhbHNl
KTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFJlc291cmNlTG9hZENhbGxiYWNr
cyhmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBSZXNvdXJjZVJlc3Bv
bnNlTUlNRVR5cGVzKGZhbHNlKTsKQEAgLTI2MSw2ICsyNjIsMTEgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpCiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcih0cnVlKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpCit7CisgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sodHJ1ZSk7Cit9CisK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2Fs
bGJhY2tzKCkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFVzZXJHZXN0dXJl
SW5GcmFtZUxvYWRlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCAyMDUzOTIwZDBjYWQ4OTJiM2NiY2ZhNjczOGMyYzQ5
OWYyMTRhZWI3Li4xNWZkOGZjMjJlMTkyZWQyNDNhOGU1ZGE5YmQyNDBkNTNkYjNmMWRhIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBA
IC0xMTIsNiArMTEyLDcgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgaGFuZGxlRXJyb3JQYWdl
cygpIHsgbV9oYW5kbGVFcnJvclBhZ2VzID0gdHJ1ZTsgfQogICAgIHZvaWQgZHVtcEVkaXRpbmdD
YWxsYmFja3MoKTsKICAgICB2b2lkIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAgICB2b2lk
IGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKTsKICAgICB2b2lkIGR1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCk7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCk7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105671</attachid>
            <date>2011-08-30 12:47:59 -0700</date>
            <delta_ts>2011-08-30 13:28:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-28851-20110830164757.patch</filename>
            <type>text/plain</type>
            <size>25475</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQwOTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMWY5ZTc0MGEwMDBjY2Y0MTg5ZmMy
Y2ExYzFiNmRjZmI0OGYwZTJlLi42MDAwZTMxMjQ1MGYxODgyMjIxMDljZjNmNmE1YzFmZjQ2YmQ3
YWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMjMgIENhaW8gTWFyY2VsbyBkZSBP
bGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
bWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlk
RmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEtl
ZXAgdHJhY2sgb2YgdGhlIG9yZGVyIGV4cGVjdGVkIGZvciB0aGUgcHJvZ3Jlc3NGaW5pc2hlZE5v
dGlmaWNhdGlvbiwgd2hpY2ggaXMKKyAgICAgICAgYmVmb3JlIHRoZSBkaWRGaW5pc2hMb2FkRm9y
RnJhbWUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQt
Y2FsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRp
bmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIw
MTEtMDgtMjkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUeXBl
ZEFycmF5cyBkb24ndCBlbnN1cmUgdGhhdCBkZW5vcm1hbGlzZWQgdmFsdWVzIGFyZSBub3JtYWxp
c2VkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3Mt
ZmluaXNoZWQtY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MWNlZWZiYTU1MmYyM2E0YzJlM2VjMWE4MTBkYTQxNmY1NWU1MzQ2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNh
bGxiYWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK21haW4gZnJhbWUgLSBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZy
YW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUKK21haW4gZnJh
bWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorcG9zdFByb2dyZXNzRmluaXNoZWRO
b3RpZmljYXRpb24KK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK1RoaXMgaXMg
YSB0ZXN0IG9mIHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNrIG9yZGVyaW5nIGluIHJlbGF0aW9u
IHRvIGZyYW1lIGxvYWRlciBjYWxsYmFja3MuIEl0IGlzIG9ubHkgdXNlZnVsIGluc2lkZSB0aGUg
cmVncmVzc2lvbiB0ZXN0IHRvb2wuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdjZjBiN2U3OTc3NWJkNDhmOGYyNTUzMjQzZTRhZTQ4YWQ2YzJlZTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQt
Y2FsbGJhY2suaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2so
KTsKK30KKzwvc2NyaXB0PgorVGhpcyBpcyBhIHRlc3Qgb2YgcHJvZ3Jlc3MgZmluaXNoZWQgY2Fs
bGJhY2sgb3JkZXJpbmcgaW4gcmVsYXRpb24gdG8gZnJhbWUgbG9hZGVyIGNhbGxiYWNrcy4gSXQg
aXMgb25seSB1c2VmdWwgaW5zaWRlIHRoZSByZWdyZXNzaW9uIHRlc3QgdG9vbC4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKaW5kZXggZDllMzM1YTY1ZmU3NzAxZWFiYmI1YTA5NDg4ZGMzZWNiYjJk
ZWMzZi4uMzY1MWIwN2MwMjliMWRhY2UzMWZhZTcxM2FkYjA5MTNiMzhmNDUyOSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1NraXBwZWQKQEAgLTQwOCwzICs0MDgsNiBAQCBjc3MzL2ZvbnQtZmVhdHVyZS1z
ZXR0aW5ncy1yZW5kZXJpbmcuaHRtbAogCiAjIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGEgbWlz
bWF0Y2ggcmVmdGVzdCB3aWxsIGZhaWwgYXMgaW50ZW5kZWQgaWYgYm90aCByZXN1bHRzIGFyZSBz
YW1lLgogZmFzdC9oYXJuZXNzL3NhbXBsZS1mYWlsLW1pc21hdGNoLXJlZnRlc3QuaHRtbAorCisj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njc3MgoraHR0cC90ZXN0
cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKaW5kZXggNzc4Y2QzNWMwOWI0NDM5MDBkNGNlMjNhNzQ5NjcxNTQ2MDY5MTJlNi4u
Yjg0OTYyMmM3MTA3MjA1ODE2NTQ2ZDU1MTQyOTUxYTZlNjk4OGFjYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL1NraXBwZWQKQEAgLTE0MDEsMyArMTQwMSw2IEBAIGVkaXRpbmcvc2VsZWN0aW9uL2NhcmV0
LWF0LWJpZGktYm91bmRhcnkuaHRtbAogCiAjIE5lZWQgRFJUIGNoYW5nZTogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NjIwCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLWluc2VydC1odG1sLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjY3NzMKK2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxs
YmFjay5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDgxNGJiMjQ3NmJjZDBiODAwY2JlMWQ1Yzg0NDcyNWRm
OTdhOTcxMy4uMDFhNDQ2N2I4MzExYmYyYmZiYTJjZTJhMTA1MzZhY2QyNmIwMDllMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTA4LTIzICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVp
cmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRW1pdCBs
YXN0IHByb2dyZXNzIG5vdGlmaWNhdGlvbiBiZWZvcmUgY2FsbGluZyBkaXNwYXRjaERpZEZpbmlz
aExvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4
ODUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBPcmlnaW5h
bCBwYXRjaCBieSBYYW4gTG9wZXouIENoYW5nZSBGcmFtZUxvYWRlciB0byBkaXNwYXRjaCB0aGUg
bm90aWZpY2F0aW9ucyBpbgorICAgICAgICBhIG1vcmUgbmF0dXJhbCBzZXF1ZW5jZS4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2su
aHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6CisKIDIwMTEt
MDgtMjkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUeXBlZEFy
cmF5cyBkb24ndCBlbnN1cmUgdGhhdCBkZW5vcm1hbGlzZWQgdmFsdWVzIGFyZSBub3JtYWxpc2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0ZjBmMWYzNTZlYTdhMjg3
YWJhY2RhZWY0ODY4NDNjZjk1Mzg3ODZlLi4xOWIxZThjOWU3NDRjODk4NDNmNjY5NGJmYjUxMjVl
ODQxMjRhZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIyOTIs
MTQgKzIyOTIsMTUgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlz
RnJhbWUoKQogICAgICAgICAgICAgaWYgKG1fc3RhdGVNYWNoaW5lLmNyZWF0aW5nSW5pdGlhbEVt
cHR5RG9jdW1lbnQoKSB8fCAhbV9zdGF0ZU1hY2hpbmUuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1l
bnRMb2FkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBwYWdlLT5wcm9ncmVz
cygpLT5wcm9ncmVzc0NvbXBsZXRlZChtX2ZyYW1lKTsKKwogICAgICAgICAgICAgY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IgPSBkbC0+bWFpbkRvY3VtZW50RXJyb3IoKTsKICAgICAgICAgICAg
IGlmICghZXJyb3IuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNo
RGlkRmFpbExvYWQoZXJyb3IpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT5kaXNwYXRjaERpZEZpbmlzaExvYWQoKTsKIAotICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+cHJvZ3Jlc3Mo
KS0+cHJvZ3Jlc3NDb21wbGV0ZWQobV9mcmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGE0OTc5YmI1OGE4MGUxNGY0NjZkOWYx
MDA4MWNmZDc0MDU1YTBlMGQuLjQ4YTdjZWE1ZjBjZDNhM2I5MmRmNTJlY2Y4ZjY0MjJmMTMxNzc4
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMjMgIENhaW8gTWFy
Y2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKwor
ICAgICAgICBFbWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRp
c3BhdGNoRGlkRmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisg
ICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBkdW1wIHByb2dyZXNzRmluaXNoZWROb3RpZmlj
YXRpb24gY2FsbGJhY2sgaW4gRFJULgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVu
dFF0Ojpwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorCiAyMDExLTA4LTMwICBLYXVzdHViaCBB
dHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFRoZSB1bnVzZWQg
U2Nyb2xsVmlldyogYXJndW1lbnQgY2FuIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCmluZGV4IGFmODZlMjJkOTY4YWYwMmY5NWU1ODgyNjE5ODMxM2JkMmFj
ZGYzNjAuLmY0YTE1OTYxYzkzNjMzMGY3ZjcxYmM3ZWMyNGE0NDQ2NDk0YzdiMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCkBAIC02ODEsNiArNjgxLDExIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcihib29sIGIpCiAgICAgRnJhbWVMb2FkZXJDbGllbnRR
dDo6ZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzID0gYjsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhib29sIGIpCit7CisgICAg
RnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IGI7Cit9
CisKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVM
b2FkZXIoYm9vbCBiKQogewogICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkZXJDYWxsYmFja3MgPSBiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IGIwY2Zm
OGE5Y2I5ZGVkN2FkZTc1OTkzYTUyNjRiYzc5NTc5ZWEzZGQuLjUwNzE4MzczYTBkOWM0NzNlMTFm
YzdjZDNlYjZhMzY0MTMyMjYzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTE2Myw2ICsxNjMs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFFTdHJpbmcgcGxhaW5UZXh0KGNvbnN0IFFWYXJpYW50
JiBybmcpOwogCiAgICAgc3RhdGljIHZvaWQgZHVtcEZyYW1lTG9hZGVyKGJvb2wgYik7CisgICAg
c3RhdGljIHZvaWQgZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhib29sKTsKICAgICBzdGF0
aWMgdm9pZCBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyKGJvb2wgYik7CiAgICAgc3RhdGlj
IHZvaWQgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyhib29sIGIpOwogICAgIHN0YXRpYyB2b2lk
IGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKGJvb2wgYik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRl
eCAwOGI5Y2QwMzU3MTQ5M2Q5MjQ4MzM1OTU0NTlkZTY5MTQyMzcyNDZhLi45MmJkYmRlYjY3YjFm
ZGI5MmFiYWJiZDRhOThlOTJlNzUxNzEwNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE3MCw2ICsx
NzAsNyBAQCBzdGF0aWMgUVN0cmluZyBkcnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3Vs
dChjb25zdCBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbgogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBi
b29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcyA9IGZhbHNl
OworYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNr
ID0gZmFsc2U7CiBib29sIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkZXJDYWxsYmFja3MgPSBmYWxzZTsKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVt
cFJlc291cmNlTG9hZENhbGxiYWNrcyA9IGZhbHNlOwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0
OjpzZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCA9IGZhbHNlOwpAQCAtNTkyLDYgKzU5
Myw5IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFu
Z2VkTm90aWZpY2F0aW9uKCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jl
c3NGaW5pc2hlZE5vdGlmaWNhdGlvbigpCiB7CisgICAgaWYgKGR1bXBQcm9ncmVzc0ZpbmlzaGVk
Q2FsbGJhY2spCisgICAgICAgIHByaW50ZigicG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRp
b25cbiIpOworCiAgICAgLy8gU2VuZCBhIG1vdXNlbW92ZSBldmVudCB0bzoKICAgICAvLyAoMSkg
dXBkYXRlIHRoZSBjdXJzb3IgdG8gY2hhbmdlIGFjY29yZGluZyB0byB3aGF0ZXZlciBpcyB1bmRl
cm5lYXRoIHRoZSBtb3VzZSBjdXJzb3IgcmlnaHQgbm93OwogICAgIC8vICgyKSBkaXNwbGF5IHRo
ZSB0b29sIHRpcCBpZiB0aGUgbW91c2UgaG92ZXJzIGEgbm9kZSB3aGljaCBoYXMgYSB0b29sIHRp
cC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmgKaW5kZXggNmFmODUyYjU0MjQ1NjY5MDE0ZTBkNzk5M2U2Zjg1NmZmYWUxNTcw
MC4uMjI0NGIyNjRjMWExN2U3MzY4ODEzMTE1NmY3ZDFiODI3MzQyYzViNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgK
QEAgLTI0Nyw2ICsyNDcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgS1VSTCYgbGFzdFJlcXVlc3Rl
ZFVybCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFJlcXVlc3RlZFVybDsgfQogCiAgICAgc3RhdGlj
IGJvb2wgZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzOworICAgIHN0YXRpYyBib29sIGR1bXBQcm9n
cmVzc0ZpbmlzaGVkQ2FsbGJhY2s7CiAgICAgc3RhdGljIGJvb2wgZHVtcFVzZXJHZXN0dXJlSW5G
cmFtZUxvYWRlckNhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMxMzk4
ZDE3ZjljNjE1Mjk5MDc4YTdjYWE1OTAwODMwMTM2YjFhOTcuLjBkODdjMDdmNzY2NzA4M2Y4ZGIz
YmYxYWIwNWFlMWY1YTgwMDFmMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMS0wOC0yMyAgQ2FpbyBNYXJjZWxv
IGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIEVtaXQgbGFzdCBwcm9ncmVzcyBub3RpZmljYXRpb24gYmVmb3JlIGNhbGxpbmcgZGlzcGF0
Y2hEaWRGaW5pc2hMb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yODg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgSW1wbGVtZW50IGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiB0aGUgbGF5b3V0
VGVzdENvbnRyb2xsZXIgZm9yIFF0LAorICAgICAgICBDaHJvbWl1bSBhbmQgR1RLIHBvcnRzLiBU
aGUgZmlyc3QgdHdvIHdlcmUgc2ltcGxlIGNoYW5nZXMuCisKKyAgICAgICAgU29tZSByZWZhY3Rv
cmluZyB3YXMgbmVlZGVkIGluIEdUSyBwb3J0IHRvIGFzc3VyZSB0aGF0IHRoZSBkdW1wcyBhcmUg
ZW1pdHRlZAorICAgICAgICBjb3JyZWN0bHkgYW5kIHRoZSBwcm9jZXNzaW5nIGFmdGVyIHRoZSBw
YWdlIGxvYWQgZmluaXNoZWQgaXMgaW4gdGhlIHJpZ2h0IHBsYWNlLgorCisgICAgICAgIFRvIGRl
dGVjdCB0aGUgbG9hZCBmaW5pc2hlZCwgd2UgdXNlIHRoZSBjYWxsYmFjayBmb3IgdGhlICJsb2Fk
LXN0YXR1cyIgbm90aWZpZXIKKyAgICAgICAgc2lnbmFsIG9mIHRoZSB0b3AgbG9hZGluZyBmcmFt
ZS4gQW5kIHdlIHVzZSB0aGUgZGVwcmVjYXRlZCAibG9hZC1maW5pc2hlZCIgc2lnbmFsCisgICAg
ICAgIGZvciBkdW1waW5nIChpZiBlbmFibGVkKSB0aGUgcHJvZ3Jlc3MgZmluaXNoZWQgZXhwZWN0
ZWQgb3V0cHV0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9s
bGVyKToKKyAgICAgICAgKGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2tDYWxsYmFjayk6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkRHVtcFByb2dyZXNz
RmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmRpZFN0b3BMb2FkaW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
d2ViVmlld0xvYWRGaW5pc2hlZCk6CisgICAgICAgICh0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNo
ZWQpOgorICAgICAgICAod2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisKIDIwMTEtMDgtMjkgIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRyZWUgc2hvdWxk
IGJlZ2luIGVhY2ggdGVzdCB3aXRoIGFuIGVtcHR5IGNvb2tpZSBzdG9yZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDlkZTA3NWUxMjcyYjVk
ZjlhNDAyMTBhZThjMTljYjkzYThjNjQ3NTAuLjJlMWJkYjQ5MzY1MTVmYTBmMWJlOWQ2MDE2YmUw
NmM5NjdjYjkyZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRl
c3RDb250cm9sbGVyKGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb24KICAgICAs
IG1fZHVtcERhdGFiYXNlQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9kdW1wRWRpdGluZ0NhbGxi
YWNrcyhmYWxzZSkKICAgICAsIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhmYWxzZSkKKyAgICAs
IG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhmYWxzZSkKICAgICAsIG1fZHVtcFVzZXJH
ZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBIaXN0b3J5RGVs
ZWdhdGVDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
ZmFsc2UpCkBAIC0yMDUsNiArMjA2LDEzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBGcmFtZUxv
YWRDYWxsYmFja3NDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSCiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1
ZVJlZiBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQoreworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2sodHJ1ZSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQor
CiBzdGF0aWMgSlNWYWx1ZVJlZiBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrc0Nh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIyOTcsNiArMjMwNSw3IEBAIEpT
U3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQog
ICAgICAgICB7ICJkdW1wRGF0YWJhc2VDYWxsYmFja3MiLCBkdW1wRGF0YWJhc2VDYWxsYmFja3ND
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wRWRpdGluZ0NhbGxiYWNrcyIsIGR1bXBF
ZGl0aW5nQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEZyYW1lTG9h
ZENhbGxiYWNrcyIsIGR1bXBGcmFtZUxvYWRDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAg
ICAgICB7ICJkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrIiwgZHVtcFByb2dyZXNzRmluaXNo
ZWRDYWxsYmFja0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBVc2VyR2VzdHVyZUlu
RnJhbWVMb2FkQ2FsbGJhY2tzIiwgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3ND
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LCAgICAgICAgCiAgICAgICAgIHsgImR1bXBSZXNvdXJjZUxvYWRDYWxs
YmFja3MiLCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAiZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMiLCBkdW1wUmVzb3VyY2VSZXNwb25z
ZU1JTUVUeXBlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAppbmRleCA5Yjc2Mjg4MGVjYWY1ZjgwOGE5NjdmN2E5NDMyNjkxMzIw
NTY1ZGEwLi45MjhjZmM3YWEzMTk3M2M2YzI1MTc2ODQ1YTg0ZThmY2JmYTU2Yjc5IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE4MSw2ICsxODEs
OSBAQCBwdWJsaWM6CiAKICAgICBib29sIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7
IHJldHVybiBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lkIHNldER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoYm9vbCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKSB7IG1fZHVtcEZyYW1l
TG9hZENhbGxiYWNrcyA9IGR1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KKworICAgIGJvb2wgZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFByb2dyZXNz
RmluaXNoZWRDYWxsYmFjazsgfQorICAgIHZvaWQgc2V0RHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayhib29sIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spIHsgbV9kdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrID0gZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjazsgfQogICAgIAog
ICAgIGJvb2wgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJl
dHVybiBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOyB9CiAgICAgdm9pZCBz
ZXREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyhib29sIGR1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkQ2FsbGJhY2tzKSB7IG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxs
YmFja3MgPSBkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrczsgfSAgICAKQEAgLTM2
OSw2ICszNzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kdW1wRGF0YWJhc2VDYWxsYmFja3M7
CiAgICAgYm9vbCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzOworICAgIGJvb2wgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOwog
ICAgIGJvb2wgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrczsKICAgICBib29s
IG1fZHVtcEhpc3RvcnlEZWxlZ2F0ZUNhbGxiYWNrczsKICAgICBib29sIG1fZHVtcFJlc291cmNl
TG9hZENhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBhZDIzYWFiMjk2OTdmYWFlMmFhNzI3NTZh
MjZjZDEzNDY5MTY1ZDcyLi44NGE1Y2JmYWVlMzBhMDUzNzk0ODQ5Y2ZkNTgyODE2MmE5MzVjOTM3
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCkBAIC0xMDIsNiArMTAyLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgi
ZHVtcERhdGFiYXNlQ2FsbGJhY2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRGF0YWJh
c2VDYWxsYmFja3MpOwogICAgIGJpbmRNZXRob2QoImR1bXBFZGl0aW5nQ2FsbGJhY2tzIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpkdW1wRWRpdGluZ0NhbGxiYWNrcyk7CiAgICAgYmluZE1ldGhv
ZCgiZHVtcEZyYW1lTG9hZENhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEZy
YW1lTG9hZENhbGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgiZHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjayIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFj
a3MiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2Fs
bGJhY2tzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKTsKICAgICBiaW5k
TWV0aG9kKCJkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOwpAQCAtMzIzLDYgKzMyNCwxMiBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICBtX2R1bXBQ
cm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSB0cnVlOworICAgIHJlc3VsdC0+c2V0TnVsbCgpOwor
fQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9h
ZENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7
CiAgICAgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyA9IHRydWU7CkBAIC01
NzcsNiArNTg0LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQoKQogICAgIG1f
ZHVtcEFzQXVkaW8gPSBmYWxzZTsKICAgICBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzID0gZmFsc2U7
CiAgICAgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CisgICAgbV9kdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrID0gZmFsc2U7CiAgICAgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1l
TG9hZENhbGxiYWNrcyA9IGZhbHNlOwogICAgIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9
IGZhbHNlOwogICAgIG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMgPSBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCmluZGV4IGIwZTcxOTllMjZlOGUwNWM5MGVjNDkyMzBiNmM4NjAyODMzZjNkMDEuLjY1Y2Jh
YTg5NmQwM2IwNjQxYmRhMDM3NzRkNDk1MzdhZWUzYmI3MWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtOTQsNiAr
OTQsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNl
dHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gcHJpbnQgYSBsaW5lIG9mCisg
ICAgLy8gZGVzY3JpcHRpdmUgdGV4dCBmb3IgdGhlIHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNr
LiBJdCB0YWtlcyBubworICAgIC8vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55IHRoYXQgbWF5
IGJlIHByZXNlbnQuCisgICAgdm9pZCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKworICAgIC8vIFRoaXMgZnVuY3Rpb24g
c2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YK
ICAgICAvLyB1c2VyIGdlc3R1cmUgc3RhdHVzIHRleHQgZm9yIHNvbWUgZnJhbWUgbG9hZCBjYWxs
YmFja3MuIEl0IHRha2VzIG5vCiAgICAgLy8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhh
dCBtYXkgYmUgcHJlc2VudC4KICAgICB2b2lkIGR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2Fs
bGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKQEAgLTQxMCw2ICs0
MTUsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpIHsg
cmV0dXJuIG1fZHVtcEVkaXRpbmdDYWxsYmFja3M7IH0KICAgICBib29sIHNob3VsZER1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7IH0KICAg
ICB2b2lkIHNldFNob3VsZER1bXBGcmFtZUxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkgeyBtX2R1
bXBGcmFtZUxvYWRDYWxsYmFja3MgPSB2YWx1ZTsgfQorICAgIGJvb2wgc2hvdWxkRHVtcFByb2dy
ZXNzRmluaXNoZWRDYWxsYmFjaygpIHsgcmV0dXJuIG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjazsgfQorICAgIHZvaWQgc2V0U2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhi
b29sIHZhbHVlKSB7IG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IHZhbHVlOyB9CiAg
ICAgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIHsgcmV0
dXJuIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lkIHNl
dFNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGJvb2wgdmFsdWUpIHsg
bV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyA9IHZhbHVlOyB9CiAgICAgYm9v
bCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkge3JldHVybiBtX2R1bXBSZXNvdXJj
ZUxvYWRDYWxsYmFja3M7IH0KQEAgLTU0Miw2ICs1NDksMTAgQEAgcHJpdmF0ZToKICAgICAvLyBs
b2FkIGNhbGxiYWNrLgogICAgIGJvb2wgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzOwogCisgICAg
Ly8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBkZXNjcmlwdGl2ZSBsaW5l
IGZvciB0aGUgcHJvZ3Jlc3MKKyAgICAvLyBmaW5pc2hlZCBjYWxsYmFjay4KKyAgICBib29sIG1f
ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjazsKKwogICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0
X3NoZWxsIHdpbGwgb3V0cHV0IGEgbGluZSBvZiB0aGUgdXNlciBnZXN0dXJlIHN0YXR1cwogICAg
IC8vIHRleHQgZm9yIHNvbWUgZnJhbWUgbG9hZCBjYWxsYmFja3MuCiAgICAgYm9vbCBtX2R1bXBV
c2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDdkYmVjZDhkMjFmZDc2MjlmMjVkNjMzMTBl
ODIwMjEyNjFlZTc3MzcuLmI1MzA2NzAyOTljZTFkYTdlMTk3NGVmOTNlMzAxMmE2MWU4MDNkNjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAg
LTI4Nyw2ICsyODcsOCBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWRTdGFydExvYWRpbmcoKQogCiB2
b2lkIFdlYlZpZXdIb3N0OjpkaWRTdG9wTG9hZGluZygpCiB7CisgICAgaWYgKGxheW91dFRlc3RD
b250cm9sbGVyKCktPnNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSkKKyAgICAg
ICAgZnB1dHMoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iLCBzdGRvdXQpOwog
ICAgIG1fc2hlbGwtPnNldElzTG9hZGluZyhmYWxzZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDNiMDFjYzg1NzFjMmVlM2M0MDNkZDk5
Y2NiYTBhMzljYjI5MmU0YTQuLjUzYmRiOGRhYTI5NDMzZTdmNGZlMTQwN2JiYzhlZTRmN2Q0Nzli
OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAt
Nzc3LDE4ICs3NzcsMTIgQEAgc3RhdGljIGNoYXIqIGdldEZyYW1lTmFtZVN1aXRhYmxlRm9yVGVz
dFJlc3VsdChXZWJLaXRXZWJWaWV3KiB2aWV3LCBXZWJLaXRXZWJGcmEKIAogc3RhdGljIHZvaWQg
d2ViVmlld0xvYWRGaW5pc2hlZChXZWJLaXRXZWJWaWV3KiB2aWV3LCBXZWJLaXRXZWJGcmFtZSog
ZnJhbWUsIHZvaWQqKQogeworICAgIC8vIFRoZSBkZXByZWNhdGVkICJsb2FkLWZpbmlzaGVkIiBz
aWduYWwgaXMgdHJpZ2dlcmVkIGJ5IHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCks
CisgICAgLy8gc28gd2UgY2FuIHVzZSBpdCBoZXJlIGluIHRoZSBEUlQgdG8gcHJvdmlkZSB0aGUg
Y29ycmVjdCBkdW1wLgogICAgIGlmIChmcmFtZSAhPSB0b3BMb2FkaW5nRnJhbWUpCiAgICAgICAg
IHJldHVybjsKLQotICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7Ci0gICAgV29ya1F1ZXVlOjpzaGFy
ZWQoKS0+c2V0RnJvemVuKHRydWUpOyAvLyBmaXJzdCBjb21wbGV0ZSBsb2FkIGZyZWV6ZXMgdGhl
IHF1ZXVlIGZvciB0aGUgcmVzdCBvZiB0aGlzIHRlc3QKLSAgICBpZiAoZ0xheW91dFRlc3RDb250
cm9sbGVyLT53YWl0VG9EdW1wKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChXb3JrUXVl
dWU6OnNoYXJlZCgpLT5jb3VudCgpKQotICAgICAgICBnX3RpbWVvdXRfYWRkKDAsIHByb2Nlc3NX
b3JrLCAwKTsKLSAgICBlbHNlCi0gICAgICAgIGR1bXAoKTsKKyAgICBpZiAoZ0xheW91dFRlc3RD
b250cm9sbGVyLT5kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkpCisgICAgICAgIHByaW50
ZigicG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOwogfQogCiBzdGF0aWMgZ2Jv
b2xlYW4gd2ViVmlld0xvYWRFcnJvcihXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViRnJhbWUqLCBn
Y2hhciosIGdwb2ludGVyLCBncG9pbnRlcikKQEAgLTEwMjIsNiArMTAxNiwxOSBAQCBzdGF0aWMg
V2ViS2l0V2ViVmlldyogd2ViSW5zcGVjdG9ySW5zcGVjdFdlYlZpZXcoV2ViS2l0V2ViSW5zcGVj
dG9yKiwgZ3BvaW50ZXIgZAogICAgIHJldHVybiBXRUJLSVRfV0VCX1ZJRVcod2ViVmlldyk7CiB9
CiAKK3N0YXRpYyB2b2lkIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpCit7CisgICAgdG9w
TG9hZGluZ0ZyYW1lID0gMDsKKyAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4odHJ1
ZSk7IC8vIGZpcnN0IGNvbXBsZXRlIGxvYWQgZnJlZXplcyB0aGUgcXVldWUgZm9yIHRoZSByZXN0
IG9mIHRoaXMgdGVzdAorICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50
KCkpCisgICAgICAgIGdfdGltZW91dF9hZGQoMCwgcHJvY2Vzc1dvcmssIDApOworICAgIGVsc2UK
KyAgICAgICAgZHVtcCgpOworfQorCiBzdGF0aWMgdm9pZCB3ZWJGcmFtZUxvYWRTdGF0dXNOb3Rp
ZmllZChXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGdwb2ludGVyIHVzZXJfZGF0YSkKIHsKICAgICBX
ZWJLaXRMb2FkU3RhdHVzIGxvYWRTdGF0dXMgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF9sb2FkX3N0
YXR1cyhmcmFtZSk7CkBAIC0xMDM5LDEzICsxMDQ2LDE3IEBAIHN0YXRpYyB2b2lkIHdlYkZyYW1l
TG9hZFN0YXR1c05vdGlmaWVkKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgZ3BvaW50ZXIgdXNlcl9k
YXRhCiAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcyAtIGRpZENvbW1pdExvYWRGb3JGcmFtZVxu
IiwgZnJhbWVOYW1lLmdldCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdF
QktJVF9MT0FEX0ZJTklTSEVEOgotICAgICAgICAgICAgaWYgKGZyYW1lICE9IHRvcExvYWRpbmdG
cmFtZSB8fCAhZG9uZSkKKyAgICAgICAgICAgIGlmICghZG9uZSkKICAgICAgICAgICAgICAgICBw
cmludGYoIiVzIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUuZ2V0KCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgIH0KKworICAgIGlmICgobG9hZFN0YXR1cyA9PSBXRUJLSVRfTE9BRF9G
SU5JU0hFRCB8fCBsb2FkU3RhdHVzID09IFdFQktJVF9MT0FEX0ZBSUxFRCkKKyAgICAgICAgJiYg
ZnJhbWUgPT0gdG9wTG9hZGluZ0ZyYW1lKQorICAgICAgICB0b3BMb2FkaW5nRnJhbWVMb2FkRmlu
aXNoZWQoKTsKIH0KIAogc3RhdGljIHZvaWQgZnJhbWVDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lLCBncG9pbnRlciB1c2VyX2Rh
dGEpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCmluZGV4IDI0NGE5NGEzNDhhN2RjODFhYWI0M2VjNzFkY2EzM2U4NjE3OGMwZjUuLmY0
NjE1YWJkZGQ4MmNmOTI5YThlOTM1MDUyNjFlMDAyNDM1MzliMWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03Niw2ICs3
Niw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KCkKIAogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpkdW1wRWRpdGluZ0NhbGxiYWNrcyhmYWxzZSk7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcihmYWxzZSk7CisgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soZmFsc2UpOwogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyKGZh
bHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcyhmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKGZhbHNlKTsKQEAgLTI2MSw2ICsyNjIsMTEgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpCiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcih0cnVlKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpCit7CisgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sodHJ1ZSk7Cit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2Fk
Q2FsbGJhY2tzKCkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFVzZXJHZXN0
dXJlSW5GcmFtZUxvYWRlcih0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCAyMDUzOTIwZDBjYWQ4OTJiM2NiY2ZhNjczOGMy
YzQ5OWYyMTRhZWI3Li4xNWZkOGZjMjJlMTkyZWQyNDNhOGU1ZGE5YmQyNDBkNTNkYjNmMWRhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGljIHNsb3RzOgogICAgIHZvaWQgaGFuZGxlRXJyb3JQ
YWdlcygpIHsgbV9oYW5kbGVFcnJvclBhZ2VzID0gdHJ1ZTsgfQogICAgIHZvaWQgZHVtcEVkaXRp
bmdDYWxsYmFja3MoKTsKICAgICB2b2lkIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKTsKKyAgICB2
b2lkIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKTsKICAgICB2b2lkIGR1bXBVc2VyR2Vz
dHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCk7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkQ2Fs
bGJhY2tzKCk7CiAgICAgdm9pZCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105684</attachid>
            <date>2011-08-30 13:29:04 -0700</date>
            <delta_ts>2011-08-30 13:41:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-28851-20110830172902.patch</filename>
            <type>text/plain</type>
            <size>25510</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQxMDMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZjRhOWJlZmRiMWNlNmJkMmQ3OWZj
ODM2MDRhMWZhMWViYWU1OGRlLi41M2RmOWQ0OTg4NGE3ZTZmMTJmNWRjYWE1YjZlOWE4N2U0MDI0
MTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMjMgIENhaW8gTWFyY2VsbyBkZSBP
bGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
bWl0IGxhc3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlk
RmluaXNoTG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjg4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEtl
ZXAgdHJhY2sgb2YgdGhlIG9yZGVyIGV4cGVjdGVkIGZvciB0aGUgcHJvZ3Jlc3NGaW5pc2hlZE5v
dGlmaWNhdGlvbiwgd2hpY2ggaXMKKyAgICAgICAgYmVmb3JlIHRoZSBkaWRGaW5pc2hMb2FkRm9y
RnJhbWUuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3MtZmluaXNoZWQt
Y2FsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvYWRp
bmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIw
MTEtMDgtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
ZmFzdC9sb2FkZXIvZG9jdW1lbnQtZGVzdHJ1Y3Rpb24td2l0aGluLXVubG9hZC5odG1sIGNhdXNl
cyBhbiBhc3NlcnRpb24gZmFpbHVyZSBpbiB0aGUgbmV4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1j
YWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFjZWVmYmE1NTJmMjNhNGMyZTNlYzFh
ODEwZGE0MTZmNTVlNTM0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw3IEBACittYWluIGZyYW1lIC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQor
bWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUKK3Bvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uCittYWluIGZyYW1lIC0g
ZGlkRmluaXNoTG9hZEZvckZyYW1lCitUaGlzIGlzIGEgdGVzdCBvZiBwcm9ncmVzcyBmaW5pc2hl
ZCBjYWxsYmFjayBvcmRlcmluZyBpbiByZWxhdGlvbiB0byBmcmFtZSBsb2FkZXIgY2FsbGJhY2tz
LiBJdCBpcyBvbmx5IHVzZWZ1bCBpbnNpZGUgdGhlIHJlZ3Jlc3Npb24gdGVzdCB0b29sLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVk
LWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvYWRpbmcvcHJvZ3Jlc3Mt
ZmluaXNoZWQtY2FsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2YwYjdlNzk3NzViZDQ4ZjhmMjU1
MzI0M2U0YWU0OGFkNmMyZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2FkaW5nL3Byb2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSw3
IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCk7Cit9Cis8L3NjcmlwdD4KK1RoaXMgaXMg
YSB0ZXN0IG9mIHByb2dyZXNzIGZpbmlzaGVkIGNhbGxiYWNrIG9yZGVyaW5nIGluIHJlbGF0aW9u
IHRvIGZyYW1lIGxvYWRlciBjYWxsYmFja3MuIEl0IGlzIG9ubHkgdXNlZnVsIGluc2lkZSB0aGUg
cmVncmVzc2lvbiB0ZXN0IHRvb2wuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDI2Njky
ZWRmMzQ1MjM5MDYwMzJkNzMzMjE2ZDI5MzVlMDFhOGE3MjkuLmVmNzMwM2U4NDc5NDZhNDcwMmQ3
NTA1ZDE0YTEyNWUxNjllMzRlODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC00MTIs
MyArNDEyLDYgQEAgZmFzdC9oYXJuZXNzL3NhbXBsZS1mYWlsLW1pc21hdGNoLXJlZnRlc3QuaHRt
bAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY3ODMKICMgTWFr
ZXMgc3Vic2VxdWVudCB0ZXN0IGNyYXNoCiBmYXN0L2xvYWRlci9kb2N1bWVudC1kZXN0cnVjdGlv
bi13aXRoaW4tdW5sb2FkLmh0bWwKKworIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjY3NzIKK2h0dHAvdGVzdHMvbG9hZGluZy9wcm9ncmVzcy1maW5pc2hlZC1jYWxs
YmFjay5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDc3OGNkMzVjMDliNDQzOTAw
ZDRjZTIzYTc0OTY3MTU0NjA2OTEyZTYuLmI4NDk2MjJjNzEwNzIwNTgxNjU0NmQ1NTE0Mjk1MWE2
ZTY5ODhhY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xNDAxLDMgKzE0MDEsNiBA
QCBlZGl0aW5nL3NlbGVjdGlvbi9jYXJldC1hdC1iaWRpLWJvdW5kYXJ5Lmh0bWwKIAogIyBOZWVk
IERSVCBjaGFuZ2U6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjYy
MAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sCisKKyMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzczCitodHRwL3Rlc3RzL2xvYWRp
bmcvcHJvZ3Jlc3MtZmluaXNoZWQtY2FsbGJhY2suaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZjYzY0NWM1
MjVjNTM3ODE5NzRjZGNkMGQwZWI4MjQ4NzJmMzBkMmYuLjFjZjMzNWI3NTZjN2M2OWNlMDBkYjU0
Yjk3YjE4ZGNlZjA0ODUxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wOC0y
MyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIEVtaXQgbGFzdCBwcm9ncmVzcyBub3RpZmljYXRpb24gYmVmb3Jl
IGNhbGxpbmcgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCisKKyAgICAgICAgT3JpZ2luYWwgcGF0Y2ggYnkgWGFuIExvcGV6LiBDaGFuZ2UgRnJh
bWVMb2FkZXIgdG8gZGlzcGF0Y2ggdGhlIG5vdGlmaWNhdGlvbnMgaW4KKyAgICAgICAgYSBtb3Jl
IG5hdHVyYWwgc2VxdWVuY2UuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2FkaW5nL3By
b2dyZXNzLWZpbmlzaGVkLWNhbGxiYWNrLmh0bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxl
dGVGb3JUaGlzRnJhbWUpOgorCiAyMDExLTA4LTMwICBEYXdpdCBBbGVtYXllaHUgIDxhZGF3aXRA
a2RlLm9yZz4KIAogICAgICAgICBbUXRdIFJlcGxhY2UgUUxpYnJhcnkoImxpYmd0ay14MTEtMi4w
LnNvLjAiKSB3aXRoIFFMaWJyYXJ5KCJsaWJndGsteDExLTIuMCIsIDApCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0ZjBmMWYzNTZlYTdhMjg3YWJhY2RhZWY0ODY4NDNj
Zjk1Mzg3ODZlLi4xOWIxZThjOWU3NDRjODk4NDNmNjY5NGJmYjUxMjVlODQxMjRhZTQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIyOTIsMTQgKzIyOTIsMTUgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWUoKQogICAgICAg
ICAgICAgaWYgKG1fc3RhdGVNYWNoaW5lLmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSB8
fCAhbV9zdGF0ZU1hY2hpbmUuY29tbWl0dGVkRmlyc3RSZWFsRG9jdW1lbnRMb2FkKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5wcm9ncmVzc0Nv
bXBsZXRlZChtX2ZyYW1lKTsKKwogICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IgPSBkbC0+bWFpbkRvY3VtZW50RXJyb3IoKTsKICAgICAgICAgICAgIGlmICghZXJyb3IuaXNO
dWxsKCkpCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkRmFpbExvYWQoZXJy
b3IpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaXNwYXRj
aERpZEZpbmlzaExvYWQoKTsKIAotICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+cHJvZ3Jlc3NDb21w
bGV0ZWQobV9mcmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IGE0OTc5YmI1OGE4MGUxNGY0NjZkOWYxMDA4MWNmZDc0MDU1YTBl
MGQuLjQ4YTdjZWE1ZjBjZDNhM2I5MmRmNTJlY2Y4ZjY0MjJmMTMxNzc4ODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDgtMjMgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWly
YSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBFbWl0IGxh
c3QgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIGJlZm9yZSBjYWxsaW5nIGRpc3BhdGNoRGlkRmluaXNo
TG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg4
NTEKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIEFkZCBpbmZy
YXN0cnVjdHVyZSB0byBkdW1wIHByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24gY2FsbGJhY2sg
aW4gRFJULgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBQcm9ncmVzc0Zp
bmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jl
c3NGaW5pc2hlZE5vdGlmaWNhdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5oOgorCiAyMDExLTA4LTMwICBLYXVzdHViaCBBdHJhd2Fsa2FyICA8a2F1
c3R1YmhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIFRoZSB1bnVzZWQgU2Nyb2xsVmlldyogYXJn
dW1lbnQgY2FuIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CmluZGV4IGFmODZlMjJkOTY4YWYwMmY5NWU1ODgyNjE5ODMxM2JkMmFjZGYzNjAuLmY0YTE1OTYx
YzkzNjMzMGY3ZjcxYmM3ZWMyNGE0NDQ2NDk0YzdiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CkBAIC02ODEsNiArNjgxLDExIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBG
cmFtZUxvYWRlcihib29sIGIpCiAgICAgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcEZyYW1lTG9h
ZGVyQ2FsbGJhY2tzID0gYjsKIH0KIAordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhib29sIGIpCit7CisgICAgRnJhbWVMb2FkZXJDbGll
bnRRdDo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayA9IGI7Cit9CisKIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXIoYm9vbCBiKQog
ewogICAgIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXJD
YWxsYmFja3MgPSBiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IGIwY2ZmOGE5Y2I5ZGVkN2FkZTc1
OTkzYTUyNjRiYzc5NTc5ZWEzZGQuLjUwNzE4MzczYTBkOWM0NzNlMTFmYzdjZDNlYjZhMzY0MTMy
MjYzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFFTdHJpbmcgcGxhaW5UZXh0KGNvbnN0IFFWYXJpYW50JiBybmcpOwogCiAgICAg
c3RhdGljIHZvaWQgZHVtcEZyYW1lTG9hZGVyKGJvb2wgYik7CisgICAgc3RhdGljIHZvaWQgZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayhib29sKTsKICAgICBzdGF0aWMgdm9pZCBkdW1wVXNl
ckdlc3R1cmVJbkZyYW1lTG9hZGVyKGJvb2wgYik7CiAgICAgc3RhdGljIHZvaWQgZHVtcFJlc291
cmNlTG9hZENhbGxiYWNrcyhib29sIGIpOwogICAgIHN0YXRpYyB2b2lkIGR1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzKGJvb2wgYik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAppbmRleCAwOGI5Y2QwMzU3MTQ5
M2Q5MjQ4MzM1OTU0NTlkZTY5MTQyMzcyNDZhLi45MmJkYmRlYjY3YjFmZGI5MmFiYWJiZDRhOThl
OTJlNzUxNzEwNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQCBzdGF0aWMg
UVN0cmluZyBkcnREZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25zdCBSZWZQdHI8
V2ViQ29yZTo6Tm9kZT4gbgogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEZyYW1lTG9hZGVy
Q2xpZW50UXQ6OmR1bXBGcmFtZUxvYWRlckNhbGxiYWNrcyA9IGZhbHNlOworYm9vbCBGcmFtZUxv
YWRlckNsaWVudFF0OjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gZmFsc2U7CiBib29s
IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXJDYWxsYmFj
a3MgPSBmYWxzZTsKIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcyA9IGZhbHNlOwogYm9vbCBGcmFtZUxvYWRlckNsaWVudFF0OjpzZW5kUmVxdWVzdFJl
dHVybnNOdWxsT25SZWRpcmVjdCA9IGZhbHNlOwpAQCAtNTkyLDYgKzU5Myw5IEBAIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRRdDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9u
KCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFF0Ojpwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlm
aWNhdGlvbigpCiB7CisgICAgaWYgKGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spCisgICAg
ICAgIHByaW50ZigicG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOworCiAgICAg
Ly8gU2VuZCBhIG1vdXNlbW92ZSBldmVudCB0bzoKICAgICAvLyAoMSkgdXBkYXRlIHRoZSBjdXJz
b3IgdG8gY2hhbmdlIGFjY29yZGluZyB0byB3aGF0ZXZlciBpcyB1bmRlcm5lYXRoIHRoZSBtb3Vz
ZSBjdXJzb3IgcmlnaHQgbm93OwogICAgIC8vICgyKSBkaXNwbGF5IHRoZSB0b29sIHRpcCBpZiB0
aGUgbW91c2UgaG92ZXJzIGEgbm9kZSB3aGljaCBoYXMgYSB0b29sIHRpcC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5k
ZXggNmFmODUyYjU0MjQ1NjY5MDE0ZTBkNzk5M2U2Zjg1NmZmYWUxNTcwMC4uMjI0NGIyNjRjMWEx
N2U3MzY4ODEzMTE1NmY3ZDFiODI3MzQyYzViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTI0Nyw2ICsyNDcs
NyBAQCBwdWJsaWM6CiAgICAgY29uc3QgS1VSTCYgbGFzdFJlcXVlc3RlZFVybCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGFzdFJlcXVlc3RlZFVybDsgfQogCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1l
TG9hZGVyQ2FsbGJhY2tzOworICAgIHN0YXRpYyBib29sIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2Fs
bGJhY2s7CiAgICAgc3RhdGljIGJvb2wgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlckNhbGxi
YWNrczsKICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwogICAgIHN0
YXRpYyBib29sIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM2NGRhOTliOWJiYjI1NWJhYmUz
MzgzZTdiNGNkOGEzM2UzYTFiNDUuLjFhZWY0ODE5ZGY1ZTEzNmFlODIzZWE5ZjBmZTBhZmI5NWZj
MzgzM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NSBAQAorMjAxMS0wOC0yMyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZp
bGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEVtaXQgbGFzdCBw
cm9ncmVzcyBub3RpZmljYXRpb24gYmVmb3JlIGNhbGxpbmcgZGlzcGF0Y2hEaWRGaW5pc2hMb2Fk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODg1MQor
CisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW1wbGVtZW50IGR1
bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBpbiB0aGUgbGF5b3V0VGVzdENvbnRyb2xsZXIg
Zm9yIFF0LAorICAgICAgICBDaHJvbWl1bSBhbmQgR1RLIHBvcnRzLiBUaGUgZmlyc3QgdHdvIHdl
cmUgc2ltcGxlIGNoYW5nZXMuCisKKyAgICAgICAgU29tZSByZWZhY3RvcmluZyB3YXMgbmVlZGVk
IGluIEdUSyBwb3J0IHRvIGFzc3VyZSB0aGF0IHRoZSBkdW1wcyBhcmUgZW1pdHRlZAorICAgICAg
ICBjb3JyZWN0bHkgYW5kIHRoZSBwcm9jZXNzaW5nIGFmdGVyIHRoZSBwYWdlIGxvYWQgZmluaXNo
ZWQgaXMgaW4gdGhlIHJpZ2h0IHBsYWNlLgorCisgICAgICAgIFRvIGRldGVjdCB0aGUgbG9hZCBm
aW5pc2hlZCwgd2UgdXNlIHRoZSBjYWxsYmFjayBmb3IgdGhlICJsb2FkLXN0YXR1cyIgbm90aWZp
ZXIKKyAgICAgICAgc2lnbmFsIG9mIHRoZSB0b3AgbG9hZGluZyBmcmFtZS4gQW5kIHdlIHVzZSB0
aGUgZGVwcmVjYXRlZCAibG9hZC1maW5pc2hlZCIgc2lnbmFsCisgICAgICAgIGZvciBkdW1waW5n
IChpZiBlbmFibGVkKSB0aGUgcHJvZ3Jlc3MgZmluaXNoZWQgZXhwZWN0ZWQgb3V0cHV0LgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2tDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2spOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkRHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgor
ICAgICAgICAoV2ViVmlld0hvc3Q6OmRpZFN0b3BMb2FkaW5nKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAod2ViVmlld0xvYWRGaW5p
c2hlZCk6CisgICAgICAgICh0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQpOgorICAgICAgICAo
d2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnJlc2V0KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0Lmg6CisKIDIwMTEtMDgtMzAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBKYXZhU2NyaXB0Q29yZSBkb2VzIG5vdCBoYXZlIGEgZ29vZCBtZWNo
YW5pc20gZm9yIHBlcmZvcm1hbmNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggOWRlMDc1ZTEyNzJiNWRmOWE0MDIxMGFlOGMxOWNiOTNhOGM2
NDc1MC4uMmUxYmRiNDkzNjUxNWZhMGYxYmU5ZDYwMTZiZTA2Yzk2N2NiOTJlMyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNTYsNiArNTYs
NyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoY29uc3Qgc3Rk
OjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwsIGNvbgogICAgICwgbV9kdW1wRGF0YWJhc2VDYWxsYmFj
a3MoZmFsc2UpCiAgICAgLCBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzKGZhbHNlKQogICAgICwgbV9k
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGZhbHNlKQorICAgICwgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hl
ZENhbGxiYWNrKGZhbHNlKQogICAgICwgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxi
YWNrcyhmYWxzZSkKICAgICAsIG1fZHVtcEhpc3RvcnlEZWxlZ2F0ZUNhbGxiYWNrcyhmYWxzZSkK
ICAgICAsIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyhmYWxzZSkKQEAgLTIwNSw2ICsyMDYs
MTMgQEAgc3RhdGljIEpTVmFsdWVSZWYgZHVtcEZyYW1lTG9hZENhbGxiYWNrc0NhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGR1bXBQcm9ncmVzc0Zpbmlz
aGVkQ2FsbGJhY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAg
TGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0
Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJv
bGxlci0+c2V0RHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayh0cnVlKTsKKyAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGR1
bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOwpAQCAtMjI5Nyw2ICsyMzA1LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgImR1bXBEYXRhYmFz
ZUNhbGxiYWNrcyIsIGR1bXBEYXRhYmFzZUNhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgImR1bXBFZGl0aW5nQ2FsbGJhY2tzIiwgZHVtcEVkaXRpbmdDYWxsYmFja3NDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzIiwgZHVtcEZyYW1l
TG9hZENhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImR1bXBQcm9ncmVzc0Zp
bmlzaGVkQ2FsbGJhY2siLCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MiLCBk
dW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sICAgICAg
ICAKICAgICAgICAgeyAiZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyIsIGR1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wUmVzb3VyY2VSZXNw
b25zZU1JTUVUeXBlcyIsIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4
IDliNzYyODgwZWNhZjVmODA4YTk2N2Y3YTk0MzI2OTEzMjA1NjVkYTAuLjkyOGNmYzdhYTMxOTcz
YzZjMjUxNzY4NDVhODRlOGZjYmZhNTZiNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTgxLDYgKzE4MSw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcEZyYW1lTG9h
ZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0RHVtcEZyYW1lTG9hZENhbGxiYWNrcyhib29sIGR1
bXBGcmFtZUxvYWRDYWxsYmFja3MpIHsgbV9kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzID0gZHVtcEZy
YW1lTG9hZENhbGxiYWNrczsgfQorCisgICAgYm9vbCBkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxi
YWNrKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOyB9Cisg
ICAgdm9pZCBzZXREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wgZHVtcFByb2dyZXNz
RmluaXNoZWRDYWxsYmFjaykgeyBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSBkdW1w
UHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOyB9CiAgICAgCiAgICAgYm9vbCBkdW1wVXNlckdlc3R1
cmVJbkZyYW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fZHVtcFVzZXJHZXN0dXJl
SW5GcmFtZUxvYWRDYWxsYmFja3M7IH0KICAgICB2b2lkIHNldER1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkQ2FsbGJhY2tzKGJvb2wgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3Mp
IHsgbV9kdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyA9IGR1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkQ2FsbGJhY2tzOyB9ICAgIApAQCAtMzY5LDYgKzM3Miw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2R1bXBEYXRhYmFzZUNhbGxiYWNrczsKICAgICBib29sIG1fZHVtcEVkaXRp
bmdDYWxsYmFja3M7CiAgICAgYm9vbCBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7CisgICAgYm9v
bCBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2s7CiAgICAgYm9vbCBtX2R1bXBVc2VyR2Vz
dHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wSGlzdG9yeURlbGVnYXRl
Q2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCmluZGV4IGFkMjNhYWIyOTY5N2ZhYWUyYWE3Mjc1NmEyNmNkMTM0NjkxNjVkNzIuLjg0YTVj
YmZhZWUzMGEwNTM3OTQ4NDljZmQ1ODI4MTYyYTkzNWM5MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEw
Miw2ICsxMDIsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIo
VGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJkdW1wRGF0YWJhc2VDYWxsYmFja3Mi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBEYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgYmlu
ZE1ldGhvZCgiZHVtcEVkaXRpbmdDYWxsYmFja3MiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1
bXBFZGl0aW5nQ2FsbGJhY2tzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKTsKKyAg
ICBiaW5kTWV0aG9kKCJkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKTsKICAgICBiaW5kTWV0aG9k
KCJkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNrcyIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MpOwogICAgIGJpbmRNZXRo
b2QoImR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MpOwogICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUmVzb3VyY2VSZXNw
b25zZU1JTUVUeXBlcyk7CkBAIC0zMjMsNiArMzI0LDEyIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFj
ayA9IHRydWU7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX2R1bXBVc2VyR2VzdHVy
ZUluRnJhbWVMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKQEAgLTU3Nyw2ICs1ODQsNyBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgpCiAgICAgbV9kdW1wQXNBdWRpbyA9IGZhbHNlOwog
ICAgIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MgPSBmYWxzZTsKICAgICBtX2R1bXBGcmFtZUxvYWRD
YWxsYmFja3MgPSBmYWxzZTsKKyAgICBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSBm
YWxzZTsKICAgICBtX2R1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzID0gZmFsc2U7
CiAgICAgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gZmFsc2U7CiAgICAgbV9kdW1wUmVz
b3VyY2VSZXNwb25zZU1JTUVUeXBlcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYjBlNzE5OWUyNmU4
ZTA1YzkwZWM0OTIzMGI2Yzg2MDI4MzNmM2QwMS4uNjVjYmFhODk2ZDAzYjA2NDFiZGEwMzc3NGQ0
OTUzN2FlZTNiYjcxZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC05NCw2ICs5NCwxMSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0
aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YKKyAgICAvLyBkZXNjcmlwdGl2ZSB0ZXh0
IGZvciB0aGUgcHJvZ3Jlc3MgZmluaXNoZWQgY2FsbGJhY2suIEl0IHRha2VzIG5vCisgICAgLy8g
YXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KKyAgICB2b2lk
IGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOworCisgICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxz
IHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IGEgbGluZSBvZgogICAgIC8vIHVzZXIgZ2VzdHVyZSBz
dGF0dXMgdGV4dCBmb3Igc29tZSBmcmFtZSBsb2FkIGNhbGxiYWNrcy4gSXQgdGFrZXMgbm8KICAg
ICAvLyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgogICAg
IHZvaWQgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwpAQCAtNDEwLDYgKzQxNSw4IEBAIHB1YmxpYzoKICAgICBi
b29sIHNob3VsZER1bXBFZGl0aW5nQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wRWRpdGluZ0Nh
bGxiYWNrczsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEZyYW1lTG9hZENhbGxiYWNrcygpIHsgcmV0
dXJuIG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0U2hvdWxkRHVtcEZy
YW1lTG9hZENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1fZHVtcEZyYW1lTG9hZENhbGxiYWNrcyA9
IHZhbHVlOyB9CisgICAgYm9vbCBzaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkg
eyByZXR1cm4gbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOyB9CisgICAgdm9pZCBzZXRT
aG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKGJvb2wgdmFsdWUpIHsgbV9kdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrID0gdmFsdWU7IH0KICAgICBib29sIHNob3VsZER1bXBVc2Vy
R2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wVXNlckdlc3R1cmVJ
bkZyYW1lTG9hZENhbGxiYWNrczsgfQogICAgIHZvaWQgc2V0U2hvdWxkRHVtcFVzZXJHZXN0dXJl
SW5GcmFtZUxvYWRDYWxsYmFja3MoYm9vbCB2YWx1ZSkgeyBtX2R1bXBVc2VyR2VzdHVyZUluRnJh
bWVMb2FkQ2FsbGJhY2tzID0gdmFsdWU7IH0KICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3MoKSB7cmV0dXJuIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsgfQpAQCAt
NTQyLDYgKzU0OSwxMCBAQCBwcml2YXRlOgogICAgIC8vIGxvYWQgY2FsbGJhY2suCiAgICAgYm9v
bCBtX2R1bXBGcmFtZUxvYWRDYWxsYmFja3M7CiAKKyAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9z
aGVsbCB3aWxsIG91dHB1dCBhIGRlc2NyaXB0aXZlIGxpbmUgZm9yIHRoZSBwcm9ncmVzcworICAg
IC8vIGZpbmlzaGVkIGNhbGxiYWNrLgorICAgIGJvb2wgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENh
bGxiYWNrOworCiAgICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBs
aW5lIG9mIHRoZSB1c2VyIGdlc3R1cmUgc3RhdHVzCiAgICAgLy8gdGV4dCBmb3Igc29tZSBmcmFt
ZSBsb2FkIGNhbGxiYWNrcy4KICAgICBib29sIG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRD
YWxsYmFja3M7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5j
cHAKaW5kZXggN2RiZWNkOGQyMWZkNzYyOWYyNWQ2MzMxMGU4MjAyMTI2MWVlNzczNy4uYjUzMDY3
MDI5OWNlMWRhN2UxOTc0ZWY5M2UzMDEyYTYxZTgwM2Q2MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMjg3LDYgKzI4Nyw4IEBAIHZvaWQg
V2ViVmlld0hvc3Q6OmRpZFN0YXJ0TG9hZGluZygpCiAKIHZvaWQgV2ViVmlld0hvc3Q6OmRpZFN0
b3BMb2FkaW5nKCkKIHsKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjaygpKQorICAgICAgICBmcHV0cygicG9zdFByb2dyZXNz
RmluaXNoZWROb3RpZmljYXRpb25cbiIsIHN0ZG91dCk7CiAgICAgbV9zaGVsbC0+c2V0SXNMb2Fk
aW5nKGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJl
ZS5jcHAKaW5kZXggM2IwMWNjODU3MWMyZWUzYzQwM2RkOTljY2JhMGEzOWNiMjkyZTRhNC4uNTNi
ZGI4ZGFhMjk0MzNlN2Y0ZmUxNDA3YmJjOGVlNGY3ZDQ3OWI5NyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC03NzcsMTggKzc3NywxMiBAQCBzdGF0
aWMgY2hhciogZ2V0RnJhbWVOYW1lU3VpdGFibGVGb3JUZXN0UmVzdWx0KFdlYktpdFdlYlZpZXcq
IHZpZXcsIFdlYktpdFdlYkZyYQogCiBzdGF0aWMgdm9pZCB3ZWJWaWV3TG9hZEZpbmlzaGVkKFdl
YktpdFdlYlZpZXcqIHZpZXcsIFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgdm9pZCopCiB7CisgICAg
Ly8gVGhlIGRlcHJlY2F0ZWQgImxvYWQtZmluaXNoZWQiIHNpZ25hbCBpcyB0cmlnZ2VyZWQgYnkg
cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKSwKKyAgICAvLyBzbyB3ZSBjYW4gdXNl
IGl0IGhlcmUgaW4gdGhlIERSVCB0byBwcm92aWRlIHRoZSBjb3JyZWN0IGR1bXAuCiAgICAgaWYg
KGZyYW1lICE9IHRvcExvYWRpbmdGcmFtZSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgdG9wTG9h
ZGluZ0ZyYW1lID0gMDsKLSAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4odHJ1ZSk7
IC8vIGZpcnN0IGNvbXBsZXRlIGxvYWQgZnJlZXplcyB0aGUgcXVldWUgZm9yIHRoZSByZXN0IG9m
IHRoaXMgdGVzdAotICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKFdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50KCkp
Ci0gICAgICAgIGdfdGltZW91dF9hZGQoMCwgcHJvY2Vzc1dvcmssIDApOwotICAgIGVsc2UKLSAg
ICAgICAgZHVtcCgpOworICAgIGlmIChnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBQcm9ncmVz
c0ZpbmlzaGVkQ2FsbGJhY2soKSkKKyAgICAgICAgcHJpbnRmKCJwb3N0UHJvZ3Jlc3NGaW5pc2hl
ZE5vdGlmaWNhdGlvblxuIik7CiB9CiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJWaWV3TG9hZEVycm9y
KFdlYktpdFdlYlZpZXcqLCBXZWJLaXRXZWJGcmFtZSosIGdjaGFyKiwgZ3BvaW50ZXIsIGdwb2lu
dGVyKQpAQCAtMTAyMiw2ICsxMDE2LDE5IEBAIHN0YXRpYyBXZWJLaXRXZWJWaWV3KiB3ZWJJbnNw
ZWN0b3JJbnNwZWN0V2ViVmlldyhXZWJLaXRXZWJJbnNwZWN0b3IqLCBncG9pbnRlciBkCiAgICAg
cmV0dXJuIFdFQktJVF9XRUJfVklFVyh3ZWJWaWV3KTsKIH0KIAorc3RhdGljIHZvaWQgdG9wTG9h
ZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCkKK3sKKyAgICB0b3BMb2FkaW5nRnJhbWUgPSAwOworICAg
IFdvcmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3plbih0cnVlKTsgLy8gZmlyc3QgY29tcGxldGUg
bG9hZCBmcmVlemVzIHRoZSBxdWV1ZSBmb3IgdGhlIHJlc3Qgb2YgdGhpcyB0ZXN0CisgICAgaWYg
KGdMYXlvdXRUZXN0Q29udHJvbGxlci0+d2FpdFRvRHVtcCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKKyAgICAgICAgZ190aW1lb3V0
X2FkZCgwLCBwcm9jZXNzV29yaywgMCk7CisgICAgZWxzZQorICAgICAgICBkdW1wKCk7Cit9CisK
IHN0YXRpYyB2b2lkIHdlYkZyYW1lTG9hZFN0YXR1c05vdGlmaWVkKFdlYktpdFdlYkZyYW1lKiBm
cmFtZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQogewogICAgIFdlYktpdExvYWRTdGF0dXMgbG9hZFN0
YXR1cyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X2xvYWRfc3RhdHVzKGZyYW1lKTsKQEAgLTEwMzks
MTMgKzEwNDYsMTcgQEAgc3RhdGljIHZvaWQgd2ViRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQoV2Vi
S2l0V2ViRnJhbWUqIGZyYW1lLCBncG9pbnRlciB1c2VyX2RhdGEKICAgICAgICAgICAgICAgICBw
cmludGYoIiVzIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUuZ2V0KCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgV0VCS0lUX0xPQURfRklOSVNIRUQ6Ci0g
ICAgICAgICAgICBpZiAoZnJhbWUgIT0gdG9wTG9hZGluZ0ZyYW1lIHx8ICFkb25lKQorICAgICAg
ICAgICAgaWYgKCFkb25lKQogICAgICAgICAgICAgICAgIHByaW50ZigiJXMgLSBkaWRGaW5pc2hM
b2FkRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS5nZXQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorCisg
ICAgaWYgKChsb2FkU3RhdHVzID09IFdFQktJVF9MT0FEX0ZJTklTSEVEIHx8IGxvYWRTdGF0dXMg
PT0gV0VCS0lUX0xPQURfRkFJTEVEKQorICAgICAgICAmJiBmcmFtZSA9PSB0b3BMb2FkaW5nRnJh
bWUpCisgICAgICAgIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOwogfQogCiBzdGF0aWMg
dm9pZCBmcmFtZUNyZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRX
ZWJGcmFtZSogd2ViRnJhbWUsIGdwb2ludGVyIHVzZXJfZGF0YSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggMjQ0YTk0YTM0
OGE3ZGM4MWFhYjQzZWM3MWRjYTMzZTg2MTc4YzBmNS4uZjQ2MTVhYmRkZDgyY2Y5MjlhOGU5MzUw
NTI2MWUwMDI0MzUzOWIxZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTc2LDYgKzc2LDcgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVzZXQoKQogCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBF
ZGl0aW5nQ2FsbGJhY2tzKGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVt
cEZyYW1lTG9hZGVyKGZhbHNlKTsKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFBy
b2dyZXNzRmluaXNoZWRDYWxsYmFjayhmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OmR1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkZXIoZmFsc2UpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGZhbHNlKTsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoZmFsc2Up
OwpAQCAtMjYxLDYgKzI2MiwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wRnJh
bWVMb2FkQ2FsbGJhY2tzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVtcEZyYW1l
TG9hZGVyKHRydWUpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkdW1wUHJvZ3Jl
c3NGaW5pc2hlZENhbGxiYWNrKCkKK3sKKyAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZHVt
cFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayh0cnVlKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6ZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MoKQogewogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZGVyKHRydWUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
CmluZGV4IDIwNTM5MjBkMGNhZDg5MmIzY2JjZmE2NzM4YzJjNDk5ZjIxNGFlYjcuLjE1ZmQ4ZmMy
MmUxOTJlZDI0M2E4ZTVkYTliZDI0MGQ1M2RiM2YxZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBw
dWJsaWMgc2xvdHM6CiAgICAgdm9pZCBoYW5kbGVFcnJvclBhZ2VzKCkgeyBtX2hhbmRsZUVycm9y
UGFnZXMgPSB0cnVlOyB9CiAgICAgdm9pZCBkdW1wRWRpdGluZ0NhbGxiYWNrcygpOwogICAgIHZv
aWQgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpOworICAgIHZvaWQgZHVtcFByb2dyZXNzRmluaXNo
ZWRDYWxsYmFjaygpOwogICAgIHZvaWQgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFj
a3MoKTsKICAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKICAgICB2b2lkIGR1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>