<?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>184108</bug_id>
          
          <creation_ts>2018-03-28 12:45:53 -0700</creation_ts>
          <short_desc>Align XMLHttpRequest&apos;s open() / send() / abort() with the latest specification</short_desc>
          <delta_ts>2018-03-28 21:17: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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://xhr.spec.whatwg.org/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>184059</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1409981</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 12:45:53 -0700</bug_when>
    <thetext>Align XMLHttpRequest&apos;s open() / send() / abort() with the latest specification:
- https://xhr.spec.whatwg.org</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409985</commentid>
    <comment_count>1</comment_count>
      <attachid>336697</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 12:47:22 -0700</bug_when>
    <thetext>Created attachment 336697
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409986</commentid>
    <comment_count>2</comment_count>
      <attachid>336698</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 12:48:19 -0700</bug_when>
    <thetext>Created attachment 336698
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409993</commentid>
    <comment_count>3</comment_count>
      <attachid>336702</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 13:01:08 -0700</bug_when>
    <thetext>Created attachment 336702
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410031</commentid>
    <comment_count>4</comment_count>
      <attachid>336711</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 13:39:46 -0700</bug_when>
    <thetext>Created attachment 336711
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410044</commentid>
    <comment_count>5</comment_count>
      <attachid>336717</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 14:04:02 -0700</bug_when>
    <thetext>Created attachment 336717
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410064</commentid>
    <comment_count>6</comment_count>
      <attachid>336721</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 14:36:35 -0700</bug_when>
    <thetext>Created attachment 336721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410076</commentid>
    <comment_count>7</comment_count>
      <attachid>336725</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 15:15:58 -0700</bug_when>
    <thetext>Created attachment 336725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410151</commentid>
    <comment_count>8</comment_count>
      <attachid>336725</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-28 18:50:44 -0700</bug_when>
    <thetext>Comment on attachment 336725
Patch

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

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:338
&gt; +    m_method = normalizeHTTPMethod(method);

We can probably normalize the method after the early returns, at the moment the spec says to set m_method.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:381
&gt;          changeState(OPENED);

changeState is checking for m_state so we can probably call changeState directly, name is not great though.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:591
&gt; +    // Also, only async requests support upload progress events.

Do we need this last comment?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:622
&gt; +            return { };

As per spec, we should check for m_state and m_sendFlag, but I am not clear why we are checking for m_loader?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:-679
&gt; -    m_state = UNSENT;

Above it is stated &quot;// Clear headers as required by the spec&quot;, which is no longer the case.
Maybe we can get rid of this comment or the spec is missing something.
If we add a header, abort and add the same header, would the values be combined?

&gt; LayoutTests/ChangeLog:14
&gt; +        per specification and those tests were also failing in Firefox.

I wonder whether these 3 tests bring actually anything compared to their WPT equivalent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410155</commentid>
    <comment_count>9</comment_count>
      <attachid>336725</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 19:13:07 -0700</bug_when>
    <thetext>Comment on attachment 336725
Patch

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

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:338
&gt;&gt; +    m_method = normalizeHTTPMethod(method);
&gt; 
&gt; We can probably normalize the method after the early returns, at the moment the spec says to set m_method.

Good idea.

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:381
&gt;&gt;          changeState(OPENED);
&gt; 
&gt; changeState is checking for m_state so we can probably call changeState directly, name is not great though.

Ok.

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:591
&gt;&gt; +    // Also, only async requests support upload progress events.
&gt; 
&gt; Do we need this last comment?

I&apos;ll drop it.

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:622
&gt;&gt; +            return { };
&gt; 
&gt; As per spec, we should check for m_state and m_sendFlag, but I am not clear why we are checking for m_loader?

I had to add it or some WPT tests would still fail when:
1. We dispatch the loadstart event (above)
2. In the loadstart event handler, the JS calls both open() and send() again

Because the JS has called open() and send() again, m_state is OPENED and m_sendFlag is true. open() normally cancels any pending load but we have no started the load yet (it happens a few lines below). Adding the m_loader check fixes the issue as we return early when we&apos;ve re-entered and started a new load.

&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:-679
&gt;&gt; -    m_state = UNSENT;
&gt; 
&gt; Above it is stated &quot;// Clear headers as required by the spec&quot;, which is no longer the case.
&gt; Maybe we can get rid of this comment or the spec is missing something.
&gt; If we add a header, abort and add the same header, would the values be combined?

I&apos;ll check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410164</commentid>
    <comment_count>10</comment_count>
      <attachid>336725</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 19:56:23 -0700</bug_when>
    <thetext>Comment on attachment 336725
Patch

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

&gt;&gt; LayoutTests/ChangeLog:14
&gt;&gt; +        per specification and those tests were also failing in Firefox.
&gt; 
&gt; I wonder whether these 3 tests bring actually anything compared to their WPT equivalent.

My understanding is that we are not actively trying to avoid duplication between layout tests and WPT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410165</commentid>
    <comment_count>11</comment_count>
      <attachid>336725</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 19:58:38 -0700</bug_when>
    <thetext>Comment on attachment 336725
Patch

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

&gt;&gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:622
&gt;&gt;&gt; +            return { };
&gt;&gt; 
&gt;&gt; As per spec, we should check for m_state and m_sendFlag, but I am not clear why we are checking for m_loader?
&gt; 
&gt; I had to add it or some WPT tests would still fail when:
&gt; 1. We dispatch the loadstart event (above)
&gt; 2. In the loadstart event handler, the JS calls both open() and send() again
&gt; 
&gt; Because the JS has called open() and send() again, m_state is OPENED and m_sendFlag is true. open() normally cancels any pending load but we have no started the load yet (it happens a few lines below). Adding the m_loader check fixes the issue as we return early when we&apos;ve re-entered and started a new load.

This is the test that would fail:
imported/w3c/web-platform-tests/XMLHttpRequest/loadstart-and-state.html

Diff:
-PASS open() during loadstart 
+FAIL open() during loadstart assert_equals: expected &quot;BB-8&quot; but got &quot;R2-D2&quot;

This test is passing in both Firefox and Chrome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410170</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-03-28 20:24:21 -0700</bug_when>
    <thetext>&gt; &gt; I wonder whether these 3 tests bring actually anything compared to their WPT equivalent.
&gt; 
&gt; My understanding is that we are not actively trying to avoid duplication
&gt; between layout tests and WPT?

That makes sense for tests that continue passing.
When a test is obsolete, we should either think of modifying it or removing it if superseded by another test.

I looked at http/tests/xmlhttprequest/onloadend-event-after-abort.html and it is not exactly a copy so they might still be useful.

&gt; &gt;&gt; Source/WebCore/xml/XMLHttpRequest.cpp:622
&gt; &gt;&gt; +            return { };
&gt; &gt; 
&gt; &gt; As per spec, we should check for m_state and m_sendFlag, but I am not clear why we are checking for m_loader?
&gt; 
&gt; I had to add it or some WPT tests would still fail when:
&gt; 1. We dispatch the loadstart event (above)
&gt; 2. In the loadstart event handler, the JS calls both open() and send() again
&gt; 
&gt; Because the JS has called open() and send() again, m_state is OPENED and
&gt; m_sendFlag is true. open() normally cancels any pending load but we have no
&gt; started the load yet (it happens a few lines below). Adding the m_loader
&gt; check fixes the issue as we return early when we&apos;ve re-entered and started a
&gt; new load.

That makes sense, maybe that is worth a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410175</commentid>
    <comment_count>13</comment_count>
      <attachid>336750</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-28 20:36:14 -0700</bug_when>
    <thetext>Created attachment 336750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410182</commentid>
    <comment_count>14</comment_count>
      <attachid>336750</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-28 21:16:31 -0700</bug_when>
    <thetext>Comment on attachment 336750
Patch

Clearing flags on attachment: 336750

Committed r230066: &lt;https://trac.webkit.org/changeset/230066&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410183</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-28 21:16:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1410184</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-28 21:17:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/38985134&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336697</attachid>
            <date>2018-03-28 12:47:22 -0700</date>
            <delta_ts>2018-03-28 12:48:19 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>184108_XHR_Align_wip.patch</filename>
            <type>text/plain</type>
            <size>15597</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CmluZGV4IGU1MjMxODQ1N2JlLi5kYjVkOGM1YTllMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1
ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvcnQo
MCwwLGZhbHNlKSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhN
TEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9y
dC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLWV4cGVjdGVk
LnR4dAppbmRleCBmZDRkM2NmN2E1My4uZDlkZjFhMzJkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQt
ZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1
cmluZyBPUEVOIGFzc2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQgZ290
IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVy
aW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYjE4ZGRjN2NjYy4uYzJjMTVlMGI4
YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgVW50aXRsZWQgYXNzZXJ0X2VxdWFsczogYWZ0ZXIgYWJvcnQoKSBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMAorUEFTUyBVbnRpdGxlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVu
dC1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dApp
bmRleCA5ZjQ4Yjk0ZmQzOS4uN2E0YzFhNTdiOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQt
YWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJvcnQoKSBtZXRo
b2Q6IGRvIG5vdCBmaXJlIGFib3J0IGV2ZW50IGluIE9QRU5FRCBzdGF0ZSB3aGVuIHNlbmQoKSBm
bGFnIGlzIHVuc2V0LiBhc3NlcnRfZXF1YWxzOiBhYm9ydCgpIGNhbm5vdCBjaGFuZ2UgcmVhZHlT
dGF0ZSB3aGVuIHJlYWR5U3RhdGUgaXMgMSBhbmQgc2VuZCgpIGZsYWcgaXMgdW5zZXQgZXhwZWN0
ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDog
ZG8gbm90IGZpcmUgYWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0YXRlIHdoZW4gc2VuZCgpIGZsYWcg
aXMgdW5zZXQuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IDg2ODRjNTY4Y2UwLi5h
MDFjMzNmOTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAK
LUZBSUwgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJvcnQgYW5kIGxvYWRl
bmQgZXZlbnRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ1cGxvYWQuYWJvcnQoMCwwLGZhbHNl
KSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1
ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4t
ZHVyaW5nLWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMjk3MTAyNmU5OC4uYjk3N2Yw
M2I5MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0IGV2ZW50IC0g
YWJvcnQoKSBjYWxsZWQgZnJvbSB1cGxvYWQub25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogcHJvcGVydHkgNSwgZXhwZWN0ZWQgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQg
Z290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMCIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9w
ZW4oKSBkdXJpbmcgYWJvcnQgZXZlbnQgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxv
YWRzdGFydCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCAwMTEzYzgwM2FiMi4uYWZm
MjhkMjUzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1G
QUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcg
YWJvcnQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQK
aW5kZXggMTVmNDE5ZDZjYjIuLjkxOTIxNTRlZTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5n
LWFib3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQt
cHJvY2Vzc2luZy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJl
cXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0KCkgY2FsbGVkIGZy
b20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNywgZXhwZWN0ZWQg
InJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFi
b3J0KCkgMCIKK0ZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vz
c2luZyAtIGFib3J0KCkgY2FsbGVkIGZyb20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDkgZ290IDcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVu
LXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9y
dC1leHBlY3RlZC50eHQKaW5kZXggYWExYmE3ZTBjNGUuLmFmZjI4ZDI1M2EwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5k
LWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0
cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9w
ZXJ0eSAyLCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3Blbigp
IGR1cmluZyBhYm9ydCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24u
c3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQu
dHh0CmluZGV4IDY4NzM5NDdjNDk2Li5jYWUyMTQ1YmNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0
eS1jb25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRl
cmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDEvWE1MSHR0cFJlcXVlc3QvcmVzb3VyY2VzL2lt
Zy5qcGcgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotRkFJTCBQcm9ncmVzc0V2ZW50
OiBzZWN1cml0eSBjb25zaWRlcmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IE1VU1QgTk9UIGRpc3Bh
dGNoIHByb2dyZXNzIGV2ZW50LiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUHJvZ3Jl
c3NFdmVudDogc2VjdXJpdHkgY29uc2lkZXJhdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRh
dGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVj
dGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBhYWFhNDhlZGM0Mi4uNTYzMTk4YjQ1MjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCi1GQUlMIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRp
b24gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBhYm9ydCgpIGNhbGxl
ZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogUEFTUyBvcGVuKCkgY2FsbGVkIGZyb20gZGF0
YSBzdHJpbmdpZmljYXRpb24gCiBQQVNTIHNlbmQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lm
aWNhdGlvbiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggOTFmYmI3
MmZkY2IuLjUzZTRkMTRhNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTMyOSwyOCArMzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAg
ICAgICByZXR1cm4geyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0g
ICAgbV9zdGF0ZSA9IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxh
ZyA9IGZhbHNlOwotICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0
ZWRCeUNsaWVudCA9IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBw
cmV2aW91cyBsb2FkCi0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwot
Ci0gICAgQVNTRVJUKG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsK
IAogICAgIGlmIChpc0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQ
TWV0aG9kKG1ldGhvZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCkBAIC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0
aG9kKTsKKyAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNl
OworCisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsK
KyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYg
ZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNs
ZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwpAQCAtMzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0
ZSBldmVudAogICAgIC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cu
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCkKICAgICAgICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
c3RhdGUgPSBPUEVORUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdF
VCIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1f
c2VuZEZsYWcgPSB0cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBs
aXN0ZW5lcnMgZm9yY2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRv
IGFuIFVSTCB0aGF0IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyBzaG91bGQgbG9vayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5v
dCByZXNwb25kIGF0IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBv
cnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNl
OwotICAgIGlmIChtX2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAg
ICBpZiAobV9yZXF1ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBs
b2FkRXZlbnRzID0gbV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVy
IHdoZXRoZXIgdXBsb2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0
IGluIGNhc2UgdGhlIHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhl
IHJlcXVlc3QgaXMgc3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVP
cmlnaW5SZXF1ZXN0IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vz
c1JlcXVlc3QobV9tZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX3VwbG9hZCAm
JiBtX3VwbG9hZC0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICAgICAgbV91cGxvYWRMaXN0ZW5l
ckZsYWcgPSB0cnVlOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmwpOwogICAg
IHJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpYSFIpOwpA
QCAtNjA3LDcgKzU4NiwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3Jl
YXRlUmVxdWVzdCgpCiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwotICAgIG9wdGlvbnMu
cHJlZmxpZ2h0UG9saWN5ID0gdXBsb2FkRXZlbnRzID8gRm9yY2VQcmVmbGlnaHQgOiBDb25zaWRl
clByZWZsaWdodDsKKyAgICAvLyBUaGUgcHJlc2VuY2Ugb2YgdXBsb2FkIGV2ZW50IGxpc3RlbmVy
cyBmb3JjZXMgdXMgdG8gdXNlIHByZWZsaWdodGluZyBiZWNhdXNlIFBPU1RpbmcgdG8gYW4gVVJM
IHRoYXQgZG9lcyBub3QKKyAgICAvLyBwZXJtaXQgY3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIHNob3Vs
ZCBsb29rIGV4YWN0bHkgbGlrZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0IGRvZXMgbm90IHJlc3Bv
bmQgYXQgYWxsLgorICAgIC8vIEFsc28sIG9ubHkgYXN5bmMgcmVxdWVzdHMgc3VwcG9ydCB1cGxv
YWQgcHJvZ3Jlc3MgZXZlbnRzLgorICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gbV91cGxv
YWRMaXN0ZW5lckZsYWcgPyBGb3JjZVByZWZsaWdodCA6IENvbnNpZGVyUHJlZmxpZ2h0OwogICAg
IG9wdGlvbnMuY3JlZGVudGlhbHMgPSBtX2luY2x1ZGVDcmVkZW50aWFscyA/IEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luOwogICAgIG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAg
ICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ko
KSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNvbm5lY3RTcmNEaXJlY3RpdmU7
CkBAIC02MjgsOCArNjEwLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpj
cmVhdGVSZXF1ZXN0KCkKIAogICAgIG1fZXhjZXB0aW9uQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAg
ICBtX2Vycm9yID0gZmFsc2U7CisgICAgbV91cGxvYWRDb21wbGV0ZSA9ICFyZXF1ZXN0Lmh0dHBC
b2R5KCk7CisgICAgbV9zZW5kRmxhZyA9IHRydWU7CiAKICAgICBpZiAobV9hc3luYykgeworICAg
ICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRzdGFydEV2ZW50KTsKKyAgICAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlICYm
IG1fdXBsb2FkTGlzdGVuZXJGbGFnKQorICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJv
Z3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworCisgICAgICAgIGlmICht
X3N0YXRlICE9IE9QRU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKKyAgICAgICAgICAg
IHJldHVybiB7IH07CisKICAgICAgICAgLy8gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlIGNhbiBy
ZXR1cm4gbnVsbCBoZXJlLCBmb3IgZXhhbXBsZSBpZiB3ZSdyZSBubyBsb25nZXIgYXR0YWNoZWQg
dG8gYSBwYWdlIG9yIGlmIGEgY29udGVudCBibG9ja2VyIGJsb2NrcyB0aGUgbG9hZC4KICAgICAg
ICAgLy8gVGhpcyBpcyB0cnVlIHdoaWxlIHJ1bm5pbmcgb251bmxvYWQgaGFuZGxlcnMuCiAgICAg
ICAgIC8vIEZJWE1FOiBNYXliZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2VuZCBYTUxIdHRwUmVx
dWVzdHMgZnJvbSBvbnVubG9hZCwgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA0Pi4KQEAgLTY3MiwxMSArNjYzLDE1IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFi
b3J0KCkKICAgICBtX3JlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CiAgICAgaWYgKChtX3N0YXRlID09
IE9QRU5FRCAmJiBtX3NlbmRGbGFnKSB8fCBtX3N0YXRlID09IEhFQURFUlNfUkVDRUlWRUQgfHwg
bV9zdGF0ZSA9PSBMT0FESU5HKSB7CiAgICAgICAgIEFTU0VSVCghbV9sb2FkZXIpOworICAgICAg
ICBtX3N0YXRlID0gRE9ORTsKICAgICAgICAgbV9zZW5kRmxhZyA9IGZhbHNlOwotICAgICAgICBj
aGFuZ2VTdGF0ZShET05FKTsKKyAgICAgICAgY2FsbFJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcigp
OwogICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsK
ICAgICB9Ci0gICAgbV9zdGF0ZSA9IFVOU0VOVDsKKyAgICBpZiAobV9zdGF0ZSA9PSBET05FKSB7
CisgICAgICAgIG1fc3RhdGUgPSBVTlNFTlQ7CisgICAgICAgIG1fZXJyb3IgPSB0cnVlOworICAg
IH0KIH0KIAogYm9vbCBYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCgpCkBAIC05NjAsMTEg
Kzk1NSwxMiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25n
IGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbgogICAgIGlmICghbV91cGxvYWQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgaWYg
KG1fdXBsb2FkTGlzdGVuZXJGbGFnKQogICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hUaHJvdHRs
ZWRQcm9ncmVzc0V2ZW50KHRydWUsIGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKKwog
ICAgIGlmIChieXRlc1NlbnQgPT0gdG90YWxCeXRlc1RvQmVTZW50ICYmICFtX3VwbG9hZENvbXBs
ZXRlKSB7CiAgICAgICAgIG1fdXBsb2FkQ29tcGxldGUgPSB0cnVlOwotICAgICAgICBpZiAobV91
cGxvYWRFdmVudHNBbGxvd2VkKSB7CisgICAgICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykg
ewogICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVz
KCkubG9hZEV2ZW50KTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZl
bnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAgIH0KQEAgLTEwODMsMTMgKzEw
NzksMTMgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFcnJvckV2ZW50cyhjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUpCiB7CiAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlKSB7CiAgICAg
ICAgIG1fdXBsb2FkQ29tcGxldGUgPSB0cnVlOwotICAgICAgICBpZiAobV91cGxvYWQgJiYgbV91
cGxvYWRFdmVudHNBbGxvd2VkKSB7Ci0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9n
cmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKKyAgICAgICAgaWYgKG1fdXBs
b2FkTGlzdGVuZXJGbGFnKSB7CisgICAgICAgICAgICAvL21fdXBsb2FkLT5kaXNwYXRjaFByb2dy
ZXNzRXZlbnQoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQpOwogICAgICAgICAgICAgbV91cGxv
YWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlKTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5k
aXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2
ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKKyAgICAvL21fcHJvZ3Jlc3NFdmVudFRo
cm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7
CiAgICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KHR5cGUp
OwogICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVu
dE5hbWVzKCkubG9hZGVuZEV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgK
aW5kZXggY2I5MjU0NDVjMTguLjFlZWMxNTgwZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaApAQCAtMjA1LDEwICsyMDUsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Vycm9y
IHsgZmFsc2UgfTsKIAotICAgIGJvb2wgbV91cGxvYWRFdmVudHNBbGxvd2VkIHsgdHJ1ZSB9Owor
ICAgIGJvb2wgbV91cGxvYWRMaXN0ZW5lckZsYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV91cGxv
YWRDb21wbGV0ZSB7IGZhbHNlIH07CiAKLSAgICBib29sIG1fc2FtZU9yaWdpblJlcXVlc3QgeyB0
cnVlIH07CiAgICAgYm9vbCBtX3dhc0Fib3J0ZWRCeUNsaWVudCB7IGZhbHNlIH07CiAKICAgICAv
LyBVc2VkIGZvciBwcm9ncmVzcyBldmVudCB0cmFja2luZy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336698</attachid>
            <date>2018-03-28 12:48:19 -0700</date>
            <delta_ts>2018-03-28 13:01:08 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>184108_XHR_Align_wip.patch</filename>
            <type>text/plain</type>
            <size>15439</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CmluZGV4IGU1MjMxODQ1N2JlLi5kYjVkOGM1YTllMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1
ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvcnQo
MCwwLGZhbHNlKSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhN
TEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9y
dC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLWV4cGVjdGVk
LnR4dAppbmRleCBmZDRkM2NmN2E1My4uZDlkZjFhMzJkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQt
ZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1
cmluZyBPUEVOIGFzc2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQgZ290
IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVy
aW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYjE4ZGRjN2NjYy4uYzJjMTVlMGI4
YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgVW50aXRsZWQgYXNzZXJ0X2VxdWFsczogYWZ0ZXIgYWJvcnQoKSBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMAorUEFTUyBVbnRpdGxlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVu
dC1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dApp
bmRleCA5ZjQ4Yjk0ZmQzOS4uN2E0YzFhNTdiOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQt
YWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJvcnQoKSBtZXRo
b2Q6IGRvIG5vdCBmaXJlIGFib3J0IGV2ZW50IGluIE9QRU5FRCBzdGF0ZSB3aGVuIHNlbmQoKSBm
bGFnIGlzIHVuc2V0LiBhc3NlcnRfZXF1YWxzOiBhYm9ydCgpIGNhbm5vdCBjaGFuZ2UgcmVhZHlT
dGF0ZSB3aGVuIHJlYWR5U3RhdGUgaXMgMSBhbmQgc2VuZCgpIGZsYWcgaXMgdW5zZXQgZXhwZWN0
ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDog
ZG8gbm90IGZpcmUgYWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0YXRlIHdoZW4gc2VuZCgpIGZsYWcg
aXMgdW5zZXQuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IDg2ODRjNTY4Y2UwLi5h
MDFjMzNmOTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAK
LUZBSUwgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJvcnQgYW5kIGxvYWRl
bmQgZXZlbnRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ1cGxvYWQuYWJvcnQoMCwwLGZhbHNl
KSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1
ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4t
ZHVyaW5nLWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMjk3MTAyNmU5OC4uYjk3N2Yw
M2I5MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0IGV2ZW50IC0g
YWJvcnQoKSBjYWxsZWQgZnJvbSB1cGxvYWQub25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogcHJvcGVydHkgNSwgZXhwZWN0ZWQgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQg
Z290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMCIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9w
ZW4oKSBkdXJpbmcgYWJvcnQgZXZlbnQgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxv
YWRzdGFydCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCAwMTEzYzgwM2FiMi4uYWZm
MjhkMjUzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1G
QUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcg
YWJvcnQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQK
aW5kZXggMTVmNDE5ZDZjYjIuLjkxOTIxNTRlZTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5n
LWFib3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQt
cHJvY2Vzc2luZy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJl
cXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0KCkgY2FsbGVkIGZy
b20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNywgZXhwZWN0ZWQg
InJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFi
b3J0KCkgMCIKK0ZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vz
c2luZyAtIGFib3J0KCkgY2FsbGVkIGZyb20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDkgZ290IDcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVu
LXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9y
dC1leHBlY3RlZC50eHQKaW5kZXggYWExYmE3ZTBjNGUuLmFmZjI4ZDI1M2EwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5k
LWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0
cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9w
ZXJ0eSAyLCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3Blbigp
IGR1cmluZyBhYm9ydCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24u
c3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQu
dHh0CmluZGV4IDY4NzM5NDdjNDk2Li5jYWUyMTQ1YmNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0
eS1jb25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRl
cmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDEvWE1MSHR0cFJlcXVlc3QvcmVzb3VyY2VzL2lt
Zy5qcGcgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotRkFJTCBQcm9ncmVzc0V2ZW50
OiBzZWN1cml0eSBjb25zaWRlcmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IE1VU1QgTk9UIGRpc3Bh
dGNoIHByb2dyZXNzIGV2ZW50LiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUHJvZ3Jl
c3NFdmVudDogc2VjdXJpdHkgY29uc2lkZXJhdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRh
dGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVj
dGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBhYWFhNDhlZGM0Mi4uNTYzMTk4YjQ1MjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCi1GQUlMIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRp
b24gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBhYm9ydCgpIGNhbGxl
ZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogUEFTUyBvcGVuKCkgY2FsbGVkIGZyb20gZGF0
YSBzdHJpbmdpZmljYXRpb24gCiBQQVNTIHNlbmQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lm
aWNhdGlvbiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggOTFmYmI3
MmZkY2IuLjgzYzdmYzA0ZDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTMyOSwyOCArMzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAg
ICAgICByZXR1cm4geyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0g
ICAgbV9zdGF0ZSA9IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxh
ZyA9IGZhbHNlOwotICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0
ZWRCeUNsaWVudCA9IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBw
cmV2aW91cyBsb2FkCi0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwot
Ci0gICAgQVNTRVJUKG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsK
IAogICAgIGlmIChpc0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQ
TWV0aG9kKG1ldGhvZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCkBAIC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0
aG9kKTsKKyAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNl
OworCisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsK
KyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYg
ZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNs
ZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwpAQCAtMzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0
ZSBldmVudAogICAgIC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cu
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCkKICAgICAgICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
c3RhdGUgPSBPUEVORUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdF
VCIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1f
c2VuZEZsYWcgPSB0cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBs
aXN0ZW5lcnMgZm9yY2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRv
IGFuIFVSTCB0aGF0IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyBzaG91bGQgbG9vayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5v
dCByZXNwb25kIGF0IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBv
cnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNl
OwotICAgIGlmIChtX2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAg
ICBpZiAobV9yZXF1ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBs
b2FkRXZlbnRzID0gbV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVy
IHdoZXRoZXIgdXBsb2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0
IGluIGNhc2UgdGhlIHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhl
IHJlcXVlc3QgaXMgc3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVP
cmlnaW5SZXF1ZXN0IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vz
c1JlcXVlc3QobV9tZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX3VwbG9hZCAm
JiBtX3VwbG9hZC0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICAgICAgbV91cGxvYWRMaXN0ZW5l
ckZsYWcgPSB0cnVlOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmwpOwogICAg
IHJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpYSFIpOwpA
QCAtNjA3LDcgKzU4NiwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3Jl
YXRlUmVxdWVzdCgpCiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwotICAgIG9wdGlvbnMu
cHJlZmxpZ2h0UG9saWN5ID0gdXBsb2FkRXZlbnRzID8gRm9yY2VQcmVmbGlnaHQgOiBDb25zaWRl
clByZWZsaWdodDsKKyAgICAvLyBUaGUgcHJlc2VuY2Ugb2YgdXBsb2FkIGV2ZW50IGxpc3RlbmVy
cyBmb3JjZXMgdXMgdG8gdXNlIHByZWZsaWdodGluZyBiZWNhdXNlIFBPU1RpbmcgdG8gYW4gVVJM
IHRoYXQgZG9lcyBub3QKKyAgICAvLyBwZXJtaXQgY3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIHNob3Vs
ZCBsb29rIGV4YWN0bHkgbGlrZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0IGRvZXMgbm90IHJlc3Bv
bmQgYXQgYWxsLgorICAgIC8vIEFsc28sIG9ubHkgYXN5bmMgcmVxdWVzdHMgc3VwcG9ydCB1cGxv
YWQgcHJvZ3Jlc3MgZXZlbnRzLgorICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gbV91cGxv
YWRMaXN0ZW5lckZsYWcgPyBGb3JjZVByZWZsaWdodCA6IENvbnNpZGVyUHJlZmxpZ2h0OwogICAg
IG9wdGlvbnMuY3JlZGVudGlhbHMgPSBtX2luY2x1ZGVDcmVkZW50aWFscyA/IEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luOwogICAgIG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAg
ICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ko
KSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNvbm5lY3RTcmNEaXJlY3RpdmU7
CkBAIC02MjgsOCArNjEwLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpj
cmVhdGVSZXF1ZXN0KCkKIAogICAgIG1fZXhjZXB0aW9uQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAg
ICBtX2Vycm9yID0gZmFsc2U7CisgICAgbV91cGxvYWRDb21wbGV0ZSA9ICFyZXF1ZXN0Lmh0dHBC
b2R5KCk7CisgICAgbV9zZW5kRmxhZyA9IHRydWU7CiAKICAgICBpZiAobV9hc3luYykgeworICAg
ICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRzdGFydEV2ZW50KTsKKyAgICAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlICYm
IG1fdXBsb2FkTGlzdGVuZXJGbGFnKQorICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJv
Z3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworCisgICAgICAgIGlmICht
X3N0YXRlICE9IE9QRU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKKyAgICAgICAgICAg
IHJldHVybiB7IH07CisKICAgICAgICAgLy8gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlIGNhbiBy
ZXR1cm4gbnVsbCBoZXJlLCBmb3IgZXhhbXBsZSBpZiB3ZSdyZSBubyBsb25nZXIgYXR0YWNoZWQg
dG8gYSBwYWdlIG9yIGlmIGEgY29udGVudCBibG9ja2VyIGJsb2NrcyB0aGUgbG9hZC4KICAgICAg
ICAgLy8gVGhpcyBpcyB0cnVlIHdoaWxlIHJ1bm5pbmcgb251bmxvYWQgaGFuZGxlcnMuCiAgICAg
ICAgIC8vIEZJWE1FOiBNYXliZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2VuZCBYTUxIdHRwUmVx
dWVzdHMgZnJvbSBvbnVubG9hZCwgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA0Pi4KQEAgLTY3MiwxMSArNjYzLDE1IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFi
b3J0KCkKICAgICBtX3JlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CiAgICAgaWYgKChtX3N0YXRlID09
IE9QRU5FRCAmJiBtX3NlbmRGbGFnKSB8fCBtX3N0YXRlID09IEhFQURFUlNfUkVDRUlWRUQgfHwg
bV9zdGF0ZSA9PSBMT0FESU5HKSB7CiAgICAgICAgIEFTU0VSVCghbV9sb2FkZXIpOworICAgICAg
ICBtX3N0YXRlID0gRE9ORTsKICAgICAgICAgbV9zZW5kRmxhZyA9IGZhbHNlOwotICAgICAgICBj
aGFuZ2VTdGF0ZShET05FKTsKKyAgICAgICAgY2FsbFJlYWR5U3RhdGVDaGFuZ2VMaXN0ZW5lcigp
OwogICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsK
ICAgICB9Ci0gICAgbV9zdGF0ZSA9IFVOU0VOVDsKKyAgICBpZiAobV9zdGF0ZSA9PSBET05FKSB7
CisgICAgICAgIG1fc3RhdGUgPSBVTlNFTlQ7CisgICAgICAgIG1fZXJyb3IgPSB0cnVlOworICAg
IH0KIH0KIAogYm9vbCBYTUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCgpCkBAIC05NjAsMTEg
Kzk1NSwxMiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25n
IGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25lZCBsb25nIGxvbgogICAgIGlmICghbV91cGxvYWQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgaWYg
KG1fdXBsb2FkTGlzdGVuZXJGbGFnKQogICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hUaHJvdHRs
ZWRQcm9ncmVzc0V2ZW50KHRydWUsIGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKKwog
ICAgIGlmIChieXRlc1NlbnQgPT0gdG90YWxCeXRlc1RvQmVTZW50ICYmICFtX3VwbG9hZENvbXBs
ZXRlKSB7CiAgICAgICAgIG1fdXBsb2FkQ29tcGxldGUgPSB0cnVlOwotICAgICAgICBpZiAobV91
cGxvYWRFdmVudHNBbGxvd2VkKSB7CisgICAgICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykg
ewogICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVz
KCkubG9hZEV2ZW50KTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZl
bnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAgIH0KQEAgLTEwODMsMTMgKzEw
NzksMTEgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFcnJvckV2ZW50cyhjb25zdCBB
dG9taWNTdHJpbmcmIHR5cGUpCiB7CiAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlKSB7CiAgICAg
ICAgIG1fdXBsb2FkQ29tcGxldGUgPSB0cnVlOwotICAgICAgICBpZiAobV91cGxvYWQgJiYgbV91
cGxvYWRFdmVudHNBbGxvd2VkKSB7Ci0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9n
cmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKKyAgICAgICAgaWYgKG1fdXBs
b2FkTGlzdGVuZXJGbGFnKSB7CiAgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVz
c0V2ZW50KHR5cGUpOwogICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVu
dChldmVudE5hbWVzKCkubG9hZGVuZEV2ZW50KTsKICAgICAgICAgfQogICAgIH0KLSAgICBtX3By
b2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLnBy
b2dyZXNzRXZlbnQpOwogICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jl
c3NFdmVudCh0eXBlKTsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dy
ZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCmluZGV4IGNiOTI1NDQ1YzE4Li4xZWVjMTU4MGZjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTIwNSwxMCArMjA1LDkgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgbV9lcnJvciB7IGZhbHNlIH07CiAKLSAgICBib29sIG1fdXBsb2FkRXZlbnRzQWxsb3dl
ZCB7IHRydWUgfTsKKyAgICBib29sIG1fdXBsb2FkTGlzdGVuZXJGbGFnIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fdXBsb2FkQ29tcGxldGUgeyBmYWxzZSB9OwogCi0gICAgYm9vbCBtX3NhbWVPcmln
aW5SZXF1ZXN0IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV93YXNBYm9ydGVkQnlDbGllbnQgeyBmYWxz
ZSB9OwogCiAgICAgLy8gVXNlZCBmb3IgcHJvZ3Jlc3MgZXZlbnQgdHJhY2tpbmcuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336702</attachid>
            <date>2018-03-28 13:01:08 -0700</date>
            <delta_ts>2018-03-28 13:39:46 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>184108_XHR_Align_wip.patch</filename>
            <type>text/plain</type>
            <size>15185</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CmluZGV4IGU1MjMxODQ1N2JlLi5kYjVkOGM1YTllMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1
ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvcnQo
MCwwLGZhbHNlKSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhN
TEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9y
dC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLWV4cGVjdGVk
LnR4dAppbmRleCBmZDRkM2NmN2E1My4uZDlkZjFhMzJkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQt
ZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1
cmluZyBPUEVOIGFzc2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQgZ290
IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVy
aW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYjE4ZGRjN2NjYy4uYzJjMTVlMGI4
YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgVW50aXRsZWQgYXNzZXJ0X2VxdWFsczogYWZ0ZXIgYWJvcnQoKSBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMAorUEFTUyBVbnRpdGxlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVu
dC1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dApp
bmRleCA5ZjQ4Yjk0ZmQzOS4uN2E0YzFhNTdiOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQt
YWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJvcnQoKSBtZXRo
b2Q6IGRvIG5vdCBmaXJlIGFib3J0IGV2ZW50IGluIE9QRU5FRCBzdGF0ZSB3aGVuIHNlbmQoKSBm
bGFnIGlzIHVuc2V0LiBhc3NlcnRfZXF1YWxzOiBhYm9ydCgpIGNhbm5vdCBjaGFuZ2UgcmVhZHlT
dGF0ZSB3aGVuIHJlYWR5U3RhdGUgaXMgMSBhbmQgc2VuZCgpIGZsYWcgaXMgdW5zZXQgZXhwZWN0
ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDog
ZG8gbm90IGZpcmUgYWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0YXRlIHdoZW4gc2VuZCgpIGZsYWcg
aXMgdW5zZXQuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IDg2ODRjNTY4Y2UwLi5h
MDFjMzNmOTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAK
LUZBSUwgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJvcnQgYW5kIGxvYWRl
bmQgZXZlbnRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ1cGxvYWQuYWJvcnQoMCwwLGZhbHNl
KSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1
ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4t
ZHVyaW5nLWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMjk3MTAyNmU5OC4uYjk3N2Yw
M2I5MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0IGV2ZW50IC0g
YWJvcnQoKSBjYWxsZWQgZnJvbSB1cGxvYWQub25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogcHJvcGVydHkgNSwgZXhwZWN0ZWQgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQg
Z290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMCIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9w
ZW4oKSBkdXJpbmcgYWJvcnQgZXZlbnQgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxv
YWRzdGFydCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCAwMTEzYzgwM2FiMi4uYWZm
MjhkMjUzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1G
QUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcg
YWJvcnQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQK
aW5kZXggMTVmNDE5ZDZjYjIuLjkxOTIxNTRlZTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5n
LWFib3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQt
cHJvY2Vzc2luZy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJl
cXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0KCkgY2FsbGVkIGZy
b20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNywgZXhwZWN0ZWQg
InJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFi
b3J0KCkgMCIKK0ZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vz
c2luZyAtIGFib3J0KCkgY2FsbGVkIGZyb20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDkgZ290IDcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVu
LXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9y
dC1leHBlY3RlZC50eHQKaW5kZXggYWExYmE3ZTBjNGUuLmFmZjI4ZDI1M2EwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5k
LWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0
cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9w
ZXJ0eSAyLCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3Blbigp
IGR1cmluZyBhYm9ydCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24u
c3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQu
dHh0CmluZGV4IDY4NzM5NDdjNDk2Li5jYWUyMTQ1YmNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0
eS1jb25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRl
cmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDEvWE1MSHR0cFJlcXVlc3QvcmVzb3VyY2VzL2lt
Zy5qcGcgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotRkFJTCBQcm9ncmVzc0V2ZW50
OiBzZWN1cml0eSBjb25zaWRlcmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IE1VU1QgTk9UIGRpc3Bh
dGNoIHByb2dyZXNzIGV2ZW50LiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUHJvZ3Jl
c3NFdmVudDogc2VjdXJpdHkgY29uc2lkZXJhdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRh
dGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVj
dGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBhYWFhNDhlZGM0Mi4uNTYzMTk4YjQ1MjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCi1GQUlMIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRp
b24gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBhYm9ydCgpIGNhbGxl
ZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogUEFTUyBvcGVuKCkgY2FsbGVkIGZyb20gZGF0
YSBzdHJpbmdpZmljYXRpb24gCiBQQVNTIHNlbmQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lm
aWNhdGlvbiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggOTFmYmI3
MmZkY2IuLmUyYzFkNjgzY2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTMyOSwyOCArMzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAg
ICAgICByZXR1cm4geyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0g
ICAgbV9zdGF0ZSA9IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxh
ZyA9IGZhbHNlOwotICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0
ZWRCeUNsaWVudCA9IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBw
cmV2aW91cyBsb2FkCi0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwot
Ci0gICAgQVNTRVJUKG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsK
IAogICAgIGlmIChpc0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQ
TWV0aG9kKG1ldGhvZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCkBAIC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0
aG9kKTsKKyAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNl
OworCisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsK
KyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYg
ZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNs
ZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwpAQCAtMzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0
ZSBldmVudAogICAgIC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cu
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCkKICAgICAgICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
c3RhdGUgPSBPUEVORUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdF
VCIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1f
c2VuZEZsYWcgPSB0cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBs
aXN0ZW5lcnMgZm9yY2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRv
IGFuIFVSTCB0aGF0IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyBzaG91bGQgbG9vayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5v
dCByZXNwb25kIGF0IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBv
cnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNl
OwotICAgIGlmIChtX2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAg
ICBpZiAobV9yZXF1ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBs
b2FkRXZlbnRzID0gbV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVy
IHdoZXRoZXIgdXBsb2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0
IGluIGNhc2UgdGhlIHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhl
IHJlcXVlc3QgaXMgc3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVP
cmlnaW5SZXF1ZXN0IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vz
c1JlcXVlc3QobV9tZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX3VwbG9hZCAm
JiBtX3VwbG9hZC0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICAgICAgbV91cGxvYWRMaXN0ZW5l
ckZsYWcgPSB0cnVlOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmwpOwogICAg
IHJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpYSFIpOwpA
QCAtNjA3LDcgKzU4NiwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3Jl
YXRlUmVxdWVzdCgpCiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwotICAgIG9wdGlvbnMu
cHJlZmxpZ2h0UG9saWN5ID0gdXBsb2FkRXZlbnRzID8gRm9yY2VQcmVmbGlnaHQgOiBDb25zaWRl
clByZWZsaWdodDsKKyAgICAvLyBUaGUgcHJlc2VuY2Ugb2YgdXBsb2FkIGV2ZW50IGxpc3RlbmVy
cyBmb3JjZXMgdXMgdG8gdXNlIHByZWZsaWdodGluZyBiZWNhdXNlIFBPU1RpbmcgdG8gYW4gVVJM
IHRoYXQgZG9lcyBub3QKKyAgICAvLyBwZXJtaXQgY3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIHNob3Vs
ZCBsb29rIGV4YWN0bHkgbGlrZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0IGRvZXMgbm90IHJlc3Bv
bmQgYXQgYWxsLgorICAgIC8vIEFsc28sIG9ubHkgYXN5bmMgcmVxdWVzdHMgc3VwcG9ydCB1cGxv
YWQgcHJvZ3Jlc3MgZXZlbnRzLgorICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gbV91cGxv
YWRMaXN0ZW5lckZsYWcgPyBGb3JjZVByZWZsaWdodCA6IENvbnNpZGVyUHJlZmxpZ2h0OwogICAg
IG9wdGlvbnMuY3JlZGVudGlhbHMgPSBtX2luY2x1ZGVDcmVkZW50aWFscyA/IEZldGNoT3B0aW9u
czo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1l
T3JpZ2luOwogICAgIG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAg
ICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3ko
KSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNvbm5lY3RTcmNEaXJlY3RpdmU7
CkBAIC02MjgsOCArNjEwLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpj
cmVhdGVSZXF1ZXN0KCkKIAogICAgIG1fZXhjZXB0aW9uQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAg
ICBtX2Vycm9yID0gZmFsc2U7CisgICAgbV91cGxvYWRDb21wbGV0ZSA9ICFyZXF1ZXN0Lmh0dHBC
b2R5KCk7CisgICAgbV9zZW5kRmxhZyA9IHRydWU7CiAKICAgICBpZiAobV9hc3luYykgeworICAg
ICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRzdGFydEV2ZW50KTsKKyAgICAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlICYm
IG1fdXBsb2FkTGlzdGVuZXJGbGFnKQorICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJv
Z3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworCisgICAgICAgIGlmICht
X3N0YXRlICE9IE9QRU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKKyAgICAgICAgICAg
IHJldHVybiB7IH07CisKICAgICAgICAgLy8gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlIGNhbiBy
ZXR1cm4gbnVsbCBoZXJlLCBmb3IgZXhhbXBsZSBpZiB3ZSdyZSBubyBsb25nZXIgYXR0YWNoZWQg
dG8gYSBwYWdlIG9yIGlmIGEgY29udGVudCBibG9ja2VyIGJsb2NrcyB0aGUgbG9hZC4KICAgICAg
ICAgLy8gVGhpcyBpcyB0cnVlIHdoaWxlIHJ1bm5pbmcgb251bmxvYWQgaGFuZGxlcnMuCiAgICAg
ICAgIC8vIEZJWE1FOiBNYXliZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2VuZCBYTUxIdHRwUmVx
dWVzdHMgZnJvbSBvbnVubG9hZCwgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA0Pi4KQEAgLTY3Niw3ICs2NjcsMTAgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJv
cnQoKQogICAgICAgICBjaGFuZ2VTdGF0ZShET05FKTsKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2
ZW50cyhldmVudE5hbWVzKCkuYWJvcnRFdmVudCk7CiAgICAgfQotICAgIG1fc3RhdGUgPSBVTlNF
TlQ7CisgICAgaWYgKG1fc3RhdGUgPT0gRE9ORSkgeworICAgICAgICBtX3N0YXRlID0gVU5TRU5U
OworICAgICAgICBtX2Vycm9yID0gdHJ1ZTsKKyAgICB9CiB9CiAKIGJvb2wgWE1MSHR0cFJlcXVl
c3Q6OmludGVybmFsQWJvcnQoKQpAQCAtOTYwLDExICs5NTQsMTIgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQg
bG9uZyBsb24KICAgICBpZiAoIW1fdXBsb2FkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
bV91cGxvYWRFdmVudHNBbGxvd2VkKQorICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykKICAg
ICAgICAgbV91cGxvYWQtPmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCh0cnVlLCBieXRl
c1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CisKICAgICBpZiAoYnl0ZXNTZW50ID09IHRvdGFs
Qnl0ZXNUb0JlU2VudCAmJiAhbV91cGxvYWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENv
bXBsZXRlID0gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgeworICAg
ICAgICBpZiAobV91cGxvYWRMaXN0ZW5lckZsYWcpIHsKICAgICAgICAgICAgIG1fdXBsb2FkLT5k
aXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAgICAgICAg
ICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZl
bnQpOwogICAgICAgICB9CkBAIC0xMDgzLDEzICsxMDc4LDExIEBAIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OmRpc3BhdGNoRXJyb3JFdmVudHMoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewogICAg
IGlmICghbV91cGxvYWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1
ZTsKLSAgICAgICAgaWYgKG1fdXBsb2FkICYmIG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgewotICAg
ICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkucHJv
Z3Jlc3NFdmVudCk7CisgICAgICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykgewogICAgICAg
ICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlKTsKICAgICAgICAgICAg
IG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVu
dCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0
Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKICAgICBtX3Byb2dy
ZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQodHlwZSk7CiAgICAgbV9wcm9n
cmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fk
ZW5kRXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYjkyNTQ0
NWMxOC4uMWVlYzE1ODBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRw
UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0y
MDUsMTAgKzIwNSw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZXJyb3IgeyBmYWxzZSB9Owog
Ci0gICAgYm9vbCBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX3Vw
bG9hZExpc3RlbmVyRmxhZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3VwbG9hZENvbXBsZXRlIHsg
ZmFsc2UgfTsKIAotICAgIGJvb2wgbV9zYW1lT3JpZ2luUmVxdWVzdCB7IHRydWUgfTsKICAgICBi
b29sIG1fd2FzQWJvcnRlZEJ5Q2xpZW50IHsgZmFsc2UgfTsKIAogICAgIC8vIFVzZWQgZm9yIHBy
b2dyZXNzIGV2ZW50IHRyYWNraW5nLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336711</attachid>
            <date>2018-03-28 13:39:46 -0700</date>
            <delta_ts>2018-03-28 14:04:02 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>184108_XHR_Align_wip.patch</filename>
            <type>text/plain</type>
            <size>22184</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2Fk
ZW5kLWV2ZW50LWFmdGVyLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCmluZGV4IDZiOWM3NTBj
ZjZjLi43YjY1YWFiZGViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9y
dC5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9ICIiOwotdmFyIGV4cGVjdGVk
ID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIHByb2dyZXNzIGFib3J0IGxvYWRlbmQiOwor
dmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIGFib3J0IGxvYWRlbmQi
OwogCiBmdW5jdGlvbiBsb2dQcm9ncmVzc0V2ZW50KGUpIHsKICAgICByZXN1bHRzICs9ICIgIiAr
IGUudHlwZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb25sb2FkZW5kLWV2ZW50LWFmdGVyLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sCmluZGV4
IDU2OWIxMGU0ZDdiLi4wNWIzNmUwYzc4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJyb3IuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1h
ZnRlci1lcnJvci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQog
CiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9ICIiOwotdmFy
IGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIHByb2dyZXNzIGVycm9yIGxv
YWRlbmQiOwordmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIGVycm9y
IGxvYWRlbmQiOwogCiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWFkeXN0YXRlY2hhbmdl
LWFuZC1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCmluZGV4IDM4NzcyNGNkMzMwLi5mYmIzMTZk
OWMyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbApAQCAtMzYs
NyArMzYsNyBAQCB0ZXN0KGZ1bmN0aW9uKCkKICAgICB9KTsKICAgICB4aHIub3BlbigiR0VUIiwg
InJlc291cmNlcy90ZXN0Lm9ndiIsIHRydWUpOwogICAgIHhoci5hYm9ydCgpOwotICAgIGFzc2Vy
dF9lcXVhbHMoeGhyLnJlYWR5U3RhdGUsIHhoci5VTlNFTlQsICJ4aHIucmVhZHlTdGF0ZSBhZnRl
ciBhYm9ydCgpIGNhbGwiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHhoci5yZWFkeVN0YXRlLCB4aHIu
T1BFTkVELCAieGhyLnJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSBjYWxsIik7CiAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzZWVuU3RhdGVzLCBbeGhyLk9QRU5FRF0pOwogfSwgIlRlc3Qgb25yZWFk
eXN0YXRlY2hhbmdlIGludm9jYXRpb24gd2hlbiBhYm9ydCgpLWVkIGluIE9QRU5FRCBzdGF0ZS4i
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9z
aW1wbGUtY3Jvc3Mtb3JpZ2luLWRlbmllZC1ldmVudHMtcG9zdC1zeW5jLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdp
bi1kZW5pZWQtZXZlbnRzLXBvc3Qtc3luYy1leHBlY3RlZC50eHQKaW5kZXggMjhjYzZmYTQ5YzAu
LjQzYTA2ZTI5NGI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3NpbXBsZS1jcm9zcy1vcmlnaW4tZGVuaWVkLWV2ZW50cy1wb3N0LXN5bmMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxl
LWNyb3NzLW9yaWdpbi1kZW5pZWQtZXZlbnRzLXBvc3Qtc3luYy1leHBlY3RlZC50eHQKQEAgLTEs
NCArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzI6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvcmVw
bHkueG1sLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1NzogWE1M
SHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo3LyBkdWUgdG8gYWNjZXNz
IGNvbnRyb2wgY2hlY2tzLgogVGVzdCB0aGF0IGEgc2ltcGxlIGNyb3NzLW9yaWdpbiByZXF1ZXN0
IHRvIGEgc2VydmVyIHRoYXQgcmVzcG9uZHMgKGJ1dCBkb2VzIG5vdCBwZXJtaXQgY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3RzKSBpcyBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIG9uZSB0aGF0IGRvZXMgbm90
IGV4aXN0LiBTaG91bGQgc2F5IFBBU1M6CiAKIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1l
dmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9zaW1wbGUtY3Jvc3Mtb3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXgg
MmJmNTEzOGVlOTYuLmFiNGE2Mjc0YzZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3NpbXBsZS1jcm9zcy1vcmlnaW4tcHJvZ3Jlc3MtZXZlbnRzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Np
bXBsZS1jcm9zcy1vcmlnaW4tcHJvZ3Jlc3MtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtOSwxNSAr
OSwxMiBAQCBvbmxvYWQKIFJlc3BvbnNlIGxlbmd0aDogODM4ODYwOAogCiBUZXN0IDI6IFRoZSBV
UkwgaXMgbm90IGFsbG93ZWQgZm9yIGNyb3NzLW9yaWdpbiByZXF1ZXN0cwotb25wcm9ncmVzcwog
b25lcnJvciAoZXhwZWN0ZWQpCiBSZXNwb25zZSBsZW5ndGg6IDAKIAogVGVzdCAzOiBUaGUgVVJM
IGlzIG5vdCBhbGxvd2VkIGZvciBjcm9zcy1vcmlnaW4gcmVxdWVzdHMgYW5kIGF0IGxlYXN0IG9u
ZSB1cGxvYWQgZXZlbnQgaXMgbGlzdGVuZWQgZm9yIGJlZm9yZSBkb2luZyB0aGUgc2VuZC4KIHVw
bG9hZC5vbmxvYWRzdGFydAotdXBsb2FkLm9ucHJvZ3Jlc3MKIHVwbG9hZC5vbmVycm9yIChleHBl
Y3RlZCkKLW9ucHJvZ3Jlc3MKIG9uZXJyb3IgKGV4cGVjdGVkKQogUmVzcG9uc2UgbGVuZ3RoOiAw
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBs
b2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtb25sb2FkZW5kLWV2ZW50LWFmdGVyLWFib3J0Lmh0
bWwKaW5kZXggNzdiOWU4YzdhYjUuLjM5MDMzZjE2NGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQtZXZlbnQtYWZ0ZXIt
YWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Vw
bG9hZC1vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbApAQCAtMjEsNyArMjEsNyBAQCBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKIAogdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwog
dmFyIHJlc3VsdHMgPSAiIjsKLXZhciBleHBlY3RlZCA9ICIgcHJvZ3Jlc3MgYWJvcnQgbG9hZGVu
ZCI7Cit2YXIgZXhwZWN0ZWQgPSAiIGFib3J0IGxvYWRlbmQiOwogCiBmdW5jdGlvbiBsb2dQcm9n
cmVzc0V2ZW50KGUpIHsKICAgICByZXN1bHRzICs9ICIgIiArIGUudHlwZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtYWJv
cnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNwYXRjaEV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWFib3J0LXJlYWR5U3RhdGUt
c2hvdWxkTm90RGlzcGF0Y2hFdmVudC5odG1sCmluZGV4IGZmNGI3MTFhZjBhLi5kNzUzOTMwMDQ5
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1hYm9ydC1yZWFkeVN0YXRlLXNob3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0
LWFib3J0LXJlYWR5U3RhdGUtc2hvdWxkTm90RGlzcGF0Y2hFdmVudC5odG1sCkBAIC0zNywxMiAr
MzcsMjAgQEAgZnVuY3Rpb24gdGVzdEFib3J0RG9Ob3REaXNwYXRjaEV2ZW50KG51bSkKICAgICAg
ICAgICAgICsrZmluaXNoZWRUZXN0czsKICAgICAgICAgICAgIHRoaXMub25yZWFkeXN0YXRlY2hh
bmdlID0gY2F0Y2hSZWFkeXN0YXRlRXZlbnRBYm9ydDsKICAgICAgICAgICAgIHRoaXMuYWJvcnQo
KTsKLSAgICAgICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gMCkKKyAgICAgICAgICAgIC8v
IEZvbGxvd2luZyBodHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL3hoci9pc3N1ZXMvNTQsIGFib3J0
KCkgc2hvdWxkCisgICAgICAgICAgICAvLyBzZXQgcmVhZHlTdGF0ZSB0byBVTlNFTlQgb25seSB3
aGVuIGl0IChyZWFkeVN0YXRlKSBpcyBET05FLgorICAgICAgICAgICAgdmFyIHBhc3M7CisgICAg
ICAgICAgICBpZiAobnVtID09IFhNTEh0dHBSZXF1ZXN0LkRPTkUpCisgICAgICAgICAgICAgICAg
cGFzcyA9IHRoaXMucmVhZHlTdGF0ZSA9PSBYTUxIdHRwUmVxdWVzdC5VTlNFTlQ7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgcGFzcyA9IHRoaXMucmVhZHlTdGF0ZSA9PSBudW07
CisKKyAgICAgICAgICAgIGlmIChwYXNzKQogICAgICAgICAgICAgICAgIGxvZygiUEFTUyIpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGxvZygiRkFJTEVEIik7CiAgICAgICAg
IH0KLSAgICAgICAgCisKICAgICAgICAgaWYgKGZpbmlzaGVkVGVzdHMgPT0gYWJvcnRUb0RvLmxl
bmd0aCAmJiB3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVz
dC1zeW5jLW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYTIyNjBhNTg4NTku
LmUzOWMwMjFkN2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1
ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAK
IENPTlNPTEUgTUVTU0FHRTogbGluZSAzNTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXN5bmMtdnMt
YXN5bmMtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzU6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMt
cG9zdC1mYWlsLW5vbi1zaW1wbGUuY2dpLiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nl
c3NmdWwKIFRlc3QgZm9yOgogCiBidWcgNDA5OTY6IFByb2dyZXNzIGV2ZW50IHNob3VsZCBub3Qg
YmUgZmlyZWQgZHVyaW5nIHN5bmNocm9ub3VzIFhNTEh0dHBSZXF1ZXN0OwpAQCAtMTAsNyArMTEs
OCBAQCBsb2FkZW5kCiAKIFN0ZXAgMjogQ3Jvc3Mgb3JpZ2luIHJlcXVlc3QsIGRpc2FsbG93ZWQK
IHJlYWR5c3RhdGVjaGFuZ2UgNAotcHJvZ3Jlc3MKK3VwbG9hZC5lcnJvcgordXBsb2FkLmxvYWRl
bmQKIGVycm9yCiBsb2FkZW5kCiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJy
ZWQuCkBAIC0yMiw2ICsyNCw5IEBAIGxvYWRlbmQKIAogU3RlcCA0OiBDcm9zcyBvcmlnaW4gcmVx
dWVzdCwgY2hlY2sgdGhhdCBwcmVmbGlnaHQgaXNuJ3QgYXR0ZW1wdGVkCiByZWFkeXN0YXRlY2hh
bmdlIDQKLWxvYWQKK3VwbG9hZC5lcnJvcgordXBsb2FkLmxvYWRlbmQKK2Vycm9yCiBsb2FkZW5k
CitOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFmdGVyLXNlbmQtZXhw
ZWN0ZWQudHh0CmluZGV4IGU1MjMxODQ1N2JlLi5kYjVkOGM1YTllMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9h
Ym9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFmdGVyLXNlbmQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgp
IGFmdGVyIHNlbmQoKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvcnQoMCwwLGZhbHNlKSIg
YnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1ZXN0
OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Bl
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLWV4cGVjdGVkLnR4dAppbmRleCBm
ZDRkM2NmN2E1My4uZDlkZjFhMzJkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4t
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CkBAIC0x
LDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1cmluZyBPUEVOIGFz
c2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1M
SHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQt
ZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29y
a2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYjE4ZGRjN2NjYy4uYzJjMTVlMGI4YTAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0
LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
VW50aXRsZWQgYXNzZXJ0X2VxdWFsczogYWZ0ZXIgYWJvcnQoKSBleHBlY3RlZCAxIGJ1dCBnb3Qg
MAorUEFTUyBVbnRpdGxlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1hYm9ydC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hN
TEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCA5ZjQ4Yjk0
ZmQzOS4uN2E0YzFhNTdiOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGRvIG5vdCBm
aXJlIGFib3J0IGV2ZW50IGluIE9QRU5FRCBzdGF0ZSB3aGVuIHNlbmQoKSBmbGFnIGlzIHVuc2V0
LiBhc3NlcnRfZXF1YWxzOiBhYm9ydCgpIGNhbm5vdCBjaGFuZ2UgcmVhZHlTdGF0ZSB3aGVuIHJl
YWR5U3RhdGUgaXMgMSBhbmQgc2VuZCgpIGZsYWcgaXMgdW5zZXQgZXhwZWN0ZWQgMSBidXQgZ290
IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogZG8gbm90IGZpcmUg
YWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0YXRlIHdoZW4gc2VuZCgpIGZsYWcgaXMgdW5zZXQuIAog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQt
ZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IDg2ODRjNTY4Y2UwLi5hMDFjMzNmOTNiYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9y
dC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0
cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJvcnQgYW5kIGxvYWRlbmQgZXZlbnRzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJ1cGxvYWQuYWJvcnQoMCwwLGZhbHNlKSIgYnV0IGdvdCAi
dXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJv
cnQoKSBtZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9v
cGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0
LWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMjk3MTAyNmU5OC4uYjk3N2YwM2I5MTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Bl
bi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlM
IFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0IGV2ZW50IC0gYWJvcnQoKSBjYWxs
ZWQgZnJvbSB1cGxvYWQub25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkg
NSwgZXhwZWN0ZWQgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0
YXRlIGFmdGVyIGFib3J0KCkgMCIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcg
YWJvcnQgZXZlbnQgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxvYWRzdGFydCAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVy
aW5nLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCAwMTEzYzgwM2FiMi4uYWZmMjhkMjUzYTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1M
SHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1k
dXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBS
ZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMSBi
dXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQKaW5kZXggMTVmNDE5
ZDZjYjIuLjkxOTIxNTRlZTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LXByb2Nl
c3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4o
KSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0KCkgY2FsbGVkIGZyb20gb25sb2Fkc3Rh
cnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNywgZXhwZWN0ZWQgInJlYWR5U3RhdGUg
YWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMCIKK0ZB
SUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0
KCkgY2FsbGVkIGZyb20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBk
aWZmZXIsIGV4cGVjdGVkIDkgZ290IDcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXNlbmQtZHVyaW5n
LWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1leHBlY3RlZC50
eHQKaW5kZXggYWExYmE3ZTBjNGUuLmFmZjI4ZDI1M2EwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tc2Vu
ZC1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9y
dC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9w
ZW4oKSBkdXJpbmcgYWJvcnQoKSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSAyLCBleHBl
Y3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9y
dCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQudHh0CmluZGV4IDY4
NzM5NDdjNDk2Li5jYWUyMTQ1YmNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRlcmF0
aW9uLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRlcmF0aW9uLnN1Yi1l
eHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRw
Oi8vbG9jYWxob3N0Ojg4MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRw
Oi8vbG9jYWxob3N0Ojg4MDEvWE1MSHR0cFJlcXVlc3QvcmVzb3VyY2VzL2ltZy5qcGcgZHVlIHRv
IGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotRkFJTCBQcm9ncmVzc0V2ZW50OiBzZWN1cml0eSBj
b25zaWRlcmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IE1VU1QgTk9UIGRpc3BhdGNoIHByb2dyZXNz
IGV2ZW50LiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUHJvZ3Jlc3NFdmVudDogc2Vj
dXJpdHkgY29uc2lkZXJhdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRhdGEtdW5leHBlY3Rl
ZC10b3N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVjdGVkLXRvc3RyaW5n
LWV4cGVjdGVkLnR4dAppbmRleCBhYWFhNDhlZGM0Mi4uNTYzMTk4YjQ1MjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2Vu
ZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAog
Ci1GQUlMIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRpb24gVGhlIG9iamVj
dCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBhYm9ydCgpIGNhbGxlZCBmcm9tIGRhdGEg
c3RyaW5naWZpY2F0aW9uIAogUEFTUyBvcGVuKCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmlj
YXRpb24gCiBQQVNTIHNlbmQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lmaWNhdGlvbiAKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggOTFmYmI3MmZkY2IuLmUyYzFk
NjgzY2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTMyOSwyOCAr
MzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0
cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9uT3I8dm9pZD4gWE1M
SHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IFVSTCYgdXJsLCBi
b29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAgICAgICByZXR1cm4g
eyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0gICAgbV9zdGF0ZSA9
IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxhZyA9IGZhbHNlOwot
ICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9
IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2Fk
Ci0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwotCi0gICAgQVNTRVJU
KG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBUb2tlbihtZXRob2Qp
KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsKIAogICAgIGlmIChp
c0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2Vj
dXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQTWV0aG9kKG1ldGhv
ZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1
bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2YWlsYWJs
ZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMsIGFzIGEgc3BlYy1t
YW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3luY2hyb25vdXMgWEhS
IHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0aW9uYWxpdHkuCkBA
IC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVu
KGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0aG9kKTsKKyAgICBp
ZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIG1fc2VuZEZs
YWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNlOworCisgICAgbV9l
cnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKKyAgICBtX3dhc0Fi
b3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJs
ZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNsZWFyUmVxdWVzdCgp
OwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250
ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKG1fdXJs
LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6OkxvYWQpOwpAQCAt
Mzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6b3Blbihj
b25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAgICAgLy8gQ2hlY2sg
cHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0ZSBldmVudAogICAg
IC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cuCi0gICAgaWYgKHBy
ZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9QRU5FRCkKICAgICAg
ICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1fc3RhdGUgPSBPUEVO
RUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBAQCBFeGNlcHRpb25P
cjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgaWYgKCFtX2FzeW5j
ICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdFVCIpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1fc2VuZEZsYWcgPSB0
cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBsaXN0ZW5lcnMgZm9y
Y2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0
IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0cyBzaG91bGQgbG9v
ayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5vdCByZXNwb25kIGF0
IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBvcnQgdXBsb2FkIHBy
b2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNlOwotICAgIGlmICht
X2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jl
c3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAgICBpZiAobV9yZXF1
ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBsb2FkRXZlbnRzID0g
bV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlz
cGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJpdHlPcmlnaW4oKS0+
Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVyIHdoZXRoZXIgdXBs
b2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0IGluIGNhc2UgdGhl
IHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhlIHJlcXVlc3QgaXMg
c3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVPcmlnaW5SZXF1ZXN0
IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QobV9t
ZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX3VwbG9hZCAmJiBtX3VwbG9hZC0+
aGFzRXZlbnRMaXN0ZW5lcnMoKSkKKyAgICAgICAgbV91cGxvYWRMaXN0ZW5lckZsYWcgPSB0cnVl
OwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmwpOwogICAgIHJlcXVlc3Quc2V0
UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpYSFIpOwpAQCAtNjA3LDcgKzU4
NiwxMCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgp
CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuc2Vu
ZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tzOwotICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9s
aWN5ID0gdXBsb2FkRXZlbnRzID8gRm9yY2VQcmVmbGlnaHQgOiBDb25zaWRlclByZWZsaWdodDsK
KyAgICAvLyBUaGUgcHJlc2VuY2Ugb2YgdXBsb2FkIGV2ZW50IGxpc3RlbmVycyBmb3JjZXMgdXMg
dG8gdXNlIHByZWZsaWdodGluZyBiZWNhdXNlIFBPU1RpbmcgdG8gYW4gVVJMIHRoYXQgZG9lcyBu
b3QKKyAgICAvLyBwZXJtaXQgY3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIHNob3VsZCBsb29rIGV4YWN0
bHkgbGlrZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0IGRvZXMgbm90IHJlc3BvbmQgYXQgYWxsLgor
ICAgIC8vIEFsc28sIG9ubHkgYXN5bmMgcmVxdWVzdHMgc3VwcG9ydCB1cGxvYWQgcHJvZ3Jlc3Mg
ZXZlbnRzLgorICAgIG9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gbV91cGxvYWRMaXN0ZW5lckZs
YWcgPyBGb3JjZVByZWZsaWdodCA6IENvbnNpZGVyUHJlZmxpZ2h0OwogICAgIG9wdGlvbnMuY3Jl
ZGVudGlhbHMgPSBtX2luY2x1ZGVDcmVkZW50aWFscyA/IEZldGNoT3B0aW9uczo6Q3JlZGVudGlh
bHM6OkluY2x1ZGUgOiBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOwogICAg
IG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAgICBvcHRpb25zLmNv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5zaG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJpdHlQ
b2xpY3lFbmZvcmNlbWVudDo6RW5mb3JjZUNvbm5lY3RTcmNEaXJlY3RpdmU7CkBAIC02MjgsOCAr
NjEwLDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0
KCkKIAogICAgIG1fZXhjZXB0aW9uQ29kZSA9IHN0ZDo6bnVsbG9wdDsKICAgICBtX2Vycm9yID0g
ZmFsc2U7CisgICAgbV91cGxvYWRDb21wbGV0ZSA9ICFyZXF1ZXN0Lmh0dHBCb2R5KCk7CisgICAg
bV9zZW5kRmxhZyA9IHRydWU7CiAKICAgICBpZiAobV9hc3luYykgeworICAgICAgICBtX3Byb2dy
ZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRz
dGFydEV2ZW50KTsKKyAgICAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlICYmIG1fdXBsb2FkTGlz
dGVuZXJGbGFnKQorICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChl
dmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworCisgICAgICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCB8fCAhbV9zZW5kRmxhZyB8fCBtX2xvYWRlcikKKyAgICAgICAgICAgIHJldHVybiB7IH07
CisKICAgICAgICAgLy8gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRlIGNhbiByZXR1cm4gbnVsbCBo
ZXJlLCBmb3IgZXhhbXBsZSBpZiB3ZSdyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBwYWdlIG9y
IGlmIGEgY29udGVudCBibG9ja2VyIGJsb2NrcyB0aGUgbG9hZC4KICAgICAgICAgLy8gVGhpcyBp
cyB0cnVlIHdoaWxlIHJ1bm5pbmcgb251bmxvYWQgaGFuZGxlcnMuCiAgICAgICAgIC8vIEZJWE1F
OiBNYXliZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2VuZCBYTUxIdHRwUmVxdWVzdHMgZnJvbSBv
bnVubG9hZCwgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTA0Pi4K
QEAgLTY3Niw3ICs2NjcsMTAgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogICAgICAg
ICBjaGFuZ2VTdGF0ZShET05FKTsKICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50cyhldmVudE5h
bWVzKCkuYWJvcnRFdmVudCk7CiAgICAgfQotICAgIG1fc3RhdGUgPSBVTlNFTlQ7CisgICAgaWYg
KG1fc3RhdGUgPT0gRE9ORSkgeworICAgICAgICBtX3N0YXRlID0gVU5TRU5UOworICAgICAgICBt
X2Vycm9yID0gdHJ1ZTsKKyAgICB9CiB9CiAKIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmludGVybmFs
QWJvcnQoKQpAQCAtOTYwLDExICs5NTQsMTIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkU2Vu
ZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb24KICAg
ICBpZiAoIW1fdXBsb2FkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV91cGxvYWRFdmVu
dHNBbGxvd2VkKQorICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykKICAgICAgICAgbV91cGxv
YWQtPmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCh0cnVlLCBieXRlc1NlbnQsIHRvdGFs
Qnl0ZXNUb0JlU2VudCk7CisKICAgICBpZiAoYnl0ZXNTZW50ID09IHRvdGFsQnl0ZXNUb0JlU2Vu
dCAmJiAhbV91cGxvYWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1
ZTsKLSAgICAgICAgaWYgKG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgeworICAgICAgICBpZiAobV91
cGxvYWRMaXN0ZW5lckZsYWcpIHsKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dy
ZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAgICAgICAgICBtX3VwbG9hZC0+
ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwogICAgICAg
ICB9CkBAIC0xMDgzLDEzICsxMDc4LDExIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNo
RXJyb3JFdmVudHMoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewogICAgIGlmICghbV91cGxv
YWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICAgICAg
aWYgKG1fdXBsb2FkICYmIG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgewotICAgICAgICAgICAgbV91
cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7
CisgICAgICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykgewogICAgICAgICAgICAgbV91cGxv
YWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlKTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5k
aXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2
ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJv
dHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQodHlwZSk7CiAgICAgbV9wcm9ncmVzc0V2ZW50VGhy
b3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYjkyNTQ0NWMxOC4uMWVlYzE1
ODBmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0yMDUsMTAgKzIwNSw5
IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZXJyb3IgeyBmYWxzZSB9OwogCi0gICAgYm9vbCBt
X3VwbG9hZEV2ZW50c0FsbG93ZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX3VwbG9hZExpc3RlbmVy
RmxhZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3VwbG9hZENvbXBsZXRlIHsgZmFsc2UgfTsKIAot
ICAgIGJvb2wgbV9zYW1lT3JpZ2luUmVxdWVzdCB7IHRydWUgfTsKICAgICBib29sIG1fd2FzQWJv
cnRlZEJ5Q2xpZW50IHsgZmFsc2UgfTsKIAogICAgIC8vIFVzZWQgZm9yIHByb2dyZXNzIGV2ZW50
IHRyYWNraW5nLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336717</attachid>
            <date>2018-03-28 14:04:02 -0700</date>
            <delta_ts>2018-03-28 14:36:33 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>184108_XHR_Align_wip.patch</filename>
            <type>text/plain</type>
            <size>20497</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2Fk
ZW5kLWV2ZW50LWFmdGVyLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCmluZGV4IDZiOWM3NTBj
ZjZjLi43YjY1YWFiZGViNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9y
dC5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiB2YXIgeGhy
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9ICIiOwotdmFyIGV4cGVjdGVk
ID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIHByb2dyZXNzIGFib3J0IGxvYWRlbmQiOwor
dmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIGFib3J0IGxvYWRlbmQi
OwogCiBmdW5jdGlvbiBsb2dQcm9ncmVzc0V2ZW50KGUpIHsKICAgICByZXN1bHRzICs9ICIgIiAr
IGUudHlwZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb25sb2FkZW5kLWV2ZW50LWFmdGVyLWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sCmluZGV4
IDU2OWIxMGU0ZDdiLi4wNWIzNmUwYzc4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJyb3IuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1h
ZnRlci1lcnJvci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQog
CiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9ICIiOwotdmFy
IGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIHByb2dyZXNzIGVycm9yIGxv
YWRlbmQiOwordmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIGVycm9y
IGxvYWRlbmQiOwogCiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWFkeXN0YXRlY2hhbmdl
LWFuZC1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCmluZGV4IDM4NzcyNGNkMzMwLi5mYmIzMTZk
OWMyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9y
ZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbApAQCAtMzYs
NyArMzYsNyBAQCB0ZXN0KGZ1bmN0aW9uKCkKICAgICB9KTsKICAgICB4aHIub3BlbigiR0VUIiwg
InJlc291cmNlcy90ZXN0Lm9ndiIsIHRydWUpOwogICAgIHhoci5hYm9ydCgpOwotICAgIGFzc2Vy
dF9lcXVhbHMoeGhyLnJlYWR5U3RhdGUsIHhoci5VTlNFTlQsICJ4aHIucmVhZHlTdGF0ZSBhZnRl
ciBhYm9ydCgpIGNhbGwiKTsKKyAgICBhc3NlcnRfZXF1YWxzKHhoci5yZWFkeVN0YXRlLCB4aHIu
T1BFTkVELCAieGhyLnJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSBjYWxsIik7CiAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhzZWVuU3RhdGVzLCBbeGhyLk9QRU5FRF0pOwogfSwgIlRlc3Qgb25yZWFk
eXN0YXRlY2hhbmdlIGludm9jYXRpb24gd2hlbiBhYm9ydCgpLWVkIGluIE9QRU5FRCBzdGF0ZS4i
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9z
aW1wbGUtY3Jvc3Mtb3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3NpbXBsZS1jcm9zcy1vcmlnaW4tcHJvZ3Jl
c3MtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCAyYmY1MTM4ZWU5Ni4uYWI0YTYyNzRjNmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNy
b3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1l
dmVudHMtZXhwZWN0ZWQudHh0CkBAIC05LDE1ICs5LDEyIEBAIG9ubG9hZAogUmVzcG9uc2UgbGVu
Z3RoOiA4Mzg4NjA4CiAKIFRlc3QgMjogVGhlIFVSTCBpcyBub3QgYWxsb3dlZCBmb3IgY3Jvc3Mt
b3JpZ2luIHJlcXVlc3RzCi1vbnByb2dyZXNzCiBvbmVycm9yIChleHBlY3RlZCkKIFJlc3BvbnNl
IGxlbmd0aDogMAogCiBUZXN0IDM6IFRoZSBVUkwgaXMgbm90IGFsbG93ZWQgZm9yIGNyb3NzLW9y
aWdpbiByZXF1ZXN0cyBhbmQgYXQgbGVhc3Qgb25lIHVwbG9hZCBldmVudCBpcyBsaXN0ZW5lZCBm
b3IgYmVmb3JlIGRvaW5nIHRoZSBzZW5kLgogdXBsb2FkLm9ubG9hZHN0YXJ0Ci11cGxvYWQub25w
cm9ncmVzcwogdXBsb2FkLm9uZXJyb3IgKGV4cGVjdGVkKQotb25wcm9ncmVzcwogb25lcnJvciAo
ZXhwZWN0ZWQpCiBSZXNwb25zZSBsZW5ndGg6IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtb25sb2FkZW5kLWV2ZW50LWFmdGVyLWFi
b3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1v
bmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbAppbmRleCA3N2I5ZThjN2FiNS4uMzkwMzNm
MTY0ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
dXBsb2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1h
Ym9ydC5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiB2YXIg
eGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9ICIiOwotdmFyIGV4cGVj
dGVkID0gIiBwcm9ncmVzcyBhYm9ydCBsb2FkZW5kIjsKK3ZhciBleHBlY3RlZCA9ICIgYWJvcnQg
bG9hZGVuZCI7CiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkgewogICAgIHJlc3VsdHMg
Kz0gIiAiICsgZS50eXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1hYm9ydC1yZWFkeVN0YXRlLXNob3VsZE5vdERpc3Bh
dGNoRXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNwYXRjaEV2ZW50Lmh0bWwK
aW5kZXggZmY0YjcxMWFmMGEuLmQ3NTM5MzAwNDk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWFib3J0LXJlYWR5U3RhdGUt
c2hvdWxkTm90RGlzcGF0Y2hFdmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3RE
aXNwYXRjaEV2ZW50Lmh0bWwKQEAgLTM3LDEyICszNywyMCBAQCBmdW5jdGlvbiB0ZXN0QWJvcnRE
b05vdERpc3BhdGNoRXZlbnQobnVtKQogICAgICAgICAgICAgKytmaW5pc2hlZFRlc3RzOwogICAg
ICAgICAgICAgdGhpcy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBjYXRjaFJlYWR5c3RhdGVFdmVudEFi
b3J0OwogICAgICAgICAgICAgdGhpcy5hYm9ydCgpOwotICAgICAgICAgICAgaWYgKHRoaXMucmVh
ZHlTdGF0ZSA9PSAwKQorICAgICAgICAgICAgLy8gRm9sbG93aW5nIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cveGhyL2lzc3Vlcy81NCwgYWJvcnQoKSBzaG91bGQKKyAgICAgICAgICAgIC8vIHNl
dCByZWFkeVN0YXRlIHRvIFVOU0VOVCBvbmx5IHdoZW4gaXQgKHJlYWR5U3RhdGUpIGlzIERPTkUu
CisgICAgICAgICAgICB2YXIgcGFzczsKKyAgICAgICAgICAgIGlmIChudW0gPT0gWE1MSHR0cFJl
cXVlc3QuRE9ORSkKKyAgICAgICAgICAgICAgICBwYXNzID0gdGhpcy5yZWFkeVN0YXRlID09IFhN
TEh0dHBSZXF1ZXN0LlVOU0VOVDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBw
YXNzID0gdGhpcy5yZWFkeVN0YXRlID09IG51bTsKKworICAgICAgICAgICAgaWYgKHBhc3MpCiAg
ICAgICAgICAgICAgICAgbG9nKCJQQVNTIik7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbG9nKCJGQUlMRUQiKTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBpZiAo
ZmluaXNoZWRUZXN0cyA9PSBhYm9ydFRvRG8ubGVuZ3RoICYmIHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5j
LW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRzLWV4
cGVjdGVkLnR4dAppbmRleCBhMjI2MGE1ODg1OS4uODIxZTk0MDI4ODcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1u
by1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMt
ZXhwZWN0ZWQudHh0CkBAIC0xMCw3ICsxMCw2IEBAIGxvYWRlbmQKIAogU3RlcCAyOiBDcm9zcyBv
cmlnaW4gcmVxdWVzdCwgZGlzYWxsb3dlZAogcmVhZHlzdGF0ZWNoYW5nZSA0Ci1wcm9ncmVzcwog
ZXJyb3IKIGxvYWRlbmQKIE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CmluZGV4IGU1MjMxODQ1N2JlLi5kYjVkOGM1YTllMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1
ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiYWJvcnQo
MCwwLGZhbHNlKSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhN
TEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9y
dC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLWV4cGVjdGVk
LnR4dAppbmRleCBmZDRkM2NmN2E1My4uZDlkZjFhMzJkZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQt
ZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0
ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1
cmluZyBPUEVOIGFzc2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQgZ290
IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVy
aW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYjE4ZGRjN2NjYy4uYzJjMTVlMGI4
YTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgVW50aXRsZWQgYXNzZXJ0X2VxdWFsczogYWZ0ZXIgYWJvcnQoKSBleHBlY3Rl
ZCAxIGJ1dCBnb3QgMAorUEFTUyBVbnRpdGxlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVu
dC1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dApp
bmRleCA5ZjQ4Yjk0ZmQzOS4uN2E0YzFhNTdiOWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQt
YWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0ZWQudHh0
CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJvcnQoKSBtZXRo
b2Q6IGRvIG5vdCBmaXJlIGFib3J0IGV2ZW50IGluIE9QRU5FRCBzdGF0ZSB3aGVuIHNlbmQoKSBm
bGFnIGlzIHVuc2V0LiBhc3NlcnRfZXF1YWxzOiBhYm9ydCgpIGNhbm5vdCBjaGFuZ2UgcmVhZHlT
dGF0ZSB3aGVuIHJlYWR5U3RhdGUgaXMgMSBhbmQgc2VuZCgpIGZsYWcgaXMgdW5zZXQgZXhwZWN0
ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDog
ZG8gbm90IGZpcmUgYWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0YXRlIHdoZW4gc2VuZCgpIGZsYWcg
aXMgdW5zZXQuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IDg2ODRjNTY4Y2UwLi5h
MDFjMzNmOTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRw
UmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAK
LUZBSUwgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJvcnQgYW5kIGxvYWRl
bmQgZXZlbnRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ1cGxvYWQuYWJvcnQoMCwwLGZhbHNl
KSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1
ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4t
ZHVyaW5nLWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMjk3MTAyNmU5OC4uYjk3N2Yw
M2I5MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
MyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0IGV2ZW50IC0g
YWJvcnQoKSBjYWxsZWQgZnJvbSB1cGxvYWQub25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogcHJvcGVydHkgNSwgZXhwZWN0ZWQgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQg
Z290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMCIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9w
ZW4oKSBkdXJpbmcgYWJvcnQgZXZlbnQgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxv
YWRzdGFydCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCAwMTEzYzgwM2FiMi4uYWZm
MjhkMjUzYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1G
QUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcg
YWJvcnQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQK
aW5kZXggMTVmNDE5ZDZjYjIuLjkxOTIxNTRlZTljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5n
LWFib3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQt
cHJvY2Vzc2luZy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJl
cXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0KCkgY2FsbGVkIGZy
b20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNywgZXhwZWN0ZWQg
InJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFi
b3J0KCkgMCIKK0ZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vz
c2luZyAtIGFib3J0KCkgY2FsbGVkIGZyb20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFs
czogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDkgZ290IDcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVu
LXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9y
dC1leHBlY3RlZC50eHQKaW5kZXggYWExYmE3ZTBjNGUuLmFmZjI4ZDI1M2EwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5k
LWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0
cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9w
ZXJ0eSAyLCBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3Blbigp
IGR1cmluZyBhYm9ydCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24u
c3ViLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQu
dHh0CmluZGV4IDY4NzM5NDdjNDk2Li5jYWUyMTQ1YmNlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0
eS1jb25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRl
cmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6
IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNv
bnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDEvWE1MSHR0cFJlcXVlc3QvcmVzb3VyY2VzL2lt
Zy5qcGcgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KIAotRkFJTCBQcm9ncmVzc0V2ZW50
OiBzZWN1cml0eSBjb25zaWRlcmF0aW9uIGFzc2VydF91bnJlYWNoZWQ6IE1VU1QgTk9UIGRpc3Bh
dGNoIHByb2dyZXNzIGV2ZW50LiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgUHJvZ3Jl
c3NFdmVudDogc2VjdXJpdHkgY29uc2lkZXJhdGlvbiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRh
dGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVj
dGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dAppbmRleCBhYWFhNDhlZGM0Mi4uNTYzMTk4YjQ1MjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCi1GQUlMIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRp
b24gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBhYm9ydCgpIGNhbGxl
ZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogUEFTUyBvcGVuKCkgY2FsbGVkIGZyb20gZGF0
YSBzdHJpbmdpZmljYXRpb24gCiBQQVNTIHNlbmQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lm
aWNhdGlvbiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggOTFmYmI3
MmZkY2IuLjBhOTJjMjJhY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTMyOSwyOCArMzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAg
ICAgICByZXR1cm4geyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0g
ICAgbV9zdGF0ZSA9IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxh
ZyA9IGZhbHNlOwotICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0
ZWRCeUNsaWVudCA9IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBw
cmV2aW91cyBsb2FkCi0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwot
Ci0gICAgQVNTRVJUKG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsK
IAogICAgIGlmIChpc0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQ
TWV0aG9kKG1ldGhvZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCkBAIC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0
aG9kKTsKKyAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNl
OworCisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsK
KyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYg
ZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNs
ZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwpAQCAtMzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0
ZSBldmVudAogICAgIC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cu
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCkKICAgICAgICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
c3RhdGUgPSBPUEVORUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdF
VCIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1f
c2VuZEZsYWcgPSB0cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBs
aXN0ZW5lcnMgZm9yY2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRv
IGFuIFVSTCB0aGF0IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyBzaG91bGQgbG9vayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5v
dCByZXNwb25kIGF0IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBv
cnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNl
OwotICAgIGlmIChtX2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAg
ICBpZiAobV9yZXF1ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBs
b2FkRXZlbnRzID0gbV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVy
IHdoZXRoZXIgdXBsb2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0
IGluIGNhc2UgdGhlIHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhl
IHJlcXVlc3QgaXMgc3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVP
cmlnaW5SZXF1ZXN0IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vz
c1JlcXVlc3QobV9tZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX2FzeW5jICYm
IG1fdXBsb2FkICYmIG1fdXBsb2FkLT5oYXNFdmVudExpc3RlbmVycygpKQorICAgICAgICBtX3Vw
bG9hZExpc3RlbmVyRmxhZyA9IHRydWU7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCht
X3VybCk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0
ZXI6OlhIUik7CkBAIC02MDcsNyArNTg2LDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9w
dGlvbnM7CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7Ci0g
ICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPSB1cGxvYWRFdmVudHMgPyBGb3JjZVByZWZsaWdo
dCA6IENvbnNpZGVyUHJlZmxpZ2h0OworICAgIC8vIFRoZSBwcmVzZW5jZSBvZiB1cGxvYWQgZXZl
bnQgbGlzdGVuZXJzIGZvcmNlcyB1cyB0byB1c2UgcHJlZmxpZ2h0aW5nIGJlY2F1c2UgUE9TVGlu
ZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5vdAorICAgIC8vIHBlcm1pdCBjcm9zcyBvcmlnaW4gcmVx
dWVzdHMgc2hvdWxkIGxvb2sgZXhhY3RseSBsaWtlIFBPU1RpbmcgdG8gYW4gVVJMIHRoYXQgZG9l
cyBub3QgcmVzcG9uZCBhdCBhbGwuCisgICAgLy8gQWxzbywgb25seSBhc3luYyByZXF1ZXN0cyBz
dXBwb3J0IHVwbG9hZCBwcm9ncmVzcyBldmVudHMuCisgICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xp
Y3kgPSBtX3VwbG9hZExpc3RlbmVyRmxhZyA/IEZvcmNlUHJlZmxpZ2h0IDogQ29uc2lkZXJQcmVm
bGlnaHQ7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IG1faW5jbHVkZUNyZWRlbnRpYWxzID8g
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpDb3JzOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5m
b3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVjdFNy
Y0RpcmVjdGl2ZTsKQEAgLTYyOCw4ICs2MTAsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0
cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogCiAgICAgbV9leGNlcHRpb25Db2RlID0gc3RkOjpu
dWxsb3B0OwogICAgIG1fZXJyb3IgPSBmYWxzZTsKKyAgICBtX3VwbG9hZENvbXBsZXRlID0gIXJl
cXVlc3QuaHR0cEJvZHkoKTsKKyAgICBtX3NlbmRGbGFnID0gdHJ1ZTsKIAogICAgIGlmIChtX2Fz
eW5jKSB7CisgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NF
dmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworICAgICAgICBpZiAoIW1fdXBsb2Fk
Q29tcGxldGUgJiYgbV91cGxvYWRMaXN0ZW5lckZsYWcpCisgICAgICAgICAgICBtX3VwbG9hZC0+
ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7CisKKyAg
ICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTkVEIHx8ICFtX3NlbmRGbGFnIHx8IG1fbG9hZGVyKQor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUgY2FuIHJldHVybiBudWxsIGhlcmUsIGZvciBleGFtcGxlIGlmIHdlJ3JlIG5vIGxvbmdl
ciBhdHRhY2hlZCB0byBhIHBhZ2Ugb3IgaWYgYSBjb250ZW50IGJsb2NrZXIgYmxvY2tzIHRoZSBs
b2FkLgogICAgICAgICAvLyBUaGlzIGlzIHRydWUgd2hpbGUgcnVubmluZyBvbnVubG9hZCBoYW5k
bGVycy4KICAgICAgICAgLy8gRklYTUU6IE1heWJlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzZW5k
IFhNTEh0dHBSZXF1ZXN0cyBmcm9tIG9udW5sb2FkLCA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MDQ+LgpAQCAtNjc2LDcgKzY2NywxMCBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjphYm9ydCgpCiAgICAgICAgIGNoYW5nZVN0YXRlKERPTkUpOwogICAgICAgICBkaXNw
YXRjaEVycm9yRXZlbnRzKGV2ZW50TmFtZXMoKS5hYm9ydEV2ZW50KTsKICAgICB9Ci0gICAgbV9z
dGF0ZSA9IFVOU0VOVDsKKyAgICBpZiAobV9zdGF0ZSA9PSBET05FKSB7CisgICAgICAgIG1fc3Rh
dGUgPSBVTlNFTlQ7CisgICAgICAgIG1fZXJyb3IgPSB0cnVlOworICAgIH0KIH0KIAogYm9vbCBY
TUxIdHRwUmVxdWVzdDo6aW50ZXJuYWxBYm9ydCgpCkBAIC05NjAsMTEgKzk1NCwxMiBAQCB2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpkaWRTZW5kRGF0YSh1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50
LCB1bnNpZ25lZCBsb25nIGxvbgogICAgIGlmICghbV91cGxvYWQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChtX3VwbG9hZEV2ZW50c0FsbG93ZWQpCisgICAgaWYgKG1fdXBsb2FkTGlzdGVu
ZXJGbGFnKQogICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hUaHJvdHRsZWRQcm9ncmVzc0V2ZW50
KHRydWUsIGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKKwogICAgIGlmIChieXRlc1Nl
bnQgPT0gdG90YWxCeXRlc1RvQmVTZW50ICYmICFtX3VwbG9hZENvbXBsZXRlKSB7CiAgICAgICAg
IG1fdXBsb2FkQ29tcGxldGUgPSB0cnVlOwotICAgICAgICBpZiAobV91cGxvYWRFdmVudHNBbGxv
d2VkKSB7CisgICAgICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykgewogICAgICAgICAgICAg
bV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZEV2ZW50KTsK
ICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygp
LmxvYWRlbmRFdmVudCk7CiAgICAgICAgIH0KQEAgLTEwODMsMTMgKzEwNzgsMTEgQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFcnJvckV2ZW50cyhjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUpCiB7CiAgICAgaWYgKCFtX3VwbG9hZENvbXBsZXRlKSB7CiAgICAgICAgIG1fdXBsb2FkQ29t
cGxldGUgPSB0cnVlOwotICAgICAgICBpZiAobV91cGxvYWQgJiYgbV91cGxvYWRFdmVudHNBbGxv
d2VkKSB7Ci0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50
TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKKyAgICAgICAgaWYgKG1fdXBsb2FkTGlzdGVuZXJGbGFn
KSB7CiAgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KHR5cGUpOwog
ICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCku
bG9hZGVuZEV2ZW50KTsKICAgICAgICAgfQogICAgIH0KLSAgICBtX3Byb2dyZXNzRXZlbnRUaHJv
dHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLnByb2dyZXNzRXZlbnQpOwog
ICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlKTsK
ICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRlbmRFdmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmlu
ZGV4IGNiOTI1NDQ1YzE4Li4xZWVjMTU4MGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmgKQEAgLTIwNSwxMCArMjA1LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9lcnJvciB7
IGZhbHNlIH07CiAKLSAgICBib29sIG1fdXBsb2FkRXZlbnRzQWxsb3dlZCB7IHRydWUgfTsKKyAg
ICBib29sIG1fdXBsb2FkTGlzdGVuZXJGbGFnIHsgZmFsc2UgfTsKICAgICBib29sIG1fdXBsb2Fk
Q29tcGxldGUgeyBmYWxzZSB9OwogCi0gICAgYm9vbCBtX3NhbWVPcmlnaW5SZXF1ZXN0IHsgdHJ1
ZSB9OwogICAgIGJvb2wgbV93YXNBYm9ydGVkQnlDbGllbnQgeyBmYWxzZSB9OwogCiAgICAgLy8g
VXNlZCBmb3IgcHJvZ3Jlc3MgZXZlbnQgdHJhY2tpbmcuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336721</attachid>
            <date>2018-03-28 14:36:35 -0700</date>
            <delta_ts>2018-03-28 15:15:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184108-20180328143634.patch</filename>
            <type>text/plain</type>
            <size>27513</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxNTNlY2E5NGEyNjQz
OGNlYzA2NTE5OTBjMmU1Y2Q0MWVmNjJjOS4uMzJlMDM3MDZhOGQwYzBhY2IwYTU3ZDBkMDEyNzVj
YWZmNDZlMWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTAzLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gWE1MSHR0cFJlcXVl
c3QncyBvcGVuKCkgLyBzZW5kKCkgLyBhYm9ydCgpIHdpdGggdGhlIGxhdGVzdCBzcGVjaWZpY2F0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQx
MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGln
biBYTUxIdHRwUmVxdWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0KCkgd2l0aCB0aGUgbGF0
ZXN0IHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly94aHIuc3BlYy53aGF0d2cub3Jn
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyBsYXlvdXQgdGVz
dHMuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6Om9wZW4pOgorICAgICAgICBBbGlnbiB3aXRoIGh0dHBzOi8veGhy
LnNwZWMud2hhdHdnLm9yZy8jdGhlLW9wZW4oKS1tZXRob2Q6CisgICAgICAgIC0gQ2hhbmdlIHRo
ZSBvcmRlciBvZiBzb21lIHN0ZXBzIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgc3BlYy4gSW4g
cGFydGljdWxhciwKKyAgICAgICAgICBvcGVuKCkgbm8gbG9uZ2VyIHJlc2V0cyB0aGUgc3RhdGUg
dG8gVU5TRU5UIG9yIGFib3J0IGFueSBleGlzdGluZyBsb2FkIHdoZW4gaXQKKyAgICAgICAgICBm
YWlscyBlYXJseSBkdWUgdG8gYmVpbmcgcGFzc2VkIGEgYmFkIG1ldGhvZC4KKworICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICBBbGlnbiB3
aXRoIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jdGhlLXNlbmQoKS1tZXRob2Q6CisgICAg
ICAgIC0gVXNlIHRoZSBzaW1wbGVyICJ1cGxvYWQgbGlzdGVuZXIgZmxhZyIgbG9naWMgZnJvbSB0
aGUgc3BlYyBpbnN0ZWFkIG9mIG91ciBtb3JlCisgICAgICAgICAgY29tcGxleCBtX3VwbG9hZEV2
ZW50c0FsbG93ZWQgZmxhZy4gVGhpcyBhdm9pZHMgY29uc3RydWN0aW5nIGEgU2VjdXJpdHlPcmln
aW4KKyAgICAgICAgICBvYmplY3RzIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgd2hlbiBYSFIgaXMg
dXNlZCBpbnNpZGUgV2ViIFdvcmtlcnMsIHdoaWNoIHdhcworICAgICAgICAgIG5vdCB0aHJlYWQt
c2FmZS4KKyAgICAgICAgLSBTZXQgdGhlIHVwbG9hZCBjb21wbGV0ZSBmbGFnIHdoZW4gdGhlIHJl
cXVlc3QgaGFzIG5vIGJvZHkgYXMgcGVyIHN0ZXAgOS4KKyAgICAgICAgLSBBZnRlciBmaXJpbmcg
dGhlIGxvYWRzdGFydEV2ZW50LCByZXR1cm4gZWFybHkgaWYgdGhlIHN0YXRlIGlzIG5vIGxvbmdl
ciBPUEVOIG9yCisgICAgICAgICAgaWYgdGhlIHNlbmQgZmxhZyBpcyB1bnNldCwgYXMgcGVyIHN0
ZXAgMTEuMy4KKworICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KToKKyAg
ICAgICAgQWxpZ24gd2l0aCBodHRwczovL3hoci5zcGVjLndoYXR3Zy5vcmcvI3RoZS1hYm9ydCgp
LW1ldGhvZDoKKyAgICAgICAgLSBPbmx5IHNldCB0aGUgc3RhdGUgdG8gVU5TRU5UIGlmIHRoZSBz
dGF0ZSBpcyBzdGlsbCBET05FIGFmdGVyIGZpcmluZyB0aGUgZXJyb3IKKyAgICAgICAgICBldmVu
dHMsIGFzIHBlciBzdGVwIDMuCisKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpk
aWRTZW5kRGF0YSk6CisgICAgICAgIFVzZSBuZXcgInVwbG9hZCBsaXN0ZW5lciBmbGFnIi4KKwor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXJyb3JFdmVudHMpOgor
ICAgICAgICBBbGlnbiB3aXRoIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdC1l
cnJvci1zdGVwczoKKyAgICAgICAgLSBTdG9wIGZpcmluZyBhIHByb2dyZXNzIGV2ZW50IGluIGNh
c2Ugb2YgZXJyb3IgYXMgdGhpcyBpcyBub3QgYXMgcGVyIHNwZWNpZmljYXRpb24KKyAgICAgICAg
ICBhbmQgRmlyZWZveCBkb2VzIG5vdCBmaXJlIHRob3NlIGVpdGhlci4KKworICAgICAgICAqIHht
bC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDE4LTAzLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjYWxsIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKCkgZnJvbSBub24tbWFp
biB0aHJlYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA5MWZiYjcy
ZmRjYmQ3ODNkMDMyYmQ2OWNiZGE3ZDk5OWQ5NjIxZGNjLi5iNTViMTE4NGRjNTJmMzMwMjcwOTFm
MDk4ZTliZjZmMmM4MWI0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTMyOSwyOCArMzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAg
ICAgICByZXR1cm4geyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0g
ICAgbV9zdGF0ZSA9IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxh
ZyA9IGZhbHNlOwotICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0
ZWRCeUNsaWVudCA9IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBw
cmV2aW91cyBsb2FkCi0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwot
Ci0gICAgQVNTRVJUKG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsK
IAogICAgIGlmIChpc0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQ
TWV0aG9kKG1ldGhvZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCkBAIC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0
aG9kKTsKKyAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNl
OworCisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsK
KyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYg
ZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNs
ZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwpAQCAtMzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0
ZSBldmVudAogICAgIC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cu
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCkKICAgICAgICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
c3RhdGUgPSBPUEVORUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdF
VCIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1f
c2VuZEZsYWcgPSB0cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBs
aXN0ZW5lcnMgZm9yY2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRv
IGFuIFVSTCB0aGF0IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyBzaG91bGQgbG9vayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5v
dCByZXNwb25kIGF0IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBv
cnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNl
OwotICAgIGlmIChtX2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAg
ICBpZiAobV9yZXF1ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBs
b2FkRXZlbnRzID0gbV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVy
IHdoZXRoZXIgdXBsb2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0
IGluIGNhc2UgdGhlIHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhl
IHJlcXVlc3QgaXMgc3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVP
cmlnaW5SZXF1ZXN0IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vz
c1JlcXVlc3QobV9tZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX2FzeW5jICYm
IG1fdXBsb2FkICYmIG1fdXBsb2FkLT5oYXNFdmVudExpc3RlbmVycygpKQorICAgICAgICBtX3Vw
bG9hZExpc3RlbmVyRmxhZyA9IHRydWU7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCht
X3VybCk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0
ZXI6OlhIUik7CkBAIC02MDcsNyArNTg2LDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9w
dGlvbnM7CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7Ci0g
ICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPSB1cGxvYWRFdmVudHMgPyBGb3JjZVByZWZsaWdo
dCA6IENvbnNpZGVyUHJlZmxpZ2h0OworICAgIC8vIFRoZSBwcmVzZW5jZSBvZiB1cGxvYWQgZXZl
bnQgbGlzdGVuZXJzIGZvcmNlcyB1cyB0byB1c2UgcHJlZmxpZ2h0aW5nIGJlY2F1c2UgUE9TVGlu
ZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5vdAorICAgIC8vIHBlcm1pdCBjcm9zcyBvcmlnaW4gcmVx
dWVzdHMgc2hvdWxkIGxvb2sgZXhhY3RseSBsaWtlIFBPU1RpbmcgdG8gYW4gVVJMIHRoYXQgZG9l
cyBub3QgcmVzcG9uZCBhdCBhbGwuCisgICAgLy8gQWxzbywgb25seSBhc3luYyByZXF1ZXN0cyBz
dXBwb3J0IHVwbG9hZCBwcm9ncmVzcyBldmVudHMuCisgICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xp
Y3kgPSBtX3VwbG9hZExpc3RlbmVyRmxhZyA/IEZvcmNlUHJlZmxpZ2h0IDogQ29uc2lkZXJQcmVm
bGlnaHQ7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IG1faW5jbHVkZUNyZWRlbnRpYWxzID8g
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpDb3JzOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5m
b3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVjdFNy
Y0RpcmVjdGl2ZTsKQEAgLTYyOCw4ICs2MTAsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0
cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogCiAgICAgbV9leGNlcHRpb25Db2RlID0gc3RkOjpu
dWxsb3B0OwogICAgIG1fZXJyb3IgPSBmYWxzZTsKKyAgICBtX3VwbG9hZENvbXBsZXRlID0gIXJl
cXVlc3QuaHR0cEJvZHkoKTsKKyAgICBtX3NlbmRGbGFnID0gdHJ1ZTsKIAogICAgIGlmIChtX2Fz
eW5jKSB7CisgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NF
dmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworICAgICAgICBpZiAoIW1fdXBsb2Fk
Q29tcGxldGUgJiYgbV91cGxvYWRMaXN0ZW5lckZsYWcpCisgICAgICAgICAgICBtX3VwbG9hZC0+
ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7CisKKyAg
ICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTkVEIHx8ICFtX3NlbmRGbGFnIHx8IG1fbG9hZGVyKQor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUgY2FuIHJldHVybiBudWxsIGhlcmUsIGZvciBleGFtcGxlIGlmIHdlJ3JlIG5vIGxvbmdl
ciBhdHRhY2hlZCB0byBhIHBhZ2Ugb3IgaWYgYSBjb250ZW50IGJsb2NrZXIgYmxvY2tzIHRoZSBs
b2FkLgogICAgICAgICAvLyBUaGlzIGlzIHRydWUgd2hpbGUgcnVubmluZyBvbnVubG9hZCBoYW5k
bGVycy4KICAgICAgICAgLy8gRklYTUU6IE1heWJlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzZW5k
IFhNTEh0dHBSZXF1ZXN0cyBmcm9tIG9udW5sb2FkLCA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MDQ+LgpAQCAtNjc2LDcgKzY2Nyw4IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3Q6OmFib3J0KCkKICAgICAgICAgY2hhbmdlU3RhdGUoRE9ORSk7CiAgICAgICAgIGRpc3Bh
dGNoRXJyb3JFdmVudHMoZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogICAgIH0KLSAgICBtX3N0
YXRlID0gVU5TRU5UOworICAgIGlmIChtX3N0YXRlID09IERPTkUpCisgICAgICAgIG1fc3RhdGUg
PSBVTlNFTlQ7CiB9CiAKIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmludGVybmFsQWJvcnQoKQpAQCAt
OTYwLDExICs5NTIsMTIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkU2VuZERhdGEodW5zaWdu
ZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb24KICAgICBpZiAoIW1fdXBs
b2FkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV91cGxvYWRFdmVudHNBbGxvd2VkKQor
ICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykKICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNo
VGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCh0cnVlLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2Vu
dCk7CisKICAgICBpZiAoYnl0ZXNTZW50ID09IHRvdGFsQnl0ZXNUb0JlU2VudCAmJiAhbV91cGxv
YWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICAgICAg
aWYgKG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgeworICAgICAgICBpZiAobV91cGxvYWRMaXN0ZW5l
ckZsYWcpIHsKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZl
bnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9n
cmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwogICAgICAgICB9CkBAIC0xMDgz
LDEzICsxMDc2LDExIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXJyb3JFdmVudHMo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewogICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSkg
ewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdXBsb2Fk
ICYmIG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgewotICAgICAgICAgICAgbV91cGxvYWQtPmRpc3Bh
dGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7CisgICAgICAgIGlm
IChtX3VwbG9hZCAmJiBtX3VwbG9hZExpc3RlbmVyRmxhZykgewogICAgICAgICAgICAgbV91cGxv
YWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlKTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5k
aXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2
ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJv
dHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQodHlwZSk7CiAgICAgbV9wcm9ncmVzc0V2ZW50VGhy
b3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYjkyNTQ0NWMxOGEwZTRmNDNk
MGU5NDdlNDhlMWQ2NmI4NmEyOTU0Li4xZWVjMTU4MGZjNjdmMTZkNjkzOGU2ZThiMTAxZGJhNGE3
NWY3MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtMjA1LDEwICsyMDUs
OSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Vycm9yIHsgZmFsc2UgfTsKIAotICAgIGJvb2wg
bV91cGxvYWRFdmVudHNBbGxvd2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV91cGxvYWRMaXN0ZW5l
ckZsYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV91cGxvYWRDb21wbGV0ZSB7IGZhbHNlIH07CiAK
LSAgICBib29sIG1fc2FtZU9yaWdpblJlcXVlc3QgeyB0cnVlIH07CiAgICAgYm9vbCBtX3dhc0Fi
b3J0ZWRCeUNsaWVudCB7IGZhbHNlIH07CiAKICAgICAvLyBVc2VkIGZvciBwcm9ncmVzcyBldmVu
dCB0cmFja2luZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlMDY5MmRlY2IxMmE3NGYwOTU0MTIxOTU1MmViZmZhY2MzOTg5
NzM4Li45MmZiNzg1ZmUwODk5YjAzYmJhYWJlYmE4OWVlODJkZGFiMzk3MWEwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTgtMDMtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBbGlnbiBYTUxIdHRwUmVxdWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0
KCkgd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDEwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxv
YWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVu
dHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBs
b2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICBGaXggdGVzdHMgdGhhdCBleHBlY3RlZCBhIHByb2dyZXNz
IGV2ZW50IGJlZm9yZSBlcnJvci9hYm9ydCBldmVudC4gVGhpcyBpcyBub3QgYXMKKyAgICAgICAg
cGVyIHNwZWNpZmljYXRpb24gYW5kIHRob3NlIHRlc3RzIHdlcmUgYWxzbyBmYWlsaW5nIGluIEZp
cmVmb3guCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlYWR5c3RhdGVj
aGFuZ2UtYW5kLWFib3J0Lmh0bWw6CisgICAgICAgIEZpeCB0ZXN0IHRoYXQgZXhwZWN0ZWQgYWJv
cnQoKSB0byByZXNldCBzdGF0ZSB0byBVTlNFTlQgYXMgdGhpcyBpcyBub3QgYXMgcGVyIHNwZWNp
ZmljYXRpb24uCisgICAgICAgIFRoaXMgdGVzdCB3YXMgZmFpbGluZyBpbiBib3RoIEZpcmVmb3gg
YW5kIENocm9tZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNwYXRjaEV2ZW50Lmh0bWw6Cisg
ICAgICAgIFJlLXN5bmMgdGVzdCBmcm9tIEJsaW5rLiBUaGUgdGVzdCB3YXMgd3JvbmdseSBleHBl
Y3RpbmcgYWJvcnQoKSB0byByZXNldCB0aGUgc3RhdGUgdG8KKyAgICAgICAgVU5TRU5ULgorCiAy
MDE4LTAzLTI2ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFNraXAgaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3RoaXJkLXBhcnR5LXJlZ2lzdHJhdGlvbi5o
dG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZTM2MDgzNWIwNDk2NGQwZDkx
MWM2MjJlYjI5ODlmM2FlYTNkNDNiNS4uZWMyMTBhNDBhYjg0N2RlYjJhN2Q5YWI3NDk1MWNlM2Yw
OTJjMGYzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTgtMDMtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
bGlnbiBYTUxIdHRwUmVxdWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0KCkgd2l0aCB0aGUg
bGF0ZXN0IHNwZWNpZmljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NDEwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9y
dC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3Nl
Y3VyaXR5LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmct
ZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyB0aGF0IGFyZSBub3cg
cGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9v
cGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgV2Ugbm93
IGZhaWwgdGhlIHRlc3QgZGlmZmVyZW50bHkuIE91ciByZXN1bHRzIGFyZSBjb25zaXN0ZW50IHdp
dGggRmlyZWZveC4gSSBiZWxpZXZlIHRoaXMKKyAgICAgICAgdGVzdCBkb2VzIG5vdCBtYXRjaCB0
aGUgc3BlY2lmaWNhdGlvbiBzbyBJIGZpbGVkOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pc3N1ZXMvMTAyMTcKKwogMjAxOC0wMy0yMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdQVCB0b29scyB0
byBhMWVjMzMwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbAppbmRl
eCA2YjljNzUwY2Y2Y2E0NmIxOTgyZWUzODM1MzZlN2VhZmY0YjNkZmVlLi43YjY1YWFiZGViNjAw
MjA1MmJkODcxNDIyNGQ3YzZjMWFhOTYzNjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50
LWFmdGVyLWFib3J0Lmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
CiAKIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKIHZhciByZXN1bHRzID0gIiI7Ci12
YXIgZXhwZWN0ZWQgPSAiIGxvYWRzdGFydCByZWFkeVN0YXRlPURPTkUgcHJvZ3Jlc3MgYWJvcnQg
bG9hZGVuZCI7Cit2YXIgZXhwZWN0ZWQgPSAiIGxvYWRzdGFydCByZWFkeVN0YXRlPURPTkUgYWJv
cnQgbG9hZGVuZCI7CiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkgewogICAgIHJlc3Vs
dHMgKz0gIiAiICsgZS50eXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJyb3IuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50LWFmdGVyLWVycm9y
Lmh0bWwKaW5kZXggNTY5YjEwZTRkN2IwOTc4YWI5MDljMDBhZGM1YzI2N2NhYWZjOGI5YS4uMDVi
MzZlMGM3ODE2NjZhMGY0NmI3NmMxODk2YjE4YjE0MTEzYjMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJy
b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9h
ZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKQogCiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0
cyA9ICIiOwotdmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIHByb2dy
ZXNzIGVycm9yIGxvYWRlbmQiOwordmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0
ZT1ET05FIGVycm9yIGxvYWRlbmQiOwogCiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWFk
eXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCmluZGV4IDM4NzcyNGNk
MzMwMmY3YWQyNzQyYmEyMTJjOTI4M2QzN2MzMmExNTguLmZiYjMxNmQ5YzI5N2ZhYzAyNTIyNGY5
NDkwMzRhOTM2M2QyZTgwNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlYWR5c3RhdGVjaGFuZ2UtYW5kLWFib3J0
Lmh0bWwKQEAgLTM2LDcgKzM2LDcgQEAgdGVzdChmdW5jdGlvbigpCiAgICAgfSk7CiAgICAgeGhy
Lm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvdGVzdC5vZ3YiLCB0cnVlKTsKICAgICB4aHIuYWJvcnQo
KTsKLSAgICBhc3NlcnRfZXF1YWxzKHhoci5yZWFkeVN0YXRlLCB4aHIuVU5TRU5ULCAieGhyLnJl
YWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSBjYWxsIik7CisgICAgYXNzZXJ0X2VxdWFscyh4aHIucmVh
ZHlTdGF0ZSwgeGhyLk9QRU5FRCwgInhoci5yZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgY2FsbCIp
OwogICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2VlblN0YXRlcywgW3hoci5PUEVORURdKTsKIH0s
ICJUZXN0IG9ucmVhZHlzdGF0ZWNoYW5nZSBpbnZvY2F0aW9uIHdoZW4gYWJvcnQoKS1lZCBpbiBP
UEVORUQgc3RhdGUuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zaW1wbGUtY3Jvc3Mt
b3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMmJmNTEzOGVlOTYzMzI0
ZDI1Yjc5MjYyNmZhODUwZjAzNDQ4MWY2MS4uYWI0YTYyNzRjNmE3ODcwZWI5OTQ2MzQ3YzliMWM0
M2YyNjg2YmI1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9zaW1wbGUtY3Jvc3Mtb3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zaW1wbGUtY3Jvc3Mtb3Jp
Z2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTksMTUgKzksMTIgQEAgb25sb2Fk
CiBSZXNwb25zZSBsZW5ndGg6IDgzODg2MDgKIAogVGVzdCAyOiBUaGUgVVJMIGlzIG5vdCBhbGxv
d2VkIGZvciBjcm9zcy1vcmlnaW4gcmVxdWVzdHMKLW9ucHJvZ3Jlc3MKIG9uZXJyb3IgKGV4cGVj
dGVkKQogUmVzcG9uc2UgbGVuZ3RoOiAwCiAKIFRlc3QgMzogVGhlIFVSTCBpcyBub3QgYWxsb3dl
ZCBmb3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzIGFuZCBhdCBsZWFzdCBvbmUgdXBsb2FkIGV2ZW50
IGlzIGxpc3RlbmVkIGZvciBiZWZvcmUgZG9pbmcgdGhlIHNlbmQuCiB1cGxvYWQub25sb2Fkc3Rh
cnQKLXVwbG9hZC5vbnByb2dyZXNzCiB1cGxvYWQub25lcnJvciAoZXhwZWN0ZWQpCi1vbnByb2dy
ZXNzCiBvbmVycm9yIChleHBlY3RlZCkKIFJlc3BvbnNlIGxlbmd0aDogMAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQt
ZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdXBsb2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCmluZGV4IDc3Yjll
OGM3YWI1ZTIwYjE5NzY0OGYxM2NhZjQwNjZkMjk0MTQ1ZTEuLjM5MDMzZjE2NGRjYmIxOTBmMGM1
MGZlNzM5MGI3NDMyYTJkZTQxMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ubG9hZGVu
ZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQogCiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9
ICIiOwotdmFyIGV4cGVjdGVkID0gIiBwcm9ncmVzcyBhYm9ydCBsb2FkZW5kIjsKK3ZhciBleHBl
Y3RlZCA9ICIgYWJvcnQgbG9hZGVuZCI7CiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkg
ewogICAgIHJlc3VsdHMgKz0gIiAiICsgZS50eXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1hYm9ydC1yZWFkeVN0YXRl
LXNob3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNw
YXRjaEV2ZW50Lmh0bWwKaW5kZXggZmY0YjcxMWFmMGFiNGM1MTg1OTczNzJmN2ZlNGIxZDY0N2Mw
MWJhOS4uZDc1MzkzMDA0OTYwMDQzNWUyZGY5YjM2MDhmNzM0ZGEwNzQ4N2NiMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1h
Ym9ydC1yZWFkeVN0YXRlLXNob3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWFib3J0LXJlYWR5
U3RhdGUtc2hvdWxkTm90RGlzcGF0Y2hFdmVudC5odG1sCkBAIC0zNywxMiArMzcsMjAgQEAgZnVu
Y3Rpb24gdGVzdEFib3J0RG9Ob3REaXNwYXRjaEV2ZW50KG51bSkKICAgICAgICAgICAgICsrZmlu
aXNoZWRUZXN0czsKICAgICAgICAgICAgIHRoaXMub25yZWFkeXN0YXRlY2hhbmdlID0gY2F0Y2hS
ZWFkeXN0YXRlRXZlbnRBYm9ydDsKICAgICAgICAgICAgIHRoaXMuYWJvcnQoKTsKLSAgICAgICAg
ICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gMCkKKyAgICAgICAgICAgIC8vIEZvbGxvd2luZyBo
dHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL3hoci9pc3N1ZXMvNTQsIGFib3J0KCkgc2hvdWxkCisg
ICAgICAgICAgICAvLyBzZXQgcmVhZHlTdGF0ZSB0byBVTlNFTlQgb25seSB3aGVuIGl0IChyZWFk
eVN0YXRlKSBpcyBET05FLgorICAgICAgICAgICAgdmFyIHBhc3M7CisgICAgICAgICAgICBpZiAo
bnVtID09IFhNTEh0dHBSZXF1ZXN0LkRPTkUpCisgICAgICAgICAgICAgICAgcGFzcyA9IHRoaXMu
cmVhZHlTdGF0ZSA9PSBYTUxIdHRwUmVxdWVzdC5VTlNFTlQ7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgcGFzcyA9IHRoaXMucmVhZHlTdGF0ZSA9PSBudW07CisKKyAgICAgICAg
ICAgIGlmIChwYXNzKQogICAgICAgICAgICAgICAgIGxvZygiUEFTUyIpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGxvZygiRkFJTEVEIik7CiAgICAgICAgIH0KLSAgICAgICAg
CisKICAgICAgICAgaWYgKGZpbmlzaGVkVGVzdHMgPT0gYWJvcnRUb0RvLmxlbmd0aCAmJiB3aW5k
b3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5jLW5vLXBy
b2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYTIyNjBhNTg4NTlkMWYyNTkzZjhhN2Q0
NmEzOTc0NjUwNzljMzczYy4uODIxZTk0MDI4ODczODJhMjA5NmE2ZDE2MzdjN2NmNmQ0YWYzY2Y0
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1zeW5jLW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5jLW5v
LXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDYgQEAgbG9hZGVuZAog
CiBTdGVwIDI6IENyb3NzIG9yaWdpbiByZXF1ZXN0LCBkaXNhbGxvd2VkCiByZWFkeXN0YXRlY2hh
bmdlIDQKLXByb2dyZXNzCiBlcnJvcgogbG9hZGVuZAogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3Jr
IGVycm9yIG9jY3VycmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBlY3RlZC50eHQKaW5kZXggZTUyMzE4NDU3YmUx
MTg5MGE0YjdiNTQzMWU5NGNhNDllMzAxNmUzMi4uZGI1ZDhjNWE5ZTBjZTk0NDg4OTlkNDk4MDQ4
ODY1Y2IwZjMzODFmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L2Fib3J0LWFmdGVyLXNlbmQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAog
Ci1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAiYWJvcnQoMCwwLGZhbHNlKSIgYnV0IGdvdCAidXBsb2FkLnByb2dyZXNzKDAs
MCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGFmdGVyIHNlbmQoKSAKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1
cmluZy1vcGVuLWV4cGVjdGVkLnR4dAppbmRleCBmZDRkM2NmN2E1MzM5NmIxMmExM2ZiZjQ2MTE1
MGJjOTNhNjY2NWRkLi5kOWRmMWEzMmRkZmU2MmFkMGY5ODQxMTUyMDk0NGUyMGY4NDFjZDVkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hN
TEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0
LWR1cmluZy1vcGVuLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBYTUxIdHRw
UmVxdWVzdDogYWJvcnQoKSBkdXJpbmcgT1BFTiBhc3NlcnRfZXF1YWxzOiBhZnRlciBhYm9ydCgp
IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1cmlu
ZyBPUEVOIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggZmIx
OGRkYzdjY2M2OTU1N2RiYTU3ZjliZWVkN2NlODlmMDJjMmVmYy4uYzJjMTVlMGI4YTBlNTRhNjIz
YmNiNGZkY2ExZjRjZWY3MmVlYjI0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi53
b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBVbnRpdGxlZCBhc3NlcnRfZXF1YWxzOiBh
ZnRlciBhYm9ydCgpIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFVudGl0bGVkIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQt
YWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IDlmNDhiOTRmZDM5NDI5YmQ5NGYwOTExYzFhZDM4NWVi
OGFmMmU2OWUuLjdhNGMxYTU3YjlhNzc1YzUxOGQzMmIyY2YzNjg1NmUwYmYyYmJkZTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZl
bnQtYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1
ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGRvIG5vdCBmaXJlIGFib3J0IGV2ZW50IGluIE9QRU5F
RCBzdGF0ZSB3aGVuIHNlbmQoKSBmbGFnIGlzIHVuc2V0LiBhc3NlcnRfZXF1YWxzOiBhYm9ydCgp
IGNhbm5vdCBjaGFuZ2UgcmVhZHlTdGF0ZSB3aGVuIHJlYWR5U3RhdGUgaXMgMSBhbmQgc2VuZCgp
IGZsYWcgaXMgdW5zZXQgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6
IFRoZSBhYm9ydCgpIG1ldGhvZDogZG8gbm90IGZpcmUgYWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0
YXRlIHdoZW4gc2VuZCgpIGZsYWcgaXMgdW5zZXQuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2
ZW50LW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0
CmluZGV4IDg2ODRjNTY4Y2UwN2UwYWQ3OGFjMmIxY2E3NzUyOThiZjU3OGY0MjMuLmEwMWMzM2Y5
M2JhMTAyMWJiNDU3MjIyYzQwNjIxZjY4ZjUyYTYxOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZl
bnQtb3JkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBUaGUgYWJvcnQoKSBt
ZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAi
dXBsb2FkLmFib3J0KDAsMCxmYWxzZSkiIGJ1dCBnb3QgInVwbG9hZC5wcm9ncmVzcygwLDAsZmFs
c2UpIgorUEFTUyBYTUxIdHRwUmVxdWVzdDogVGhlIGFib3J0KCkgbWV0aG9kOiBhYm9ydCBhbmQg
bG9hZGVuZCBldmVudHMgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQKaW5k
ZXggYjI5NzEwMjZlOTg3MWE0ZTA5YmU4OGQwNjQ4YjMyMDA5ODIzOWIyNC4uYjk3N2YwM2I5MTI4
Zjc3MzhiZjM4ZGQ1MTU2YzliNzE4NTY2ZjEzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1h
Ym9ydC1ldmVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4o
KSBkdXJpbmcgYWJvcnQgZXZlbnQgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxvYWRz
dGFydCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSA1LCBleHBlY3RlZCAicmVhZHlTdGF0
ZSBhZnRlciBhYm9ydCgpIDEiIGJ1dCBnb3QgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAwIgor
UEFTUyBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9ydCBldmVudCAtIGFib3J0KCkg
Y2FsbGVkIGZyb20gdXBsb2FkLm9ubG9hZHN0YXJ0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVy
aW5nLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0
CmluZGV4IDAxMTNjODAzYWIyMzczMWQwYjExZDBjNzBmMjg2MmUyYmJhN2JiNzAuLmFmZjI4ZDI1
M2EwYzAxZGFjYjQyYmY1ZWU1Y2I3OTI4ZmE0NDBiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJp
bmctYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5n
IGFib3J0KCkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0
cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1
cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQt
cHJvY2Vzc2luZy1leHBlY3RlZC50eHQKaW5kZXggMTVmNDE5ZDZjYjIzYjZmYzZlM2U0YjEyMzVk
NjEwZjUwZDY4ZmMwNi4uOTE5MjE1NGVlOWNhYTE0MzQ0MjIzZDdjMjc0YmRlY2U2MmFmODY4ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDMg
KzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0IHByb2Nl
c3NpbmcgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIG9ubG9hZHN0YXJ0IGFzc2VydF9hcnJheV9lcXVh
bHM6IHByb3BlcnR5IDcsIGV4cGVjdGVkICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMSIgYnV0
IGdvdCAicmVhZHlTdGF0ZSBhZnRlciBhYm9ydCgpIDAiCitGQUlMIFhNTEh0dHBSZXF1ZXN0OiBv
cGVuKCkgZHVyaW5nIGFib3J0IHByb2Nlc3NpbmcgLSBhYm9ydCgpIGNhbGxlZCBmcm9tIG9ubG9h
ZHN0YXJ0IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCA5IGdv
dCA3CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CmluZGV4IGFhMWJhN2UwYzRl
YzU3N2M0Y2NlMGEwNTA2MTVjMGUwYjliZWI3ZmIuLmFmZjI4ZDI1M2EwYzAxZGFjYjQyYmY1ZWU1
Y2I3OTI4ZmE0NDBiMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dApAQCAt
MSwzICsxLDMgQEAKIAotRkFJTCBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9ydCgp
IGFzc2VydF9hcnJheV9lcXVhbHM6IHByb3BlcnR5IDIsIGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQ
QVNTIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1j
b25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKaW5kZXggNjg3Mzk0N2M0OTYwY2UzMTRlZmVj
YjdlOTA1MzZkZDZiYzFjYzk0Mi4uY2FlMjE0NWJjZWQxODY4NzE2MjYxYmVmZjUyMGFlMDYyN2Vk
ZGYxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRlcmF0aW9uLnN1Yi1leHBlY3RlZC50eHQKQEAgLTEs
NSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojg4MDAg
aXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojg4MDEv
WE1MSHR0cFJlcXVlc3QvcmVzb3VyY2VzL2ltZy5qcGcgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNo
ZWNrcy4KIAotRkFJTCBQcm9ncmVzc0V2ZW50OiBzZWN1cml0eSBjb25zaWRlcmF0aW9uIGFzc2Vy
dF91bnJlYWNoZWQ6IE1VU1QgTk9UIGRpc3BhdGNoIHByb2dyZXNzIGV2ZW50LiBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKK1BBU1MgUHJvZ3Jlc3NFdmVudDogc2VjdXJpdHkgY29uc2lkZXJhdGlv
biAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRhdGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVjdGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCBhYWFhNDhlZGM0MjgwYzY3ODMyNjUzYmQ5ZTkzMTRkNDcyMjExYzRiLi41NjMxOThiNDUyNWI5
OGI2NWYwNmE0ZWI2ODRiZGUzZDdiMGNmOGU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4
cGVjdGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0YS11bmV4cGVjdGVk
LXRvc3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBhYm9ydCgpIGNh
bGxlZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxp
ZCBzdGF0ZS4KK1BBU1MgYWJvcnQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lmaWNhdGlvbiAK
IFBBU1Mgb3BlbigpIGNhbGxlZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogUEFTUyBzZW5k
KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRpb24gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336725</attachid>
            <date>2018-03-28 15:15:58 -0700</date>
            <delta_ts>2018-03-28 20:36:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184108-20180328151557.patch</filename>
            <type>text/plain</type>
            <size>27919</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDMxNTNlY2E5NGEyNjQz
OGNlYzA2NTE5OTBjMmU1Y2Q0MWVmNjJjOS4uMzJlMDM3MDZhOGQwYzBhY2IwYTU3ZDBkMDEyNzVj
YWZmNDZlMWYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTAzLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gWE1MSHR0cFJlcXVl
c3QncyBvcGVuKCkgLyBzZW5kKCkgLyBhYm9ydCgpIHdpdGggdGhlIGxhdGVzdCBzcGVjaWZpY2F0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQx
MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGln
biBYTUxIdHRwUmVxdWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0KCkgd2l0aCB0aGUgbGF0
ZXN0IHNwZWNpZmljYXRpb246CisgICAgICAgIC0gaHR0cHM6Ly94aHIuc3BlYy53aGF0d2cub3Jn
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyBsYXlvdXQgdGVz
dHMuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6Om9wZW4pOgorICAgICAgICBBbGlnbiB3aXRoIGh0dHBzOi8veGhy
LnNwZWMud2hhdHdnLm9yZy8jdGhlLW9wZW4oKS1tZXRob2Q6CisgICAgICAgIC0gQ2hhbmdlIHRo
ZSBvcmRlciBvZiBzb21lIHN0ZXBzIHRvIG1hdGNoIHRoZSBvcmRlciBpbiB0aGUgc3BlYy4gSW4g
cGFydGljdWxhciwKKyAgICAgICAgICBvcGVuKCkgbm8gbG9uZ2VyIHJlc2V0cyB0aGUgc3RhdGUg
dG8gVU5TRU5UIG9yIGFib3J0IGFueSBleGlzdGluZyBsb2FkIHdoZW4gaXQKKyAgICAgICAgICBm
YWlscyBlYXJseSBkdWUgdG8gYmVpbmcgcGFzc2VkIGEgYmFkIG1ldGhvZC4KKworICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QpOgorICAgICAgICBBbGlnbiB3
aXRoIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jdGhlLXNlbmQoKS1tZXRob2Q6CisgICAg
ICAgIC0gVXNlIHRoZSBzaW1wbGVyICJ1cGxvYWQgbGlzdGVuZXIgZmxhZyIgbG9naWMgZnJvbSB0
aGUgc3BlYyBpbnN0ZWFkIG9mIG91ciBtb3JlCisgICAgICAgICAgY29tcGxleCBtX3VwbG9hZEV2
ZW50c0FsbG93ZWQgZmxhZy4gVGhpcyBhdm9pZHMgY29uc3RydWN0aW5nIGEgU2VjdXJpdHlPcmln
aW4KKyAgICAgICAgICBvYmplY3RzIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgd2hlbiBYSFIgaXMg
dXNlZCBpbnNpZGUgV2ViIFdvcmtlcnMsIHdoaWNoIHdhcworICAgICAgICAgIG5vdCB0aHJlYWQt
c2FmZS4KKyAgICAgICAgLSBTZXQgdGhlIHVwbG9hZCBjb21wbGV0ZSBmbGFnIHdoZW4gdGhlIHJl
cXVlc3QgaGFzIG5vIGJvZHkgYXMgcGVyIHN0ZXAgOS4KKyAgICAgICAgLSBBZnRlciBmaXJpbmcg
dGhlIGxvYWRzdGFydEV2ZW50LCByZXR1cm4gZWFybHkgaWYgdGhlIHN0YXRlIGlzIG5vIGxvbmdl
ciBPUEVOIG9yCisgICAgICAgICAgaWYgdGhlIHNlbmQgZmxhZyBpcyB1bnNldCwgYXMgcGVyIHN0
ZXAgMTEuMy4KKworICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KToKKyAg
ICAgICAgQWxpZ24gd2l0aCBodHRwczovL3hoci5zcGVjLndoYXR3Zy5vcmcvI3RoZS1hYm9ydCgp
LW1ldGhvZDoKKyAgICAgICAgLSBPbmx5IHNldCB0aGUgc3RhdGUgdG8gVU5TRU5UIGlmIHRoZSBz
dGF0ZSBpcyBzdGlsbCBET05FIGFmdGVyIGZpcmluZyB0aGUgZXJyb3IKKyAgICAgICAgICBldmVu
dHMsIGFzIHBlciBzdGVwIDMuCisKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojpk
aWRTZW5kRGF0YSk6CisgICAgICAgIFVzZSBuZXcgInVwbG9hZCBsaXN0ZW5lciBmbGFnIi4KKwor
ICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXJyb3JFdmVudHMpOgor
ICAgICAgICBBbGlnbiB3aXRoIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jcmVxdWVzdC1l
cnJvci1zdGVwczoKKyAgICAgICAgLSBTdG9wIGZpcmluZyBhIHByb2dyZXNzIGV2ZW50IGluIGNh
c2Ugb2YgZXJyb3IgYXMgdGhpcyBpcyBub3QgYXMgcGVyIHNwZWNpZmljYXRpb24KKyAgICAgICAg
ICBhbmQgRmlyZWZveCBkb2VzIG5vdCBmaXJlIHRob3NlIGVpdGhlci4KKworICAgICAgICAqIHht
bC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDE4LTAzLTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjYWxsIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKCkgZnJvbSBub24tbWFp
biB0aHJlYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA5MWZiYjcy
ZmRjYmQ3ODNkMDMyYmQ2OWNiZGE3ZDk5OWQ5NjIxZGNjLi5iNTViMTE4NGRjNTJmMzMwMjcwOTFm
MDk4ZTliZjZmMmM4MWI0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTMyOSwyOCArMzI5LDE0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0Ojpv
cGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBTdHJpbmcmIHVybCkKIAogRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib29sIGFzeW5jKQogewotICAgIGlmICghaW50ZXJuYWxBYm9ydCgpKQotICAg
ICAgICByZXR1cm4geyB9OwotCi0gICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7Ci0g
ICAgbV9zdGF0ZSA9IFVOU0VOVDsKLSAgICBtX2Vycm9yID0gZmFsc2U7Ci0gICAgbV9zZW5kRmxh
ZyA9IGZhbHNlOwotICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsKLSAgICBtX3dhc0Fib3J0
ZWRCeUNsaWVudCA9IGZhbHNlOwotCi0gICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBw
cmV2aW91cyBsb2FkCi0gICAgY2xlYXJSZXNwb25zZSgpOwotICAgIGNsZWFyUmVxdWVzdCgpOwot
Ci0gICAgQVNTRVJUKG1fc3RhdGUgPT0gVU5TRU5UKTsKLQogICAgIGlmICghaXNWYWxpZEhUVFBU
b2tlbihtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IgfTsK
IAogICAgIGlmIChpc0ZvcmJpZGRlbk1ldGhvZChtZXRob2QpKQogICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwogCisgICAgbV9tZXRob2QgPSBub3JtYWxpemVIVFRQ
TWV0aG9kKG1ldGhvZCk7CisKICAgICBpZiAoIWFzeW5jICYmIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNEb2N1bWVudCgpKSB7CiAgICAgICAgIC8vIE5ld2VyIGZ1bmN0aW9uYWxpdHkgaXMg
bm90IGF2YWlsYWJsZSB0byBzeW5jaHJvbm91cyByZXF1ZXN0cyBpbiB3aW5kb3cgY29udGV4dHMs
IGFzIGEgc3BlYy1tYW5kYXRlZAogICAgICAgICAvLyBhdHRlbXB0IHRvIGRpc2NvdXJhZ2Ugc3lu
Y2hyb25vdXMgWEhSIHVzZS4gcmVzcG9uc2VUeXBlIGlzIG9uZSBzdWNoIHBpZWNlIG9mIGZ1bmN0
aW9uYWxpdHkuCkBAIC0zNjgsNyArMzU0LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBtX21ldGhvZCA9IG5vcm1hbGl6ZUhUVFBNZXRob2QobWV0
aG9kKTsKKyAgICBpZiAoIWludGVybmFsQWJvcnQoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKKyAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9IGZhbHNl
OworCisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29tcGxldGUgPSBmYWxzZTsK
KyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAgLy8gY2xlYXIgc3R1ZmYg
ZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNwb25zZSgpOworICAgIGNs
ZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElm
TmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6
OkxvYWQpOwpAQCAtMzc5LDEwICszNzcsOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVx
dWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJMJiB1cmwsIGJvbwogCiAg
ICAgLy8gQ2hlY2sgcHJldmlvdXMgc3RhdGUgdG8gYXZvaWQgZGlzcGF0Y2hpbmcgcmVhZHlTdGF0
ZSBldmVudAogICAgIC8vIHdoZW4gY2FsbGluZyBvcGVuIHNldmVyYWwgdGltZXMgaW4gYSByb3cu
Ci0gICAgaWYgKHByZXZpb3VzU3RhdGUgIT0gT1BFTkVEKQorICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCkKICAgICAgICAgY2hhbmdlU3RhdGUoT1BFTkVEKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
c3RhdGUgPSBPUEVORUQ7CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjcsOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAg
aWYgKCFtX2FzeW5jICYmIG1fdXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdF
VCIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1f
c2VuZEZsYWcgPSB0cnVlOwotCi0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBs
aXN0ZW5lcnMgZm9yY2VzIHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRv
IGFuIFVSTCB0aGF0IGRvZXMgbm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0
cyBzaG91bGQgbG9vayBleGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5v
dCByZXNwb25kIGF0IGFsbC4KLSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBv
cnQgdXBsb2FkIHByb2dyZXNzIGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNl
OwotICAgIGlmIChtX2FzeW5jKSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRp
c3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAg
ICBpZiAobV9yZXF1ZXN0RW50aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBs
b2FkRXZlbnRzID0gbV91cGxvYWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBt
X3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVu
dCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJp
dHlPcmlnaW4oKS0+Y2FuUmVxdWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVy
IHdoZXRoZXIgdXBsb2FkIGV2ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0
IGluIGNhc2UgdGhlIHVwbG9hZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhl
IHJlcXVlc3QgaXMgc3RhcnRlZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVP
cmlnaW5SZXF1ZXN0IHx8IHVwbG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vz
c1JlcXVlc3QobV9tZXRob2QsIG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX2FzeW5jICYm
IG1fdXBsb2FkICYmIG1fdXBsb2FkLT5oYXNFdmVudExpc3RlbmVycygpKQorICAgICAgICBtX3Vw
bG9hZExpc3RlbmVyRmxhZyA9IHRydWU7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCht
X3VybCk7CiAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0
ZXI6OlhIUik7CkBAIC02MDcsNyArNTg2LDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBS
ZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KCkKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9w
dGlvbnM7CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja3M7Ci0g
ICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPSB1cGxvYWRFdmVudHMgPyBGb3JjZVByZWZsaWdo
dCA6IENvbnNpZGVyUHJlZmxpZ2h0OworICAgIC8vIFRoZSBwcmVzZW5jZSBvZiB1cGxvYWQgZXZl
bnQgbGlzdGVuZXJzIGZvcmNlcyB1cyB0byB1c2UgcHJlZmxpZ2h0aW5nIGJlY2F1c2UgUE9TVGlu
ZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5vdAorICAgIC8vIHBlcm1pdCBjcm9zcyBvcmlnaW4gcmVx
dWVzdHMgc2hvdWxkIGxvb2sgZXhhY3RseSBsaWtlIFBPU1RpbmcgdG8gYW4gVVJMIHRoYXQgZG9l
cyBub3QgcmVzcG9uZCBhdCBhbGwuCisgICAgLy8gQWxzbywgb25seSBhc3luYyByZXF1ZXN0cyBz
dXBwb3J0IHVwbG9hZCBwcm9ncmVzcyBldmVudHMuCisgICAgb3B0aW9ucy5wcmVmbGlnaHRQb2xp
Y3kgPSBtX3VwbG9hZExpc3RlbmVyRmxhZyA/IEZvcmNlUHJlZmxpZ2h0IDogQ29uc2lkZXJQcmVm
bGlnaHQ7CiAgICAgb3B0aW9ucy5jcmVkZW50aWFscyA9IG1faW5jbHVkZUNyZWRlbnRpYWxzID8g
RmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6OlNhbWVPcmlnaW47CiAgICAgb3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpDb3JzOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1
cml0eVBvbGljeSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5m
b3JjZSA6IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVjdFNy
Y0RpcmVjdGl2ZTsKQEAgLTYyOCw4ICs2MTAsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0
cFJlcXVlc3Q6OmNyZWF0ZVJlcXVlc3QoKQogCiAgICAgbV9leGNlcHRpb25Db2RlID0gc3RkOjpu
dWxsb3B0OwogICAgIG1fZXJyb3IgPSBmYWxzZTsKKyAgICBtX3VwbG9hZENvbXBsZXRlID0gIXJl
cXVlc3QuaHR0cEJvZHkoKTsKKyAgICBtX3NlbmRGbGFnID0gdHJ1ZTsKIAogICAgIGlmIChtX2Fz
eW5jKSB7CisgICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NF
dmVudChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOworICAgICAgICBpZiAoIW1fdXBsb2Fk
Q29tcGxldGUgJiYgbV91cGxvYWRMaXN0ZW5lckZsYWcpCisgICAgICAgICAgICBtX3VwbG9hZC0+
ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7CisKKyAg
ICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTkVEIHx8ICFtX3NlbmRGbGFnIHx8IG1fbG9hZGVyKQor
ICAgICAgICAgICAgcmV0dXJuIHsgfTsKKwogICAgICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyOjpj
cmVhdGUgY2FuIHJldHVybiBudWxsIGhlcmUsIGZvciBleGFtcGxlIGlmIHdlJ3JlIG5vIGxvbmdl
ciBhdHRhY2hlZCB0byBhIHBhZ2Ugb3IgaWYgYSBjb250ZW50IGJsb2NrZXIgYmxvY2tzIHRoZSBs
b2FkLgogICAgICAgICAvLyBUaGlzIGlzIHRydWUgd2hpbGUgcnVubmluZyBvbnVubG9hZCBoYW5k
bGVycy4KICAgICAgICAgLy8gRklYTUU6IE1heWJlIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzZW5k
IFhNTEh0dHBSZXF1ZXN0cyBmcm9tIG9udW5sb2FkLCA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5MDQ+LgpAQCAtNjc2LDcgKzY2Nyw4IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3Q6OmFib3J0KCkKICAgICAgICAgY2hhbmdlU3RhdGUoRE9ORSk7CiAgICAgICAgIGRpc3Bh
dGNoRXJyb3JFdmVudHMoZXZlbnROYW1lcygpLmFib3J0RXZlbnQpOwogICAgIH0KLSAgICBtX3N0
YXRlID0gVU5TRU5UOworICAgIGlmIChtX3N0YXRlID09IERPTkUpCisgICAgICAgIG1fc3RhdGUg
PSBVTlNFTlQ7CiB9CiAKIGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmludGVybmFsQWJvcnQoKQpAQCAt
OTYwLDExICs5NTIsMTIgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkU2VuZERhdGEodW5zaWdu
ZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb24KICAgICBpZiAoIW1fdXBs
b2FkKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV91cGxvYWRFdmVudHNBbGxvd2VkKQor
ICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxhZykKICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNo
VGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCh0cnVlLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2Vu
dCk7CisKICAgICBpZiAoYnl0ZXNTZW50ID09IHRvdGFsQnl0ZXNUb0JlU2VudCAmJiAhbV91cGxv
YWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICAgICAg
aWYgKG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgeworICAgICAgICBpZiAobV91cGxvYWRMaXN0ZW5l
ckZsYWcpIHsKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZl
bnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9n
cmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwogICAgICAgICB9CkBAIC0xMDgz
LDEzICsxMDc2LDExIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXJyb3JFdmVudHMo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQogewogICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSkg
ewogICAgICAgICBtX3VwbG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdXBsb2Fk
ICYmIG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkgewotICAgICAgICAgICAgbV91cGxvYWQtPmRpc3Bh
dGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVzKCkucHJvZ3Jlc3NFdmVudCk7CisgICAgICAgIGlm
IChtX3VwbG9hZCAmJiBtX3VwbG9hZExpc3RlbmVyRmxhZykgewogICAgICAgICAgICAgbV91cGxv
YWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0eXBlKTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5k
aXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2
ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2ZW50KTsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJv
dHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQodHlwZSk7CiAgICAgbV9wcm9ncmVzc0V2ZW50VGhy
b3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCBjYjkyNTQ0NWMxOGEwZTRmNDNk
MGU5NDdlNDhlMWQ2NmI4NmEyOTU0Li4xZWVjMTU4MGZjNjdmMTZkNjkzOGU2ZThiMTAxZGJhNGE3
NWY3MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtMjA1LDEwICsyMDUs
OSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Vycm9yIHsgZmFsc2UgfTsKIAotICAgIGJvb2wg
bV91cGxvYWRFdmVudHNBbGxvd2VkIHsgdHJ1ZSB9OworICAgIGJvb2wgbV91cGxvYWRMaXN0ZW5l
ckZsYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV91cGxvYWRDb21wbGV0ZSB7IGZhbHNlIH07CiAK
LSAgICBib29sIG1fc2FtZU9yaWdpblJlcXVlc3QgeyB0cnVlIH07CiAgICAgYm9vbCBtX3dhc0Fi
b3J0ZWRCeUNsaWVudCB7IGZhbHNlIH07CiAKICAgICAvLyBVc2VkIGZvciBwcm9ncmVzcyBldmVu
dCB0cmFja2luZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlMDY5MmRlY2IxMmE3NGYwOTU0MTIxOTU1MmViZmZhY2MzOTg5
NzM4Li45MmZiNzg1ZmUwODk5YjAzYmJhYWJlYmE4OWVlODJkZGFiMzk3MWEwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTgtMDMtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
KworICAgICAgICBBbGlnbiBYTUxIdHRwUmVxdWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0
KCkgd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDEwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxv
YWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVu
dHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBs
b2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICBGaXggdGVzdHMgdGhhdCBleHBlY3RlZCBhIHByb2dyZXNz
IGV2ZW50IGJlZm9yZSBlcnJvci9hYm9ydCBldmVudC4gVGhpcyBpcyBub3QgYXMKKyAgICAgICAg
cGVyIHNwZWNpZmljYXRpb24gYW5kIHRob3NlIHRlc3RzIHdlcmUgYWxzbyBmYWlsaW5nIGluIEZp
cmVmb3guCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlYWR5c3RhdGVj
aGFuZ2UtYW5kLWFib3J0Lmh0bWw6CisgICAgICAgIEZpeCB0ZXN0IHRoYXQgZXhwZWN0ZWQgYWJv
cnQoKSB0byByZXNldCBzdGF0ZSB0byBVTlNFTlQgYXMgdGhpcyBpcyBub3QgYXMgcGVyIHNwZWNp
ZmljYXRpb24uCisgICAgICAgIFRoaXMgdGVzdCB3YXMgZmFpbGluZyBpbiBib3RoIEZpcmVmb3gg
YW5kIENocm9tZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNwYXRjaEV2ZW50Lmh0bWw6Cisg
ICAgICAgIFJlLXN5bmMgdGVzdCBmcm9tIEJsaW5rLiBUaGUgdGVzdCB3YXMgd3JvbmdseSBleHBl
Y3RpbmcgYWJvcnQoKSB0byByZXNldCB0aGUgc3RhdGUgdG8KKyAgICAgICAgVU5TRU5ULgorCiAy
MDE4LTAzLTI2ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFNraXAgaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3RoaXJkLXBhcnR5LXJlZ2lzdHJhdGlvbi5o
dG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggZTM2MDgzNWIwNDk2NGQwZDkx
MWM2MjJlYjI5ODlmM2FlYTNkNDNiNS4uZWMyMTBhNDBhYjg0N2RlYjJhN2Q5YWI3NDk1MWNlM2Yw
OTJjMGYzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTgtMDMtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
bGlnbiBYTUxIdHRwUmVxdWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0KCkgd2l0aCB0aGUg
bGF0ZXN0IHNwZWNpZmljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NDEwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFm
dGVyLXNlbmQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9y
dC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3Nl
Y3VyaXR5LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmct
ZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0cyB0aGF0IGFyZSBub3cg
cGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9v
cGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgV2Ugbm93
IGZhaWwgdGhlIHRlc3QgZGlmZmVyZW50bHkuIE91ciByZXN1bHRzIGFyZSBjb25zaXN0ZW50IHdp
dGggRmlyZWZveC4gSSBiZWxpZXZlIHRoaXMKKyAgICAgICAgdGVzdCBkb2VzIG5vdCBtYXRjaCB0
aGUgc3BlY2lmaWNhdGlvbiBzbyBJIGZpbGVkOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pc3N1ZXMvMTAyMTcKKwogMjAxOC0wMy0yMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIFdQVCB0b29scyB0
byBhMWVjMzMwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbAppbmRl
eCA2YjljNzUwY2Y2Y2E0NmIxOTgyZWUzODM1MzZlN2VhZmY0YjNkZmVlLi43YjY1YWFiZGViNjAw
MjA1MmJkODcxNDIyNGQ3YzZjMWFhOTYzNjFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50
LWFmdGVyLWFib3J0Lmh0bWwKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
CiAKIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKIHZhciByZXN1bHRzID0gIiI7Ci12
YXIgZXhwZWN0ZWQgPSAiIGxvYWRzdGFydCByZWFkeVN0YXRlPURPTkUgcHJvZ3Jlc3MgYWJvcnQg
bG9hZGVuZCI7Cit2YXIgZXhwZWN0ZWQgPSAiIGxvYWRzdGFydCByZWFkeVN0YXRlPURPTkUgYWJv
cnQgbG9hZGVuZCI7CiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkgewogICAgIHJlc3Vs
dHMgKz0gIiAiICsgZS50eXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJyb3IuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50LWFmdGVyLWVycm9y
Lmh0bWwKaW5kZXggNTY5YjEwZTRkN2IwOTc4YWI5MDljMDBhZGM1YzI2N2NhYWZjOGI5YS4uMDVi
MzZlMGM3ODE2NjZhMGY0NmI3NmMxODk2YjE4YjE0MTEzYjMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJy
b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9h
ZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKQogCiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0
cyA9ICIiOwotdmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0ZT1ET05FIHByb2dy
ZXNzIGVycm9yIGxvYWRlbmQiOwordmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0
ZT1ET05FIGVycm9yIGxvYWRlbmQiOwogCiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWFk
eXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZWFkeXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCmluZGV4IDM4NzcyNGNk
MzMwMmY3YWQyNzQyYmEyMTJjOTI4M2QzN2MzMmExNTguLmZiYjMxNmQ5YzI5N2ZhYzAyNTIyNGY5
NDkwMzRhOTM2M2QyZTgwNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlYWR5c3RhdGVjaGFuZ2UtYW5kLWFib3J0
Lmh0bWwKQEAgLTM2LDcgKzM2LDcgQEAgdGVzdChmdW5jdGlvbigpCiAgICAgfSk7CiAgICAgeGhy
Lm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvdGVzdC5vZ3YiLCB0cnVlKTsKICAgICB4aHIuYWJvcnQo
KTsKLSAgICBhc3NlcnRfZXF1YWxzKHhoci5yZWFkeVN0YXRlLCB4aHIuVU5TRU5ULCAieGhyLnJl
YWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSBjYWxsIik7CisgICAgYXNzZXJ0X2VxdWFscyh4aHIucmVh
ZHlTdGF0ZSwgeGhyLk9QRU5FRCwgInhoci5yZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgY2FsbCIp
OwogICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2VlblN0YXRlcywgW3hoci5PUEVORURdKTsKIH0s
ICJUZXN0IG9ucmVhZHlzdGF0ZWNoYW5nZSBpbnZvY2F0aW9uIHdoZW4gYWJvcnQoKS1lZCBpbiBP
UEVORUQgc3RhdGUuIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zaW1wbGUtY3Jvc3Mt
b3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggMmJmNTEzOGVlOTYzMzI0
ZDI1Yjc5MjYyNmZhODUwZjAzNDQ4MWY2MS4uYWI0YTYyNzRjNmE3ODcwZWI5OTQ2MzQ3YzliMWM0
M2YyNjg2YmI1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9zaW1wbGUtY3Jvc3Mtb3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zaW1wbGUtY3Jvc3Mtb3Jp
Z2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTksMTUgKzksMTIgQEAgb25sb2Fk
CiBSZXNwb25zZSBsZW5ndGg6IDgzODg2MDgKIAogVGVzdCAyOiBUaGUgVVJMIGlzIG5vdCBhbGxv
d2VkIGZvciBjcm9zcy1vcmlnaW4gcmVxdWVzdHMKLW9ucHJvZ3Jlc3MKIG9uZXJyb3IgKGV4cGVj
dGVkKQogUmVzcG9uc2UgbGVuZ3RoOiAwCiAKIFRlc3QgMzogVGhlIFVSTCBpcyBub3QgYWxsb3dl
ZCBmb3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzIGFuZCBhdCBsZWFzdCBvbmUgdXBsb2FkIGV2ZW50
IGlzIGxpc3RlbmVkIGZvciBiZWZvcmUgZG9pbmcgdGhlIHNlbmQuCiB1cGxvYWQub25sb2Fkc3Rh
cnQKLXVwbG9hZC5vbnByb2dyZXNzCiB1cGxvYWQub25lcnJvciAoZXhwZWN0ZWQpCi1vbnByb2dy
ZXNzCiBvbmVycm9yIChleHBlY3RlZCkKIFJlc3BvbnNlIGxlbmd0aDogMAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQt
ZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvdXBsb2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCmluZGV4IDc3Yjll
OGM3YWI1ZTIwYjE5NzY0OGYxM2NhZjQwNjZkMjk0MTQ1ZTEuLjM5MDMzZjE2NGRjYmIxOTBmMGM1
MGZlNzM5MGI3NDMyYTJkZTQxMDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvdXBsb2FkLW9ubG9hZGVu
ZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQogCiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiB2YXIgcmVzdWx0cyA9
ICIiOwotdmFyIGV4cGVjdGVkID0gIiBwcm9ncmVzcyBhYm9ydCBsb2FkZW5kIjsKK3ZhciBleHBl
Y3RlZCA9ICIgYWJvcnQgbG9hZGVuZCI7CiAKIGZ1bmN0aW9uIGxvZ1Byb2dyZXNzRXZlbnQoZSkg
ewogICAgIHJlc3VsdHMgKz0gIiAiICsgZS50eXBlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1hYm9ydC1yZWFkeVN0YXRl
LXNob3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNw
YXRjaEV2ZW50Lmh0bWwKaW5kZXggZmY0YjcxMWFmMGFiNGM1MTg1OTczNzJmN2ZlNGIxZDY0N2Mw
MWJhOS4uZDc1MzkzMDA0OTYwMDQzNWUyZGY5YjM2MDhmNzM0ZGEwNzQ4N2NiMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1h
Ym9ydC1yZWFkeVN0YXRlLXNob3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWFib3J0LXJlYWR5
U3RhdGUtc2hvdWxkTm90RGlzcGF0Y2hFdmVudC5odG1sCkBAIC0zNywxMiArMzcsMjAgQEAgZnVu
Y3Rpb24gdGVzdEFib3J0RG9Ob3REaXNwYXRjaEV2ZW50KG51bSkKICAgICAgICAgICAgICsrZmlu
aXNoZWRUZXN0czsKICAgICAgICAgICAgIHRoaXMub25yZWFkeXN0YXRlY2hhbmdlID0gY2F0Y2hS
ZWFkeXN0YXRlRXZlbnRBYm9ydDsKICAgICAgICAgICAgIHRoaXMuYWJvcnQoKTsKLSAgICAgICAg
ICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gMCkKKyAgICAgICAgICAgIC8vIEZvbGxvd2luZyBo
dHRwczovL2dpdGh1Yi5jb20vd2hhdHdnL3hoci9pc3N1ZXMvNTQsIGFib3J0KCkgc2hvdWxkCisg
ICAgICAgICAgICAvLyBzZXQgcmVhZHlTdGF0ZSB0byBVTlNFTlQgb25seSB3aGVuIGl0IChyZWFk
eVN0YXRlKSBpcyBET05FLgorICAgICAgICAgICAgdmFyIHBhc3M7CisgICAgICAgICAgICBpZiAo
bnVtID09IFhNTEh0dHBSZXF1ZXN0LkRPTkUpCisgICAgICAgICAgICAgICAgcGFzcyA9IHRoaXMu
cmVhZHlTdGF0ZSA9PSBYTUxIdHRwUmVxdWVzdC5VTlNFTlQ7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgcGFzcyA9IHRoaXMucmVhZHlTdGF0ZSA9PSBudW07CisKKyAgICAgICAg
ICAgIGlmIChwYXNzKQogICAgICAgICAgICAgICAgIGxvZygiUEFTUyIpOwogICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgIGxvZygiRkFJTEVEIik7CiAgICAgICAgIH0KLSAgICAgICAg
CisKICAgICAgICAgaWYgKGZpbmlzaGVkVGVzdHMgPT0gYWJvcnRUb0RvLmxlbmd0aCAmJiB3aW5k
b3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5jLW5vLXBy
b2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggYTIyNjBhNTg4NTlkMWYyNTkzZjhhN2Q0
NmEzOTc0NjUwNzljMzczYy4uODIxZTk0MDI4ODczODJhMjA5NmE2ZDE2MzdjN2NmNmQ0YWYzY2Y0
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1zeW5jLW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1zeW5jLW5v
LXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEwLDcgKzEwLDYgQEAgbG9hZGVuZAog
CiBTdGVwIDI6IENyb3NzIG9yaWdpbiByZXF1ZXN0LCBkaXNhbGxvd2VkCiByZWFkeXN0YXRlY2hh
bmdlIDQKLXByb2dyZXNzCiBlcnJvcgogbG9hZGVuZAogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3Jr
IGVycm9yIG9jY3VycmVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxpbmsv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDY1NzAxZTM0NjBhZmY3YzVhOWUxZDJiMDBkODRlODAyMWNlZjVkZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQKQEAgLTAsMCArMSBAQAorUEFTUwpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWFmdGVyLXNlbmQtZXhwZWN0ZWQudHh0CmluZGV4IGU1MjMx
ODQ1N2JlMTE4OTBhNGI3YjU0MzFlOTRjYTQ5ZTMwMTZlMzIuLmRiNWQ4YzVhOWUwY2U5NDQ4ODk5
ZDQ5ODA0ODg2NWNiMGYzMzgxZjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4cGVjdGVkLnR4dApAQCAtMSwzICsx
LDMgQEAKIAotRkFJTCBYTUxIdHRwUmVxdWVzdDogYWJvcnQoKSBhZnRlciBzZW5kKCkgYXNzZXJ0
X2VxdWFsczogZXhwZWN0ZWQgImFib3J0KDAsMCxmYWxzZSkiIGJ1dCBnb3QgInVwbG9hZC5wcm9n
cmVzcygwLDAsZmFsc2UpIgorUEFTUyBYTUxIdHRwUmVxdWVzdDogYWJvcnQoKSBhZnRlciBzZW5k
KCkgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9h
Ym9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQKaW5kZXggZmQ0ZDNjZjdhNTMzOTZiMTJhMTNm
YmY0NjExNTBiYzkzYTY2NjVkZC4uZDlkZjFhMzJkZGZlNjJhZDBmOTg0MTE1MjA5NDRlMjBmODQx
Y2Q1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9hYm9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
WE1MSHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gYXNzZXJ0X2VxdWFsczogYWZ0ZXIg
YWJvcnQoKSBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogYWJvcnQo
KSBkdXJpbmcgT1BFTiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi53b3JrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi53b3JrZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IGZiMThkZGM3Y2NjNjk1NTdkYmE1N2Y5YmVlZDdjZTg5ZjAyYzJlZmMuLmMyYzE1ZTBiOGEw
ZTU0YTYyM2JjYjRmZGNhMWY0Y2VmNzJlZWIyNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5n
LW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgVW50aXRsZWQgYXNzZXJ0X2Vx
dWFsczogYWZ0ZXIgYWJvcnQoKSBleHBlY3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBVbnRpdGxlZCAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0
LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCA5ZjQ4Yjk0ZmQzOTQyOWJkOTRmMDkxMWMx
YWQzODVlYjhhZjJlNjllLi43YTRjMWE1N2I5YTc3NWM1MThkMzJiMmNmMzY4NTZlMGJmMmJiZGU1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fi
b3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBYTUxI
dHRwUmVxdWVzdDogVGhlIGFib3J0KCkgbWV0aG9kOiBkbyBub3QgZmlyZSBhYm9ydCBldmVudCBp
biBPUEVORUQgc3RhdGUgd2hlbiBzZW5kKCkgZmxhZyBpcyB1bnNldC4gYXNzZXJ0X2VxdWFsczog
YWJvcnQoKSBjYW5ub3QgY2hhbmdlIHJlYWR5U3RhdGUgd2hlbiByZWFkeVN0YXRlIGlzIDEgYW5k
IHNlbmQoKSBmbGFnIGlzIHVuc2V0IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNTIFhNTEh0dHBS
ZXF1ZXN0OiBUaGUgYWJvcnQoKSBtZXRob2Q6IGRvIG5vdCBmaXJlIGFib3J0IGV2ZW50IGluIE9Q
RU5FRCBzdGF0ZSB3aGVuIHNlbmQoKSBmbGFnIGlzIHVuc2V0LiAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9h
Ym9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4cGVj
dGVkLnR4dAppbmRleCA4Njg0YzU2OGNlMDdlMGFkNzhhYzJiMWNhNzc1Mjk4YmY1NzhmNDIzLi5h
MDFjMzNmOTNiYTEwMjFiYjQ1NzIyMmM0MDYyMWY2OGY1MmE2MTkyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fi
b3J0LWV2ZW50LW9yZGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LW9yZGVyLWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBYTUxIdHRwUmVxdWVzdDogVGhlIGFi
b3J0KCkgbWV0aG9kOiBhYm9ydCBhbmQgbG9hZGVuZCBldmVudHMgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgInVwbG9hZC5hYm9ydCgwLDAsZmFsc2UpIiBidXQgZ290ICJ1cGxvYWQucHJvZ3Jlc3Mo
MCwwLGZhbHNlKSIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJv
cnQgYW5kIGxvYWRlbmQgZXZlbnRzIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0
LWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQu
dHh0CmluZGV4IGIyOTcxMDI2ZTk4NzFhNGUwOWJlODhkMDY0OGIzMjAwOTgyMzliMjQuLmI5Nzdm
MDNiOTEyOGY3NzM4YmYzOGRkNTE1NmM5YjcxODU2NmYxMzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1k
dXJpbmctYWJvcnQtZXZlbnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQt
ZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0
OiBvcGVuKCkgZHVyaW5nIGFib3J0IGV2ZW50IC0gYWJvcnQoKSBjYWxsZWQgZnJvbSB1cGxvYWQu
b25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNSwgZXhwZWN0ZWQgInJl
YWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0
KCkgMCIKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgZXZlbnQgLSBh
Ym9ydCgpIGNhbGxlZCBmcm9tIHVwbG9hZC5vbmxvYWRzdGFydCAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9v
cGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVj
dGVkLnR4dAppbmRleCAwMTEzYzgwM2FiMjM3MzFkMGIxMWQwYzcwZjI4NjJlMmJiYTdiYjcwLi5h
ZmYyOGQyNTNhMGMwMWRhY2I0MmJmNWVlNWNiNzkyOGZhNDQwYjI0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29w
ZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBYTUxIdHRwUmVxdWVzdDogb3Blbigp
IGR1cmluZyBhYm9ydCgpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEgYnV0IGdvdCAwCitQQVNT
IFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qv
b3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5n
LWFib3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CmluZGV4IDE1ZjQxOWQ2Y2IyM2I2ZmM2ZTNl
NGIxMjM1ZDYxMGY1MGQ2OGZjMDYuLjkxOTIxNTRlZTljYWExNDM0NDIyM2Q3YzI3NGJkZWNlNjJh
Zjg2OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJvY2Vzc2luZy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dApA
QCAtMSwzICsxLDMgQEAKIAotRkFJTCBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9y
dCBwcm9jZXNzaW5nIC0gYWJvcnQoKSBjYWxsZWQgZnJvbSBvbmxvYWRzdGFydCBhc3NlcnRfYXJy
YXlfZXF1YWxzOiBwcm9wZXJ0eSA3LCBleHBlY3RlZCAicmVhZHlTdGF0ZSBhZnRlciBhYm9ydCgp
IDEiIGJ1dCBnb3QgInJlYWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAwIgorRkFJTCBYTUxIdHRwUmVx
dWVzdDogb3BlbigpIGR1cmluZyBhYm9ydCBwcm9jZXNzaW5nIC0gYWJvcnQoKSBjYWxsZWQgZnJv
bSBvbmxvYWRzdGFydCBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0
ZWQgOSBnb3QgNwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9vcGVuLXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAppbmRleCBhYTFi
YTdlMGM0ZWM1NzdjNGNjZTBhMDUwNjE1YzBlMGI5YmViN2ZiLi5hZmYyOGQyNTNhMGMwMWRhY2I0
MmJmNWVlNWNiNzkyOGZhNDQwYjI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tc2VuZC1kdXJpbmctYWJv
cnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcg
YWJvcnQoKSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBwcm9wZXJ0eSAyLCBleHBlY3RlZCAxIGJ1dCBn
b3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9ydCgpIAogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2Vj
dXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQudHh0CmluZGV4IDY4NzM5NDdjNDk2MGNl
MzE0ZWZlY2I3ZTkwNTM2ZGQ2YmMxY2M5NDIuLmNhZTIxNDViY2VkMTg2ODcxNjI2MWJlZmY1MjBh
ZTA2MjdlZGRmMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3Qvc2VjdXJpdHktY29uc2lkZXJhdGlvbi5zdWItZXhwZWN0ZWQudHh0
CkBAIC0xLDUgKzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovL2xvY2FsaG9z
dDo4ODAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KIENP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9z
dDo4ODAxL1hNTEh0dHBSZXF1ZXN0L3Jlc291cmNlcy9pbWcuanBnIGR1ZSB0byBhY2Nlc3MgY29u
dHJvbCBjaGVja3MuCiAKLUZBSUwgUHJvZ3Jlc3NFdmVudDogc2VjdXJpdHkgY29uc2lkZXJhdGlv
biBhc3NlcnRfdW5yZWFjaGVkOiBNVVNUIE5PVCBkaXNwYXRjaCBwcm9ncmVzcyBldmVudC4gUmVh
Y2hlZCB1bnJlYWNoYWJsZSBjb2RlCitQQVNTIFByb2dyZXNzRXZlbnQ6IHNlY3VyaXR5IGNvbnNp
ZGVyYXRpb24gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRhdGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50
eHQKaW5kZXggYWFhYTQ4ZWRjNDI4MGM2NzgzMjY1M2JkOWU5MzE0ZDQ3MjIxMWM0Yi4uNTYzMTk4
YjQ1MjViOThiNjVmMDZhNGViNjg0YmRlM2Q3YjBjZjhlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRh
dGEtdW5leHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZW5kLWRhdGEtdW5l
eHBlY3RlZC10b3N0cmluZy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgYWJv
cnQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lmaWNhdGlvbiBUaGUgb2JqZWN0IGlzIGluIGFu
IGludmFsaWQgc3RhdGUuCitQQVNTIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmlj
YXRpb24gCiBQQVNTIG9wZW4oKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lmaWNhdGlvbiAKIFBB
U1Mgc2VuZCgpIGNhbGxlZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336750</attachid>
            <date>2018-03-28 20:36:14 -0700</date>
            <delta_ts>2018-03-28 21:16:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184108-20180328203614.patch</filename>
            <type>text/plain</type>
            <size>27827</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWRiZTA4OGRiODBhODZm
YjM1NGFjMGQwZTRmNjY0ZWU2MDRiYThiMy4uNThjZDY4YWEzNDJmNGVlN2QwYmUwMzk2NTcwODc3
Nzc3ZjdiOTBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTAzLTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWxpZ24gWE1MSHR0cFJlcXVl
c3QncyBvcGVuKCkgLyBzZW5kKCkgLyBhYm9ydCgpIHdpdGggdGhlIGxhdGVzdCBzcGVjaWZpY2F0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQx
MDgKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFsaWdu
IFhNTEh0dHBSZXF1ZXN0J3Mgb3BlbigpIC8gc2VuZCgpIC8gYWJvcnQoKSB3aXRoIHRoZSBsYXRl
c3Qgc3BlY2lmaWNhdGlvbjoKKyAgICAgICAgLSBodHRwczovL3hoci5zcGVjLndoYXR3Zy5vcmcK
KworICAgICAgICBObyBuZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIGxheW91dCB0ZXN0
cy4KKworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6CisgICAgICAgIEFsaWduIHdpdGggaHR0cHM6Ly94aHIu
c3BlYy53aGF0d2cub3JnLyN0aGUtb3BlbigpLW1ldGhvZDoKKyAgICAgICAgLSBDaGFuZ2UgdGhl
IG9yZGVyIG9mIHNvbWUgc3RlcHMgdG8gbWF0Y2ggdGhlIG9yZGVyIGluIHRoZSBzcGVjLiBJbiBw
YXJ0aWN1bGFyLAorICAgICAgICAgIG9wZW4oKSBubyBsb25nZXIgcmVzZXRzIHRoZSBzdGF0ZSB0
byBVTlNFTlQgb3IgYWJvcnQgYW55IGV4aXN0aW5nIGxvYWQgd2hlbiBpdAorICAgICAgICAgIGZh
aWxzIGVhcmx5IGR1ZSB0byBiZWluZyBwYXNzZWQgYSBiYWQgbWV0aG9kLgorCisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCk6CisgICAgICAgIEFsaWduIHdp
dGggaHR0cHM6Ly94aHIuc3BlYy53aGF0d2cub3JnLyN0aGUtc2VuZCgpLW1ldGhvZDoKKyAgICAg
ICAgLSBVc2UgdGhlIHNpbXBsZXIgInVwbG9hZCBsaXN0ZW5lciBmbGFnIiBsb2dpYyBmcm9tIHRo
ZSBzcGVjIGluc3RlYWQgb2Ygb3VyIG1vcmUKKyAgICAgICAgICBjb21wbGV4IG1fdXBsb2FkRXZl
bnRzQWxsb3dlZCBmbGFnLiBUaGlzIGF2b2lkcyBjb25zdHJ1Y3RpbmcgYSBTZWN1cml0eU9yaWdp
bgorICAgICAgICAgIG9iamVjdHMgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCB3aGVuIFhIUiBpcyB1
c2VkIGluc2lkZSBXZWIgV29ya2Vycywgd2hpY2ggd2FzCisgICAgICAgICAgbm90IHRocmVhZC1z
YWZlLgorICAgICAgICAtIFNldCB0aGUgdXBsb2FkIGNvbXBsZXRlIGZsYWcgd2hlbiB0aGUgcmVx
dWVzdCBoYXMgbm8gYm9keSBhcyBwZXIgc3RlcCA5LgorICAgICAgICAtIEFmdGVyIGZpcmluZyB0
aGUgbG9hZHN0YXJ0RXZlbnQsIHJldHVybiBlYXJseSBpZiB0aGUgc3RhdGUgaXMgbm8gbG9uZ2Vy
IE9QRU4gb3IKKyAgICAgICAgICBpZiB0aGUgc2VuZCBmbGFnIGlzIHVuc2V0LCBhcyBwZXIgc3Rl
cCAxMS4zLgorCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YWJvcnQpOgorICAg
ICAgICBBbGlnbiB3aXRoIGh0dHBzOi8veGhyLnNwZWMud2hhdHdnLm9yZy8jdGhlLWFib3J0KCkt
bWV0aG9kOgorICAgICAgICAtIE9ubHkgc2V0IHRoZSBzdGF0ZSB0byBVTlNFTlQgaWYgdGhlIHN0
YXRlIGlzIHN0aWxsIERPTkUgYWZ0ZXIgZmlyaW5nIHRoZSBlcnJvcgorICAgICAgICAgIGV2ZW50
cywgYXMgcGVyIHN0ZXAgMy4KKworICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmRp
ZFNlbmREYXRhKToKKyAgICAgICAgVXNlIG5ldyAidXBsb2FkIGxpc3RlbmVyIGZsYWciLgorCisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFcnJvckV2ZW50cyk6Cisg
ICAgICAgIEFsaWduIHdpdGggaHR0cHM6Ly94aHIuc3BlYy53aGF0d2cub3JnLyNyZXF1ZXN0LWVy
cm9yLXN0ZXBzOgorICAgICAgICAtIFN0b3AgZmlyaW5nIGEgcHJvZ3Jlc3MgZXZlbnQgaW4gY2Fz
ZSBvZiBlcnJvciBhcyB0aGlzIGlzIG5vdCBhcyBwZXIgc3BlY2lmaWNhdGlvbgorICAgICAgICAg
IGFuZCBGaXJlZm94IGRvZXMgbm90IGZpcmUgdGhvc2UgZWl0aGVyLgorCisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0Lmg6CisKIDIwMTgtMDMtMjggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSB3
cmFwcGVycyBoYXZlIHRvIGJlIGRldGFjaGVkIGZyb20gdGhlIHJlZmVyZW5jZWQgdmFsdWVzIGJl
Zm9yZSB0aGUgU1ZHQW5pbWF0ZWRUeXBlIGlzIGRlbGV0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCmluZGV4IDkxZmJiNzJmZGNiZDc4M2QwMzJiZDY5Y2JkYTdkOTk5ZDk2MjFk
Y2MuLjZjNDgyZDI2MTg0NzU3N2I3ZDc2NjlkMTI2MDQ2MGExMzdhOTZhYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMzI5LDIyICszMjksNiBAQCBFeGNlcHRpb25P
cjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3Qg
U3RyaW5nJiB1cmwpCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNv
bnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBVUkwmIHVybCwgYm9vbCBhc3luYykKIHsKLSAgICBp
ZiAoIWludGVybmFsQWJvcnQoKSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIFN0YXRlIHBy
ZXZpb3VzU3RhdGUgPSBtX3N0YXRlOwotICAgIG1fc3RhdGUgPSBVTlNFTlQ7Ci0gICAgbV9lcnJv
ciA9IGZhbHNlOwotICAgIG1fc2VuZEZsYWcgPSBmYWxzZTsKLSAgICBtX3VwbG9hZENvbXBsZXRl
ID0gZmFsc2U7Ci0gICAgbV93YXNBYm9ydGVkQnlDbGllbnQgPSBmYWxzZTsKLQotICAgIC8vIGNs
ZWFyIHN0dWZmIGZyb20gcG9zc2libGUgcHJldmlvdXMgbG9hZAotICAgIGNsZWFyUmVzcG9uc2Uo
KTsKLSAgICBjbGVhclJlcXVlc3QoKTsKLQotICAgIEFTU0VSVChtX3N0YXRlID09IFVOU0VOVCk7
Ci0KICAgICBpZiAoIWlzVmFsaWRIVFRQVG9rZW4obWV0aG9kKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yIH07CiAKQEAgLTM2OCw3ICszNTIsMTkgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IFVSTCYgdXJsLCBib28KICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICghaW50ZXJuYWxBYm9y
dCgpKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgbV9zZW5kRmxhZyA9IGZhbHNlOworICAg
IG1fdXBsb2FkTGlzdGVuZXJGbGFnID0gZmFsc2U7CiAgICAgbV9tZXRob2QgPSBub3JtYWxpemVI
VFRQTWV0aG9kKG1ldGhvZCk7CisgICAgbV9lcnJvciA9IGZhbHNlOworICAgIG1fdXBsb2FkQ29t
cGxldGUgPSBmYWxzZTsKKyAgICBtX3dhc0Fib3J0ZWRCeUNsaWVudCA9IGZhbHNlOworCisgICAg
Ly8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCisgICAgY2xlYXJSZXNw
b25zZSgpOworICAgIGNsZWFyUmVxdWVzdCgpOwogCiAgICAgbV91cmwgPSB1cmw7CiAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUlu
c2VjdXJlUmVxdWVzdElmTmVlZGVkKG1fdXJsLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2Vj
dXJlUmVxdWVzdFR5cGU6OkxvYWQpOwpAQCAtMzc3LDEyICszNzMsNyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgVVJM
JiB1cmwsIGJvbwogCiAgICAgQVNTRVJUKCFtX2xvYWRlcik7CiAKLSAgICAvLyBDaGVjayBwcmV2
aW91cyBzdGF0ZSB0byBhdm9pZCBkaXNwYXRjaGluZyByZWFkeVN0YXRlIGV2ZW50Ci0gICAgLy8g
d2hlbiBjYWxsaW5nIG9wZW4gc2V2ZXJhbCB0aW1lcyBpbiBhIHJvdy4KLSAgICBpZiAocHJldmlv
dXNTdGF0ZSAhPSBPUEVORUQpCi0gICAgICAgIGNoYW5nZVN0YXRlKE9QRU5FRCk7Ci0gICAgZWxz
ZQotICAgICAgICBtX3N0YXRlID0gT1BFTkVEOworICAgIGNoYW5nZVN0YXRlKE9QRU5FRCk7CiAK
ICAgICByZXR1cm4geyB9OwogfQpAQCAtNTcxLDI1ICs1NjIsOCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAgICAgaWYgKCFtX2FzeW5jICYmIG1f
dXJsLnByb3RvY29sSXNCbG9iKCkgJiYgbV9tZXRob2QgIT0gIkdFVCIpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOZXR3b3JrRXJyb3IgfTsKIAotICAgIG1fc2VuZEZsYWcgPSB0cnVlOwot
Ci0gICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBsaXN0ZW5lcnMgZm9yY2VzIHVz
IHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0IGRvZXMg
bm90Ci0gICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0cyBzaG91bGQgbG9vayBleGFj
dGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5vdCByZXNwb25kIGF0IGFsbC4K
LSAgICAvLyBBbHNvLCBvbmx5IGFzeW5jIHJlcXVlc3RzIHN1cHBvcnQgdXBsb2FkIHByb2dyZXNz
IGV2ZW50cy4KLSAgICBib29sIHVwbG9hZEV2ZW50cyA9IGZhbHNlOwotICAgIGlmIChtX2FzeW5j
KSB7Ci0gICAgICAgIG1fcHJvZ3Jlc3NFdmVudFRocm90dGxlLmRpc3BhdGNoUHJvZ3Jlc3NFdmVu
dChldmVudE5hbWVzKCkubG9hZHN0YXJ0RXZlbnQpOwotICAgICAgICBpZiAobV9yZXF1ZXN0RW50
aXR5Qm9keSAmJiBtX3VwbG9hZCkgewotICAgICAgICAgICAgdXBsb2FkRXZlbnRzID0gbV91cGxv
YWQtPmhhc0V2ZW50TGlzdGVuZXJzKCk7Ci0gICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQ
cm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRFdmVudCk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBtX3NhbWVPcmlnaW5SZXF1ZXN0ID0gc2VjdXJpdHlPcmlnaW4oKS0+Y2FuUmVx
dWVzdChtX3VybCk7Ci0KLSAgICAvLyBXZSBhbHNvIHJlbWVtYmVyIHdoZXRoZXIgdXBsb2FkIGV2
ZW50cyBzaG91bGQgYmUgYWxsb3dlZCBmb3IgdGhpcyByZXF1ZXN0IGluIGNhc2UgdGhlIHVwbG9h
ZCBsaXN0ZW5lcnMgYXJlCi0gICAgLy8gYWRkZWQgYWZ0ZXIgdGhlIHJlcXVlc3QgaXMgc3RhcnRl
ZC4KLSAgICBtX3VwbG9hZEV2ZW50c0FsbG93ZWQgPSBtX3NhbWVPcmlnaW5SZXF1ZXN0IHx8IHVw
bG9hZEV2ZW50cyB8fCAhaXNTaW1wbGVDcm9zc09yaWdpbkFjY2Vzc1JlcXVlc3QobV9tZXRob2Qs
IG1fcmVxdWVzdEhlYWRlcnMpOworICAgIGlmIChtX2FzeW5jICYmIG1fdXBsb2FkICYmIG1fdXBs
b2FkLT5oYXNFdmVudExpc3RlbmVycygpKQorICAgICAgICBtX3VwbG9hZExpc3RlbmVyRmxhZyA9
IHRydWU7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybCk7CiAgICAgcmVxdWVz
dC5zZXRSZXF1ZXN0ZXIoUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6OlhIUik7CkBAIC02MDcs
NyArNTgxLDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gWE1MSHR0cFJlcXVlc3Q6OmNyZWF0ZVJlcXVl
c3QoKQogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKICAgICBvcHRpb25z
LnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrczsKLSAgICBvcHRpb25zLnByZWZsaWdo
dFBvbGljeSA9IHVwbG9hZEV2ZW50cyA/IEZvcmNlUHJlZmxpZ2h0IDogQ29uc2lkZXJQcmVmbGln
aHQ7CisgICAgLy8gVGhlIHByZXNlbmNlIG9mIHVwbG9hZCBldmVudCBsaXN0ZW5lcnMgZm9yY2Vz
IHVzIHRvIHVzZSBwcmVmbGlnaHRpbmcgYmVjYXVzZSBQT1NUaW5nIHRvIGFuIFVSTCB0aGF0IGRv
ZXMgbm90CisgICAgLy8gcGVybWl0IGNyb3NzIG9yaWdpbiByZXF1ZXN0cyBzaG91bGQgbG9vayBl
eGFjdGx5IGxpa2UgUE9TVGluZyB0byBhbiBVUkwgdGhhdCBkb2VzIG5vdCByZXNwb25kIGF0IGFs
bC4KKyAgICBvcHRpb25zLnByZWZsaWdodFBvbGljeSA9IG1fdXBsb2FkTGlzdGVuZXJGbGFnID8g
Rm9yY2VQcmVmbGlnaHQgOiBDb25zaWRlclByZWZsaWdodDsKICAgICBvcHRpb25zLmNyZWRlbnRp
YWxzID0gbV9pbmNsdWRlQ3JlZGVudGlhbHMgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJ
bmNsdWRlIDogRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6U2FtZU9yaWdpbjsKICAgICBvcHRp
b25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7CiAgICAgb3B0aW9ucy5jb250ZW50
U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2hv
dWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJp
dHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZvcmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5
RW5mb3JjZW1lbnQ6OkVuZm9yY2VDb25uZWN0U3JjRGlyZWN0aXZlOwpAQCAtNjI4LDggKzYwNCwx
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCgpCiAK
ICAgICBtX2V4Y2VwdGlvbkNvZGUgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9lcnJvciA9IGZhbHNl
OworICAgIG1fdXBsb2FkQ29tcGxldGUgPSAhcmVxdWVzdC5odHRwQm9keSgpOworICAgIG1fc2Vu
ZEZsYWcgPSB0cnVlOwogCiAgICAgaWYgKG1fYXN5bmMpIHsKKyAgICAgICAgbV9wcm9ncmVzc0V2
ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3RhcnRF
dmVudCk7CisgICAgICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSAmJiBtX3VwbG9hZExpc3RlbmVy
RmxhZykKKyAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRzdGFydEV2ZW50KTsKKworICAgICAgICBpZiAobV9zdGF0ZSAhPSBPUEVORUQg
fHwgIW1fc2VuZEZsYWcgfHwgbV9sb2FkZXIpCisgICAgICAgICAgICByZXR1cm4geyB9OworCiAg
ICAgICAgIC8vIFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZSBjYW4gcmV0dXJuIG51bGwgaGVyZSwg
Zm9yIGV4YW1wbGUgaWYgd2UncmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgcGFnZSBvciBpZiBh
IGNvbnRlbnQgYmxvY2tlciBibG9ja3MgdGhlIGxvYWQuCiAgICAgICAgIC8vIFRoaXMgaXMgdHJ1
ZSB3aGlsZSBydW5uaW5nIG9udW5sb2FkIGhhbmRsZXJzLgogICAgICAgICAvLyBGSVhNRTogTWF5
YmUgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHNlbmQgWE1MSHR0cFJlcXVlc3RzIGZyb20gb251bmxv
YWQsIDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwND4uCkBAIC02
NjgsNyArNjUzLDYgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogCiAgICAgY2xlYXJS
ZXNwb25zZUJ1ZmZlcnMoKTsKIAotICAgIC8vIENsZWFyIGhlYWRlcnMgYXMgcmVxdWlyZWQgYnkg
dGhlIHNwZWMKICAgICBtX3JlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CiAgICAgaWYgKChtX3N0YXRl
ID09IE9QRU5FRCAmJiBtX3NlbmRGbGFnKSB8fCBtX3N0YXRlID09IEhFQURFUlNfUkVDRUlWRUQg
fHwgbV9zdGF0ZSA9PSBMT0FESU5HKSB7CiAgICAgICAgIEFTU0VSVCghbV9sb2FkZXIpOwpAQCAt
Njc2LDcgKzY2MCw4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0KCkKICAgICAgICAgY2hh
bmdlU3RhdGUoRE9ORSk7CiAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudHMoZXZlbnROYW1lcygp
LmFib3J0RXZlbnQpOwogICAgIH0KLSAgICBtX3N0YXRlID0gVU5TRU5UOworICAgIGlmIChtX3N0
YXRlID09IERPTkUpCisgICAgICAgIG1fc3RhdGUgPSBVTlNFTlQ7CiB9CiAKIGJvb2wgWE1MSHR0
cFJlcXVlc3Q6OmludGVybmFsQWJvcnQoKQpAQCAtOTYwLDExICs5NDUsMTIgQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdDo6ZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5z
aWduZWQgbG9uZyBsb24KICAgICBpZiAoIW1fdXBsb2FkKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAobV91cGxvYWRFdmVudHNBbGxvd2VkKQorICAgIGlmIChtX3VwbG9hZExpc3RlbmVyRmxh
ZykKICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoVGhyb3R0bGVkUHJvZ3Jlc3NFdmVudCh0cnVl
LCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7CisKICAgICBpZiAoYnl0ZXNTZW50ID09
IHRvdGFsQnl0ZXNUb0JlU2VudCAmJiAhbV91cGxvYWRDb21wbGV0ZSkgewogICAgICAgICBtX3Vw
bG9hZENvbXBsZXRlID0gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkg
eworICAgICAgICBpZiAobV91cGxvYWRMaXN0ZW5lckZsYWcpIHsKICAgICAgICAgICAgIG1fdXBs
b2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnROYW1lcygpLmxvYWRFdmVudCk7CiAgICAg
ICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5sb2Fk
ZW5kRXZlbnQpOwogICAgICAgICB9CkBAIC0xMDgzLDEzICsxMDY5LDExIEBAIHZvaWQgWE1MSHR0
cFJlcXVlc3Q6OmRpc3BhdGNoRXJyb3JFdmVudHMoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKQog
ewogICAgIGlmICghbV91cGxvYWRDb21wbGV0ZSkgewogICAgICAgICBtX3VwbG9hZENvbXBsZXRl
ID0gdHJ1ZTsKLSAgICAgICAgaWYgKG1fdXBsb2FkICYmIG1fdXBsb2FkRXZlbnRzQWxsb3dlZCkg
ewotICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudChldmVudE5hbWVz
KCkucHJvZ3Jlc3NFdmVudCk7CisgICAgICAgIGlmIChtX3VwbG9hZCAmJiBtX3VwbG9hZExpc3Rl
bmVyRmxhZykgewogICAgICAgICAgICAgbV91cGxvYWQtPmRpc3BhdGNoUHJvZ3Jlc3NFdmVudCh0
eXBlKTsKICAgICAgICAgICAgIG1fdXBsb2FkLT5kaXNwYXRjaFByb2dyZXNzRXZlbnQoZXZlbnRO
YW1lcygpLmxvYWRlbmRFdmVudCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbV9wcm9ncmVzc0V2
ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGV2ZW50TmFtZXMoKS5wcm9ncmVzc0V2
ZW50KTsKICAgICBtX3Byb2dyZXNzRXZlbnRUaHJvdHRsZS5kaXNwYXRjaFByb2dyZXNzRXZlbnQo
dHlwZSk7CiAgICAgbV9wcm9ncmVzc0V2ZW50VGhyb3R0bGUuZGlzcGF0Y2hQcm9ncmVzc0V2ZW50
KGV2ZW50TmFtZXMoKS5sb2FkZW5kRXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaAppbmRleCBjYjkyNTQ0NWMxOGEwZTRmNDNkMGU5NDdlNDhlMWQ2NmI4NmEyOTU0Li4xZWVj
MTU4MGZjNjdmMTZkNjkzOGU2ZThiMTAxZGJhNGE3NWY3MjE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuaApAQCAtMjA1LDEwICsyMDUsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBt
X2Vycm9yIHsgZmFsc2UgfTsKIAotICAgIGJvb2wgbV91cGxvYWRFdmVudHNBbGxvd2VkIHsgdHJ1
ZSB9OworICAgIGJvb2wgbV91cGxvYWRMaXN0ZW5lckZsYWcgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV91cGxvYWRDb21wbGV0ZSB7IGZhbHNlIH07CiAKLSAgICBib29sIG1fc2FtZU9yaWdpblJlcXVl
c3QgeyB0cnVlIH07CiAgICAgYm9vbCBtX3dhc0Fib3J0ZWRCeUNsaWVudCB7IGZhbHNlIH07CiAK
ICAgICAvLyBVc2VkIGZvciBwcm9ncmVzcyBldmVudCB0cmFja2luZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyM2VjMWM0
OGVkOGE5MTNlODAyNmExN2FhY2Y4ZTQ4NDNhZTJiNmVhLi44Nzc5YzI1ZGE4ZThlMDc2NWUyZDVk
ZGU1Nzg4NmEzZThmZTg0Y2UzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMDMtMjggIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBbGlnbiBYTUxIdHRwUmVx
dWVzdCdzIG9wZW4oKSAvIHNlbmQoKSAvIGFib3J0KCkgd2l0aCB0aGUgbGF0ZXN0IHNwZWNpZmlj
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDEwOAorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50LWFm
dGVyLWVycm9yLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zaW1w
bGUtY3Jvc3Mtb3JpZ2luLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC91cGxvYWQtb25sb2FkZW5kLWV2ZW50LWFmdGVyLWFi
b3J0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVx
dWVzdC1zeW5jLW5vLXByb2dyZXNzLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgIEZpeCB0
ZXN0cyB0aGF0IGV4cGVjdGVkIGEgcHJvZ3Jlc3MgZXZlbnQgYmVmb3JlIGVycm9yL2Fib3J0IGV2
ZW50LiBUaGlzIGlzIG5vdCBhcworICAgICAgICBwZXIgc3BlY2lmaWNhdGlvbiBhbmQgdGhvc2Ug
dGVzdHMgd2VyZSBhbHNvIGZhaWxpbmcgaW4gRmlyZWZveC4KKworICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbDoKKyAgICAg
ICAgRml4IHRlc3QgdGhhdCBleHBlY3RlZCBhYm9ydCgpIHRvIHJlc2V0IHN0YXRlIHRvIFVOU0VO
VCBhcyB0aGlzIGlzIG5vdCBhcyBwZXIgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgVGhpcyB0ZXN0
IHdhcyBmYWlsaW5nIGluIGJvdGggRmlyZWZveCBhbmQgQ2hyb21lLgorCisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1hYm9ydC1yZWFkeVN0YXRlLXNo
b3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbDoKKyAgICAgICAgUmUtc3luYyB0ZXN0IGZyb20gQmxp
bmsuIFRoZSB0ZXN0IHdhcyB3cm9uZ2x5IGV4cGVjdGluZyBhYm9ydCgpIHRvIHJlc2V0IHRoZSBz
dGF0ZSB0bworICAgICAgICBVTlNFTlQuCisKIDIwMTgtMDMtMjggIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTXVsdGlwbGUgc2VsZWN0IGFw
cGVhcmFuY2UgZG9lc24ndCB1cGRhdGUgd2hlbiBzZWxlY3Rpbmcgb3IgZGVzZWxlY3Rpbmcgcm93
cyBpbiB0aGUgcGlja2VyIHZpZXcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDNm
NDgzZWU5NWYwMWY3NzNlMDc3ZjNjNDZlNTE5Y2ViZWMxM2VmOGQuLjMyYjM2ZWU4YjhiYTcwNDdm
YjZhMDY5Yjc2ZDk3ZGVlZTRmMWU2MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI3IEBACisyMDE4LTAzLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgQWxpZ24gWE1MSHR0cFJlcXVlc3QncyBvcGVuKCkgLyBzZW5kKCkgLyBh
Ym9ydCgpIHdpdGggdGhlIGxhdGVzdCBzcGVjaWZpY2F0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQxMDgKKworICAgICAgICBSZXZpZXdlZCBi
eSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L2Fib3J0LWFmdGVyLXNlbmQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1kdXJpbmctb3Blbi1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmlu
Zy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWV2ZW50LWFib3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9v
cGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1
cmluZy1hYm9ydC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL1hN
TEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhw
ZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIFdQVCB0ZXN0
cyB0aGF0IGFyZSBub3cgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgV2Ugbm93IGZhaWwgdGhlIHRlc3QgZGlmZmVyZW50bHkuIE91ciByZXN1bHRzIGFy
ZSBjb25zaXN0ZW50IHdpdGggRmlyZWZveC4gSSBiZWxpZXZlIHRoaXMKKyAgICAgICAgdGVzdCBk
b2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWNhdGlvbiBzbyBJIGZpbGVkOgorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9pc3N1ZXMvMTAyMTcKKwogMjAx
OC0wMy0yOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjMwMDMzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50
LWFmdGVyLWFib3J0Lmh0bWwKaW5kZXggNmI5Yzc1MGNmNmNhNDZiMTk4MmVlMzgzNTM2ZTdlYWZm
NGIzZGZlZS4uN2I2NWFhYmRlYjYwMDIwNTJiZDg3MTQyMjRkN2M2YzFhYTk2MzYxYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZl
bnQtYWZ0ZXItYWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29ubG9hZGVuZC1ldmVudC1hZnRlci1hYm9ydC5odG1sCkBAIC0yMiw3ICsyMiw3IEBA
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
CiB2YXIgcmVzdWx0cyA9ICIiOwotdmFyIGV4cGVjdGVkID0gIiBsb2Fkc3RhcnQgcmVhZHlTdGF0
ZT1ET05FIHByb2dyZXNzIGFib3J0IGxvYWRlbmQiOwordmFyIGV4cGVjdGVkID0gIiBsb2Fkc3Rh
cnQgcmVhZHlTdGF0ZT1ET05FIGFib3J0IGxvYWRlbmQiOwogCiBmdW5jdGlvbiBsb2dQcm9ncmVz
c0V2ZW50KGUpIHsKICAgICByZXN1bHRzICs9ICIgIiArIGUudHlwZTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25sb2FkZW5kLWV2ZW50LWFmdGVy
LWVycm9yLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29ubG9h
ZGVuZC1ldmVudC1hZnRlci1lcnJvci5odG1sCmluZGV4IDU2OWIxMGU0ZDdiMDk3OGFiOTA5YzAw
YWRjNWMyNjdjYWFmYzhiOWEuLjA1YjM2ZTBjNzgxNjY2YTBmNDZiNzZjMTg5NmIxOGIxNDExM2Iz
MWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb25s
b2FkZW5kLWV2ZW50LWFmdGVyLWVycm9yLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItZXJyb3IuaHRtbApAQCAtMjIs
NyArMjIsNyBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIAogdmFyIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOwogdmFyIHJlc3VsdHMgPSAiIjsKLXZhciBleHBlY3RlZCA9ICIgbG9hZHN0YXJ0
IHJlYWR5U3RhdGU9RE9ORSBwcm9ncmVzcyBlcnJvciBsb2FkZW5kIjsKK3ZhciBleHBlY3RlZCA9
ICIgbG9hZHN0YXJ0IHJlYWR5U3RhdGU9RE9ORSBlcnJvciBsb2FkZW5kIjsKIAogCiBmdW5jdGlv
biBsb2dQcm9ncmVzc0V2ZW50KGUpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJvcnQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVhZHlzdGF0ZWNoYW5nZS1hbmQtYWJv
cnQuaHRtbAppbmRleCAzODc3MjRjZDMzMDJmN2FkMjc0MmJhMjEyYzkyODNkMzdjMzJhMTU4Li5m
YmIzMTZkOWMyOTdmYWMwMjUyMjRmOTQ5MDM0YTkzNjNkMmU4MDZmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlYWR5c3RhdGVjaGFuZ2UtYW5kLWFi
b3J0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWFk
eXN0YXRlY2hhbmdlLWFuZC1hYm9ydC5odG1sCkBAIC0zNiw3ICszNiw3IEBAIHRlc3QoZnVuY3Rp
b24oKQogICAgIH0pOwogICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3Rlc3Qub2d2Iiwg
dHJ1ZSk7CiAgICAgeGhyLmFib3J0KCk7Ci0gICAgYXNzZXJ0X2VxdWFscyh4aHIucmVhZHlTdGF0
ZSwgeGhyLlVOU0VOVCwgInhoci5yZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgY2FsbCIpOworICAg
IGFzc2VydF9lcXVhbHMoeGhyLnJlYWR5U3RhdGUsIHhoci5PUEVORUQsICJ4aHIucmVhZHlTdGF0
ZSBhZnRlciBhYm9ydCgpIGNhbGwiKTsKICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlZW5TdGF0
ZXMsIFt4aHIuT1BFTkVEXSk7CiB9LCAiVGVzdCBvbnJlYWR5c3RhdGVjaGFuZ2UgaW52b2NhdGlv
biB3aGVuIGFib3J0KCktZWQgaW4gT1BFTkVEIHN0YXRlLiIpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3NpbXBsZS1jcm9zcy1vcmlnaW4tcHJv
Z3Jlc3MtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0
CmluZGV4IDJiZjUxMzhlZTk2MzMyNGQyNWI3OTI2MjZmYTg1MGYwMzQ0ODFmNjEuLmFiNGE2Mjc0
YzZhNzg3MGViOTk0NjM0N2M5YjFjNDNmMjY4NmJiNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1l
dmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvc2ltcGxlLWNyb3NzLW9yaWdpbi1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0CkBA
IC05LDE1ICs5LDEyIEBAIG9ubG9hZAogUmVzcG9uc2UgbGVuZ3RoOiA4Mzg4NjA4CiAKIFRlc3Qg
MjogVGhlIFVSTCBpcyBub3QgYWxsb3dlZCBmb3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzCi1vbnBy
b2dyZXNzCiBvbmVycm9yIChleHBlY3RlZCkKIFJlc3BvbnNlIGxlbmd0aDogMAogCiBUZXN0IDM6
IFRoZSBVUkwgaXMgbm90IGFsbG93ZWQgZm9yIGNyb3NzLW9yaWdpbiByZXF1ZXN0cyBhbmQgYXQg
bGVhc3Qgb25lIHVwbG9hZCBldmVudCBpcyBsaXN0ZW5lZCBmb3IgYmVmb3JlIGRvaW5nIHRoZSBz
ZW5kLgogdXBsb2FkLm9ubG9hZHN0YXJ0Ci11cGxvYWQub25wcm9ncmVzcwogdXBsb2FkLm9uZXJy
b3IgKGV4cGVjdGVkKQotb25wcm9ncmVzcwogb25lcnJvciAoZXhwZWN0ZWQpCiBSZXNwb25zZSBs
ZW5ndGg6IDAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC91cGxvYWQtb25sb2FkZW5kLWV2ZW50LWFmdGVyLWFib3J0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQtZXZlbnQtYWZ0ZXIt
YWJvcnQuaHRtbAppbmRleCA3N2I5ZThjN2FiNWUyMGIxOTc2NDhmMTNjYWY0MDY2ZDI5NDE0NWUx
Li4zOTAzM2YxNjRkY2JiMTkwZjBjNTBmZTczOTBiNzQzMmEyZGU0MTAxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQtZXZl
bnQtYWZ0ZXItYWJvcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3VwbG9hZC1vbmxvYWRlbmQtZXZlbnQtYWZ0ZXItYWJvcnQuaHRtbApAQCAtMjEsNyAr
MjEsNyBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIAogdmFyIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOwogdmFyIHJlc3VsdHMgPSAiIjsKLXZhciBleHBlY3RlZCA9ICIgcHJvZ3Jlc3MgYWJv
cnQgbG9hZGVuZCI7Cit2YXIgZXhwZWN0ZWQgPSAiIGFib3J0IGxvYWRlbmQiOwogCiBmdW5jdGlv
biBsb2dQcm9ncmVzc0V2ZW50KGUpIHsKICAgICByZXN1bHRzICs9ICIgIiArIGUudHlwZTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNwYXRjaEV2ZW50Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWFib3J0LXJl
YWR5U3RhdGUtc2hvdWxkTm90RGlzcGF0Y2hFdmVudC5odG1sCmluZGV4IGZmNGI3MTFhZjBhYjRj
NTE4NTk3MzcyZjdmZTRiMWQ2NDdjMDFiYTkuLmQ3NTM5MzAwNDk2MDA0MzVlMmRmOWIzNjA4Zjcz
NGRhMDc0ODdjYjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QveG1saHR0cHJlcXVlc3QtYWJvcnQtcmVhZHlTdGF0ZS1zaG91bGROb3REaXNwYXRjaEV2
ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxo
dHRwcmVxdWVzdC1hYm9ydC1yZWFkeVN0YXRlLXNob3VsZE5vdERpc3BhdGNoRXZlbnQuaHRtbApA
QCAtMzcsMTIgKzM3LDIwIEBAIGZ1bmN0aW9uIHRlc3RBYm9ydERvTm90RGlzcGF0Y2hFdmVudChu
dW0pCiAgICAgICAgICAgICArK2ZpbmlzaGVkVGVzdHM7CiAgICAgICAgICAgICB0aGlzLm9ucmVh
ZHlzdGF0ZWNoYW5nZSA9IGNhdGNoUmVhZHlzdGF0ZUV2ZW50QWJvcnQ7CiAgICAgICAgICAgICB0
aGlzLmFib3J0KCk7Ci0gICAgICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09IDApCisgICAg
ICAgICAgICAvLyBGb2xsb3dpbmcgaHR0cHM6Ly9naXRodWIuY29tL3doYXR3Zy94aHIvaXNzdWVz
LzU0LCBhYm9ydCgpIHNob3VsZAorICAgICAgICAgICAgLy8gc2V0IHJlYWR5U3RhdGUgdG8gVU5T
RU5UIG9ubHkgd2hlbiBpdCAocmVhZHlTdGF0ZSkgaXMgRE9ORS4KKyAgICAgICAgICAgIHZhciBw
YXNzOworICAgICAgICAgICAgaWYgKG51bSA9PSBYTUxIdHRwUmVxdWVzdC5ET05FKQorICAgICAg
ICAgICAgICAgIHBhc3MgPSB0aGlzLnJlYWR5U3RhdGUgPT0gWE1MSHR0cFJlcXVlc3QuVU5TRU5U
OworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHBhc3MgPSB0aGlzLnJlYWR5U3Rh
dGUgPT0gbnVtOworCisgICAgICAgICAgICBpZiAocGFzcykKICAgICAgICAgICAgICAgICBsb2co
IlBBU1MiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBsb2coIkZBSUxFRCIp
OwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmIChmaW5pc2hlZFRlc3RzID09IGFi
b3J0VG9Eby5sZW5ndGggJiYgd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LXN5bmMtbm8tcHJvZ3Jlc3MtZXZlbnRz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1s
aHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IGEy
MjYwYTU4ODU5ZDFmMjU5M2Y4YTdkNDZhMzk3NDY1MDc5YzM3M2MuLjgyMWU5NDAyODg3MzgyYTIw
OTZhNmQxNjM3YzdjZjZkNGFmM2NmNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3Qtc3luYy1uby1wcm9ncmVzcy1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0x
MCw3ICsxMCw2IEBAIGxvYWRlbmQKIAogU3RlcCAyOiBDcm9zcyBvcmlnaW4gcmVxdWVzdCwgZGlz
YWxsb3dlZAogcmVhZHlzdGF0ZWNoYW5nZSA0Ci1wcm9ncmVzcwogZXJyb3IKIGxvYWRlbmQKIE5l
dHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL2JsaW5rL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2dldC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9ibGluay9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NTcwMWUzNDYwYWZmN2M1YTll
MWQyYjAwZDg0ZTgwMjFjZWY1ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC9ibGluay9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0CkBA
IC0wLDAgKzEgQEAKK1BBU1MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L2Fib3J0LWFmdGVyLXNlbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1hZnRlci1zZW5kLWV4
cGVjdGVkLnR4dAppbmRleCBlNTIzMTg0NTdiZTExODkwYTRiN2I1NDMxZTk0Y2E0OWUzMDE2ZTMy
Li5kYjVkOGM1YTllMGNlOTQ0ODg5OWQ0OTgwNDg4NjVjYjBmMzM4MWY3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0
L2Fib3J0LWFmdGVyLXNlbmQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtYWZ0ZXItc2VuZC1l
eHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IGFib3J0
KCkgYWZ0ZXIgc2VuZCgpIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJhYm9ydCgwLDAsZmFsc2Up
IiBidXQgZ290ICJ1cGxvYWQucHJvZ3Jlc3MoMCwwLGZhbHNlKSIKK1BBU1MgWE1MSHR0cFJlcXVl
c3Q6IGFib3J0KCkgYWZ0ZXIgc2VuZCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1v
cGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CmluZGV4
IGZkNGQzY2Y3YTUzMzk2YjEyYTEzZmJmNDYxMTUwYmM5M2E2NjY1ZGQuLmQ5ZGYxYTMyZGRmZTYy
YWQwZjk4NDExNTIwOTQ0ZTIwZjg0MWNkNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9w
ZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4tZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBSZXF1ZXN0OiBhYm9ydCgpIGR1cmluZyBPUEVO
IGFzc2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1Mg
WE1MSHR0cFJlcXVlc3Q6IGFib3J0KCkgZHVyaW5nIE9QRU4gCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJv
cnQtZHVyaW5nLW9wZW4ud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZHVyaW5nLW9wZW4u
d29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCBmYjE4ZGRjN2NjYzY5NTU3ZGJhNTdmOWJlZWQ3Y2U4
OWYwMmMyZWZjLi5jMmMxNWUwYjhhMGU1NGE2MjNiY2I0ZmRjYTFmNGNlZjcyZWViMjQwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L2Fib3J0LWR1cmluZy1vcGVuLndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9h
Ym9ydC1kdXJpbmctb3Blbi53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1G
QUlMIFVudGl0bGVkIGFzc2VydF9lcXVhbHM6IGFmdGVyIGFib3J0KCkgZXhwZWN0ZWQgMSBidXQg
Z290IDAKK1BBU1MgVW50aXRsZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtYWJvcnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1hYm9ydC1leHBlY3RlZC50eHQKaW5kZXggOWY0
OGI5NGZkMzk0MjliZDk0ZjA5MTFjMWFkMzg1ZWI4YWYyZTY5ZS4uN2E0YzFhNTdiOWE3NzVjNTE4
ZDMyYjJjZjM2ODU2ZTBiZjJiYmRlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1hYm9ydC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogZG8g
bm90IGZpcmUgYWJvcnQgZXZlbnQgaW4gT1BFTkVEIHN0YXRlIHdoZW4gc2VuZCgpIGZsYWcgaXMg
dW5zZXQuIGFzc2VydF9lcXVhbHM6IGFib3J0KCkgY2Fubm90IGNoYW5nZSByZWFkeVN0YXRlIHdo
ZW4gcmVhZHlTdGF0ZSBpcyAxIGFuZCBzZW5kKCkgZmxhZyBpcyB1bnNldCBleHBlY3RlZCAxIGJ1
dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogVGhlIGFib3J0KCkgbWV0aG9kOiBkbyBub3Qg
ZmlyZSBhYm9ydCBldmVudCBpbiBPUEVORUQgc3RhdGUgd2hlbiBzZW5kKCkgZmxhZyBpcyB1bnNl
dC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3QvYWJvcnQtZXZlbnQtb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9h
Ym9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKaW5kZXggODY4NGM1NjhjZTA3ZTBhZDc4YWMy
YjFjYTc3NTI5OGJmNTc4ZjQyMy4uYTAxYzMzZjkzYmExMDIxYmI0NTcyMjJjNDA2MjFmNjhmNTJh
NjE5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9hYm9ydC1ldmVudC1vcmRlci1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
WE1MSHR0cFJlcXVlc3Q6IFRoZSBhYm9ydCgpIG1ldGhvZDogYWJvcnQgYW5kIGxvYWRlbmQgZXZl
bnRzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJ1cGxvYWQuYWJvcnQoMCwwLGZhbHNlKSIgYnV0
IGdvdCAidXBsb2FkLnByb2dyZXNzKDAsMCxmYWxzZSkiCitQQVNTIFhNTEh0dHBSZXF1ZXN0OiBU
aGUgYWJvcnQoKSBtZXRob2Q6IGFib3J0IGFuZCBsb2FkZW5kIGV2ZW50cyAKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVx
dWVzdC9vcGVuLWR1cmluZy1hYm9ydC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5n
LWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dAppbmRleCBiMjk3MTAyNmU5ODcxYTRlMDliZTg4ZDA2
NDhiMzIwMDk4MjM5YjI0Li5iOTc3ZjAzYjkxMjhmNzczOGJmMzhkZDUxNTZjOWI3MTg1NjZmMTM2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tZHVyaW5nLWFib3J0LWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAK
IAotRkFJTCBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9ydCBldmVudCAtIGFib3J0
KCkgY2FsbGVkIGZyb20gdXBsb2FkLm9ubG9hZHN0YXJ0IGFzc2VydF9hcnJheV9lcXVhbHM6IHBy
b3BlcnR5IDUsIGV4cGVjdGVkICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0KCkgMSIgYnV0IGdvdCAi
cmVhZHlTdGF0ZSBhZnRlciBhYm9ydCgpIDAiCitQQVNTIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkg
ZHVyaW5nIGFib3J0IGV2ZW50IC0gYWJvcnQoKSBjYWxsZWQgZnJvbSB1cGxvYWQub25sb2Fkc3Rh
cnQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9v
cGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKaW5kZXggMDExM2M4MDNhYjIzNzMxZDBiMTFk
MGM3MGYyODYyZTJiYmE3YmI3MC4uYWZmMjhkMjUzYTBjMDFkYWNiNDJiZjVlZTVjYjc5MjhmYTQ0
MGIyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9vcGVuLWR1cmluZy1hYm9ydC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwg
WE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQoKSBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAxIGJ1dCBnb3QgMAorUEFTUyBYTUxIdHRwUmVxdWVzdDogb3BlbigpIGR1cmluZyBhYm9y
dCgpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFib3J0LXByb2Nlc3NpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxI
dHRwUmVxdWVzdC9vcGVuLWR1cmluZy1hYm9ydC1wcm9jZXNzaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCAxNWY0MTlkNmNiMjNiNmZjNmUzZTRiMTIzNWQ2MTBmNTBkNjhmYzA2Li45MTkyMTU0ZWU5Y2Fh
MTQzNDQyMjNkN2MyNzRiZGVjZTYyYWY4NjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tZHVyaW5nLWFi
b3J0LXByb2Nlc3NpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1kdXJpbmctYWJvcnQtcHJv
Y2Vzc2luZy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgWE1MSHR0cFJlcXVl
c3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2luZyAtIGFib3J0KCkgY2FsbGVkIGZyb20g
b25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVydHkgNywgZXhwZWN0ZWQgInJl
YWR5U3RhdGUgYWZ0ZXIgYWJvcnQoKSAxIiBidXQgZ290ICJyZWFkeVN0YXRlIGFmdGVyIGFib3J0
KCkgMCIKK0ZBSUwgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBkdXJpbmcgYWJvcnQgcHJvY2Vzc2lu
ZyAtIGFib3J0KCkgY2FsbGVkIGZyb20gb25sb2Fkc3RhcnQgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDkgZ290IDcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXNl
bmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi1zZW5kLWR1cmluZy1hYm9ydC1l
eHBlY3RlZC50eHQKaW5kZXggYWExYmE3ZTBjNGVjNTc3YzRjY2UwYTA1MDYxNWMwZTBiOWJlYjdm
Yi4uYWZmMjhkMjUzYTBjMDFkYWNiNDJiZjVlZTVjYjc5MjhmYTQ0MGIyNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9vcGVuLXNlbmQtZHVyaW5nLWFib3J0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tc2VuZC1k
dXJpbmctYWJvcnQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFhNTEh0dHBS
ZXF1ZXN0OiBvcGVuKCkgZHVyaW5nIGFib3J0KCkgYXNzZXJ0X2FycmF5X2VxdWFsczogcHJvcGVy
dHkgMiwgZXhwZWN0ZWQgMSBidXQgZ290IDAKK1BBU1MgWE1MSHR0cFJlcXVlc3Q6IG9wZW4oKSBk
dXJpbmcgYWJvcnQoKSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9zZWN1cml0eS1jb25zaWRlcmF0aW9uLnN1
Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVkLnR4
dAppbmRleCA2ODczOTQ3YzQ5NjBjZTMxNGVmZWNiN2U5MDUzNmRkNmJjMWNjOTQyLi5jYWUyMTQ1
YmNlZDE4Njg3MTYyNjFiZWZmNTIwYWUwNjI3ZWRkZjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5
LWNvbnNpZGVyYXRpb24uc3ViLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlY3VyaXR5LWNvbnNpZGVy
YXRpb24uc3ViLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCiBDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODgwMS9YTUxIdHRwUmVxdWVzdC9yZXNvdXJjZXMvaW1n
LmpwZyBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgogCi1GQUlMIFByb2dyZXNzRXZlbnQ6
IHNlY3VyaXR5IGNvbnNpZGVyYXRpb24gYXNzZXJ0X3VucmVhY2hlZDogTVVTVCBOT1QgZGlzcGF0
Y2ggcHJvZ3Jlc3MgZXZlbnQuIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBQcm9ncmVz
c0V2ZW50OiBzZWN1cml0eSBjb25zaWRlcmF0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L3NlbmQtZGF0
YS11bmV4cGVjdGVkLXRvc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0
ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CmluZGV4IGFhYWE0OGVkYzQyODBjNjc4MzI2NTNiZDll
OTMxNGQ0NzIyMTFjNGIuLjU2MzE5OGI0NTI1Yjk4YjY1ZjA2YTRlYjY4NGJkZTNkN2IwY2Y4ZTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3Qvc2VuZC1kYXRhLXVuZXhwZWN0ZWQtdG9zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0x
LDUgKzEsNSBAQAogCi1GQUlMIGFib3J0KCkgY2FsbGVkIGZyb20gZGF0YSBzdHJpbmdpZmljYXRp
b24gVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLgorUEFTUyBhYm9ydCgpIGNhbGxl
ZCBmcm9tIGRhdGEgc3RyaW5naWZpY2F0aW9uIAogUEFTUyBvcGVuKCkgY2FsbGVkIGZyb20gZGF0
YSBzdHJpbmdpZmljYXRpb24gCiBQQVNTIHNlbmQoKSBjYWxsZWQgZnJvbSBkYXRhIHN0cmluZ2lm
aWNhdGlvbiAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>