<?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>180894</bug_id>
          
          <creation_ts>2017-12-15 16:55:16 -0800</creation_ts>
          <short_desc>Add support for response blob given to fetch events</short_desc>
          <delta_ts>2017-12-18 11:54:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1382386</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-15 16:55:16 -0800</bug_when>
    <thetext>Add support for response blob given to fetch events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382387</commentid>
    <comment_count>1</comment_count>
      <attachid>329544</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-15 17:04:44 -0800</bug_when>
    <thetext>Created attachment 329544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382388</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-15 17:05:46 -0800</bug_when>
    <thetext>Attachment 329544 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:57:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:61:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 2 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382627</commentid>
    <comment_count>3</comment_count>
      <attachid>329544</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-12-17 12:03:07 -0800</bug_when>
    <thetext>Comment on attachment 329544
Patch

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

&gt; Source/WebCore/platform/network/FormData.cpp:451
&gt; +    URL blobURL;
&gt; +    for (auto&amp; element : m_elements) {
&gt; +        if (element.m_type != FormDataElement::Type::EncodedBlob || !blobURL.isNull())
&gt; +            return { };
&gt; +        blobURL = element.m_url;
&gt; +    }
&gt; +    return blobURL;

I think this is a strange way to write this. I think the algorithm it follows is: Return the URL only if there is only a single element of type EncodedBlob. But it also can handle an encoded blob if it has a null URL and skip over it. But is that feature important? Can we write it in without such complex loop logic? Like a more straightforward &quot;check that there is nothing else except for a single encoded blob&quot;, then &quot;get that first element since we know it&apos;s the right kind of element now&quot;, and then &quot;return the URL&quot;?

Also, I don’t see test coverage for this; like trying it with two encoded blob elements.

&gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:78
&gt; +    // FIXME: We should send this form data to the other process and consume it there.
&gt; +    // For now and for the case of blobs, we read it there and send the data through IPC.

Is there some good reason we can’t do this right now?

&gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:118
&gt; +    m_isLoadingBlob = false;
&gt; +    didFinish();

Instead of adding m_isLoadingBlob can we just do this?

1) Check m_blobLoader.has_value in &quot;didFinish&quot;.
2) Factor out the body of didFinish without the m_blobLoader check and call it from here.

It’s really annoying to have this additional boolean.

&gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:69
&gt; +        Ref&lt;WebServiceWorkerFetchTaskClient&gt; client;

This creates a reference cycle. I know that the cycle will be broken when we set m_blobLoader to std::nullopt, but do we really need this object to keep itself alive like that? I guess maybe the answer is yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382784</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-18 10:16:51 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 329544 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329544&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/FormData.cpp:451
&gt; &gt; +    URL blobURL;
&gt; &gt; +    for (auto&amp; element : m_elements) {
&gt; &gt; +        if (element.m_type != FormDataElement::Type::EncodedBlob || !blobURL.isNull())
&gt; &gt; +            return { };
&gt; &gt; +        blobURL = element.m_url;
&gt; &gt; +    }
&gt; &gt; +    return blobURL;
&gt; 
&gt; I think this is a strange way to write this. I think the algorithm it
&gt; follows is: Return the URL only if there is only a single element of type
&gt; EncodedBlob. But it also can handle an encoded blob if it has a null URL and
&gt; skip over it. But is that feature important? Can we write it in without such
&gt; complex loop logic? Like a more straightforward &quot;check that there is nothing
&gt; else except for a single encoded blob&quot;, then &quot;get that first element since
&gt; we know it&apos;s the right kind of element now&quot;, and then &quot;return the URL&quot;?

I can change it to std::optional&lt;URL&gt; then.

&gt; Also, I don’t see test coverage for this; like trying it with two encoded
&gt; blob elements.

I will try adding a unit test and if not easy a layout test.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:78
&gt; &gt; +    // FIXME: We should send this form data to the other process and consume it there.
&gt; &gt; +    // For now and for the case of blobs, we read it there and send the data through IPC.
&gt; 
&gt; Is there some good reason we can’t do this right now?

Blob data right now can only be gathered from the network process by the web process that creates it.
For full support we would need the service worker process to instruct the network process to clone every blob in the form data, clones being made accessible to the targeted web process.
This is the final plan when we will get full form data support but does require more work.

&gt; &gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:118
&gt; &gt; +    m_isLoadingBlob = false;
&gt; &gt; +    didFinish();
&gt; 
&gt; Instead of adding m_isLoadingBlob can we just do this?
&gt; 
&gt; 1) Check m_blobLoader.has_value in &quot;didFinish&quot;.
&gt; 2) Factor out the body of didFinish without the m_blobLoader check and call
&gt; it from here.
&gt; 
&gt; It’s really annoying to have this additional boolean.

m_isLoadingBlob is set in the worker thread while m_blobLoader is set asynchronously on the main thread.
To remove m_isLoadingBlob, we would need to change WebServiceWorkerFetchTaskClient::didReceiveFormData into something like WebServiceWorkerFetchTaskClient:: didReceiveFormDataAndFinish.

&gt; &gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:69
&gt; &gt; +        Ref&lt;WebServiceWorkerFetchTaskClient&gt; client;
&gt; 
&gt; This creates a reference cycle. I know that the cycle will be broken when we
&gt; set m_blobLoader to std::nullopt, but do we really need this object to keep
&gt; itself alive like that? I guess maybe the answer is yes.

We need to keep alive WebServiceWorkerFetchTaskClient otherwise it will get deleted at the end of processing the fetch event response.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382785</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-18 10:17:51 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; (In reply to Darin Adler from comment #3)
&gt; &gt; Comment on attachment 329544 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=329544&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/network/FormData.cpp:451
&gt; &gt; &gt; +    URL blobURL;
&gt; &gt; &gt; +    for (auto&amp; element : m_elements) {
&gt; &gt; &gt; +        if (element.m_type != FormDataElement::Type::EncodedBlob || !blobURL.isNull())
&gt; &gt; &gt; +            return { };
&gt; &gt; &gt; +        blobURL = element.m_url;
&gt; &gt; &gt; +    }
&gt; &gt; &gt; +    return blobURL;
&gt; &gt; 
&gt; &gt; I think this is a strange way to write this. I think the algorithm it
&gt; &gt; follows is: Return the URL only if there is only a single element of type
&gt; &gt; EncodedBlob. But it also can handle an encoded blob if it has a null URL and
&gt; &gt; skip over it. But is that feature important? Can we write it in without such
&gt; &gt; complex loop logic? Like a more straightforward &quot;check that there is nothing
&gt; &gt; else except for a single encoded blob&quot;, then &quot;get that first element since
&gt; &gt; we know it&apos;s the right kind of element now&quot;, and then &quot;return the URL&quot;?

Right, I&apos;ll change the implementation of this routine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382803</commentid>
    <comment_count>6</comment_count>
      <attachid>329656</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-18 11:08:01 -0800</bug_when>
    <thetext>Created attachment 329656
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382804</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-18 11:09:30 -0800</bug_when>
    <thetext>Addin a test with two blobs is not easy since we do not have support for DOMFormData in workers right now and we are not supporting well blob form data based uploads in service worker either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382805</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-18 11:10:27 -0800</bug_when>
    <thetext>Attachment 329656 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:57:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:61:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382817</commentid>
    <comment_count>9</comment_count>
      <attachid>329656</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-18 11:53:26 -0800</bug_when>
    <thetext>Comment on attachment 329656
Patch for landing

Clearing flags on attachment: 329656

Committed r226066: &lt;https://trac.webkit.org/changeset/226066&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382818</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-18 11:53:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382819</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-18 11:54:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/36112206&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329544</attachid>
            <date>2017-12-15 17:04:44 -0800</date>
            <delta_ts>2017-12-18 11:08:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180894-20171215170443.patch</filename>
            <type>text/plain</type>
            <size>25309</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZlOTM5Mjc0MGVkYTNj
YTczOGZmNGRkMjNhMjllMTU1MmU2N2RkYi4uZTFlZmU5MmZiMzUxMDE3Y2JhMDcyYWZlN2MwNmMw
ZThiYjM1OTczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDE3LTEyLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVzcG9uc2UgYmxvYiBnaXZlbiB0byBmZXRjaCBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDg5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGV4cGVj
dGF0aW9ucy4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3IgZ2V0dGluZyBhIGJsb2IgVVJM
IGZyb20gYSBGb3JtRGF0YSB0aGF0IG9ubHkgY29udGFpbnMgb25lIGJsb2IuCisgICAgICAgIEFk
ZGluZyBzdXBwb3J0IHRvIGNyZWF0ZSBhIEZldGNMb2FkZXIgZnJvbSBhIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eQorCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaExvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
RmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwpOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb3JtRGF0YTo6YXNCbG9iVVJMIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL0Zvcm1EYXRhLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlQmxvYkxvYWRlcik6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisKKzIwMTctMTItMTUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYlJUQyBTdGF0
cyBzaG91bGQgbm90IGJlIGNvbnNvbGUgbG9nZ2VkIGZyb20gYSBiYWNrZ3JvdW5kIHRocmVhZAog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwODQ1CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMGZkZjgwNDNmZTVlODgyYzQyMzdiM2NjOTBmNmYwN2YzMTgzYjllZS4uMWEy
NmFjMTYyOWEwZmE1MzM2ZWFiNDljZTRmN2M4NWQyZGQ4YjlmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxNy0xMi0xNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc3BvbnNlIGJsb2IgZ2l2ZW4gdG8gZmV0Y2ggZXZl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA4
OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBj
YXNlIG9mIGJsb2IgZGF0YSwgcmVhZCBpdCBmcm9tIFNlcnZpY2UgV29ya2VyIHByb2Nlc3MgYW5k
IHNlbmQgaXQgdG8gV2ViUHJvY2Vzcy4KKyAgICAgICAgQXQgc29tZSBwb2ludCwgd2ViIHByb2Nl
c3Mgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCBpdCBkaXJlY3RseSBmcm9tIE5ldHdvcmtQcm9jZXNz
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OnN0YXJ0RmV0Y2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVGb3JtRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmspOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2hCbG9iTG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aDoKKwogMjAxNy0xMi0xNCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCBHVEsrIGJ1aWxkIGZpeCBhZnRlciByMjI1OTU0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAppbmRleCA2Zjc4MGE5OGE2
NWE2MjZlZjIzNmRlYWRjNGQ3ZWEyOGQ1MjRiZWRjLi41NDEyZmQyOTZiYjUwOGU4MTBiZTVkOTNm
NWQ2ZWYyOWJiMjczMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
TG9hZGVyLmNwcApAQCAtNTMsMTMgKzUzLDE4IEBAIEZldGNoTG9hZGVyOjp+RmV0Y2hMb2FkZXIo
KQogCiB2b2lkIEZldGNoTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBCbG9iJiBibG9iKQogeworICAgIHJldHVybiBzdGFydExvYWRpbmdCbG9iVVJM
KGNvbnRleHQsIGJsb2IudXJsKCkpOworfQorCit2b2lkIEZldGNoTG9hZGVyOjpzdGFydExvYWRp
bmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFVSTCYgYmxv
YlVSTCkKK3sKICAgICBtX3VybEZvclJlYWRpbmcgPSBCbG9iVVJMOjpjcmVhdGVQdWJsaWNVUkwo
Y29udGV4dC5zZWN1cml0eU9yaWdpbigpKTsKICAgICBpZiAobV91cmxGb3JSZWFkaW5nLmlzRW1w
dHkoKSkgewogICAgICAgICBtX2NsaWVudC5kaWRGYWlsKHsgZXJyb3JEb21haW5XZWJLaXRJbnRl
cm5hbCwgMCwgVVJMKCksIEFTQ0lJTGl0ZXJhbCgiQ291bGQgbm90IGNyZWF0ZSBVUkwgZm9yIEJs
b2IiKSB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFRocmVhZGFibGVCbG9iUmVn
aXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCksIG1fdXJsRm9y
UmVhZGluZywgYmxvYi51cmwoKSk7CisgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0
ZXJCbG9iVVJMKGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSwgbV91cmxGb3JSZWFkaW5nLCBibG9i
VVJMKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG1fdXJsRm9yUmVhZGluZyk7CiAg
ICAgcmVxdWVzdC5zZXRJbml0aWF0b3JJZGVudGlmaWVyKGNvbnRleHQucmVzb3VyY2VSZXF1ZXN0
SWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
aAppbmRleCAyYTY4MTBjNDEzMDA1MzBhMDQyOTM5ZmY1YTg0YmI3OWRiMDVhNmM3Li42N2RlMmU1
NDYyYmYzZGM2YWI4MGMyNGEzMThjNDA1NGZjZjkyY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaExvYWRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiRmV0
Y2hCb2R5Q29uc3VtZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIlVSTC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgRmV0Y2hSZXF1ZXN0Jik7CiAgICAgdm9p
ZCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgQmxvYiYpOworICAgIHZvaWQg
c3RhcnRMb2FkaW5nQmxvYlVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgVVJMJiBi
bG9iVVJMKTsKICAgICB2b2lkIHN0b3AoKTsKIAogICAgIGJvb2wgaXNTdGFydGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1N0YXJ0ZWQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOTRlMDdmYjQ5M2M2Nzc5ODIzYzk3NTcxM2Ni
NDU3NTQyMTFkMTU4Li44NmNkMGM2MjYwYzViOTllNmNhOWU2ZTdjYjYzYTkzZTA5NTI1ZGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMDAxLDYgKzEwMDEsNyBAQAogCQk0MTU3RUJGQjFFM0FCNjdGMDBBQzlGRTkgLyogTW9j
a0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uLmggKi87IH07CiAJCTQxNUNEQUY1MUU2QjhGOEIwMDRGMTFFRSAvKiBD
YW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDN0UxMDYxRTZBNTQzNjAwMjdCNERFIC8qIENhbnZhc0Nh
cHR1cmVNZWRpYVN0cmVhbVRyYWNrLmggKi87IH07CiAJCTQxNjE0QTc5MURBNjQyNDEwMDRBRDA2
RiAvKiBIVFRQSGVhZGVyVmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTYxNEE3NzFEQTY0MjM2MDA0QUQwNkYgLyogSFRUUEhlYWRlclZhbHVl
cy5oICovOyB9OworCQk0MTYxRTJENTFGRTQ4REM1MDBFQzJFOTYgLyogRmV0Y2hMb2FkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNDdFMkI1MUM4
OTkxMjYwMEE3RTcxNSAvKiBGZXRjaExvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE2MkE0NEUxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmggKi87IH07CiAJCTQxNjJBNDU4MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTYyQTQ1NjEwMTE0NjQ3MDBERkYzRUQgLyogSlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZS5oICovOyB9OwogCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUgLyog
V29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQ
cm94eS5oICovOyB9OwpAQCAtMjczNzQsNiArMjczNzUsNyBAQAogCQkJCTdBNTQ4NTgwMTRFMDJE
NTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4
MUNBRTFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNjFFMkQ1MUZFNDhEQzUwMEVDMkU5NiAv
KiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMUQxODdCNzRENTAwODQz
QjEwIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTVCODFDQUYxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckxheWVyVHJlZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNCMDFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9y
TWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCBmNDU4MjJiYWZmNWYwODAzYzBjYTExMDBlZmU4Nzg3
ODkyNjYzYjJkLi42MWI5OWE3YjRiZjE4YTNmYzNmNzZhODhiNzM2NmNmOGNkOWUwMGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcApAQCAtNDQwLDQg
KzQ0MCwxNSBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBGb3JtRGF0YTo6YXNTaGFyZWRCdWZmZXIo
KSBjb25zdAogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShmbGF0dGVuKCkpOwogfQog
CitVUkwgRm9ybURhdGE6OmFzQmxvYlVSTCgpIGNvbnN0Cit7CisgICAgVVJMIGJsb2JVUkw7Cisg
ICAgZm9yIChhdXRvJiBlbGVtZW50IDogbV9lbGVtZW50cykgeworICAgICAgICBpZiAoZWxlbWVu
dC5tX3R5cGUgIT0gRm9ybURhdGFFbGVtZW50OjpUeXBlOjpFbmNvZGVkQmxvYiB8fCAhYmxvYlVS
TC5pc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGJsb2JVUkwgPSBl
bGVtZW50Lm1fdXJsOworICAgIH0KKyAgICByZXR1cm4gYmxvYlVSTDsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5o
CmluZGV4IGRhZDBiNDM3N2M3ODM2OWU3NWE5M2Q1NTIyMzg1NjRiMTNmZTJiYzQuLjNiY2E3YmM4
ZGIwZmYzYjM5M2Y3YWI5M2I0NjFmODgzMzhmZThkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKQEAgLTI1Nyw2ICsyNTcsOCBAQCBwdWJsaWM6CiAKICAg
ICB1aW50NjRfdCBsZW5ndGhJbkJ5dGVzKCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBV
UkwgYXNCbG9iVVJMKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRm9ybURhdGEoKTsKICAgICBG
b3JtRGF0YShjb25zdCBGb3JtRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5jcHAKaW5kZXggNGU2MDgxZWM4MTNiMzZmMWJlMGMwODYxOGNhYTk0NGVjYWRlZDY2YS4uOTY1
ZmMyMTQ0NjVkODllMDdmNGJiYmNlMjFkZDNiOWFlYWFlZTgwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC0xMDksNiArMTA5LDE1IEBAIFJlZjxDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZUNhY2hlU3RvcmFn
ZUNvbm5lY3RpCiAgICAgcmV0dXJuICptX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb247CiB9CiAKK3N0
ZDo6dW5pcXVlX3B0cjxGZXRjaExvYWRlcj4gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVh
dGVCbG9iTG9hZGVyKEZldGNoTG9hZGVyQ2xpZW50JiBjbGllbnQsIGNvbnN0IFVSTCYgYmxvYlVS
TCkKK3sKKyAgICBhdXRvIGxvYWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmV0Y2hMb2FkZXI+KGNs
aWVudCwgbnVsbHB0cik7CisgICAgbG9hZGVyLT5zdGFydExvYWRpbmdCbG9iVVJMKG1fZG9jdW1l
bnQsIGJsb2JVUkwpOworICAgIGlmICghbG9hZGVyLT5pc1N0YXJ0ZWQoKSkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGxvYWRlcjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuaAppbmRleCA3MzIyYTc2YzlkNzdjMWI5ZGE1NDRiMjk0ZWU1Njg0M2Fj
ZmFiNGFhLi40MWFmMmIwM2E2N2I2Y2RjYmI5OGQxZjhkZDllZmZkMGI4OGJlMDVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNDEsNiArNDEsOCBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKK2NsYXNzIEZldGNoTG9h
ZGVyOworY2xhc3MgRmV0Y2hMb2FkZXJDbGllbnQ7CiBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsK
IGNsYXNzIFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTsKIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGE7CkBAIC01OSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzVGVybWlu
YXRpbmdPclRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzVGVybWluYXRpbmdPclRlcm1p
bmF0ZWQ7IH0KICAgICB2b2lkIHNldFRlcm1pbmF0aW5nT3JUZXJtaW5hdGVkKGJvb2wgdGVybWlu
YXRpbmcpIHsgbV9pc1Rlcm1pbmF0aW5nT3JUZXJtaW5hdGVkID0gdGVybWluYXRpbmc7IH0KIAor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGZXRjaExvYWRlcj4gY3JlYXRlQmxv
YkxvYWRlcihGZXRjaExvYWRlckNsaWVudCYsIGNvbnN0IFVSTCYpOworCiBwcml2YXRlOgogICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlv
biYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgU3Ry
aW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTM0NzY3YjY4YTY2ZWNkMDk1MDE4YmNmMjRjZTg0
YmY0YTk1NDdmNy4uMTkxNzYwMmU3Nzc5MWIwOTFjOTU1ZjZiOGJmZjU2Mzg3MWFiNTVjNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMTYzLDcgKzE2Myw3IEBAIHZv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRv
IGNsaWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5l
Y3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGZldGNoSWRlbnRpZmllcik7CisgICAgYXV0byBjbGllbnQgPSBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpjcmVhdGUobV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy5jb3B5
UmVmKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyPiBjbGllbnRJZDsKICAgICBpZiAob3B0aW9ucy5jbGllbnRJZGVudGlmaWVy
KQogICAgICAgICBjbGllbnRJZCA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG9wdGlvbnMuY2xpZW50SWRlbnRpZmllci52YWx1ZSgp
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IDE0Y2ZmNzFi
MTM4M2VlNWQ0YzIxMGUwNTdkZDVkMzIyMmFiZDg4MDAuLmFjYTk5YjY1NmU4YjU1MDZhMGRjMzE1
NWQxMWQ2MGM3MmI0NzRkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5o
PgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpA
QCAtNDUsOSArNDYsMTAgQEAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6fldlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoKQogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fY29ubmVjdGlvbildIHsgfSk7CiB9CiAKLVdl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaFRhc2tJZGVudGlmaWVyKQorV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKQogICAgIDog
bV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX3NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgICwgbV9zZXJ2aWNl
V29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICAsIG1fZmV0Y2hU
YXNrSWRlbnRpZmllcihmZXRjaFRhc2tJZGVudGlmaWVyKQogewogfQpAQCAtNzIsNyArNzQsNTAg
QEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURh
dGEoUmVmPEZvcm1EYXRhPiYmIGZvcm1EYXQKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJv
Y2Vzczo6RGlkUmVjZWl2ZUZldGNoRm9ybURhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBtX2ZldGNoVGFza0lkZW50aWZpZXIsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZN
b3ZlKGZvcm1EYXRhKSB9IH0sIDApOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc2VuZCB0aGlz
IGZvcm0gZGF0YSB0byB0aGUgb3RoZXIgcHJvY2VzcyBhbmQgY29uc3VtZSBpdCB0aGVyZS4KKyAg
ICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNhc2Ugb2YgYmxvYnMsIHdlIHJlYWQgaXQgdGhlcmUg
YW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJUEMuCisgICAgVVJMIGJsb2JVUkwgPSBmb3JtRGF0
YS0+YXNCbG9iVVJMKCk7CisgICAgaWYgKGJsb2JVUkwuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNo
Rm9ybURhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoVGFza0lkZW50
aWZpZXIsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1EYXRhKSB9IH0sIDAp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pc0xvYWRpbmdCbG9iID0gdHJ1ZTsK
KworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgpIHsKKyAgICAgICAgYXV0
byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwor
ICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgeworICAgICAgICAgICAgZGlk
RmFpbCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbV9ibG9i
TG9hZGVyLmVtcGxhY2UoKnRoaXMpOworICAgICAgICBhdXRvIGxvYWRlciA9IHNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS0+Y3JlYXRlQmxvYkxvYWRlcigqbV9ibG9iTG9hZGVyLCBibG9iVVJMKTsK
KyAgICAgICAgaWYgKCFsb2FkZXIpIHsKKyAgICAgICAgICAgIG1fYmxvYkxvYWRlciA9IHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgICAgIGRpZEZhaWwoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIG1fYmxvYkxvYWRlci0+bG9hZGVyID0gV1RGTW92ZShsb2FkZXIp
OworICAgIH0pOworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAg
aWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIElQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0
YSksIHNpemUgfTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9j
ZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
bV9mZXRjaFRhc2tJZGVudGlmaWVyLCBkYXRhUmVmZXJlbmNlLCBzdGF0aWNfY2FzdDxpbnQ2NF90
PihzaXplKSB9LCAwKTsKK30KKwordm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
OjpkaWRGaW5pc2hCbG9iTG9hZGluZygpCit7CisgICAgbV9pc0xvYWRpbmdCbG9iID0gZmFsc2U7
CisgICAgZGlkRmluaXNoKCk7CisKKyAgICBtX2Jsb2JMb2FkZXIgPSBzdGQ6Om51bGxvcHQ7CiB9
CiAKIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbCgpCkBAIC04
NSw4ICsxMzAsOSBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZh
aWwoKQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaCgp
CiB7Ci0gICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgaWYgKCFtX2Nvbm5lY3Rpb24gfHwgbV9p
c0xvYWRpbmdCbG9iKQogICAgICAgICByZXR1cm47CisKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIG1fZmV0Y2hUYXNrSWRlbnRpZmllciB9LCAwKTsKICAgICBtX2Nvbm5l
Y3Rpb24gPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCmlu
ZGV4IDE3NmFkMjRlMzlhNzkzZWQ5MzNlNTJmYzc5NWU5YmM0N2Q1MjFiODQuLjM0MzkwNWU5NWUw
NjA3NmEwNDg4NmM4NTY3OGVjODIwOTJiNzIwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmgKQEAgLTI4LDYgKzI4LDggQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaExvYWRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hMb2FkZXJDbGllbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJGZXRjaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdv
cmtlclR5cGVzLmg+CiAKQEAgLTM1LDE1ICszNywxNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBjcmVhdGUoUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVy
KQorICAgIHN0YXRpYyBSZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudD4gY3JlYXRl
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsICBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBm
ZXRjaFRhc2tJZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChXVEZNb3ZlKGNvbm5lY3Rpb24pLCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFdURk1v
dmUoY29ubmVjdGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwogICAgIH0KIAogICAgIH5XZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKTsK
KyAgICBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+JiYpIGZpbmFsOwpAQCAtNTIsOSArNTQsMjggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZp
bmlzaCgpIGZpbmFsOwogICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAKKyAgICB2b2lk
IGRpZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpOworICAg
IHZvaWQgZGlkRmluaXNoQmxvYkxvYWRpbmcoKTsKKworICAgIHN0cnVjdCBCbG9iTG9hZGVyIGZp
bmFsIDogV2ViQ29yZTo6RmV0Y2hMb2FkZXJDbGllbnQgeworICAgICAgICBleHBsaWNpdCBCbG9i
TG9hZGVyKFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQmIGNsaWVudCkgOiBjbGllbnQo
Y2xpZW50KSB7IH0KKworICAgICAgICAvLyBGZXRjaExvYWRlckNsaWVudCBBUEkKKyAgICAgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
IGZpbmFsIHsgfQorICAgICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEs
IHNpemVfdCBzaXplKSBmaW5hbCB7IGNsaWVudC0+ZGlkUmVjZWl2ZUJsb2JDaHVuayhkYXRhLCBz
aXplKTsgfQorICAgICAgICB2b2lkIGRpZEZhaWwoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpIGZpbmFsIHsgY2xpZW50LT5kaWRGYWlsKCk7IH0KKyAgICAgICAgdm9pZCBkaWRTdWNjZWVk
KCkgZmluYWwgeyBjbGllbnQtPmRpZEZpbmlzaEJsb2JMb2FkaW5nKCk7IH0KKworICAgICAgICBS
ZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudD4gY2xpZW50OworICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RmV0Y2hMb2FkZXI+IGxvYWRlcjsKKyAgICB9OworCiAgICAg
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKKyAg
ICBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBtX3NlcnZpY2VXb3JrZXJJZGVudGlm
aWVyOwogICAgIHVpbnQ2NF90IG1fZmV0Y2hUYXNrSWRlbnRpZmllciB7IDAgfTsKKyAgICBzdGQ6
Om9wdGlvbmFsPEJsb2JMb2FkZXI+IG1fYmxvYkxvYWRlcjsKKyAgICBib29sIG1faXNMb2FkaW5n
QmxvYiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IDk2MzkxMjE0OWU0NjM5NTg1M2EyYzg2OWJkZDEwNTVmYTky
MGM4ZDEuLmJkZmNlNjIzNTVkNjY0M2QzYTQ5OWRjYzI4NTY4ZDk1OTZmMDIzMmYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTE1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVzcG9uc2UgYmxvYiBnaXZlbiB0byBmZXRjaCBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDg5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1uYXZpZ2F0aW9uLXdpdGhp
bi1wYWdlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBvbGlj
eS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1taXhlZC1jb250ZW50LXRvLW91dHNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAxNy0x
Mi0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVt
ZW50IDxpZnJhbWUgYWxsb3c9ImNhbWVyYTsgbWljcm9waG9uZSI+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFmdGVyLW5h
dmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGRiOTFmMThhMTNh
M2YxODE2N2NjZmNhMDVkZmU4MGQyYmRkYWJmYjQuLmJkOTVkMDk1YzZlNTYwNjEwZWZjYzM4YTdh
YTg2YjgzZjc0MGUyNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50
LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LWFmdGVyLW5hdmlnYXRpb24td2l0aGluLXBhZ2Uu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNCBAQAogCi0KLUZBSUwgU2VydmljZSBXb3Jr
ZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggZXZlbnQgYWZ0ZXIgdGhlIGhhc2ggY2hhbmdlcyBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIiIGJ1
dCBnb3QgIiIKLUZBSUwgU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggZXZl
bnQgYWZ0ZXIgdGhlIHB1c2hTdGF0ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaW50ZXJjZXB0
ZWQgYnkgc2VydmljZSB3b3JrZXIiIGJ1dCBnb3QgIiIKK1BBU1MgU2VydmljZSBXb3JrZXIgc2hv
dWxkIHJlc3BvbmQgdG8gZmV0Y2ggZXZlbnQgYWZ0ZXIgdGhlIGhhc2ggY2hhbmdlcyAKK1BBU1Mg
U2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggZXZlbnQgYWZ0ZXIgdGhlIHB1
c2hTdGF0ZSAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtcmVm
ZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXJlZmVycmVyLXBvbGljeS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzQzZWY4MDI1
ZGEzMDUwM2IwM2IzY2MwYjBiYzMyZmNiNzA4OWUwOC4uNzU1NDU2NGIyY2YxY2Y4NjViZTcyYzUy
NzU4YWJmMmIxYTVkN2M3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZl
bnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0x
LDQgKzEsNCBAQAogCiAKLUZBSUwgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZl
bnQgd2l0aCB0aGUgcmVmZXJyZXIgcG9saWN5IGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQg
cmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxzOiBTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0
byBmZXRjaCB3aXRoIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSBleHBlY3RlZCAiUmVmZXJy
ZXJQb2xpY3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiBidXQgZ290ICIiIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQorRkFJTCBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBl
dmVudCB3aXRoIHRoZSByZWZlcnJlciBwb2xpY3kgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3Rl
ZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFNlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25k
IHRvIGZldGNoIHdpdGggdGhlIGRlZmF1bHQgcmVmZXJyZXIgcG9saWN5IGV4cGVjdGVkICJSZWZl
cnJlclBvbGljeTogbm8tcmVmZXJyZXItd2hlbi1kb3duZ3JhZGUiIGJ1dCBnb3QgIlJlZmVycmVy
UG9saWN5OiAiIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1ldmVudC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZTcxYzg3NjNhMDRjYmU4
NThhODJiY2M4NTQyYjk1OGE1MjVkM2MwYy4uMTY3ZjdjYWY0M2E3YzBiYzJhMTBlNjcxMDYzMjk3
NjlkY2YyMzgyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIAogRkFJTCBTZXJ2aWNlIFdvcmtlciBoZWFk
ZXJzIGluIHRoZSByZXF1ZXN0IG9mIGEgZmV0Y2ggZXZlbnQgYXNzZXJ0X3VucmVhY2hlZDogdW5l
eHBlY3RlZCByZWplY3Rpb246IGFzc2VydF90cnVlOiByZXF1ZXN0IHNwZWNpZmllcyAiVXBncmFk
ZS1JbnNlY3VyZSBSZXF1ZXN0cyBoZWFkZXIgYXMgaW5zZXJ0ZWQgYnkgRmV0Y2ggZXhwZWN0ZWQg
dHJ1ZSBnb3QgZmFsc2UgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBGQUlMIFNlcnZpY2UgV29y
a2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggc3RyaW5nIGFzc2VydF91bnJlYWNoZWQ6
IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1YWxzOiBUaGUgY2hhcmFjdGVyIHNldCBv
ZiB0aGUgcmVzcG9uc2UgY3JlYXRlZCB3aXRoIGEgc3RyaW5nIHNob3VsZCBiZSBVVEYtOCBleHBl
Y3RlZCAiVVRGLTgiIGJ1dCBnb3QgIndpbmRvd3MtMTI1MiIgUmVhY2hlZCB1bnJlYWNoYWJsZSBj
b2RlCi1GQUlMIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggYmxv
YiBib2R5IGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBhc3NlcnRfZXF1
YWxzOiBTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRoIGEgdGVzdCBz
dHJpbmcgZXhwZWN0ZWQgIlRlc3QgYmxvYiIgYnV0IGdvdCAiIiBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKLUZBSUwgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCB0
aGUgcmVmZXJyZXIgVVJMIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiBh
c3NlcnRfZXF1YWxzOiBTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRjaCB3aXRo
IHRoZSByZWZlcnJlciBVUkwgZXhwZWN0ZWQgIlJlZmVycmVyOiBodHRwczovL2xvY2FsaG9zdDo5
NDQzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy5odG1s
IiBidXQgZ290ICIiIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBTZXJ2aWNlIFdvcmtl
ciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIGJsb2IgYm9keSAKK1BBU1MgU2VydmljZSBX
b3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCB0aGUgcmVmZXJyZXIgVVJMIAogUEFT
UyBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIGFuIGV4aXN0aW5n
IGNsaWVudCBpZCAKIFBBU1MgU2VydmljZSBXb3JrZXIgZG9lcyBub3QgcmVzcG9uZCB0byBmZXRj
aCBldmVudCAKIFBBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0
aCBudWxsIHJlc3BvbnNlIGJvZHkgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYjk3Mzg5
YTEwMjQ4ZGY5YmFjZGZhNzVjNmFlYmI3ZGRiZWMzYTg0OC4uOGZiMDA1YWFhOTg0MzFkNGI2Mzdm
NGNkOTcwNjdmOGNiYjk4MjcyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
aGVhZGVyLXZpc2liaWxpdHkuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2ZldGNoLWhlYWRlci12aXNpYmlsaXR5Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsx
LDQgQEAKIAogCi1GQUlMIFZpc2liaWxpdHkgb2YgZGVmYXVsdGVkIGhlYWRlcnMgZHVyaW5nIGlu
dGVyY2VwdGlvbiBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogd2l0aFVB
IEZBSUwgLSBleHBlY3RlZCAiY3VzdG9tX3VhIiwgZ290ICIiIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQorRkFJTCBWaXNpYmlsaXR5IG9mIGRlZmF1bHRlZCBoZWFkZXJzIGR1cmluZyBpbnRlcmNl
cHRpb24gYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IHdpdGhVQSBGQUlM
IC0gZXhwZWN0ZWQgImN1c3RvbV91YSIsIGdvdCAiTk9fVUEiIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1taXhlZC1jb250ZW50
LXRvLW91dHNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LW1peGVkLWNvbnRlbnQtdG8tb3V0c2NvcGUuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDQ3YTYw
NTk0ZTBkYjJlNGQyNGU5ZjFkNjVkMzljOTkwOTljYWUxOTIuLmFlNmVmZTVlMzU5MjAzZmQ2MTFj
MDdmZjdiZjQwNTRjMDgyYzhmZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LW1peGVkLWNvbnRlbnQtdG8tb3V0c2NvcGUuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLW1peGVkLWNvbnRlbnQtdG8tb3V0c2NvcGUuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC00LDUgKzQsNSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDI6IFRoZSBwYWdl
IGF0IGh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13b3JrZXJzL3NlcgogCiAKIAotRkFJ
TCBWZXJpZnkgTWl4ZWQgY29udGVudCBvZiBmZXRjaCgpIGluIGEgU2VydmljZSBXb3JrZXIgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgImZpbmlzaCIgYnV0IGdvdCAiRkFJTCg1KWZpbmlzaCIKK1BB
U1MgVmVyaWZ5IE1peGVkIGNvbnRlbnQgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyIAog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329656</attachid>
            <date>2017-12-18 11:08:01 -0800</date>
            <delta_ts>2017-12-18 11:53:26 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-180894-20171218110800.patch</filename>
            <type>text/plain</type>
            <size>27581</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg0ODZmOTRiZjc1ODUx
ZDg0NTEwYWY0N2M2MTAxNzdmZWU0OGQ5Ny4uODg5Y2VlZmRmNmEwMTExMDAxOGNlZWFiZDRmYTc2
YWJiMDQzODQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTEyLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVzcG9uc2UgYmxvYiBnaXZlbiB0byBmZXRjaCBldmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDg5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0IGV4cGVjdGF0
aW9ucy4KKworICAgICAgICBBZGRpbmcgc3VwcG9ydCBmb3IgZ2V0dGluZyBhIGJsb2IgVVJMIGZy
b20gYSBGb3JtRGF0YSB0aGF0IG9ubHkgY29udGFpbnMgb25lIGJsb2IuCisgICAgICAgIEFkZGlu
ZyBzdXBwb3J0IHRvIGNyZWF0ZSBhIEZldGNMb2FkZXIgZnJvbSBhIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eQorCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaExvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXIuaDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb3JtRGF0YTo6YXNCbG9iVVJMIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0Zvcm1EYXRhLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eTo6Y3JlYXRlQmxvYkxvYWRlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6CisKIDIwMTctMTItMTggIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBTUEkgdG8gcXVl
cnkgZm9yIHRoZSBjdXJyZW50IGFuZCBsYXN0IGF1dG8gZmlsbCBidXR0b24gdHlwZSBhbmQgcGFz
cyB1c2VyIGRhdGEgb2JqZWN0IHRvIF93ZWJWaWV3OmZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Np
b246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDQxOTNjOTc0ZGM3YmNhNzRlYTFkNTM3ZTcxYTMyNjU2MWY2MDUwNGYu
LjI4YzJiODQ1YjIxMTJjMjI4ODkwZDRjNWE4NDk4OGFlMTY5MTIwZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTctMTItMTggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXNwb25zZSBibG9iIGdpdmVuIHRvIGZldGNo
IGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgwODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSW4g
Y2FzZSBvZiBibG9iIGRhdGEsIHJlYWQgaXQgZnJvbSBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzIGFu
ZCBzZW5kIGl0IHRvIFdlYlByb2Nlc3MuCisgICAgICAgIEF0IHNvbWUgcG9pbnQsIHdlYiBwcm9j
ZXNzIHNob3VsZCBiZSBhYmxlIHRvIHJlYWQgaXQgZGlyZWN0bHkgZnJvbSBOZXR3b3JrUHJvY2Vz
cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNl
aXZlRm9ybURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRSZWNlaXZlQmxvYkNodW5rKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoQmxvYkxvYWRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2gpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
Lmg6CisKIDIwMTctMTItMTggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBTUEkgdG8gcXVlcnkgZm9yIHRoZSBjdXJyZW50IGFuZCBsYXN0IGF1dG8gZmls
bCBidXR0b24gdHlwZSBhbmQgcGFzcyB1c2VyIGRhdGEgb2JqZWN0IHRvIF93ZWJWaWV3OmZvY3Vz
U2hvdWxkU3RhcnRJbnB1dFNlc3Npb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXIuY3BwCmluZGV4IDZmNzgwYTk4YTY1YTYyNmVmMjM2ZGVhZGM0ZDdlYTI4ZDUy
NGJlZGMuLjU0MTJmZDI5NmJiNTA4ZTgxMGJlNWQ5M2Y1ZDZlZjI5YmIyNzMyNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCkBAIC01MywxMyArNTMs
MTggQEAgRmV0Y2hMb2FkZXI6On5GZXRjaExvYWRlcigpCiAKIHZvaWQgRmV0Y2hMb2FkZXI6OnN0
YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEJsb2ImIGJsb2IpCiB7
CisgICAgcmV0dXJuIHN0YXJ0TG9hZGluZ0Jsb2JVUkwoY29udGV4dCwgYmxvYi51cmwoKSk7Cit9
CisKK3ZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMJiBibG9iVVJMKQorewogICAgIG1fdXJsRm9yUmVh
ZGluZyA9IEJsb2JVUkw6OmNyZWF0ZVB1YmxpY1VSTChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkp
OwogICAgIGlmIChtX3VybEZvclJlYWRpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1fY2xpZW50
LmRpZEZhaWwoeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBVUkwoKSwgQVNDSUlMaXRl
cmFsKCJDb3VsZCBub3QgY3JlYXRlIFVSTCBmb3IgQmxvYiIpIH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKGNv
bnRleHQuc2VjdXJpdHlPcmlnaW4oKSwgbV91cmxGb3JSZWFkaW5nLCBibG9iLnVybCgpKTsKKyAg
ICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoY29udGV4dC5zZWN1cml0
eU9yaWdpbigpLCBtX3VybEZvclJlYWRpbmcsIGJsb2JVUkwpOwogCiAgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QobV91cmxGb3JSZWFkaW5nKTsKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcklk
ZW50aWZpZXIoY29udGV4dC5yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oCmluZGV4IDJhNjgxMGM0MTMwMDUzMGEw
NDI5MzlmZjVhODRiYjc5ZGIwNWE2YzcuLjY3ZGUyZTU0NjJiZjNkYzZhYjgwYzI0YTMxOGM0MDU0
ZmNmOTJjYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmgK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJGZXRjaEJvZHlDb25zdW1lci5oIgogI2luY2x1
ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50
LmgiCisjaW5jbHVkZSAiVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDgsNiAr
NDksNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBjb25zdCBGZXRjaFJlcXVlc3QmKTsKICAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBCbG9iJik7CisgICAgdm9pZCBzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBVUkwmIGJsb2JVUkwpOwogICAgIHZvaWQgc3RvcCgp
OwogCiAgICAgYm9vbCBpc1N0YXJ0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzU3RhcnRlZDsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDdhMmZlMzg0NGFlMjI3ZWMzZDY0NjkyZDkxNjM2OTVjOTY3MDM0YzMuLjE1MTllYzI0MTI1
Y2IyYWNjZjdkYTNkODY5YjJiOTJjZDMxZTY5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwMDEsNiArMTAwMSw3IEBACiAJ
CTQxNTdFQkZCMUUzQUI2N0YwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTdFQkY4
MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLzsgfTsK
IAkJNDE1Q0RBRjUxRTZCOEY4QjAwNEYxMUVFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRy
YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUM3
RTEwNjFFNkE1NDM2MDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaCAq
LzsgfTsKIAkJNDE2MTRBNzkxREE2NDI0MTAwNEFEMDZGIC8qIEhUVFBIZWFkZXJWYWx1ZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjE0QTc3MURB
NjQyMzYwMDRBRDA2RiAvKiBIVFRQSGVhZGVyVmFsdWVzLmggKi87IH07CisJCTQxNjFFMkQ1MUZF
NDhEQzUwMEVDMkU5NiAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0N0UyQjUxQzg5OTEyNjAwQTdFNzE1IC8qIEZldGNoTG9h
ZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NDE2MkE0NTExMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyQTQ0RTEw
MTE0NUFFMDBERkYzRUQgLyogRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCAqLzsgfTsKIAkJ
NDE2MkE0NTgxMDExNDY0NzAwREZGM0VEIC8qIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjJBNDU2
MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmggKi87IH07
CiAJCTQxNkUyOUE2MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RTI5QTUxMDJG
QTk2MjAwN0ZDMTRFIC8qIFdvcmtlclJlcG9ydGluZ1Byb3h5LmggKi87IH07CkBAIC0yNzM4Nyw2
ICsyNzM4OCw3IEBACiAJCQkJN0E1NDg1ODAxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhp
c3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0FFMUZBQTQ0NjIwMDM3RDFFNiAvKiBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjBENjI5MjcxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDE2MUUyRDUxRkU0OERDNTAwRUMyRTk2IC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNTg0MEUxRDE4N0I3NEQ1MDA4NDNCMTAgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uQ29va2llLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNBRjFGQUE0NDYyMDAzN0Qx
RTYgLyogSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1Qjgx
Q0IwMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCmluZGV4
IGY0NTgyMmJhZmY1ZjA4MDNjMGNhMTEwMGVmZTg3ODc4OTI2NjNiMmQuLmFhMDA1ZWY2NmI4Mzlm
Y2U5M2ViOWE1NzY0NGIyODhlNDU3MjA4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvRm9ybURhdGEuY3BwCkBAIC00NDAsNCArNDQwLDEzIEBAIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IEZvcm1EYXRhOjphc1NoYXJlZEJ1ZmZlcigpIGNvbnN0CiAgICAgcmV0dXJuIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKGZsYXR0ZW4oKSk7CiB9CiAKK1VSTCBGb3JtRGF0YTo6YXNCbG9iVVJM
KCkgY29uc3QKK3sKKyAgICBpZiAobV9lbGVtZW50cy5zaXplKCkgIT0gMSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIEFTU0VSVChtX2VsZW1lbnRzLmZpcnN0KCkubV90eXBlID09IEZvcm1E
YXRhRWxlbWVudDo6VHlwZTo6RW5jb2RlZEJsb2IgfHwgbV9lbGVtZW50cy5maXJzdCgpLm1fdXJs
LmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9lbGVtZW50cy5maXJzdCgpLm1fdXJsOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Zvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zv
cm1EYXRhLmgKaW5kZXggZGFkMGI0Mzc3Yzc4MzY5ZTc1YTkzZDU1MjIzODU2NGIxM2ZlMmJjNC4u
M2JjYTdiYzhkYjBmZjNiMzkzZjdhYjkzYjQ2MWY4ODMzOGZlOGRhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaApAQCAtMjU3LDYgKzI1Nyw4IEBAIHB1Ymxp
YzoKIAogICAgIHVpbnQ2NF90IGxlbmd0aEluQnl0ZXMoKSBjb25zdDsKIAorICAgIFdFQkNPUkVf
RVhQT1JUIFVSTCBhc0Jsb2JVUkwoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBGb3JtRGF0YSgp
OwogICAgIEZvcm1EYXRhKGNvbnN0IEZvcm1EYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNw
cAppbmRleCAwMjBiYzczY2U5MTFmN2IzOGQyZTA5OWViMzEyMWM4YjI4NjlmODkzLi5iYzI3NDNk
OTg2M2IwNjg0N2E4MjljOGFjNDgxOGE0ZGNkYzRjYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5jcHAKQEAgLTgyLDEzICs4MiwxMyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzUmVzcG9uc2UoUmVm
PENsaWVudD4mJiBjbGllbnQsIEZldGNoUmVzcG9uc2UqIHJlc3BvbnNlKQogCiAgICAgYXV0byBi
b2R5ID0gcmVzcG9uc2UtPmNvbnN1bWVCb2R5KCk7CiAgICAgV1RGOjpzd2l0Y2hPbihib2R5LCBb
Jl0gKFJlZjxGb3JtRGF0YT4mIGZvcm1EYXRhKSB7Ci0gICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2
ZUZvcm1EYXRhKFdURk1vdmUoZm9ybURhdGEpKTsKKyAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZl
Rm9ybURhdGFBbmRGaW5pc2goV1RGTW92ZShmb3JtRGF0YSkpOwogICAgIH0sIFsmXSAoUmVmPFNo
YXJlZEJ1ZmZlcj4mIGJ1ZmZlcikgewogICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKFdU
Rk1vdmUoYnVmZmVyKSk7Ci0gICAgfSwgW10gKHN0ZDo6bnVsbHB0cl90JikgeworICAgICAgICBj
bGllbnQtPmRpZEZpbmlzaCgpOworICAgIH0sIFsmXSAoc3RkOjpudWxscHRyX3QmKSB7CisgICAg
ICAgIGNsaWVudC0+ZGlkRmluaXNoKCk7CiAgICAgfSk7Ci0KLSAgICBjbGllbnQtPmRpZEZpbmlz
aCgpOwogfQogCiBSZWY8RmV0Y2hFdmVudD4gZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+
JiYgY2xpZW50LCBXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2NvcGUsIHN0ZDo6b3B0aW9uYWw8
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaApp
bmRleCA2MjIxMDEyYWQ4N2E4NWRhNTFkODY1MzBkNDBkODU5OGIxZjA5MTVmLi43MDY3MGU3YjZm
NzdlNzQwYzU3NTBiZmRmNjkyYWU1MWQ3MTQ5NTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaApA
QCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZUZvcm1EYXRhKFJlZjxGb3JtRGF0YT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaCgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggNGU2MDgxZWM4MTNiMzZmMWJlMGMwODYxOGNh
YTk0NGVjYWRlZDY2YS4uOTY1ZmMyMTQ0NjVkODllMDdmNGJiYmNlMjFkZDNiOWFlYWFlZTgwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC0xMDksNiArMTA5LDE1
IEBAIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3RpCiAgICAgcmV0dXJuICptX2NhY2hlU3RvcmFnZUNv
bm5lY3Rpb247CiB9CiAKK3N0ZDo6dW5pcXVlX3B0cjxGZXRjaExvYWRlcj4gU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpjcmVhdGVCbG9iTG9hZGVyKEZldGNoTG9hZGVyQ2xpZW50JiBjbGllbnQs
IGNvbnN0IFVSTCYgYmxvYlVSTCkKK3sKKyAgICBhdXRvIGxvYWRlciA9IHN0ZDo6bWFrZV91bmlx
dWU8RmV0Y2hMb2FkZXI+KGNsaWVudCwgbnVsbHB0cik7CisgICAgbG9hZGVyLT5zdGFydExvYWRp
bmdCbG9iVVJMKG1fZG9jdW1lbnQsIGJsb2JVUkwpOworICAgIGlmICghbG9hZGVyLT5pc1N0YXJ0
ZWQoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGxvYWRlcjsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCA3MzIyYTc2YzlkNzdjMWI5
ZGE1NDRiMjk0ZWU1Njg0M2FjZmFiNGFhLi40MWFmMmIwM2E2N2I2Y2RjYmI5OGQxZjhkZDllZmZk
MGI4OGJlMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNDEsNiAr
NDEsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRl
cjsKK2NsYXNzIEZldGNoTG9hZGVyOworY2xhc3MgRmV0Y2hMb2FkZXJDbGllbnQ7CiBjbGFzcyBQ
YWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJJbnNwZWN0b3JQcm94eTsKIHN0
cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CkBAIC01OSw2ICs2MSw4IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzVGVybWluYXRpbmdPclRlcm1pbmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
VGVybWluYXRpbmdPclRlcm1pbmF0ZWQ7IH0KICAgICB2b2lkIHNldFRlcm1pbmF0aW5nT3JUZXJt
aW5hdGVkKGJvb2wgdGVybWluYXRpbmcpIHsgbV9pc1Rlcm1pbmF0aW5nT3JUZXJtaW5hdGVkID0g
dGVybWluYXRpbmc7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGZXRj
aExvYWRlcj4gY3JlYXRlQmxvYkxvYWRlcihGZXRjaExvYWRlckNsaWVudCYsIGNvbnN0IFVSTCYp
OworCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eShQYWdlQ29uZmlndXJhdGlvbiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQ
QUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTM0NzY3YjY4YTY2
ZWNkMDk1MDE4YmNmMjRjZTg0YmY0YTk1NDdmNy4uMTkxNzYwMmU3Nzc5MWIwOTFjOTU1ZjZiOGJm
ZjU2Mzg3MWFiNTVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MTYzLDcgKzE2Myw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0
RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBhdXRvIGNsaWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7CisgICAgYXV0byBjbGllbnQg
PSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjcmVhdGUobV9jb25uZWN0aW9uVG9T
dG9yYWdlUHJvY2Vzcy5jb3B5UmVmKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICBzdGQ6Om9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZDsKICAgICBpZiAob3B0aW9u
cy5jbGllbnRJZGVudGlmaWVyKQogICAgICAgICBjbGllbnRJZCA9IFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG9wdGlvbnMuY2xpZW50
SWRlbnRpZmllci52YWx1ZSgpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
Y3BwCmluZGV4IDE0Y2ZmNzFiMTM4M2VlNWQ0YzIxMGUwNTdkZDVkMzIyMmFiZDg4MDAuLmJiMjM0
N2E1NDQ2MWRjNDQyNjdmZjJlNmQ4MzI3MjcxMTM3NmFkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU3RvcmFn
ZVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtNDUsOSArNDYsMTAgQEAgV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudDo6fldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoKQogICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fY29ubmVjdGlv
bildIHsgfSk7CiB9CiAKLVdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
LCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKQorV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJ
ZGVudGlmaWVyKQogICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAg
LCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KQorICAgICwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKICAgICAsIG1fZmV0Y2hUYXNrSWRlbnRpZmllcihmZXRjaFRhc2tJZGVudGlmaWVyKQogewog
fQpAQCAtNjcsMTIgKzY5LDUyIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6ZGlkUmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoRGF0
YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hUYXNrSWRlbnRpZmllciwg
ZGF0YVJlZmVyZW5jZSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIDAp
OwogfQogCi12b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVG
b3JtRGF0YShSZWY8Rm9ybURhdGE+JiYgZm9ybURhdGEpCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+
JiYgZm9ybURhdGEpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsK
IAotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZFJl
Y2VpdmVGZXRjaEZvcm1EYXRhIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRj
aFRhc2tJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0
YSkgfSB9LCAwKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHNlbmQgdGhpcyBmb3JtIGRhdGEg
dG8gdGhlIG90aGVyIHByb2Nlc3MgYW5kIGNvbnN1bWUgaXQgdGhlcmUuCisgICAgLy8gRm9yIG5v
dyBhbmQgZm9yIHRoZSBjYXNlIG9mIGJsb2JzLCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRo
ZSBkYXRhIHRocm91Z2ggSVBDLgorICAgIFVSTCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVS
TCgpOworICAgIGlmIChibG9iVVJMLmlzTnVsbCgpKSB7CisgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhIHsg
bV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaFRhc2tJZGVudGlmaWVyLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlIHsgV1RGTW92ZShmb3JtRGF0YSkgfSB9LCAwKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgYmxvYlVSTCA9IGJsb2JVUkwuaXNvbGF0ZWRDb3B5KCldICgp
IHsKKyAgICAgICAgYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KG1fc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworICAgICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewor
ICAgICAgICAgICAgZGlkRmFpbCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgbV9ibG9iTG9hZGVyLmVtcGxhY2UoKnRoaXMpOworICAgICAgICBhdXRvIGxvYWRl
ciA9IHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y3JlYXRlQmxvYkxvYWRlcigqbV9ibG9iTG9h
ZGVyLCBibG9iVVJMKTsKKyAgICAgICAgaWYgKCFsb2FkZXIpIHsKKyAgICAgICAgICAgIG1fYmxv
YkxvYWRlciA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgICAgIGRpZEZhaWwoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG1fYmxvYkxvYWRlci0+bG9hZGVyID0g
V1RGTW92ZShsb2FkZXIpOworICAgIH0pOworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90
IHNpemUpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCB1aW50OF90Kj4oZGF0YSksIHNpemUgfTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgbV9mZXRjaFRhc2tJZGVudGlmaWVyLCBkYXRhUmVmZXJlbmNlLCBzdGF0
aWNfY2FzdDxpbnQ2NF90PihzaXplKSB9LCAwKTsKK30KKwordm9pZCBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2hCbG9iTG9hZGluZygpCit7CisgICAgZGlkRmluaXNo
KCk7CisKKyAgICBtX2Jsb2JMb2FkZXIgPSBzdGQ6Om51bGxvcHQ7CiB9CiAKIHZvaWQgV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbCgpCkBAIC04Nyw2ICsxMjksNyBAQCB2
b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaCgpCiB7CiAgICAg
aWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKKwogICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZEZpbmlzaEZldGNoIHsgbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaFRhc2tJZGVudGlmaWVyIH0sIDApOwogICAgIG1f
Y29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmgKaW5kZXggMTc2YWQyNGUzOWE3OTNlZDkzM2U1MmZjNzk1ZTliYzQ3ZDUyMWI4NC4uZTc4NWFk
MGJkZTcwZDVjM2E5ZGIwZTRjOTgzMDAyYTlmNGJjYjlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZldGNo
TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaExvYWRlckNsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckZldGNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyVHlwZXMuaD4KIApAQCAtMzUsMjYgKzM3LDQ0IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50IGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ+IGNyZWF0ZShSZWY8SVBDOjpD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50
aWZpZXIpCisgICAgc3RhdGljIFJlZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBj
cmVhdGUoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgIFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IGZldGNoVGFza0lkZW50aWZpZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVjdGlvbiks
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaFRhc2tJZGVudGlmaWVyKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQo
V1RGTW92ZShjb25uZWN0aW9uKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBmZXRjaFRhc2tJZGVudGlmaWVyKSk7CiAgICAgfQogCiAgICAgfldl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZp
ZXIpOworICAgIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZpZXIpOwog
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4mJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRm9ybURhdGEoUmVmPFdlYkNv
cmU6OkZvcm1EYXRhPiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YUFuZEZp
bmlzaChSZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbCgp
IGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoKCkgZmluYWw7CiAgICAgdm9pZCBkaWROb3RIYW5k
bGUoKSBmaW5hbDsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZUJsb2JDaHVuayhjb25zdCBjaGFyKiBk
YXRhLCBzaXplX3Qgc2l6ZSk7CisgICAgdm9pZCBkaWRGaW5pc2hCbG9iTG9hZGluZygpOworCisg
ICAgc3RydWN0IEJsb2JMb2FkZXIgZmluYWwgOiBXZWJDb3JlOjpGZXRjaExvYWRlckNsaWVudCB7
CisgICAgICAgIGV4cGxpY2l0IEJsb2JMb2FkZXIoV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudCYgY2xpZW50KSA6IGNsaWVudChjbGllbnQpIHsgfQorCisgICAgICAgIC8vIEZldGNoTG9h
ZGVyQ2xpZW50IEFQSQorICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWwgeyB9CisgICAgICAgIHZvaWQgZGlkUmVjZWl2
ZURhdGEoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IHNpemUpIGZpbmFsIHsgY2xpZW50LT5kaWRS
ZWNlaXZlQmxvYkNodW5rKGRhdGEsIHNpemUpOyB9CisgICAgICAgIHZvaWQgZGlkRmFpbChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWwgeyBjbGllbnQtPmRpZEZhaWwoKTsgfQor
ICAgICAgICB2b2lkIGRpZFN1Y2NlZWQoKSBmaW5hbCB7IGNsaWVudC0+ZGlkRmluaXNoQmxvYkxv
YWRpbmcoKTsgfQorCisgICAgICAgIFJlZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
PiBjbGllbnQ7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpGZXRjaExvYWRlcj4g
bG9hZGVyOworICAgIH07CisKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CiAgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyOworICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV9mZXRjaFRhc2tJZGVu
dGlmaWVyIHsgMCB9OworICAgIHN0ZDo6b3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9hZGVy
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwppbmRleCA0YTVlNGJhMzg3YjZlMWYxYjllYzNkZWJhNjczZmE4MDhmNTNhNjgyLi5iYWY2ZWM5
YzdjNjVkNjdkYzdjMmVkYjBiNmM4MjY1MDhhMzJhMGY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMi0xOCAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc3BvbnNlIGJsb2Ig
Z2l2ZW4gdG8gZmV0Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODA4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1yZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVy
LXZpc2liaWxpdHkuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGVudC10
by1vdXRzY29wZS5odHRwcy1leHBlY3RlZC50eHQ6CisKIDIwMTctMTItMTcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpcCBmcmFnbWVudCBpZGVudGlmaWVy
IGZyb20gU2VydmljZVdvcmtlcidzIHNjcmlwdFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZmV0Y2gtZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi13aXRoaW4tcGFnZS5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1uYXZpZ2F0aW9u
LXdpdGhpbi1wYWdlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBkYjkxZjE4YTEzYTNmMTgxNjdj
Y2ZjYTA1ZGZlODBkMmJkZGFiZmI0Li5iZDk1ZDA5NWM2ZTU2MDYxMGVmY2MzOGE3YWE4NmI4M2Y3
NDBlMjU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1ldmVudC1hZnRlci1uYXZpZ2F0aW9uLXdpdGhpbi1wYWdlLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw1ICsxLDQgQEAKIAotCi1GQUlMIFNlcnZpY2UgV29ya2VyIHNob3Vs
ZCByZXNwb25kIHRvIGZldGNoIGV2ZW50IGFmdGVyIHRoZSBoYXNoIGNoYW5nZXMgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgImludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyIiBidXQgZ290ICIi
Ci1GQUlMIFNlcnZpY2UgV29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIGV2ZW50IGFmdGVy
IHRoZSBwdXNoU3RhdGUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImludGVyY2VwdGVkIGJ5IHNl
cnZpY2Ugd29ya2VyIiBidXQgZ290ICIiCitQQVNTIFNlcnZpY2UgV29ya2VyIHNob3VsZCByZXNw
b25kIHRvIGZldGNoIGV2ZW50IGFmdGVyIHRoZSBoYXNoIGNoYW5nZXMgCitQQVNTIFNlcnZpY2Ug
V29ya2VyIHNob3VsZCByZXNwb25kIHRvIGZldGNoIGV2ZW50IGFmdGVyIHRoZSBwdXNoU3RhdGUg
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVycmVyLXBv
bGljeS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC1y
ZWZlcnJlci1wb2xpY3kuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGM0M2VmODAyNWRhMzA1MDNi
MDNiM2NjMGIwYmMzMmZjYjcwODllMDguLjc1NTQ1NjRiMmNmMWNmODY1YmU3MmM1Mjc1OGFiZjJi
MWE1ZDdjN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXJlZmVy
cmVyLXBvbGljeS5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQtcmVmZXJyZXItcG9saWN5Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQg
QEAKIAogCi1GQUlMIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGgg
dGhlIHJlZmVycmVyIHBvbGljeSBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlv
bjogYXNzZXJ0X2VxdWFsczogU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2gg
d2l0aCB0aGUgZGVmYXVsdCByZWZlcnJlciBwb2xpY3kgZXhwZWN0ZWQgIlJlZmVycmVyUG9saWN5
OiBuby1yZWZlcnJlci13aGVuLWRvd25ncmFkZSIgYnV0IGdvdCAiIiBSZWFjaGVkIHVucmVhY2hh
YmxlIGNvZGUKK0ZBSUwgU2VydmljZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0
aCB0aGUgcmVmZXJyZXIgcG9saWN5IGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0
aW9uOiBhc3NlcnRfZXF1YWxzOiBTZXJ2aWNlIFdvcmtlciBzaG91bGQgcmVzcG9uZCB0byBmZXRj
aCB3aXRoIHRoZSBkZWZhdWx0IHJlZmVycmVyIHBvbGljeSBleHBlY3RlZCAiUmVmZXJyZXJQb2xp
Y3k6IG5vLXJlZmVycmVyLXdoZW4tZG93bmdyYWRlIiBidXQgZ290ICJSZWZlcnJlclBvbGljeTog
IiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvZmV0Y2gtZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0
Y2gtZXZlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGU3MWM4NzYzYTA0Y2JlODU4YTgyYmNj
ODU0MmI5NThhNTI1ZDNjMGMuLjE2N2Y3Y2FmNDNhN2MwYmMyYTEwZTY3MTA2MzI5NzY5ZGNmMjM4
MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50Lmh0dHBzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTIsOCArMiw4IEBACiAKIEZBSUwgU2VydmljZSBXb3JrZXIgaGVhZGVycyBpbiB0
aGUgcmVxdWVzdCBvZiBhIGZldGNoIGV2ZW50IGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQg
cmVqZWN0aW9uOiBhc3NlcnRfdHJ1ZTogcmVxdWVzdCBzcGVjaWZpZXMgIlVwZ3JhZGUtSW5zZWN1
cmUgUmVxdWVzdHMgaGVhZGVyIGFzIGluc2VydGVkIGJ5IEZldGNoIGV4cGVjdGVkIHRydWUgZ290
IGZhbHNlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogRkFJTCBTZXJ2aWNlIFdvcmtlciByZXNw
b25kcyB0byBmZXRjaCBldmVudCB3aXRoIHN0cmluZyBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVj
dGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogVGhlIGNoYXJhY3RlciBzZXQgb2YgdGhlIHJl
c3BvbnNlIGNyZWF0ZWQgd2l0aCBhIHN0cmluZyBzaG91bGQgYmUgVVRGLTggZXhwZWN0ZWQgIlVU
Ri04IiBidXQgZ290ICJ3aW5kb3dzLTEyNTIiIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJ
TCBTZXJ2aWNlIFdvcmtlciByZXNwb25kcyB0byBmZXRjaCBldmVudCB3aXRoIGJsb2IgYm9keSBh
c3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2VxdWFsczogU2Vy
dmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCBhIHRlc3Qgc3RyaW5nIGV4
cGVjdGVkICJUZXN0IGJsb2IiIGJ1dCBnb3QgIiIgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1G
QUlMIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggdGhlIHJlZmVy
cmVyIFVSTCBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4cGVjdGVkIHJlamVjdGlvbjogYXNzZXJ0X2Vx
dWFsczogU2VydmljZSBXb3JrZXIgc2hvdWxkIHJlc3BvbmQgdG8gZmV0Y2ggd2l0aCB0aGUgcmVm
ZXJyZXIgVVJMIGV4cGVjdGVkICJSZWZlcnJlcjogaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQuaHR0cHMuaHRtbCIgYnV0IGdv
dCAiIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1MgU2VydmljZSBXb3JrZXIgcmVzcG9u
ZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCBibG9iIGJvZHkgCitQQVNTIFNlcnZpY2UgV29ya2VyIHJl
c3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggdGhlIHJlZmVycmVyIFVSTCAKIFBBU1MgU2Vydmlj
ZSBXb3JrZXIgcmVzcG9uZHMgdG8gZmV0Y2ggZXZlbnQgd2l0aCBhbiBleGlzdGluZyBjbGllbnQg
aWQgCiBQQVNTIFNlcnZpY2UgV29ya2VyIGRvZXMgbm90IHJlc3BvbmQgdG8gZmV0Y2ggZXZlbnQg
CiBQQVNTIFNlcnZpY2UgV29ya2VyIHJlc3BvbmRzIHRvIGZldGNoIGV2ZW50IHdpdGggbnVsbCBy
ZXNwb25zZSBib2R5IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtaGVhZGVy
LXZpc2liaWxpdHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gt
aGVhZGVyLXZpc2liaWxpdHkuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGI5NzM4OWExMDI0OGRm
OWJhY2RmYTc1YzZhZWJiN2RkYmVjM2E4NDguLjhmYjAwNWFhYTk4NDMxZDRiNjM3ZjRjZDk3MDY3
ZjhjYmI5ODI3MjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWhlYWRlci12
aXNpYmlsaXR5Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1oZWFkZXItdmlzaWJpbGl0eS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAK
IAotRkFJTCBWaXNpYmlsaXR5IG9mIGRlZmF1bHRlZCBoZWFkZXJzIGR1cmluZyBpbnRlcmNlcHRp
b24gYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3RlZCByZWplY3Rpb246IHdpdGhVQSBGQUlMIC0g
ZXhwZWN0ZWQgImN1c3RvbV91YSIsIGdvdCAiIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZB
SUwgVmlzaWJpbGl0eSBvZiBkZWZhdWx0ZWQgaGVhZGVycyBkdXJpbmcgaW50ZXJjZXB0aW9uIGFz
c2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgcmVqZWN0aW9uOiB3aXRoVUEgRkFJTCAtIGV4cGVj
dGVkICJjdXN0b21fdWEiLCBnb3QgIk5PX1VBIiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtbWl4ZWQtY29udGVudC10by1vdXRz
Y29wZS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1taXhlZC1j
b250ZW50LXRvLW91dHNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA0N2E2MDU5NGUwZGIy
ZTRkMjRlOWYxZDY1ZDM5Yzk5MDk5Y2FlMTkyLi5hZTZlZmU1ZTM1OTIwM2ZkNjExYzA3ZmY3YmY0
MDU0YzA4MmM4ZmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1taXhlZC1j
b250ZW50LXRvLW91dHNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9mZXRjaC1taXhlZC1jb250ZW50LXRvLW91dHNjb3BlLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtNCw1ICs0LDUgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQyOiBUaGUgcGFnZSBhdCBodHRw
czovL2xvY2FsaG9zdDo5NDQzL3NlcnZpY2Utd29ya2Vycy9zZXIKIAogCiAKLUZBSUwgVmVyaWZ5
IE1peGVkIGNvbnRlbnQgb2YgZmV0Y2goKSBpbiBhIFNlcnZpY2UgV29ya2VyIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkICJmaW5pc2giIGJ1dCBnb3QgIkZBSUwoNSlmaW5pc2giCitQQVNTIFZlcmlm
eSBNaXhlZCBjb250ZW50IG9mIGZldGNoKCkgaW4gYSBTZXJ2aWNlIFdvcmtlciAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>