<?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>112471</bug_id>
          
          <creation_ts>2013-03-15 15:29:49 -0700</creation_ts>
          <short_desc>cross-origin requests redirected fail or drop author requested headers</short_desc>
          <delta_ts>2016-08-21 14:08:36 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=144817</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=159056</see_also>
          <bug_file_loc>http://origin-a.sigusrone.com/cors-redirect-accept-header</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151937</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Sufian Rhazi">sufian</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>abarth</cc>
    
    <cc>ancil0504</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpaddock</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>longley.dave</cc>
    
    <cc>matt</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>856348</commentid>
    <comment_count>0</comment_count>
    <who name="Sufian Rhazi">sufian</who>
    <bug_when>2013-03-15 15:29:49 -0700</bug_when>
    <thetext>URL for test  case:
http://origin-a.sigusrone.com/cors-redirect-accept-header


Steps to reproduce the problem:
1. Visit http://origin-a.sigusrone.com/cors-redirect-accept-header
2. Click the &quot;Run Tests&quot; button


What is the expected behavior?
The test output shows all PASSes.

Firefox 15.0.1 successfully passes all tests


What actually happens?
An XMLHttpRequest from origin-a to origin-a that gets redirected to origin-b fails with status 0. Both origin-a and origin-b in this case return the correct CORS response headers.

An XMLHttpRequest from origin-a to origin-b that gets redirected drops the author requested headers set via xhr.setRequestHeader(). The tests demonstrate this with the &quot;Accept&quot; header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857734</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-18 16:56:28 -0700</bug_when>
    <thetext>Is this the same as bug 98838?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857850</commentid>
    <comment_count>2</comment_count>
    <who name="Sufian Rhazi">sufian</who>
    <bug_when>2013-03-18 19:11:08 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Is this the same as bug 98838?

Yeah, looks like it is. However, 98838 isn&apos;t really a real bug as far as I can tell. Setting the request Origin to null is part of the spec http://www.w3.org/TR/cors/

See step 6 of section 7.1.7.

However, the requested headers should not be dropped, and the failure case (where the xhr.status is 0) is definitely a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904596</commentid>
    <comment_count>3</comment_count>
    <who name="A George">ancil0504</who>
    <bug_when>2013-06-28 06:11:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Is this the same as bug 98838?
&gt; 
&gt; 
&gt; However, the requested headers should not be dropped, and the failure case (where the xhr.status is 0) is definitely a bug.

In my understanding, &apos;Access-Control-Allow-Headers&apos; is received in response to a preflight request with &apos;Access-Control-Request-Headers&apos;. 
It indicates the headers(user) that can be used in the the actual request.
Is this applicable for redirection as well as expected in this test?. Please correct me if I am wrong.

&gt; An XMLHttpRequest from origin-a to origin-b that gets redirected drops the author requested headers set via xhr.setRequestHeader(). The tests demonstrate this with the &quot;Accept&quot; header.

The fix for this may be dependent on the bug https://bugs.webkit.org/show_bug.cgi?id=63460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905841</commentid>
    <comment_count>4</comment_count>
    <who name="A George">ancil0504</who>
    <bug_when>2013-07-03 06:10:11 -0700</bug_when>
    <thetext>(In reply to comment #0)
 
&gt; What actually happens?
&gt; An XMLHttpRequest from origin-a to origin-a that gets redirected to origin-b fails with status 0. Both origin-a and origin-b in this case return the correct CORS response headers.
&gt; 
In my understanding it fails the Resource Sharing check(http://www.w3.org/TR/cors/#resource-sharing-check-0) hence the browser returns &apos;network error&apos; and doesn&apos;t make the the redirected request.
Fails passesAccessControlCheck() in DocumentThreadableLoader::redirectReceived()

&gt; An XMLHttpRequest from origin-a to origin-b that gets redirected drops the author requested headers set via xhr.setRequestHeader(). The tests demonstrate this with the &quot;Accept&quot; header.
&gt;
This fails because the user added header are removed in the following lines

            // Remove any headers that may have been added by the network layer that cause access control to fail.
            request.clearHTTPContentType();
            request.clearHTTPReferrer();
            request.clearHTTPOrigin();
            request.clearHTTPUserAgent();
            request.clearHTTPAccept(); //This remove the application/json header
            makeCrossOriginAccessRequest(request);

Bill, Adam is it required the clear the simple headers, does the CORS spec recommends this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905856</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-07-03 06:44:20 -0700</bug_when>
    <thetext>The fix for https://code.google.com/p/chromium/issues/detail?id=226897 may have slightly improved the behavior in this area. At least the second test:

&quot;this page (origin-a) -&gt; origin-a.sigusrone.com/first-hop -&gt; origin-b.sigusrone.com/second-hop&quot;

gets further in the current Chrome Canary than WebKit nightly. I&apos;d suggest porting the fix for that from Blink to WebKit. Further fixes would be great.

Note also that https://code.google.com/p/chromium/issues/detail?id=173727 , which seems to be a problem with CORS preflight requests, might be related as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905910</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-03 10:24:38 -0700</bug_when>
    <thetext>Bug 63460 discusses some related topics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126092</commentid>
    <comment_count>7</comment_count>
    <who name="Dasa Paddock">dpaddock</who>
    <bug_when>2015-09-15 12:41:13 -0700</bug_when>
    <thetext>The test &quot;this page (origin-a) -&gt; origin-a.sigusrone.com/first-hop -&gt; origin-b.sigusrone.com/second-hop&quot; may have been a regression based on this comment: https://bugs.webkit.org/show_bug.cgi?id=57600#c39</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208386</commentid>
    <comment_count>8</comment_count>
    <who name="">longley.dave</who>
    <bug_when>2016-07-06 14:05:43 -0700</bug_when>
    <thetext>If you read through this bug report:

https://bugs.chromium.org/p/chromium/issues/detail?id=162183

It appears to be the same/similar problem -- and there&apos;s a link to the patch that fixed it in chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214524</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Fenelon">matt</who>
    <bug_when>2016-07-26 06:32:59 -0700</bug_when>
    <thetext>I&apos;ve just come up against this bug in Safari Version 9.1.1 (11601.6.17).

I&apos;m using pdf.js to preview PDFs on a website, the original requests comes to my server, responding with a 302 redirect to an S3 presigned URL, this works in Chrome but in Safari it fails with a status of 0. I&apos;ve debugged pdf.js and the failure comes from the xhr object itself, i.e. Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214848</commentid>
    <comment_count>10</comment_count>
      <attachid>284683</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 03:45:50 -0700</bug_when>
    <thetext>Created attachment 284683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214849</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 03:56:55 -0700</bug_when>
    <thetext>Patch fixes that issue.

It has special handling for Authorization header which should probably be dropped.

We may want to assert &apos;Origin&apos; is not in the list of original headers as well.
Maybe the same for &apos;Referrer&apos;

We may also want to drop &apos;Content-Type&apos; when being redirected from whatever to GET and nullifying the body.

I am not sure whether there is any additional header we should drop or check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214852</commentid>
    <comment_count>12</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2016-07-27 04:19:18 -0700</bug_when>
    <thetext>Per Fetch, all headers that are not added by the network layer (i.e., at the HTTP level; which that are is somewhat defined but not completely) will have to be added for each redirect (basically all headers in request&apos;s header list). If they require a CORS-preflight, that preflight has to be done.

Having said that, Accept does not require a CORS-preflight.

(I heard some refactoring of the WebKit networking-related code is being done to align with Fetch, you might want to work with those doing that.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214865</commentid>
    <comment_count>13</comment_count>
      <attachid>284689</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 06:30:26 -0700</bug_when>
    <thetext>Created attachment 284689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214866</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 06:33:24 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created attachment 284689 [details]
&gt; Patch

I added an assert on Origin since it should really not be set in the headers anyway.

I kept the special-casing for Authorization to keep consistency with the existing behaviour. We might want to discuss removing this in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214912</commentid>
    <comment_count>15</comment_count>
      <attachid>284689</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-27 08:43:11 -0700</bug_when>
    <thetext>Comment on attachment 284689
Patch

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

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:101
&gt; +    if (m_async)

Why don&apos;t we want to do this for synchronous xhr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214915</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 08:47:46 -0700</bug_when>
    <thetext>&gt; Why don&apos;t we want to do this for synchronous xhr?

DocumentThreadableLoader is only made aware of redirections for asynchronous loads, not for synchronous loads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214939</commentid>
    <comment_count>17</comment_count>
      <attachid>284689</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-27 09:27:06 -0700</bug_when>
    <thetext>Comment on attachment 284689
Patch

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

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:102
&gt; +        m_originalHeaders = request.httpHeaderFields();

Copying all the headers for every load would probably significantly hurt performance.  Can we do less?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214950</commentid>
    <comment_count>18</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 10:05:24 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Comment on attachment 284689 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=284689&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:102
&gt; &gt; +        m_originalHeaders = request.httpHeaderFields();
&gt; 
&gt; Copying all the headers for every load would probably significantly hurt
&gt; performance.  Can we do less?

To solve this particular issue, we could store only headers that were previously removed.
To implement fetch api and preflight after cross-origin redirections, it is more difficult. We would need to remove all headers added by underlying loaders.
FWIW, fetch is defined in terms of cloning requests to replay it if needed.
An alternative might be to store original headers in an array.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214953</commentid>
    <comment_count>19</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-07-27 10:12:14 -0700</bug_when>
    <thetext>Also to be noted that this is storing only application-defined headers. The number should be rather small in most cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216355</commentid>
    <comment_count>20</comment_count>
      <attachid>284689</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-01 19:24:02 -0700</bug_when>
    <thetext>Comment on attachment 284689
Patch

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

I&apos;m warming up to this idea

&gt; LayoutTests/http/tests/xmlhttprequest/redirections-and-user-headers-expected.txt:9
&gt; +FAIL Check headers after cross-origin redirection to same-origin resource (not simple request) promise_test: Unhandled rejection with value: &quot;Loading failure&quot;

What would it take to make these all pass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216395</commentid>
    <comment_count>21</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-01 23:14:45 -0700</bug_when>
    <thetext>&gt; &gt; LayoutTests/http/tests/xmlhttprequest/redirections-and-user-headers-expected.txt:9
&gt; &gt; +FAIL Check headers after cross-origin redirection to same-origin resource (not simple request) promise_test: Unhandled rejection with value: &quot;Loading failure&quot;
&gt; 
&gt; What would it take to make these all pass?

Activate preflighting for cross-origin redirections.
In the current code, this means removing one test in DocumentThreadableLoader redirection checking.
There is a FIXME in latest patch of bug 160399 about this.
If we remove that check, replay will start and preflighting will happen.

For the tests to pass, we need to precisely regenerate the headers, like proposed in this patch.

Then we are done, except we might need writing more tests probably!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221736</commentid>
    <comment_count>22</comment_count>
      <attachid>286565</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-21 06:09:03 -0700</bug_when>
    <thetext>Created attachment 286565
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221737</commentid>
    <comment_count>23</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-08-21 06:11:11 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Created attachment 286565 [details]
&gt; Patch for landing

I restricted header copy to CORS fetch mode, since this is only used in this mode currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221741</commentid>
    <comment_count>24</comment_count>
      <attachid>286565</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-21 06:38:29 -0700</bug_when>
    <thetext>Comment on attachment 286565
Patch for landing

Clearing flags on attachment: 286565

Committed r204693: &lt;http://trac.webkit.org/changeset/204693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221742</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-21 06:38:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284683</attachid>
            <date>2016-07-27 03:45:50 -0700</date>
            <delta_ts>2016-07-27 06:30:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112471-20160727124438.patch</filename>
            <type>text/plain</type>
            <size>14220</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmViZjExMDIxOTNkYzU4
MTY0NmRjZjlhMDRjOTMyYzRiNTIzNDMzZC4uNzY2ZjVkYTY2ODJlMzBiMTA1ZDBhNzQ0YjlmYTMy
NTIyOWI1YmVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA3LTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBjcm9zcy1vcmlnaW4gcmVx
dWVzdHMgcmVkaXJlY3RlZCBmYWlsIG9yIGRyb3AgYXV0aG9yIHJlcXVlc3RlZCBoZWFkZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwK
KworICAgICAgICBTdG9yaW5nIG9yaWdpbmFsIGhlYWRlcnMgaW4gRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLgorICAgICAgICBJbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiByZWRpcmVjdGlvbiBpbiBD
T1JTIG1vZGUsIHNldCB0aGUgbmV3IHJlcXVlc3QgaGVhZGVycyB0byB0aGUgb3JpZ2luYWwgaGVh
ZGVycy4KKyAgICAgICAgQWRkIGEgc3BlY2lhbCBoYW5kbGluZyB0byBBdXRob3JpemF0aW9uIGhl
YWRlciB0aGF0IHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGl0IGlzIGFscmVhZHkgcmVtb3ZlZCBi
eSB0aGUgbmV0d29yayBsYXllci4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcjo6bG9hZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuaDoKKwogMjAxNi0wNy0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0ZldGNoIEFQSV0gUmVzcG9uc2UgY29uc3RydWN0b3Igc2hvdWxkIGJl
IGFibGUgdG8gdGFrZSBhIFJlYWRhYmxlU3RyZWFtIGFzIGJvZHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNmU2OTljZmM5
OWRjOWEzMjZmNmY3YzhiYmE3MzlhMzE2ZTQ5N2E4Mi4uOTk0ZjIwMTI2MGUzNTU2YjVkNGQwMzg0
MTVmZTI0ZWYwNDI1ZDY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTk2LDYgKzk2LDExIEBAIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
VGhyZWFkYWJsCiAKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0FsbG93
ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShyZXF1ZXN0LnVybCgpKSk7CiAKKyAgICAvLyBDb3B5
IGhlYWRlcnMgaWYgd2UgbmVlZCB0byByZXBsYXkgdGhlIHJlcXVlc3QgYWZ0ZXIgYSByZWRpcmVj
dGlvbi4KKyAgICBpZiAobV9hc3luYykKKyAgICAgICAgbV9vcmlnaW5hbEhlYWRlcnMgPSByZXF1
ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKKworCiAgICAgaWYgKG1fc2FtZU9yaWdpblJlcXVlc3Qg
fHwgbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKICAgICAg
ICAgbG9hZFJlcXVlc3QocmVxdWVzdCwgRG9TZWN1cml0eUNoZWNrKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtMjE5LDExICsyMjQsMTIgQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnJl
ZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlLCBSZXNvdXIKICAgICBpZiAo
aXNBbGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIFdoZW4gdXNpbmcgYWNjZXNzIGNvbnRyb2wsIG9ubHkgc2ltcGxlIGNyb3NzIG9yaWdpbiBy
ZXF1ZXN0cyBhcmUgYWxsb3dlZCB0byByZWRpcmVjdC4gVGhlIG5ldyByZXF1ZXN0IFVSTCBtdXN0
IGhhdmUgYSBzdXBwb3J0ZWQKLSAgICAvLyBzY2hlbWUgYW5kIG5vdCBjb250YWluIHRoZSB1c2Vy
aW5mbyBwcm9kdWN0aW9uLiBJbiBhZGRpdGlvbiwgdGhlIHJlZGlyZWN0IHJlc3BvbnNlIG11c3Qg
cGFzcyB0aGUgYWNjZXNzIGNvbnRyb2wgY2hlY2sgaWYgdGhlCi0gICAgLy8gb3JpZ2luYWwgcmVx
dWVzdCB3YXMgbm90IHNhbWUtb3JpZ2luLgorICAgIC8vIFdoZW4gdXNpbmcgYWNjZXNzIGNvbnRy
b2wsIHRoZSBuZXcgcmVxdWVzdCBVUkwgbXVzdCBoYXZlIGEgc3VwcG9ydGVkIHNjaGVtZSBhbmQg
bm90IGNvbnRhaW4gdGhlIHVzZXJpbmZvIHByb2R1Y3Rpb24uCisgICAgLy8gSW4gYWRkaXRpb24s
IHRoZSByZWRpcmVjdCByZXNwb25zZSBtdXN0IHBhc3MgdGhlIGFjY2VzcyBjb250cm9sIGNoZWNr
IGlmIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHdhcyBub3Qgc2FtZS1vcmlnaW4uCiAgICAgaWYgKG1f
b3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgewogICAgICAgICBib29s
IGFsbG93UmVkaXJlY3QgPSBmYWxzZTsKKyAgICAgICAgLy8gRklYTUU6IFdlIG1pZ2h0IHdhbnQg
dG8gc3RvcCByZXN0cmljdGluZyBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb25zIHRvIHNpbXBsZSBy
ZXF1ZXN0cy4KKyAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTkwNTYuCiAgICAgICAgIGlmIChtX3NpbXBsZVJlcXVlc3QpIHsKICAgICAgICAg
ICAgIFN0cmluZyBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlvbjsKICAgICAgICAgICAgIGFs
bG93UmVkaXJlY3QgPSBpc1ZhbGlkQ3Jvc3NPcmlnaW5SZWRpcmVjdGlvblVSTChyZXF1ZXN0LnVy
bCgpKQpAQCAtMjQ3LDcgKzI1MywxMiBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
cmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIFJlc291cgogICAgICAg
ICAgICAgaWYgKG1fb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpTYW1lT3JpZ2luKQogICAgICAgICAgICAgICAgIG1fb3B0aW9ucy5zZXRBbGxvd0NyZWRl
bnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CiAKLSAgICAgICAgICAgIGNsZWFu
UmVkaXJlY3RlZFJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVlc3QpOworICAgICAgICAgICAg
QVNTRVJUKG1fb3JpZ2luYWxIZWFkZXJzKTsKKyAgICAgICAgICAgIC8vIExldCdzIGZldGNoIHRo
ZSByZXF1ZXN0IHdpdGggdGhlIG9yaWdpbmFsIGhlYWRlcnMgKGVxdWl2YWxlbnQgdG8gcmVxdWVz
dCBjbG9uaW5nIHNwZWNpZmllZCBieSBmZXRjaCBhbGdvcml0aG0pLgorICAgICAgICAgICAgLy8g
RG8gbm90IGNvcHkgdGhlIEF1dGhvcml6YXRpb24gaGVhZGVyIGlmIHJlbW92ZWQgYnkgdGhlIG5l
dHdvcmsgbGF5ZXIuCisgICAgICAgICAgICBpZiAoIXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygp
LmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uKSkKKyAgICAgICAgICAgICAg
ICBtX29yaWdpbmFsSGVhZGVycy0+cmVtb3ZlKEhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9u
KTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkcygqbV9vcmlnaW5hbEhl
YWRlcnMpOwogCiAgICAgICAgICAgICBtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KHJlcXVl
c3QpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IDg3YzhhOGJmNmE4NGFiYjA3Yzg0Y2VjNmU4
Mzg1YTkwZDdkNTY4MmIuLjY1ZjI0NmI5ZTM0MmJjNWY0MGUyNDkyZDljYmFkMTUxYzgwYWEzOTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
LmgKQEAgLTExNCw2ICsxMTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9hc3luYzsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnRTZWN1cml0eVBvbGljeT4g
bV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgICAgIE9wdGlvbmFsPENyb3NzT3JpZ2luUHJl
ZmxpZ2h0Q2hlY2tlcj4gbV9wcmVmbGlnaHRDaGVja2VyOworICAgICAgICBPcHRpb25hbDxIVFRQ
SGVhZGVyTWFwPiBtX29yaWdpbmFsSGVhZGVyczsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZWI5ZmQ2MTBjZGIwZDM0YzhmMTQ1MWNjMGMxOWE5M2IyMmMwNmUxNy4u
NTllYTZjNmFiN2MzMTA5ODZhZmQ1NTlkYjcxZTk1MWMwZDUyNjQ1MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE2LTA3LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBjcm9zcy1vcmlnaW4gcmVxdWVzdHMgcmVkaXJlY3RlZCBmYWlsIG9yIGRyb3AgYXV0
aG9yIHJlcXVlc3RlZCBoZWFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTI0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFu
ZC11c2VyLWhlYWRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1j
b250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA6IEFkZGVkLgorCiAyMDE2LTA3LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CiAKICAgICAgICAgSlMgQnVpbHQtaW5zIHNo
b3VsZCB0aHJvdyB0aGlzLWVycm9yIG1lc3NhZ2VzIGNvbnNpc3RlbnRseSB3aXRoIGJpbmRpbmcg
Z2VuZXJhdGVkIGNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVjdGlvbnMtYW5kLXVzZXIt
aGVhZGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI3MmZjZDI1MjZmNzc5MmNiNDczZmU5
ZmUxY2ExM2VjMTdiODc3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRlcnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fu
bm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9h
Y2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwP3JlZGlyZWN0PXRydWUmdXJsPWh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRy
b2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocC4gQ3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIGRlbmll
ZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xpY3kuCitDT05TT0xFIE1FU1NB
R0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBo
cD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAuIENyb3NzLW9y
aWdpbiByZWRpcmVjdGlvbiBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcg
cG9saWN5LgorCitQQVNTIENoZWNrIGhlYWRlcnMgYWZ0ZXIgc2FtZS1vcmlnaW4gcmVkaXJlY3Rp
b24gdG8gc2FtZS1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1ZXN0KSAKK1BBU1MgQ2hlY2sg
aGVhZGVycyBhZnRlciBzYW1lLW9yaWdpbiByZWRpcmVjdGlvbiB0byBzYW1lLW9yaWdpbiByZXNv
dXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1l
IG9yaWdpbiByZWRpcmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1
ZXN0KSAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1lIG9yaWdpbiByZWRpcmVjdGlvbiB0
byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKG5vdCBzaW1wbGUgcmVxdWVzdCkgCitQQVNTIENoZWNr
IGhlYWRlcnMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3JpZ2luIHJl
c291cmNlIChzaW1wbGUgcmVxdWVzdCkgCitGQUlMIENoZWNrIGhlYWRlcnMgYWZ0ZXIgY3Jvc3Mt
b3JpZ2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3JpZ2luIHJlc291cmNlIChub3Qgc2ltcGxlIHJl
cXVlc3QpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiTG9h
ZGluZyBmYWlsdXJlIgorUEFTUyBDaGVjayBoZWFkZXJzIGFmdGVyIGNyb3NzLW9yaWdpbiByZWRp
cmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1ZXN0KSAKK0ZBSUwg
Q2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mtb3Jp
Z2luIHJlc291cmNlIChub3Qgc2ltcGxlIHJlcXVlc3QpIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiTG9hZGluZyBmYWlsdXJlIgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNl
ci1oZWFkZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
ZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmI4YjNmMTY1ZDk1
YWQ2ZjZhZGMyZGNkMThhOTg0M2FiZDE3Y2JhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRl
cnMuaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8dGl0bGU+WE1MSHR0cFJlcXVlc3Q6IGVuc3VyZSB1c2VyIHNjcmlwdCBoZWFkZXJz
IGRvIG5vdCBnZXQgZHJvcHBlZCBkdXJpbmcgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uczwvdGl0
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CitmdW5jdGlvbiBkb1Rlc3QodGVzdE5hbWUsIHRlc3RVUkwsIHNpbXBsZVJlcXVlc3Qs
IGNoYW5nZU9yaWdpbikKK3sKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2
YXIgcmVzb2x2ZVByb21pc2UsIHJlamVjdFByb21pc2U7CisgICAgdmFyIHByb21pc2UgPSBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHJlc29sdmVQcm9taXNlID0g
cmVzb2x2ZTsKKyAgICAgICAgcmVqZWN0UHJvbWlzZSA9IHJlamVjdDsKKyAgICB9KTsKKworICAg
IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgICAgeGhyLm9wZW4oIkdFVCIsIHRlc3RV
UkwpOworICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJhY2NlcHQiLCAiZ3Jvb3Z5Iik7CisKKyAg
ICBpZiAoIXNpbXBsZVJlcXVlc3QpIHsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIngt
d2Via2l0IiwgImZ1bmt5Iik7CisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJjb250ZW50
LXR5cGUiLCAicm9ja3kiKTsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoImF1dGhvcml6
YXRpb24iLCAiQmFzaWMgUVhWMGFHOXlhWHBoZEdsdmJpMUlaV0ZrWlhJNlFYVjBhRzl5YVhwaGRH
bHZiaTFJWldGa1pYST0iKTsKKyAgICB9CisKKyAgICB4aHIub25sb2FkID0gKHRlc3QpID0+IHsK
KyAgICAgICAgYXNzZXJ0X3RydWUoeGhyLnJlc3BvbnNlVGV4dC5pbmRleE9mKCJhY2NlcHQgaGVh
ZGVyIGZvdW5kOiBncm9vdnkiKSAhPT0gLTEsICJ4aHIgZmluYWwgcmVxdWVzdCBzaG91bGQgaGF2
ZSBhbiBhY2NlcHQ9Z3Jvb3Z5IGhlYWRlciIpOworICAgICAgICBpZiAoIXNpbXBsZVJlcXVlc3Qp
IHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKHhoci5yZXNwb25zZVRleHQuaW5kZXhPZigieC13
ZWJraXQgaGVhZGVyIGZvdW5kOiBmdW5reSIpICE9PSAtMSwgInhociBmaW5hbCByZXF1ZXN0IHNo
b3VsZCBoYXZlIGEgeC13ZWJraXQ9ZnVua3kgaGVhZGVyIik7CisgICAgICAgICAgICBhc3NlcnRf
dHJ1ZSh4aHIucmVzcG9uc2VUZXh0LmluZGV4T2YoImNvbnRlbnQtdHlwZSBoZWFkZXIgZm91bmQ6
IHJvY2t5IikgIT09IC0xLCAieGhyIGZpbmFsIHJlcXVlc3Qgc2hvdWxkIGhhdmUgYSBjb250ZW50
LXR5cGU9Z3Jvb3Z5IGhlYWRlciIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoeGhyLnJlc3Bv
bnNlVGV4dC5pbmRleE9mKCJub3QgZm91bmQgYW55IGF1dGhvcml6YXRpb24gaGVhZGVyIikgIT09
IC0xLCAieGhyIGZpbmFsIHJlcXVlc3Qgc2hvdWxkIG5vdCBoYXZlIGFuIGF1dGhvcml6YXRpb24g
aGVhZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgdGVzdFBhc3NlZCA9IHRydWU7CisgICAgfQor
CisgICAgeGhyLm9uZXJyb3IgPSAoZSkgPT4geworICAgICAgICByZWplY3RQcm9taXNlKCJMb2Fk
aW5nIGZhaWx1cmUiKTsKKyAgICB9CisKKyAgICB2YXIgdGVzdFBhc3NlZCA9IGZhbHNlOworICAg
IHhoci5vbmxvYWRlbmQgPSAoKSA9PiB7CisgICAgICAgIHRlc3RQYXNzZWQgPyByZXNvbHZlUHJv
bWlzZSgpIDogcmVqZWN0UHJvbWlzZSgidGVzdFBhc3NlZCBpcyBub3QgdHJ1ZSIpOworICAgIH0K
KyAgICB4aHIuc2VuZCgpOworICAgIHJldHVybiBwcm9taXNlOworICB9LCB0ZXN0TmFtZSk7Cit9
CisKK3ZhciBzaW1wbGVSZXF1ZXN0ID0gdHJ1ZTsKKworZG9UZXN0KCJDaGVjayBoZWFkZXJzIGFm
dGVyIHNhbWUtb3JpZ2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3JpZ2luIHJlc291cmNlIChzaW1w
bGUgcmVxdWVzdCkiLAorICAgICAgICAicmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdo
dC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3Qu
cGhwIiwKKyAgICAgICAgc2ltcGxlUmVxdWVzdCk7CisKK2RvVGVzdCgiQ2hlY2sgaGVhZGVycyBh
ZnRlciBzYW1lLW9yaWdpbiByZWRpcmVjdGlvbiB0byBzYW1lLW9yaWdpbiByZXNvdXJjZSAobm90
IHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJyZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJl
ZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vMTI3LjAuMC4xOjgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRp
cmVjdC5waHAiLAorICAgICAgICAhc2ltcGxlUmVxdWVzdCk7CisKK2RvVGVzdCgiQ2hlY2sgaGVh
ZGVycyBhZnRlciBzYW1lIG9yaWdpbiByZWRpcmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVzb3Vy
Y2UgKHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJyZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wt
cHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vbG9jYWxob3N0
OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1y
ZWRpcmVjdC5waHAiLAorICAgICAgICBzaW1wbGVSZXF1ZXN0KTsKKworZG9UZXN0KCJDaGVjayBo
ZWFkZXJzIGFmdGVyIHNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uIHRvIGNyb3NzLW9yaWdpbiByZXNv
dXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJyZXNvdXJjZXMvYWNjZXNzLWNv
bnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vbG9j
YWxob3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZs
aWdodC1yZWRpcmVjdC5waHAiLAorICAgICAgICAhc2ltcGxlUmVxdWVzdCk7CisKK2RvVGVzdCgi
Q2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gc2FtZS1vcmln
aW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJodHRwOi8vbG9jYWxob3N0
OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1y
ZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhw
IiwKKyAgICAgICAgc2ltcGxlUmVxdWVzdCk7CisKKy8vIEZJWE1FOiBUaGlzdGVzdCB3aWxsIG5v
dCBwYXNzIGFzIGxvbmcgYXMgbm90LXNpbXBsZSBjcm9zcyBvcmlnaW4gcmVxdWVzdHMgYXJlIG5v
dCBhbGxvd2VkIHRvIHJlZGlyZWN0LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTA1Ni4KK2RvVGVzdCgiQ2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmln
aW4gcmVkaXJlY3Rpb24gdG8gc2FtZS1vcmlnaW4gcmVzb3VyY2UgKG5vdCBzaW1wbGUgcmVxdWVz
dCkiLAorICAgICAgICAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwP3JlZGlyZWN0PXRydWUm
dXJsPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNz
LWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocCIsCisgICAgICAgICFzaW1wbGVSZXF1ZXN0
KTsKKworZG9UZXN0KCJDaGVjayBoZWFkZXJzIGFmdGVyIGNyb3NzLW9yaWdpbiByZWRpcmVjdGlv
biB0byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJo
dHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250
cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDovL2xvY2Fs
aG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGln
aHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgc2ltcGxlUmVxdWVzdCk7CisKKy8vIEZJWE1FOiBU
aGlzdGVzdCB3aWxsIG5vdCBwYXNzIGFzIGxvbmcgYXMgbm90LXNpbXBsZSBjcm9zcyBvcmlnaW4g
cmVxdWVzdHMgYXJlIG5vdCBhbGxvd2VkIHRvIHJlZGlyZWN0LiBTZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA1Ni4KK2RvVGVzdCgiQ2hlY2sgaGVhZGVycyBh
ZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIChu
b3Qgc2ltcGxlIHJlcXVlc3QpIiwKKyAgICAgICAgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBo
cD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAiLAorICAgICAg
ICAhc2ltcGxlUmVxdWVzdCk7CisKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxp
Z2h0LXJlZGlyZWN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWMxNGY3M2Y0NzdkZDFhMzU3ZmJlMTEwOGYw
OGIwZGQ0NjU1OGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0
LnBocApAQCAtMCwwICsxLDQ3IEBACis8P3BocAorCitoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbjogKiIpOworaGVhZGVyKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzOiBH
RVQiKTsKK2hlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVyczogYXV0aG9yaXphdGlv
biwgeC13ZWJraXQsIGNvbnRlbnQtdHlwZSIpOworCitpZiAoJF9TRVJWRVJbJ1JFUVVFU1RfTUVU
SE9EJ10gPT0gIk9QVElPTlMiKSB7CisgICAgaGVhZGVyKCJIVFRQLzEuMSAyMDAiKTsKKyAgICBy
ZXR1cm47Cit9CisKKyRyZWRpcmVjdCA9ICRfR0VUWydyZWRpcmVjdCddOworJHVybCA9ICRfR0VU
Wyd1cmwnXTsKKworaWYgKGlzc2V0KCRyZWRpcmVjdCkpIHsKKyAgICBoZWFkZXIoIkhUVFAvMS4x
IDMwMiIpOworICAgIGhlYWRlcigiTG9jYXRpb246ICR1cmwiKTsKKyAgICByZXR1cm47Cit9CisK
K2hlYWRlcigiSFRUUC8xLjEgMjAwIik7CisKK2lmICghaXNzZXQoJF9TRVJWRVJbIkhUVFBfWF9X
RUJLSVQiXSkpIHsKKyAgICBlY2hvICJub3QgZm91bmQgYW55IHgtd2Via2l0IGhlYWRlciBmb3Vu
ZCI7Cit9IGVsc2UgeworICAgIGVjaG8gIngtd2Via2l0IGhlYWRlciBmb3VuZDogIiAuICRfU0VS
VkVSWyJIVFRQX1hfV0VCS0lUIl07Cit9CitlY2hvICJcbiI7CitpZiAoIWlzc2V0KCRfU0VSVkVS
WyJIVFRQX0FDQ0VQVCJdKSkgeworICAgIGVjaG8gIm5vdCBmb3VuZCBhbnkgYWNjZXB0IGhlYWRl
ciBmb3VuZCI7Cit9IGVsc2UgeworICAgIGVjaG8gImFjY2VwdCBoZWFkZXIgZm91bmQ6ICIgLiAk
X1NFUlZFUlsiSFRUUF9BQ0NFUFQiXTsKK30KK2VjaG8gIlxuIjsKK2lmICghaXNzZXQoJF9TRVJW
RVJbIkNPTlRFTlRfVFlQRSJdKSkgeworICAgIGVjaG8gIm5vdCBmb3VuZCBhbnkgY29udGVudC10
eXBlIGhlYWRlciI7Cit9IGVsc2UgeworICAgIGVjaG8gImNvbnRlbnQtdHlwZSBoZWFkZXIgZm91
bmQ6ICIgLiAkX1NFUlZFUlsiQ09OVEVOVF9UWVBFIl07Cit9CitlY2hvICJcbiI7CitpZiAoIWlz
c2V0KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pKSB7CisgICAgZWNobyAibm90IGZvdW5kIGFu
eSBhdXRob3JpemF0aW9uIGhlYWRlciI7Cit9IGVsc2UgeworICAgIGVjaG8gImF1dGhvcml6YXRp
b24gaGVhZGVyIGZvdW5kIjsKK30KKworPz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>284689</attachid>
            <date>2016-07-27 06:30:26 -0700</date>
            <delta_ts>2016-08-21 06:08:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112471-20160727152914.patch</filename>
            <type>text/plain</type>
            <size>14295</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmViZjExMDIxOTNkYzU4
MTY0NmRjZjlhMDRjOTMyYzRiNTIzNDMzZC4uNzY2ZjVkYTY2ODJlMzBiMTA1ZDBhNzQ0YjlmYTMy
NTIyOWI1YmVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA3LTI3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBjcm9zcy1vcmlnaW4gcmVx
dWVzdHMgcmVkaXJlY3RlZCBmYWlsIG9yIGRyb3AgYXV0aG9yIHJlcXVlc3RlZCBoZWFkZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwK
KworICAgICAgICBTdG9yaW5nIG9yaWdpbmFsIGhlYWRlcnMgaW4gRG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyLgorICAgICAgICBJbiBjYXNlIG9mIGNyb3NzLW9yaWdpbiByZWRpcmVjdGlvbiBpbiBD
T1JTIG1vZGUsIHNldCB0aGUgbmV3IHJlcXVlc3QgaGVhZGVycyB0byB0aGUgb3JpZ2luYWwgaGVh
ZGVycy4KKyAgICAgICAgQWRkIGEgc3BlY2lhbCBoYW5kbGluZyB0byBBdXRob3JpemF0aW9uIGhl
YWRlciB0aGF0IHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGl0IGlzIGFscmVhZHkgcmVtb3ZlZCBi
eSB0aGUgbmV0d29yayBsYXllci4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlcjo6bG9hZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuaDoKKwogMjAxNi0wNy0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0ZldGNoIEFQSV0gUmVzcG9uc2UgY29uc3RydWN0b3Igc2hvdWxkIGJl
IGFibGUgdG8gdGFrZSBhIFJlYWRhYmxlU3RyZWFtIGFzIGJvZHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNmU2OTljZmM5
OWRjOWEzMjZmNmY3YzhiYmE3MzlhMzE2ZTQ5N2E4Mi4uYjRiYzI1NmQ0ZmJiYTdmM2JmZDZmZTRi
MWVkMzM2ZTQ3ODI1ZWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAgLTk2LDYgKzk2LDEyIEBAIERvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwg
VGhyZWFkYWJsCiAKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0FsbG93
ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShyZXF1ZXN0LnVybCgpKSk7CiAKKyAgICBBU1NFUlQo
IXJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpPcmln
aW4pKTsKKyAgICAvLyBDb3B5IGhlYWRlcnMgaWYgd2UgbmVlZCB0byByZXBsYXkgdGhlIHJlcXVl
c3QgYWZ0ZXIgYSByZWRpcmVjdGlvbi4KKyAgICBpZiAobV9hc3luYykKKyAgICAgICAgbV9vcmln
aW5hbEhlYWRlcnMgPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKKworCiAgICAgaWYgKG1f
c2FtZU9yaWdpblJlcXVlc3QgfHwgbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOb0NvcnMpIHsKICAgICAgICAgbG9hZFJlcXVlc3QocmVxdWVzdCwgRG9TZWN1cml0eUNoZWNr
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjE5LDExICsyMjUsMTIgQEAgdm9pZCBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXI6OnJlZGlyZWN0UmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNl
LCBSZXNvdXIKICAgICBpZiAoaXNBbGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIC8vIFdoZW4gdXNpbmcgYWNjZXNzIGNvbnRyb2wsIG9ubHkgc2lt
cGxlIGNyb3NzIG9yaWdpbiByZXF1ZXN0cyBhcmUgYWxsb3dlZCB0byByZWRpcmVjdC4gVGhlIG5l
dyByZXF1ZXN0IFVSTCBtdXN0IGhhdmUgYSBzdXBwb3J0ZWQKLSAgICAvLyBzY2hlbWUgYW5kIG5v
dCBjb250YWluIHRoZSB1c2VyaW5mbyBwcm9kdWN0aW9uLiBJbiBhZGRpdGlvbiwgdGhlIHJlZGly
ZWN0IHJlc3BvbnNlIG11c3QgcGFzcyB0aGUgYWNjZXNzIGNvbnRyb2wgY2hlY2sgaWYgdGhlCi0g
ICAgLy8gb3JpZ2luYWwgcmVxdWVzdCB3YXMgbm90IHNhbWUtb3JpZ2luLgorICAgIC8vIFdoZW4g
dXNpbmcgYWNjZXNzIGNvbnRyb2wsIHRoZSBuZXcgcmVxdWVzdCBVUkwgbXVzdCBoYXZlIGEgc3Vw
cG9ydGVkIHNjaGVtZSBhbmQgbm90IGNvbnRhaW4gdGhlIHVzZXJpbmZvIHByb2R1Y3Rpb24uCisg
ICAgLy8gSW4gYWRkaXRpb24sIHRoZSByZWRpcmVjdCByZXNwb25zZSBtdXN0IHBhc3MgdGhlIGFj
Y2VzcyBjb250cm9sIGNoZWNrIGlmIHRoZSBvcmlnaW5hbCByZXF1ZXN0IHdhcyBub3Qgc2FtZS1v
cmlnaW4uCiAgICAgaWYgKG1fb3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29y
cykgewogICAgICAgICBib29sIGFsbG93UmVkaXJlY3QgPSBmYWxzZTsKKyAgICAgICAgLy8gRklY
TUU6IFdlIG1pZ2h0IHdhbnQgdG8gc3RvcCByZXN0cmljdGluZyBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3Rpb25zIHRvIHNpbXBsZSByZXF1ZXN0cy4KKyAgICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkwNTYuCiAgICAgICAgIGlmIChtX3NpbXBsZVJl
cXVlc3QpIHsKICAgICAgICAgICAgIFN0cmluZyBhY2Nlc3NDb250cm9sRXJyb3JEZXNjcmlwdGlv
bjsKICAgICAgICAgICAgIGFsbG93UmVkaXJlY3QgPSBpc1ZhbGlkQ3Jvc3NPcmlnaW5SZWRpcmVj
dGlvblVSTChyZXF1ZXN0LnVybCgpKQpAQCAtMjQ3LDcgKzI1NCwxMiBAQCB2b2lkIERvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSogcmVzb3Vy
Y2UsIFJlc291cgogICAgICAgICAgICAgaWYgKG1fb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRj
aE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luKQogICAgICAgICAgICAgICAgIG1fb3B0
aW9ucy5zZXRBbGxvd0NyZWRlbnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CiAK
LSAgICAgICAgICAgIGNsZWFuUmVkaXJlY3RlZFJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKHJlcXVl
c3QpOworICAgICAgICAgICAgQVNTRVJUKG1fb3JpZ2luYWxIZWFkZXJzKTsKKyAgICAgICAgICAg
IC8vIExldCdzIGZldGNoIHRoZSByZXF1ZXN0IHdpdGggdGhlIG9yaWdpbmFsIGhlYWRlcnMgKGVx
dWl2YWxlbnQgdG8gcmVxdWVzdCBjbG9uaW5nIHNwZWNpZmllZCBieSBmZXRjaCBhbGdvcml0aG0p
LgorICAgICAgICAgICAgLy8gRG8gbm90IGNvcHkgdGhlIEF1dGhvcml6YXRpb24gaGVhZGVyIGlm
IHJlbW92ZWQgYnkgdGhlIG5ldHdvcmsgbGF5ZXIuCisgICAgICAgICAgICBpZiAoIXJlcXVlc3Qu
aHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9u
KSkKKyAgICAgICAgICAgICAgICBtX29yaWdpbmFsSGVhZGVycy0+cmVtb3ZlKEhUVFBIZWFkZXJO
YW1lOjpBdXRob3JpemF0aW9uKTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZp
ZWxkcygqbV9vcmlnaW5hbEhlYWRlcnMpOwogCiAgICAgICAgICAgICBtYWtlQ3Jvc3NPcmlnaW5B
Y2Nlc3NSZXF1ZXN0KHJlcXVlc3QpOwogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCmluZGV4IDg3YzhhOGJm
NmE4NGFiYjA3Yzg0Y2VjNmU4Mzg1YTkwZDdkNTY4MmIuLjY1ZjI0NmI5ZTM0MmJjNWY0MGUyNDky
ZDljYmFkMTUxYzgwYWEzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyLmgKQEAgLTExNCw2ICsxMTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgbV9hc3luYzsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRl
bnRTZWN1cml0eVBvbGljeT4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgICAgIE9wdGlv
bmFsPENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlcj4gbV9wcmVmbGlnaHRDaGVja2VyOworICAg
ICAgICBPcHRpb25hbDxIVFRQSGVhZGVyTWFwPiBtX29yaWdpbmFsSGVhZGVyczsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWI5ZmQ2MTBjZGIwZDM0YzhmMTQ1MWNj
MGMxOWE5M2IyMmMwNmUxNy4uNTllYTZjNmFiN2MzMTA5ODZhZmQ1NTlkYjcxZTk1MWMwZDUyNjQ1
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA3LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBjcm9zcy1vcmlnaW4gcmVxdWVzdHMgcmVkaXJlY3Rl
ZCBmYWlsIG9yIGRyb3AgYXV0aG9yIHJlcXVlc3RlZCBoZWFkZXJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1o
ZWFkZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA6IEFkZGVkLgor
CiAyMDE2LTA3LTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CiAKICAgICAg
ICAgSlMgQnVpbHQtaW5zIHNob3VsZCB0aHJvdyB0aGlzLWVycm9yIG1lc3NhZ2VzIGNvbnNpc3Rl
bnRseSB3aXRoIGJpbmRpbmcgZ2VuZXJhdGVkIGNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRlcnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRp
cmVjdGlvbnMtYW5kLXVzZXItaGVhZGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI3MmZj
ZDI1MjZmNzc5MmNiNDczZmU5ZmUxY2ExM2VjMTdiODc3NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2Vy
LWhlYWRlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwP3Jl
ZGlyZWN0PXRydWUmdXJsPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocC4gQ3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0aW9uIGRlbmllZCBieSBDcm9zcy1PcmlnaW4gUmVzb3VyY2UgU2hhcmluZyBwb2xp
Y3kuCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9s
b2NhbGhvc3Q6ODA4MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJl
ZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vbG9jYWxob3N0Ojgw
ODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRp
cmVjdC5waHAuIENyb3NzLW9yaWdpbiByZWRpcmVjdGlvbiBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2lu
IFJlc291cmNlIFNoYXJpbmcgcG9saWN5LgorCitQQVNTIENoZWNrIGhlYWRlcnMgYWZ0ZXIgc2Ft
ZS1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gc2FtZS1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1
ZXN0KSAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1lLW9yaWdpbiByZWRpcmVjdGlvbiB0
byBzYW1lLW9yaWdpbiByZXNvdXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSAKK1BBU1MgQ2hlY2sg
aGVhZGVycyBhZnRlciBzYW1lIG9yaWdpbiByZWRpcmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVz
b3VyY2UgKHNpbXBsZSByZXF1ZXN0KSAKK1BBU1MgQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1lIG9y
aWdpbiByZWRpcmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKG5vdCBzaW1wbGUgcmVx
dWVzdCkgCitQQVNTIENoZWNrIGhlYWRlcnMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9u
IHRvIHNhbWUtb3JpZ2luIHJlc291cmNlIChzaW1wbGUgcmVxdWVzdCkgCitGQUlMIENoZWNrIGhl
YWRlcnMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3JpZ2luIHJlc291
cmNlIChub3Qgc2ltcGxlIHJlcXVlc3QpIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiAiTG9hZGluZyBmYWlsdXJlIgorUEFTUyBDaGVjayBoZWFkZXJzIGFmdGVy
IGNyb3NzLW9yaWdpbiByZWRpcmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKHNpbXBs
ZSByZXF1ZXN0KSAKK0ZBSUwgQ2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3Rpb24gdG8gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIChub3Qgc2ltcGxlIHJlcXVlc3QpIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiTG9hZGluZyBmYWlsdXJl
IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
ZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmI4YjNmMTY1ZDk1YWQ2ZjZhZGMyZGNkMThhOTg0M2FiZDE3Y2JhZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rp
b25zLWFuZC11c2VyLWhlYWRlcnMuaHRtbApAQCAtMCwwICsxLDkxIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+WE1MSHR0cFJlcXVlc3Q6IGVuc3VyZSB1
c2VyIHNjcmlwdCBoZWFkZXJzIGRvIG5vdCBnZXQgZHJvcHBlZCBkdXJpbmcgY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0aW9uczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBkb1Rlc3QodGVzdE5hbWUsIHRlc3RV
UkwsIHNpbXBsZVJlcXVlc3QsIGNoYW5nZU9yaWdpbikKK3sKKyAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzb2x2ZVByb21pc2UsIHJlamVjdFByb21pc2U7CisgICAg
dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAg
IHJlc29sdmVQcm9taXNlID0gcmVzb2x2ZTsKKyAgICAgICAgcmVqZWN0UHJvbWlzZSA9IHJlamVj
dDsKKyAgICB9KTsKKworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgICAgeGhy
Lm9wZW4oIkdFVCIsIHRlc3RVUkwpOworICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJhY2NlcHQi
LCAiZ3Jvb3Z5Iik7CisKKyAgICBpZiAoIXNpbXBsZVJlcXVlc3QpIHsKKyAgICAgICAgeGhyLnNl
dFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZ1bmt5Iik7CisgICAgICAgIHhoci5zZXRSZXF1
ZXN0SGVhZGVyKCJjb250ZW50LXR5cGUiLCAicm9ja3kiKTsKKyAgICAgICAgeGhyLnNldFJlcXVl
c3RIZWFkZXIoImF1dGhvcml6YXRpb24iLCAiQmFzaWMgUVhWMGFHOXlhWHBoZEdsdmJpMUlaV0Zr
WlhJNlFYVjBhRzl5YVhwaGRHbHZiaTFJWldGa1pYST0iKTsKKyAgICB9CisKKyAgICB4aHIub25s
b2FkID0gKHRlc3QpID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoeGhyLnJlc3BvbnNlVGV4dC5p
bmRleE9mKCJhY2NlcHQgaGVhZGVyIGZvdW5kOiBncm9vdnkiKSAhPT0gLTEsICJ4aHIgZmluYWwg
cmVxdWVzdCBzaG91bGQgaGF2ZSBhbiBhY2NlcHQ9Z3Jvb3Z5IGhlYWRlciIpOworICAgICAgICBp
ZiAoIXNpbXBsZVJlcXVlc3QpIHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKHhoci5yZXNwb25z
ZVRleHQuaW5kZXhPZigieC13ZWJraXQgaGVhZGVyIGZvdW5kOiBmdW5reSIpICE9PSAtMSwgInho
ciBmaW5hbCByZXF1ZXN0IHNob3VsZCBoYXZlIGEgeC13ZWJraXQ9ZnVua3kgaGVhZGVyIik7Cisg
ICAgICAgICAgICBhc3NlcnRfdHJ1ZSh4aHIucmVzcG9uc2VUZXh0LmluZGV4T2YoImNvbnRlbnQt
dHlwZSBoZWFkZXIgZm91bmQ6IHJvY2t5IikgIT09IC0xLCAieGhyIGZpbmFsIHJlcXVlc3Qgc2hv
dWxkIGhhdmUgYSBjb250ZW50LXR5cGU9Z3Jvb3Z5IGhlYWRlciIpOworICAgICAgICAgICAgYXNz
ZXJ0X3RydWUoeGhyLnJlc3BvbnNlVGV4dC5pbmRleE9mKCJub3QgZm91bmQgYW55IGF1dGhvcml6
YXRpb24gaGVhZGVyIikgIT09IC0xLCAieGhyIGZpbmFsIHJlcXVlc3Qgc2hvdWxkIG5vdCBoYXZl
IGFuIGF1dGhvcml6YXRpb24gaGVhZGVyIik7CisgICAgICAgIH0KKyAgICAgICAgdGVzdFBhc3Nl
ZCA9IHRydWU7CisgICAgfQorCisgICAgeGhyLm9uZXJyb3IgPSAoZSkgPT4geworICAgICAgICBy
ZWplY3RQcm9taXNlKCJMb2FkaW5nIGZhaWx1cmUiKTsKKyAgICB9CisKKyAgICB2YXIgdGVzdFBh
c3NlZCA9IGZhbHNlOworICAgIHhoci5vbmxvYWRlbmQgPSAoKSA9PiB7CisgICAgICAgIHRlc3RQ
YXNzZWQgPyByZXNvbHZlUHJvbWlzZSgpIDogcmVqZWN0UHJvbWlzZSgidGVzdFBhc3NlZCBpcyBu
b3QgdHJ1ZSIpOworICAgIH0KKyAgICB4aHIuc2VuZCgpOworICAgIHJldHVybiBwcm9taXNlOwor
ICB9LCB0ZXN0TmFtZSk7Cit9CisKK3ZhciBzaW1wbGVSZXF1ZXN0ID0gdHJ1ZTsKKworZG9UZXN0
KCJDaGVjayBoZWFkZXJzIGFmdGVyIHNhbWUtb3JpZ2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3Jp
Z2luIHJlc291cmNlIChzaW1wbGUgcmVxdWVzdCkiLAorICAgICAgICAicmVzb3VyY2VzL2FjY2Vz
cy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDov
LzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1w
cmVmbGlnaHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgc2ltcGxlUmVxdWVzdCk7CisKK2RvVGVz
dCgiQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1lLW9yaWdpbiByZWRpcmVjdGlvbiB0byBzYW1lLW9y
aWdpbiByZXNvdXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJyZXNvdXJjZXMv
YWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVybD1o
dHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250
cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAiLAorICAgICAgICAhc2ltcGxlUmVxdWVzdCk7CisK
K2RvVGVzdCgiQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1lIG9yaWdpbiByZWRpcmVjdGlvbiB0byBj
cm9zcy1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJyZXNvdXJj
ZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVy
bD1odHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1j
b250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAiLAorICAgICAgICBzaW1wbGVSZXF1ZXN0KTsK
KworZG9UZXN0KCJDaGVjayBoZWFkZXJzIGFmdGVyIHNhbWUgb3JpZ2luIHJlZGlyZWN0aW9uIHRv
IGNyb3NzLW9yaWdpbiByZXNvdXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJy
ZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10
cnVlJnVybD1odHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2Fj
Y2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAiLAorICAgICAgICAhc2ltcGxlUmVx
dWVzdCk7CisKK2RvVGVzdCgiQ2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3Rpb24gdG8gc2FtZS1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAg
ICJodHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1j
b250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDovLzEy
Ny4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVm
bGlnaHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgc2ltcGxlUmVxdWVzdCk7CisKKy8vIEZJWE1F
OiBUaGlzdGVzdCB3aWxsIG5vdCBwYXNzIGFzIGxvbmcgYXMgbm90LXNpbXBsZSBjcm9zcyBvcmln
aW4gcmVxdWVzdHMgYXJlIG5vdCBhbGxvd2VkIHRvIHJlZGlyZWN0LiBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA1Ni4KK2RvVGVzdCgiQ2hlY2sgaGVhZGVy
cyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gc2FtZS1vcmlnaW4gcmVzb3VyY2Ug
KG5vdCBzaW1wbGUgcmVxdWVzdCkiLAorICAgICAgICAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3Qu
cGhwP3JlZGlyZWN0PXRydWUmdXJsPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocCIsCisgICAg
ICAgICFzaW1wbGVSZXF1ZXN0KTsKKworZG9UZXN0KCJDaGVjayBoZWFkZXJzIGFmdGVyIGNyb3Nz
LW9yaWdpbiByZWRpcmVjdGlvbiB0byBjcm9zcy1vcmlnaW4gcmVzb3VyY2UgKHNpbXBsZSByZXF1
ZXN0KSIsCisgICAgICAgICJodHRwOi8vbG9jYWxob3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1
ZSZ1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nl
c3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgc2ltcGxlUmVxdWVz
dCk7CisKKy8vIEZJWE1FOiBUaGlzdGVzdCB3aWxsIG5vdCBwYXNzIGFzIGxvbmcgYXMgbm90LXNp
bXBsZSBjcm9zcyBvcmlnaW4gcmVxdWVzdHMgYXJlIG5vdCBhbGxvd2VkIHRvIHJlZGlyZWN0LiBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTA1Ni4KK2RvVGVz
dCgiQ2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mt
b3JpZ2luIHJlc291cmNlIChub3Qgc2ltcGxlIHJlcXVlc3QpIiwKKyAgICAgICAgImh0dHA6Ly9s
b2NhbGhvc3Q6ODA4MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJl
ZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVjdD10cnVlJnVybD1odHRwOi8vbG9jYWxob3N0Ojgw
ODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRp
cmVjdC5waHAiLAorICAgICAgICAhc2ltcGxlUmVxdWVzdCk7CisKKyAgICA8L3NjcmlwdD4KKyAg
PC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3Qu
cGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNj
ZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWMxNGY3M2Y0
NzdkZDFhMzU3ZmJlMTEwOGYwOGIwZGQ0NjU1OGMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wt
cHJlZmxpZ2h0LXJlZGlyZWN0LnBocApAQCAtMCwwICsxLDQ3IEBACis8P3BocAorCitoZWFkZXIo
IkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKiIpOworaGVhZGVyKCJBY2Nlc3MtQ29udHJv
bC1BbGxvdy1NZXRob2RzOiBHRVQiKTsKK2hlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVh
ZGVyczogYXV0aG9yaXphdGlvbiwgeC13ZWJraXQsIGNvbnRlbnQtdHlwZSIpOworCitpZiAoJF9T
RVJWRVJbJ1JFUVVFU1RfTUVUSE9EJ10gPT0gIk9QVElPTlMiKSB7CisgICAgaGVhZGVyKCJIVFRQ
LzEuMSAyMDAiKTsKKyAgICByZXR1cm47Cit9CisKKyRyZWRpcmVjdCA9ICRfR0VUWydyZWRpcmVj
dCddOworJHVybCA9ICRfR0VUWyd1cmwnXTsKKworaWYgKGlzc2V0KCRyZWRpcmVjdCkpIHsKKyAg
ICBoZWFkZXIoIkhUVFAvMS4xIDMwMiIpOworICAgIGhlYWRlcigiTG9jYXRpb246ICR1cmwiKTsK
KyAgICByZXR1cm47Cit9CisKK2hlYWRlcigiSFRUUC8xLjEgMjAwIik7CisKK2lmICghaXNzZXQo
JF9TRVJWRVJbIkhUVFBfWF9XRUJLSVQiXSkpIHsKKyAgICBlY2hvICJub3QgZm91bmQgYW55IHgt
d2Via2l0IGhlYWRlciBmb3VuZCI7Cit9IGVsc2UgeworICAgIGVjaG8gIngtd2Via2l0IGhlYWRl
ciBmb3VuZDogIiAuICRfU0VSVkVSWyJIVFRQX1hfV0VCS0lUIl07Cit9CitlY2hvICJcbiI7Citp
ZiAoIWlzc2V0KCRfU0VSVkVSWyJIVFRQX0FDQ0VQVCJdKSkgeworICAgIGVjaG8gIm5vdCBmb3Vu
ZCBhbnkgYWNjZXB0IGhlYWRlciBmb3VuZCI7Cit9IGVsc2UgeworICAgIGVjaG8gImFjY2VwdCBo
ZWFkZXIgZm91bmQ6ICIgLiAkX1NFUlZFUlsiSFRUUF9BQ0NFUFQiXTsKK30KK2VjaG8gIlxuIjsK
K2lmICghaXNzZXQoJF9TRVJWRVJbIkNPTlRFTlRfVFlQRSJdKSkgeworICAgIGVjaG8gIm5vdCBm
b3VuZCBhbnkgY29udGVudC10eXBlIGhlYWRlciI7Cit9IGVsc2UgeworICAgIGVjaG8gImNvbnRl
bnQtdHlwZSBoZWFkZXIgZm91bmQ6ICIgLiAkX1NFUlZFUlsiQ09OVEVOVF9UWVBFIl07Cit9Citl
Y2hvICJcbiI7CitpZiAoIWlzc2V0KCRfU0VSVkVSWydQSFBfQVVUSF9VU0VSJ10pKSB7CisgICAg
ZWNobyAibm90IGZvdW5kIGFueSBhdXRob3JpemF0aW9uIGhlYWRlciI7Cit9IGVsc2UgeworICAg
IGVjaG8gImF1dGhvcml6YXRpb24gaGVhZGVyIGZvdW5kIjsKK30KKworPz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286565</attachid>
            <date>2016-08-21 06:09:03 -0700</date>
            <delta_ts>2016-08-21 06:38:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-112471-20160821150705.patch</filename>
            <type>text/plain</type>
            <size>13264</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA5ZTQ5YzM2NmZiZmUw
NDY0NzVmN2NiYmRjNDk1NzljMTU4NDBlMC4uZjYyZDQ0M2YxOWU1OTQxNjg0YmVlMTg1YjdiOGMw
OTUwMzAzMDNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA4LTIxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBjcm9zcy1vcmlnaW4gcmVx
dWVzdHMgcmVkaXJlY3RlZCBmYWlsIG9yIGRyb3AgYXV0aG9yIHJlcXVlc3RlZCBoZWFkZXJzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTI0NzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRlc3Q6IGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRlcnMuaHRt
bAorCisgICAgICAgIFN0b3Jpbmcgb3JpZ2luYWwgaGVhZGVycyBpbiBEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuCisgICAgICAgIEluIGNhc2Ugb2YgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIGlu
IENPUlMgbW9kZSwgc2V0IHRoZSBuZXcgcmVxdWVzdCBoZWFkZXJzIHRvIHRoZSBvcmlnaW5hbCBo
ZWFkZXJzLgorICAgICAgICBBZGQgYSBzcGVjaWFsIGhhbmRsaW5nIHRvIEF1dGhvcml6YXRpb24g
aGVhZGVyIHRoYXQgc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gaXQgaXMgYWxyZWFkeSByZW1vdmVk
IGJ5IHRoZSBuZXR3b3JrIGxheWVyLgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXI6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyOjpsb2FkUmVxdWVzdCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5oOgorCiAyMDE2LTA4LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgRml4IHRoZSBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggNDY1YzQzMDg2ZjM4MzkxNDMzOTg2
MzYwYzZkY2ZkMTBiMjUxODYxOS4uYzRlMWZlYmFhYTgzNWI4N2Y0ZDA1NzM0ZmQxNzA0ODBmN2Nj
YTNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAKQEAgLTk5LDYgKzk5LDEyIEBAIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwgVGhyZWFkYWJsCiAK
ICAgICBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IChtX29wdGlvbnMuY3JlZGVudGlhbHMg
PT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSB8fCAobV9vcHRpb25zLmNyZWRl
bnRpYWxzID09IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gJiYgbV9zYW1l
T3JpZ2luUmVxdWVzdCkpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9y
ZWRDcmVkZW50aWFsczsKIAorICAgIEFTU0VSVCghcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCku
Y29udGFpbnMoSFRUUEhlYWRlck5hbWU6Ok9yaWdpbikpOworCisgICAgLy8gQ29weSBoZWFkZXJz
IGlmIHdlIG5lZWQgdG8gcmVwbGF5IHRoZSByZXF1ZXN0IGFmdGVyIGEgcmVkaXJlY3Rpb24uCisg
ICAgaWYgKG1fYXN5bmMgJiYgbV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpD
b3JzKQorICAgICAgICBtX29yaWdpbmFsSGVhZGVycyA9IHJlcXVlc3QuaHR0cEhlYWRlckZpZWxk
cygpOworCiAgICAgaWYgKG1fc2FtZU9yaWdpblJlcXVlc3QgfHwgbV9vcHRpb25zLm1vZGUgPT0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMpIHsKICAgICAgICAgbG9hZFJlcXVlc3QoV1RGTW92
ZShyZXF1ZXN0KSwgRG9TZWN1cml0eUNoZWNrKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjQ2LDkg
KzI1MiwxMyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZl
ZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UsIFJlc291cgogCiAgICAgY2xlYXJSZXNvdXJjZSgp
OwogCi0gICAgLy8gV2UgbmVlZCB0byBjbGVhbiB0aGUgcmVxdWVzdCBhZ2FpbiBhcyBTdWJyZXNv
dXJjZUxvYWRlciBtYXkgbm90IGFsd2F5cyBkbyB0aGUgY2xlYW5pbmcsCi0gICAgLy8gZXNwZWNp
YWxseSBpbiB0aGUgY2FzZSBvZiBhIGNyb3NzLW9yaWdpbiBsb2FkIGJ1dCByZWRpcmVjdGlvbiBz
dGlja2luZyB0byB0aGUgc2FtZSBvcmlnaW4uCi0gICAgY2xlYW5SZWRpcmVjdGVkUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2wocmVxdWVzdCk7CisgICAgQVNTRVJUKG1fb3JpZ2luYWxIZWFkZXJzKTsK
KyAgICAvLyBMZXQncyBmZXRjaCB0aGUgcmVxdWVzdCB3aXRoIHRoZSBvcmlnaW5hbCBoZWFkZXJz
IChlcXVpdmFsZW50IHRvIHJlcXVlc3QgY2xvbmluZyBzcGVjaWZpZWQgYnkgZmV0Y2ggYWxnb3Jp
dGhtKS4KKyAgICAvLyBEbyBub3QgY29weSB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgaWYgcmVt
b3ZlZCBieSB0aGUgbmV0d29yayBsYXllci4KKyAgICBpZiAoIXJlcXVlc3QuaHR0cEhlYWRlckZp
ZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpBdXRob3JpemF0aW9uKSkKKyAgICAgICAg
bV9vcmlnaW5hbEhlYWRlcnMtPnJlbW92ZShIVFRQSGVhZGVyTmFtZTo6QXV0aG9yaXphdGlvbik7
CisgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGRzKCptX29yaWdpbmFsSGVhZGVycyk7CisK
ICAgICBtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXF1ZXN0
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXIuaAppbmRleCA3ZDMyOTU3YzBlMWJlYzQyNjM1ZDZmNTc5ODNjYzY4ZjA5M2E0NDRjLi44
YTc4NGE1Zjk5ZGE3MTAzMTQ4YTEzY2Q2NzRkM2JkNWRlMmFjYzQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oCkBAIC0xMTcsNiArMTE3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fYXN5bmM7CiAgICAgICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+IG1fY29udGVudFNlY3VyaXR5
UG9saWN5OwogICAgICAgICBPcHRpb25hbDxDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI+IG1f
cHJlZmxpZ2h0Q2hlY2tlcjsKKyAgICAgICAgT3B0aW9uYWw8SFRUUEhlYWRlck1hcD4gbV9vcmln
aW5hbEhlYWRlcnM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRh
MGY1NGMyMmFhMWE0Mzc3ZGJmN2RhOGQ4MTdjMDdiZGVkNTZlODUuLjE1YTNkMTQ0OGFiZjMwMWJm
MDQ5ODc4MzdjYTYxMzRiYjk5MWQ2NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wOC0y
MSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgY3Jvc3Mtb3Jp
Z2luIHJlcXVlc3RzIHJlZGlyZWN0ZWQgZmFpbCBvciBkcm9wIGF1dGhvciByZXF1ZXN0ZWQgaGVh
ZGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEy
NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rpb25zLWFuZC11c2VyLWhlYWRlcnMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdo
dC1yZWRpcmVjdC5waHA6IEFkZGVkLgorCiAyMDE2LTA4LTE5ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgTG9jYXRpb24uYW5jZXN0b3JPcmlnaW5zIHNob3VsZCByZXR1
cm4gYSBGcm96ZW5BcnJheTxVU1ZTdHJpbmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFkZXJzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVkaXJlY3Rp
b25zLWFuZC11c2VyLWhlYWRlcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNzJmY2QyNTI2
Zjc3OTJjYjQ3M2ZlOWZlMWNhMTNlYzE3Yjg3NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1hbmQtdXNlci1oZWFk
ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IFhNTEh0
dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9yZWRpcmVj
dD10cnVlJnVybD1odHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAuIENyb3NzLW9yaWdpbiByZWRp
cmVjdGlvbiBkZW5pZWQgYnkgQ3Jvc3MtT3JpZ2luIFJlc291cmNlIFNoYXJpbmcgcG9saWN5Lgor
Q09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxo
b3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdo
dC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3Qu
cGhwLiBDcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gZGVuaWVkIGJ5IENyb3NzLU9yaWdpbiBSZXNv
dXJjZSBTaGFyaW5nIHBvbGljeS4KKworUEFTUyBDaGVjayBoZWFkZXJzIGFmdGVyIHNhbWUtb3Jp
Z2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3JpZ2luIHJlc291cmNlIChzaW1wbGUgcmVxdWVzdCkg
CitQQVNTIENoZWNrIGhlYWRlcnMgYWZ0ZXIgc2FtZS1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gc2Ft
ZS1vcmlnaW4gcmVzb3VyY2UgKG5vdCBzaW1wbGUgcmVxdWVzdCkgCitQQVNTIENoZWNrIGhlYWRl
cnMgYWZ0ZXIgc2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mtb3JpZ2luIHJlc291cmNl
IChzaW1wbGUgcmVxdWVzdCkgCitQQVNTIENoZWNrIGhlYWRlcnMgYWZ0ZXIgc2FtZSBvcmlnaW4g
cmVkaXJlY3Rpb24gdG8gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIChub3Qgc2ltcGxlIHJlcXVlc3Qp
IAorUEFTUyBDaGVjayBoZWFkZXJzIGFmdGVyIGNyb3NzLW9yaWdpbiByZWRpcmVjdGlvbiB0byBz
YW1lLW9yaWdpbiByZXNvdXJjZSAoc2ltcGxlIHJlcXVlc3QpIAorRkFJTCBDaGVjayBoZWFkZXJz
IGFmdGVyIGNyb3NzLW9yaWdpbiByZWRpcmVjdGlvbiB0byBzYW1lLW9yaWdpbiByZXNvdXJjZSAo
bm90IHNpbXBsZSByZXF1ZXN0KSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogIkxvYWRpbmcgZmFpbHVyZSIKK1BBU1MgQ2hlY2sgaGVhZGVycyBhZnRlciBjcm9z
cy1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIChzaW1wbGUgcmVx
dWVzdCkgCitGQUlMIENoZWNrIGhlYWRlcnMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9u
IHRvIGNyb3NzLW9yaWdpbiByZXNvdXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSBwcm9taXNlX3Rl
c3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIkxvYWRpbmcgZmFpbHVyZSIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWRpcmVj
dGlvbnMtYW5kLXVzZXItaGVhZGVycy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9yZWRpcmVjdGlvbnMtYW5kLXVzZXItaGVhZGVycy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJiOGIzZjE2NWQ5NWFkNmY2YWRjMmRjZDE4YTk4NDNhYmQxN2NiYWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZGlyZWN0aW9ucy1h
bmQtdXNlci1oZWFkZXJzLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPlhNTEh0dHBSZXF1ZXN0OiBlbnN1cmUgdXNlciBz
Y3JpcHQgaGVhZGVycyBkbyBub3QgZ2V0IGRyb3BwZWQgZHVyaW5nIGNyb3NzLW9yaWdpbiByZWRp
cmVjdGlvbnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gZG9UZXN0KHRlc3ROYW1lLCB0ZXN0VVJMLCBz
aW1wbGVSZXF1ZXN0LCBjaGFuZ2VPcmlnaW4pCit7CisgIHByb21pc2VfdGVzdChmdW5jdGlvbih0
ZXN0KSB7CisgICAgdmFyIHJlc29sdmVQcm9taXNlLCByZWplY3RQcm9taXNlOworICAgIHZhciBw
cm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICByZXNv
bHZlUHJvbWlzZSA9IHJlc29sdmU7CisgICAgICAgIHJlamVjdFByb21pc2UgPSByZWplY3Q7Cisg
ICAgfSk7CisKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0OworICAgIHhoci5vcGVu
KCJHRVQiLCB0ZXN0VVJMKTsKKyAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiYWNjZXB0IiwgImdy
b292eSIpOworCisgICAgaWYgKCFzaW1wbGVSZXF1ZXN0KSB7CisgICAgICAgIHhoci5zZXRSZXF1
ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmdW5reSIpOworICAgICAgICB4aHIuc2V0UmVxdWVzdEhl
YWRlcigiY29udGVudC10eXBlIiwgInJvY2t5Iik7CisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVh
ZGVyKCJhdXRob3JpemF0aW9uIiwgIkJhc2ljIFFYVjBhRzl5YVhwaGRHbHZiaTFJWldGa1pYSTZR
WFYwYUc5eWFYcGhkR2x2YmkxSVpXRmtaWEk9Iik7CisgICAgfQorCisgICAgeGhyLm9ubG9hZCA9
ICh0ZXN0KSA9PiB7CisgICAgICAgIGFzc2VydF90cnVlKHhoci5yZXNwb25zZVRleHQuaW5kZXhP
ZigiYWNjZXB0IGhlYWRlciBmb3VuZDogZ3Jvb3Z5IikgIT09IC0xLCAieGhyIGZpbmFsIHJlcXVl
c3Qgc2hvdWxkIGhhdmUgYW4gYWNjZXB0PWdyb292eSBoZWFkZXIiKTsKKyAgICAgICAgaWYgKCFz
aW1wbGVSZXF1ZXN0KSB7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh4aHIucmVzcG9uc2VUZXh0
LmluZGV4T2YoIngtd2Via2l0IGhlYWRlciBmb3VuZDogZnVua3kiKSAhPT0gLTEsICJ4aHIgZmlu
YWwgcmVxdWVzdCBzaG91bGQgaGF2ZSBhIHgtd2Via2l0PWZ1bmt5IGhlYWRlciIpOworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoeGhyLnJlc3BvbnNlVGV4dC5pbmRleE9mKCJjb250ZW50LXR5cGUg
aGVhZGVyIGZvdW5kOiByb2NreSIpICE9PSAtMSwgInhociBmaW5hbCByZXF1ZXN0IHNob3VsZCBo
YXZlIGEgY29udGVudC10eXBlPWdyb292eSBoZWFkZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF90
cnVlKHhoci5yZXNwb25zZVRleHQuaW5kZXhPZigibm90IGZvdW5kIGFueSBhdXRob3JpemF0aW9u
IGhlYWRlciIpICE9PSAtMSwgInhociBmaW5hbCByZXF1ZXN0IHNob3VsZCBub3QgaGF2ZSBhbiBh
dXRob3JpemF0aW9uIGhlYWRlciIpOworICAgICAgICB9CisgICAgICAgIHRlc3RQYXNzZWQgPSB0
cnVlOworICAgIH0KKworICAgIHhoci5vbmVycm9yID0gKGUpID0+IHsKKyAgICAgICAgcmVqZWN0
UHJvbWlzZSgiTG9hZGluZyBmYWlsdXJlIik7CisgICAgfQorCisgICAgdmFyIHRlc3RQYXNzZWQg
PSBmYWxzZTsKKyAgICB4aHIub25sb2FkZW5kID0gKCkgPT4geworICAgICAgICB0ZXN0UGFzc2Vk
ID8gcmVzb2x2ZVByb21pc2UoKSA6IHJlamVjdFByb21pc2UoInRlc3RQYXNzZWQgaXMgbm90IHRy
dWUiKTsKKyAgICB9CisgICAgeGhyLnNlbmQoKTsKKyAgICByZXR1cm4gcHJvbWlzZTsKKyAgfSwg
dGVzdE5hbWUpOworfQorCit2YXIgc2ltcGxlUmVxdWVzdCA9IHRydWU7CisKK2RvVGVzdCgiQ2hl
Y2sgaGVhZGVycyBhZnRlciBzYW1lLW9yaWdpbiByZWRpcmVjdGlvbiB0byBzYW1lLW9yaWdpbiBy
ZXNvdXJjZSAoc2ltcGxlIHJlcXVlc3QpIiwKKyAgICAgICAgInJlc291cmNlcy9hY2Nlc3MtY29u
dHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwP3JlZGlyZWN0PXRydWUmdXJsPWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxp
Z2h0LXJlZGlyZWN0LnBocCIsCisgICAgICAgIHNpbXBsZVJlcXVlc3QpOworCitkb1Rlc3QoIkNo
ZWNrIGhlYWRlcnMgYWZ0ZXIgc2FtZS1vcmlnaW4gcmVkaXJlY3Rpb24gdG8gc2FtZS1vcmlnaW4g
cmVzb3VyY2UgKG5vdCBzaW1wbGUgcmVxdWVzdCkiLAorICAgICAgICAicmVzb3VyY2VzL2FjY2Vz
cy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDov
LzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1w
cmVmbGlnaHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgIXNpbXBsZVJlcXVlc3QpOworCitkb1Rl
c3QoIkNoZWNrIGhlYWRlcnMgYWZ0ZXIgc2FtZSBvcmlnaW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mt
b3JpZ2luIHJlc291cmNlIChzaW1wbGUgcmVxdWVzdCkiLAorICAgICAgICAicmVzb3VyY2VzL2Fj
Y2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0
cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJv
bC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgc2ltcGxlUmVxdWVzdCk7CisKK2Rv
VGVzdCgiQ2hlY2sgaGVhZGVycyBhZnRlciBzYW1lIG9yaWdpbiByZWRpcmVjdGlvbiB0byBjcm9z
cy1vcmlnaW4gcmVzb3VyY2UgKG5vdCBzaW1wbGUgcmVxdWVzdCkiLAorICAgICAgICAicmVzb3Vy
Y2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1
cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3Mt
Y29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwIiwKKyAgICAgICAgIXNpbXBsZVJlcXVlc3Qp
OworCitkb1Rlc3QoIkNoZWNrIGhlYWRlcnMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9u
IHRvIHNhbWUtb3JpZ2luIHJlc291cmNlIChzaW1wbGUgcmVxdWVzdCkiLAorICAgICAgICAiaHR0
cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJv
bC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwP3JlZGlyZWN0PXRydWUmdXJsPWh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0
LXJlZGlyZWN0LnBocCIsCisgICAgICAgIHNpbXBsZVJlcXVlc3QpOworCisvLyBGSVhNRTogVGhp
c3Rlc3Qgd2lsbCBub3QgcGFzcyBhcyBsb25nIGFzIG5vdC1zaW1wbGUgY3Jvc3Mgb3JpZ2luIHJl
cXVlc3RzIGFyZSBub3QgYWxsb3dlZCB0byByZWRpcmVjdC4gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkwNTYuCitkb1Rlc3QoIkNoZWNrIGhlYWRlcnMgYWZ0
ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIHRvIHNhbWUtb3JpZ2luIHJlc291cmNlIChub3Qg
c2ltcGxlIHJlcXVlc3QpIiwKKyAgICAgICAgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocD9y
ZWRpcmVjdD10cnVlJnVybD1odHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAiLAorICAgICAgICAh
c2ltcGxlUmVxdWVzdCk7CisKK2RvVGVzdCgiQ2hlY2sgaGVhZGVycyBhZnRlciBjcm9zcy1vcmln
aW4gcmVkaXJlY3Rpb24gdG8gY3Jvc3Mtb3JpZ2luIHJlc291cmNlIChzaW1wbGUgcmVxdWVzdCki
LAorICAgICAgICAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3QucGhwP3JlZGlyZWN0PXRydWUmdXJs
PWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNv
bnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocCIsCisgICAgICAgIHNpbXBsZVJlcXVlc3QpOwor
CisvLyBGSVhNRTogVGhpc3Rlc3Qgd2lsbCBub3QgcGFzcyBhcyBsb25nIGFzIG5vdC1zaW1wbGUg
Y3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIGFyZSBub3QgYWxsb3dlZCB0byByZWRpcmVjdC4gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTkwNTYuCitkb1Rlc3QoIkNo
ZWNrIGhlYWRlcnMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0aW9uIHRvIGNyb3NzLW9yaWdp
biByZXNvdXJjZSAobm90IHNpbXBsZSByZXF1ZXN0KSIsCisgICAgICAgICJodHRwOi8vbG9jYWxo
b3N0OjgwODAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZsaWdo
dC1yZWRpcmVjdC5waHA/cmVkaXJlY3Q9dHJ1ZSZ1cmw9aHR0cDovL2xvY2FsaG9zdDo4MDgwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtcmVkaXJlY3Qu
cGhwIiwKKyAgICAgICAgIXNpbXBsZVJlcXVlc3QpOworCisgICAgPC9zY3JpcHQ+CisgIDwvYm9k
eT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LXJlZGlyZWN0LnBocCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1j
b250cm9sLXByZWZsaWdodC1yZWRpcmVjdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVjMTRmNzNmNDc3ZGQx
YTM1N2ZiZTExMDhmMDhiMGRkNDY1NThjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLXByZWZs
aWdodC1yZWRpcmVjdC5waHAKQEAgLTAsMCArMSw0NyBAQAorPD9waHAKKworaGVhZGVyKCJBY2Nl
c3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICoiKTsKK2hlYWRlcigiQWNjZXNzLUNvbnRyb2wtQWxs
b3ctTWV0aG9kczogR0VUIik7CitoZWFkZXIoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnM6
IGF1dGhvcml6YXRpb24sIHgtd2Via2l0LCBjb250ZW50LXR5cGUiKTsKKworaWYgKCRfU0VSVkVS
WydSRVFVRVNUX01FVEhPRCddID09ICJPUFRJT05TIikgeworICAgIGhlYWRlcigiSFRUUC8xLjEg
MjAwIik7CisgICAgcmV0dXJuOworfQorCiskcmVkaXJlY3QgPSAkX0dFVFsncmVkaXJlY3QnXTsK
KyR1cmwgPSAkX0dFVFsndXJsJ107CisKK2lmIChpc3NldCgkcmVkaXJlY3QpKSB7CisgICAgaGVh
ZGVyKCJIVFRQLzEuMSAzMDIiKTsKKyAgICBoZWFkZXIoIkxvY2F0aW9uOiAkdXJsIik7CisgICAg
cmV0dXJuOworfQorCitoZWFkZXIoIkhUVFAvMS4xIDIwMCIpOworCitpZiAoIWlzc2V0KCRfU0VS
VkVSWyJIVFRQX1hfV0VCS0lUIl0pKSB7CisgICAgZWNobyAibm90IGZvdW5kIGFueSB4LXdlYmtp
dCBoZWFkZXIgZm91bmQiOworfSBlbHNlIHsKKyAgICBlY2hvICJ4LXdlYmtpdCBoZWFkZXIgZm91
bmQ6ICIgLiAkX1NFUlZFUlsiSFRUUF9YX1dFQktJVCJdOworfQorZWNobyAiXG4iOworaWYgKCFp
c3NldCgkX1NFUlZFUlsiSFRUUF9BQ0NFUFQiXSkpIHsKKyAgICBlY2hvICJub3QgZm91bmQgYW55
IGFjY2VwdCBoZWFkZXIgZm91bmQiOworfSBlbHNlIHsKKyAgICBlY2hvICJhY2NlcHQgaGVhZGVy
IGZvdW5kOiAiIC4gJF9TRVJWRVJbIkhUVFBfQUNDRVBUIl07Cit9CitlY2hvICJcbiI7CitpZiAo
IWlzc2V0KCRfU0VSVkVSWyJDT05URU5UX1RZUEUiXSkpIHsKKyAgICBlY2hvICJub3QgZm91bmQg
YW55IGNvbnRlbnQtdHlwZSBoZWFkZXIiOworfSBlbHNlIHsKKyAgICBlY2hvICJjb250ZW50LXR5
cGUgaGVhZGVyIGZvdW5kOiAiIC4gJF9TRVJWRVJbIkNPTlRFTlRfVFlQRSJdOworfQorZWNobyAi
XG4iOworaWYgKCFpc3NldCgkX1NFUlZFUlsnUEhQX0FVVEhfVVNFUiddKSkgeworICAgIGVjaG8g
Im5vdCBmb3VuZCBhbnkgYXV0aG9yaXphdGlvbiBoZWFkZXIiOworfSBlbHNlIHsKKyAgICBlY2hv
ICJhdXRob3JpemF0aW9uIGhlYWRlciBmb3VuZCI7Cit9CisKKz8+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>