<?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>162667</bug_id>
          
          <creation_ts>2016-09-28 02:21:14 -0700</creation_ts>
          <short_desc>[Fetch API] Add support for URLSearchParams body</short_desc>
          <delta_ts>2016-10-06 03:58:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1234307</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-28 02:21:14 -0700</bug_when>
    <thetext>We should support URLSearchParams bodies as per https://fetch.spec.whatwg.org/#body-mixin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234326</commentid>
    <comment_count>1</comment_count>
      <attachid>290073</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-28 03:53:44 -0700</bug_when>
    <thetext>Created attachment 290073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234383</commentid>
    <comment_count>2</comment_count>
      <attachid>290073</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-28 08:25:16 -0700</bug_when>
    <thetext>Comment on attachment 290073
Patch

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

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:53
&gt; +    CString data = text.utf8();

Is this correct? I think there should be a test with an emoji in it.

&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:95
&gt; +    , m_contentType(ASCIILiteral(&quot;application/x-www-form-urlencoded;charset=UTF-8&quot;))

This string exists in many places in WebCore, all of them so far without the charset.  There should be a common place for this const char[] definition somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234412</commentid>
    <comment_count>3</comment_count>
      <attachid>290073</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-28 09:32:24 -0700</bug_when>
    <thetext>Comment on attachment 290073
Patch

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

&gt;&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:53
&gt;&gt; +    CString data = text.utf8();
&gt; 
&gt; Is this correct? I think there should be a test with an emoji in it.

Good point, there is no test for that.
I plan to fix the double allocation by moving this function in WTFString.
Can it be tackled at that time?

&gt;&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:95
&gt;&gt; +    , m_contentType(ASCIILiteral(&quot;application/x-www-form-urlencoded;charset=UTF-8&quot;))
&gt; 
&gt; This string exists in many places in WebCore, all of them so far without the charset.  There should be a common place for this const char[] definition somewhere.

Sounds good, how about adding in a future patch common HTTP header values in Source/WebCore/platform/, like in a new file like network/HTTPHeaderValues.*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234478</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-28 12:19:25 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 290073 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=290073&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:53
&gt; &gt;&gt; +    CString data = text.utf8();
&gt; &gt; 
&gt; &gt; Is this correct? I think there should be a test with an emoji in it.
&gt; 
&gt; Good point, there is no test for that.
&gt; I plan to fix the double allocation by moving this function in WTFString.
&gt; Can it be tackled at that time?
I think this should be done in the same patch so we don&apos;t have incorrect behavior in trunk. 
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/fetch/FetchBody.cpp:95
&gt; &gt;&gt; +    , m_contentType(ASCIILiteral(&quot;application/x-www-form-urlencoded;charset=UTF-8&quot;))
&gt; &gt; 
&gt; &gt; This string exists in many places in WebCore, all of them so far without the charset.  There should be a common place for this const char[] definition somewhere.
&gt; 
&gt; Sounds good, how about adding in a future patch common HTTP header values in
&gt; Source/WebCore/platform/, like in a new file like network/HTTPHeaderValues.*.
Sure. Different patch ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234479</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-28 12:22:28 -0700</bug_when>
    <thetext>This behavior is already in the repository... This patch is only moving the code we are talking from method to function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234685</commentid>
    <comment_count>6</comment_count>
      <attachid>290073</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-28 20:32:11 -0700</bug_when>
    <thetext>Comment on attachment 290073
Patch

Dang it, you&apos;re right.  This doesn&apos;t make things worse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1234710</commentid>
    <comment_count>7</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-28 21:52:10 -0700</bug_when>
    <thetext>We really ought to fix it soon, though.  Add a FIXME saying that it might not do the right thing with unicode characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235155</commentid>
    <comment_count>8</comment_count>
      <attachid>290308</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-30 00:10:41 -0700</bug_when>
    <thetext>Created attachment 290308
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235159</commentid>
    <comment_count>9</comment_count>
      <attachid>290308</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-30 01:07:15 -0700</bug_when>
    <thetext>Comment on attachment 290308
Patch for landing

Clearing flags on attachment: 290308

Committed r206632: &lt;http://trac.webkit.org/changeset/206632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235160</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-30 01:07:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235161</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-09-30 01:25:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; We really ought to fix it soon, though.  Add a FIXME saying that it might
&gt; not do the right thing with unicode characters.

I did some tests and cannot make it faulty, even with non-BMP characters.
That said, it is more consistent to use UTF8Encoding.
Also, this code needs to be changed anyway to remove the no-longer needed vector allocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236998</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-06 03:58:22 -0700</bug_when>
    <thetext>&gt; &gt; &gt; This string exists in many places in WebCore, all of them so far without the charset.  There should be a common place for this const char[] definition somewhere.
&gt; &gt; 
&gt; &gt; Sounds good, how about adding in a future patch common HTTP header values in
&gt; &gt; Source/WebCore/platform/, like in a new file like network/HTTPHeaderValues.*.
&gt; Sure. Different patch ok.

Filed bug 163002 for that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290073</attachid>
            <date>2016-09-28 03:53:44 -0700</date>
            <delta_ts>2016-09-30 00:10:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162667-20160928125042.patch</filename>
            <type>text/plain</type>
            <size>36733</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYyZmM2ZDEyNzhiNzVj
NjFjMzAzOTM3NzkwNmU5MjZmMmM2NGRmYi4uZGQyNTNlOWMxNWYxNTVjOWUyMjZmMzc1YmUwZDIy
YmQ1NDY0MzRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTA5LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gQWRk
IHN1cHBvcnQgZm9yIFVSTFNlYXJjaFBhcmFtcyBib2R5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2NjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQtd29ya2VyLmh0bWwKKyAgICAg
ICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtdXBsb2FkLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RCeXRlc0Zyb21UZXh0KTogTW92aW5nIHRv
IGEgc3RhdGljIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGJlIG1vdmVkIHRvIGEgU3RyaW5nIG1ldGhv
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6RmV0Y2hCb2R5KTogQWRkaW5nIGNvbnN0
cnVjdG9yIGZvciBVUkxTZWFyY2hQYXJhbXMuCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6
OmV4dHJhY3QpOiBBZGRpbmcgVVJMU2VhcmNoUGFyYW1zIGJvZHkgaW5pdGlhbGl6YXRpb24uCisg
ICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNvbnN1bWUpOiBDb25zdW1pbmcgVVJMU2VhcmNo
UGFyYW1zIGJvZGllcy4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Y29uc3VtZUFzU3Ry
ZWFtKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNvbnN1bWVUZXh0KTog
VXBkYXRlZCB0byB0YWtlIGEgcGFyYW1ldGVyIHRvIGhhbmRsZSBib3RoIHRleHQgYW5kIFVSTFNl
YXJjaFBhcmFtcyBib2RpZXMuCisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmJvZHlGb3JJ
bnRlcm5hbFJlcXVlc3QpOiBBZGQgVVJMU2VhcmNoUGFyYW1zIGJvZHkgdXBsb2FkLgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpjbG9uZSk6IEFkZCBVUkxTZWFyY2hQYXJhbXMgYm9keSBj
bG9uaW5nCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZldGNoQm9keTo6dXJsU2VhcmNoUGFyYW1zQm9keSk6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHA6CisgICAgICAgICogaHRtbC9VUkxTZWFyY2hQYXJh
bXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMU2VhcmNoUGFyYW1zOjp0b1N0cmluZyk6Cisg
ICAgICAgICogaHRtbC9VUkxTZWFyY2hQYXJhbXMuaDoKKwogMjAxNi0wOS0yNyAgSm9vbmdodW4g
UGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gRml4IGRlYnVn
IGJ1aWxkIGJyZWFrIHNpbmNlIHIyMDY0ODEuIFVucmV2aWV3ZWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcAppbmRleCBhMTUzZmZkNTc1NmJhZGM5NWY4MWYyYzdl
ZDdiZGNmYTQ2MTBjMWFhLi4yMzlkNGZiM2FmM2ZkZmVkYTcxYjQxNDcwMjc2N2QyYjA3NzI4NTEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuY3BwCkBAIC00MSwx
MSArNDEsMjEgQEAKICNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTUZvcm1EYXRh
LmgiCiAjaW5jbHVkZSAiSlNSZWFkYWJsZVN0cmVhbS5oIgorI2luY2x1ZGUgIkpTVVJMU2VhcmNo
UGFyYW1zLmgiCiAjaW5jbHVkZSAiUmVhZGFibGVTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlIDxy
dW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJ
WE1FOiBUaGlzIGltcGxlbWVudGF0aW9uIGlzIG5vdCBlZmZpY2llbnQgYW5kIHNob3VsZCBiZSBt
b3ZlZCB0byBXVEZTdHJpbmcuCitzdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGV4dHJhY3RCeXRlc0Zy
b21UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBDU3RyaW5nIGRhdGEgPSB0ZXh0LnV0
ZjgoKTsKKyAgICBWZWN0b3I8dWludDhfdD4gdmFsdWUoZGF0YS5sZW5ndGgoKSk7CisgICAgbWVt
Y3B5KHZhbHVlLmRhdGEoKSwgZGF0YS5kYXRhKCksIGRhdGEubGVuZ3RoKCkpOworICAgIHJldHVy
biB2YWx1ZTsKK30KKwogRmV0Y2hCb2R5OjpGZXRjaEJvZHkoUmVmPGNvbnN0IEJsb2I+JiYgYmxv
YikKICAgICA6IG1fdHlwZShUeXBlOjpCbG9iKQogICAgICwgbV9kYXRhKFdURk1vdmUoYmxvYikp
CkBAIC03OSw2ICs4OSwxMyBAQCBGZXRjaEJvZHk6OkZldGNoQm9keShSZWY8Y29uc3QgQXJyYXlC
dWZmZXJWaWV3PiYmIGRhdGFWaWV3KQogewogfQogCitGZXRjaEJvZHk6OkZldGNoQm9keShSZWY8
Y29uc3QgVVJMU2VhcmNoUGFyYW1zPiYmIHVybCkKKyAgICA6IG1fdHlwZShUeXBlOjpVUkxTZWFj
aFBhcmFtcykKKyAgICAsIG1fZGF0YShXVEZNb3ZlKHVybCkpCisgICAgLCBtX2NvbnRlbnRUeXBl
KEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9
VVRGLTgiKSkKK3sKK30KKwogRmV0Y2hCb2R5OjpGZXRjaEJvZHkoVHlwZSB0eXBlLCBjb25zdCBT
dHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBGZXRjaEJvZHlDb25zdW1lciYgY29uc3VtZXIpCiAg
ICAgOiBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udGVudFR5cGUoY29udGVudFR5cGUpCkBAIC05
Niw2ICsxMTMsOCBAQCBGZXRjaEJvZHkgRmV0Y2hCb2R5OjpleHRyYWN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIEpTQzo6RXhlY1N0YXRlJiBzdAogICAgIH0KICAgICBpZiAodmFs
dWUuaXNTdHJpbmcoKSkKICAgICAgICAgcmV0dXJuIEZldGNoQm9keSh2YWx1ZS50b1dURlN0cmlu
Zygmc3RhdGUpKTsKKyAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNVUkxTZWFyY2hQYXJhbXM6Omlu
Zm8oKSkpCisgICAgICAgIHJldHVybiBGZXRjaEJvZHkoKkpTVVJMU2VhcmNoUGFyYW1zOjp0b1dy
YXBwZWQodmFsdWUpKTsKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoSlNSZWFkYWJsZVN0cmVhbTo6
aW5mbygpKSkKICAgICAgICAgcmV0dXJuIHsgVHlwZTo6UmVhZGFibGVTdHJlYW0gfTsKICAgICBp
ZiAodmFsdWUuaW5oZXJpdHMoSlNDOjpKU0FycmF5QnVmZmVyOjppbmZvKCkpKSB7CkBAIC0xODUs
NyArMjA0LDEwIEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lKEZldGNoQm9keU93bmVyJiBvd25l
ciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogICAgICAgICBjb25zdW1lQXJyYXlC
dWZmZXJWaWV3KFdURk1vdmUocHJvbWlzZSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBU
eXBlOjpUZXh0OgotICAgICAgICBjb25zdW1lVGV4dChXVEZNb3ZlKHByb21pc2UpKTsKKyAgICAg
ICAgY29uc3VtZVRleHQoV1RGTW92ZShwcm9taXNlKSwgdGV4dEJvZHkoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIFR5cGU6OlVSTFNlYWNoUGFyYW1zOgorICAgICAgICBjb25zdW1lVGV4
dChXVEZNb3ZlKHByb21pc2UpLCB1cmxTZWFyY2hQYXJhbXNCb2R5KCkudG9TdHJpbmcoKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFR5cGU6OkJsb2I6CiAgICAgICAgIGNvbnN1bWVCbG9i
KG93bmVyLCBXVEZNb3ZlKHByb21pc2UpKTsKQEAgLTIyNSw3ICsyNDcsMTMgQEAgdm9pZCBGZXRj
aEJvZHk6OmNvbnN1bWVBc1N0cmVhbShGZXRjaEJvZHlPd25lciYgb3duZXIsIEZldGNoUmVzcG9u
c2VTb3VyY2UmIHNvdXIKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgVHlwZTo6VGV4
dDogewotICAgICAgICBWZWN0b3I8dWludDhfdD4gZGF0YSA9IGV4dHJhY3RGcm9tVGV4dCgpOwor
ICAgICAgICBWZWN0b3I8dWludDhfdD4gZGF0YSA9IGV4dHJhY3RCeXRlc0Zyb21UZXh0KHRleHRC
b2R5KCkpOworICAgICAgICBjbG9zZVN0cmVhbSA9IHNvdXJjZS5lbnF1ZXVlKEFycmF5QnVmZmVy
Ojp0cnlDcmVhdGUoZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgpKSk7CisgICAgICAgIG1fZGF0YSA9
IG51bGxwdHI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFR5cGU6OlVSTFNlYWNo
UGFyYW1zOiB7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBkYXRhID0gZXh0cmFjdEJ5dGVzRnJv
bVRleHQodXJsU2VhcmNoUGFyYW1zQm9keSgpLnRvU3RyaW5nKCkpOwogICAgICAgICBjbG9zZVN0
cmVhbSA9IHNvdXJjZS5lbnF1ZXVlKEFycmF5QnVmZmVyOjp0cnlDcmVhdGUoZGF0YS5kYXRhKCks
IGRhdGEuc2l6ZSgpKSk7CiAgICAgICAgIG1fZGF0YSA9IG51bGxwdHI7CiAgICAgICAgIGJyZWFr
OwpAQCAtMjYyLDkgKzI5MCw5IEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lQXJyYXlCdWZmZXJW
aWV3KFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICBtX2RhdGEgPSBudWxscHRy
OwogfQogCi12b2lkIEZldGNoQm9keTo6Y29uc3VtZVRleHQoUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQordm9pZCBGZXRjaEJvZHk6OmNvbnN1bWVUZXh0KFJlZjxEZWZlcnJlZFByb21p
c2U+JiYgcHJvbWlzZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQogewotICAgIFZlY3Rvcjx1aW50OF90
PiBkYXRhID0gZXh0cmFjdEZyb21UZXh0KCk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEgPSBl
eHRyYWN0Qnl0ZXNGcm9tVGV4dCh0ZXh0KTsKICAgICBtX2NvbnN1bWVyLnJlc29sdmVXaXRoRGF0
YShXVEZNb3ZlKHByb21pc2UpLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOwogICAgIG1fZGF0
YSA9IG51bGxwdHI7CiB9CkBAIC0yNzYsMTYgKzMwNCw2IEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25z
dW1lQmxvYihGZXRjaEJvZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzCiAgICAgbV9kYXRhID0gbnVsbHB0cjsKIH0KIAotVmVjdG9yPHVpbnQ4X3Q+IEZldGNoQm9k
eTo6ZXh0cmFjdEZyb21UZXh0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV90eXBlID09IFR5cGU6
OlRleHQpOwotICAgIC8vIEZJWE1FOiBUaGlzIGRvdWJsZSBhbGxvY2F0aW9uIGlzIG5vdCBlZmZp
Y2llbnQuIE1pZ2h0IHdhbnQgdG8gZml4IHRoYXQgYXQgV1RGU3RyaW5nIGxldmVsLgotICAgIENT
dHJpbmcgZGF0YSA9IHRleHRCb2R5KCkudXRmOCgpOwotICAgIFZlY3Rvcjx1aW50OF90PiB2YWx1
ZShkYXRhLmxlbmd0aCgpKTsKLSAgICBtZW1jcHkodmFsdWUuZGF0YSgpLCBkYXRhLmRhdGEoKSwg
ZGF0YS5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCiB2b2lkIEZldGNoQm9keTo6
bG9hZGluZ0ZhaWxlZCgpCiB7CiAgICAgaWYgKG1fY29uc3VtZVByb21pc2UpIHsKQEAgLTMwOCw2
ICszMjYsOCBAQCBSZWZQdHI8Rm9ybURhdGE+IEZldGNoQm9keTo6Ym9keUZvckludGVybmFsUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICBjYXNlIFR5cGU6OlRleHQ6CiAgICAgICAgIHJldHVybiBGb3JtRGF0YTo6Y3JlYXRl
KFVURjhFbmNvZGluZygpLmVuY29kZSh0ZXh0Qm9keSgpLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxl
cykpOworICAgIGNhc2UgVHlwZTo6VVJMU2VhY2hQYXJhbXM6CisgICAgICAgIHJldHVybiBGb3Jt
RGF0YTo6Y3JlYXRlKFVURjhFbmNvZGluZygpLmVuY29kZSh1cmxTZWFyY2hQYXJhbXNCb2R5KCku
dG9TdHJpbmcoKSwgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpKTsKICAgICBjYXNlIFR5cGU6OkJs
b2I6IHsKICAgICAgICAgUmVmUHRyPEZvcm1EYXRhPiBib2R5ID0gRm9ybURhdGE6OmNyZWF0ZSgp
OwogICAgICAgICBib2R5LT5hcHBlbmRCbG9iKGJsb2JCb2R5KCkudXJsKCkpOwpAQCAtMzUwLDYg
KzM3MCw5IEBAIEZldGNoQm9keSBGZXRjaEJvZHk6OmNsb25lKCkgY29uc3QKICAgICBjYXNlIFR5
cGU6OlRleHQ6CiAgICAgICAgIGNsb25lLm1fZGF0YSA9IHRleHRCb2R5KCk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVHlwZTo6VVJMU2VhY2hQYXJhbXM6CisgICAgICAgIGNsb25lLm1fZGF0
YSA9IHVybFNlYXJjaFBhcmFtc0JvZHkoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBUeXBl
OjpMb2FkZWQ6CiAgICAgY2FzZSBUeXBlOjpOb25lOgogICAgIGNhc2UgVHlwZTo6TG9hZGluZzoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCmluZGV4IDFiYWRmM2Q0NzAz
ZmExMmNkNzk4MWY1ODA1YmE1ZmVkOTkyMDIxNmQuLjdiMTRiZGY3NGMzYzBiZjkzMjM5N2NmNjFh
N2YwZjI2NzNiZjA4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hCb2R5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
aApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkZldGNoTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Rm9ybURhdGEuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKKyNpbmNsdWRlICJVUkxTZWFy
Y2hQYXJhbXMuaCIKICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgogCiBuYW1lc3BhY2UgSlNDIHsK
QEAgLTc5LDcgKzgwLDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPEZvcm1EYXRhPiBib2R5Rm9y
SW50ZXJuYWxSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBjb25zdDsKIAotICAgIGVu
dW0gY2xhc3MgVHlwZSB7IE5vbmUsIEFycmF5QnVmZmVyLCBBcnJheUJ1ZmZlclZpZXcsIEJsb2Is
IEZvcm1EYXRhLCBUZXh0LCBMb2FkaW5nLCBMb2FkZWQsIFJlYWRhYmxlU3RyZWFtIH07CisgICAg
ZW51bSBjbGFzcyBUeXBlIHsgTm9uZSwgQXJyYXlCdWZmZXIsIEFycmF5QnVmZmVyVmlldywgQmxv
YiwgRm9ybURhdGEsIFRleHQsIFVSTFNlYWNoUGFyYW1zLCBMb2FkaW5nLCBMb2FkZWQsIFJlYWRh
YmxlU3RyZWFtIH07CiAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAK
ICAgICBGZXRjaEJvZHlDb25zdW1lciYgY29uc3VtZXIoKSB7IHJldHVybiBtX2NvbnN1bWVyOyB9
CkBAIC05NCwxNSArOTUsMTUgQEAgcHJpdmF0ZToKICAgICBGZXRjaEJvZHkoUmVmPGNvbnN0IEFy
cmF5QnVmZmVyVmlldz4mJik7CiAgICAgRmV0Y2hCb2R5KERPTUZvcm1EYXRhJiwgRG9jdW1lbnQm
KTsKICAgICBGZXRjaEJvZHkoU3RyaW5nJiYpOworICAgIEZldGNoQm9keShSZWY8Y29uc3QgVVJM
U2VhcmNoUGFyYW1zPiYmKTsKICAgICBGZXRjaEJvZHkoVHlwZSwgY29uc3QgU3RyaW5nJiwgY29u
c3QgRmV0Y2hCb2R5Q29uc3VtZXImKTsKICAgICBGZXRjaEJvZHkoVHlwZSB0eXBlKSA6IG1fdHlw
ZSh0eXBlKSB7IH0KIAogICAgIHZvaWQgY29uc3VtZShGZXRjaEJvZHlPd25lciYsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYpOwogCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IGV4dHJhY3RGcm9tVGV4dCgp
IGNvbnN0OwogICAgIHZvaWQgY29uc3VtZUFycmF5QnVmZmVyKFJlZjxEZWZlcnJlZFByb21pc2U+
JiYpOwogICAgIHZvaWQgY29uc3VtZUFycmF5QnVmZmVyVmlldyhSZWY8RGVmZXJyZWRQcm9taXNl
PiYmKTsKLSAgICB2b2lkIGNvbnN1bWVUZXh0KFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAg
IHZvaWQgY29uc3VtZVRleHQoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBjb25zdW1lQmxvYihGZXRjaEJvZHlPd25lciYsIFJlZjxEZWZlcnJlZFByb21p
c2U+JiYpOwogCiAgICAgY29uc3QgQmxvYiYgYmxvYkJvZHkoKSBjb25zdCB7IHJldHVybiBzdGQ6
OmV4cGVyaW1lbnRhbDo6Z2V0PFJlZjxjb25zdCBCbG9iPj4obV9kYXRhKS5nZXQoKTsgfQpAQCAt
MTEyLDExICsxMTMsMTEgQEAgcHJpdmF0ZToKICAgICBjb25zdCBBcnJheUJ1ZmZlclZpZXcmIGFy
cmF5QnVmZmVyVmlld0JvZHkoKSBjb25zdCB7IHJldHVybiBzdGQ6OmV4cGVyaW1lbnRhbDo6Z2V0
PFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+PihtX2RhdGEpLmdldCgpOyB9CiAgICAgU3RyaW5n
JiB0ZXh0Qm9keSgpIHsgcmV0dXJuIHN0ZDo6ZXhwZXJpbWVudGFsOjpnZXQ8U3RyaW5nPihtX2Rh
dGEpOyB9CiAgICAgY29uc3QgU3RyaW5nJiB0ZXh0Qm9keSgpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6
ZXhwZXJpbWVudGFsOjpnZXQ8U3RyaW5nPihtX2RhdGEpOyB9CisgICAgY29uc3QgVVJMU2VhcmNo
UGFyYW1zJiB1cmxTZWFyY2hQYXJhbXNCb2R5KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBlcmlt
ZW50YWw6OmdldDxSZWY8Y29uc3QgVVJMU2VhcmNoUGFyYW1zPj4obV9kYXRhKS5nZXQoKTsgfQog
CiAgICAgVHlwZSBtX3R5cGUgeyBUeXBlOjpOb25lIH07CiAKLSAgICAvLyBGSVhNRTogQWRkIHN1
cHBvcnQgZm9yIFVSTFNlYXJjaFBhcmFtcy4KLSAgICBzdGQ6OmV4cGVyaW1lbnRhbDo6dmFyaWFu
dDxzdGQ6Om51bGxwdHJfdCwgUmVmPGNvbnN0IEJsb2I+LCBSZWY8Rm9ybURhdGE+LCBSZWY8Y29u
c3QgQXJyYXlCdWZmZXI+LCBSZWY8Y29uc3QgQXJyYXlCdWZmZXJWaWV3PiwgU3RyaW5nPiBtX2Rh
dGE7CisgICAgc3RkOjpleHBlcmltZW50YWw6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxj
b25zdCBCbG9iPiwgUmVmPEZvcm1EYXRhPiwgUmVmPGNvbnN0IEFycmF5QnVmZmVyPiwgUmVmPGNv
bnN0IEFycmF5QnVmZmVyVmlldz4sIFJlZjxjb25zdCBVUkxTZWFyY2hQYXJhbXM+LCBTdHJpbmc+
IG1fZGF0YTsKICAgICBTdHJpbmcgbV9jb250ZW50VHlwZTsKIAogICAgIEZldGNoQm9keUNvbnN1
bWVyIG1fY29uc3VtZXIgeyBGZXRjaEJvZHlDb25zdW1lcjo6VHlwZTo6Tm9uZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlPd25lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAppbmRleCAxNGY2
ZmMzMDg5ZTUzODc2ZThkY2Q5MTIzMjlmYzQ1OGQ3YmNmMzZjLi5iMjcxOTgwM2M1ZmRkZGYwNDhi
MmEyOGVhYmY0MzMzMTcxYmYxZjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keU93bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keU93bmVyLmNwcApAQCAtNTIsMTAgKzUyLDE0IEBAIHZvaWQgRmV0Y2hCb2R5
T3duZXI6OnN0b3AoKQogICAgIG1fYm9keS5jbGVhbkNvbnN1bWVQcm9taXNlKCk7CiAKICAgICBp
ZiAobV9ibG9iTG9hZGVyKSB7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBib29sIGlzVW5pcXVl
UmVmZXJlbmNlID0gaGFzT25lUmVmKCk7CisjZW5kaWYKICAgICAgICAgaWYgKG1fYmxvYkxvYWRl
ci0+bG9hZGVyKQogICAgICAgICAgICAgbV9ibG9iTG9hZGVyLT5sb2FkZXItPnN0b3AoKTsKKyAg
ICAgICAgLy8gQWZ0ZXIgdGhhdCBwb2ludCwgJ3RoaXMnIG1heSBiZSBkZXN0cm95ZWQsIHNpbmNl
IHVuc2V0UGVuZGluZ0FjdGl2aXR5IHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLgorICAgICAgICBB
U1NFUlQoaXNVbmlxdWVSZWZlcmVuY2UgfHwgIW1fYmxvYkxvYWRlcik7CiAgICAgfQotICAgIEFT
U0VSVCghbV9ibG9iTG9hZGVyKTsKIH0KIAogYm9vbCBGZXRjaEJvZHlPd25lcjo6aXNEaXN0dXJi
ZWRPckxvY2tlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNl
YXJjaFBhcmFtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5jcHAK
aW5kZXggYzE4YmUwNjNkYmNjOGJhNGVkZjg2NGNiMWE1NjhkNWJiNjMyYzY0Yi4uNDliOWUyNmI5
MWRlNjEwN2I4NTQ2NjYxMDZiMjZiYTIyOGFkMzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
U2VhcmNoUGFyYW1zLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgVVJMU2VhcmNoUGFyYW1z
OjpyZW1vdmUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICB1cGRhdGVVUkwoKTsKIH0KIAot
U3RyaW5nIFVSTFNlYXJjaFBhcmFtczo6dG9TdHJpbmcoKQorU3RyaW5nIFVSTFNlYXJjaFBhcmFt
czo6dG9TdHJpbmcoKSBjb25zdAogewogICAgIHJldHVybiBVUkxQYXJzZXI6OnNlcmlhbGl6ZSht
X3BhaXJzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFy
YW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5oCmluZGV4IGJmZmE1
MmVlMjI2MjQ4YTgxOTA3NDM5Y2YzNzBhOGVkY2IxMTAyOTkuLmNjMzE0NGNjOTQ2Nzk4N2ZmZDQy
YzFkNjUwZWFiZmY0OGFjYWU4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
U2VhcmNoUGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMu
aApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFN0cmluZz4gZ2V0QWxsKGNv
bnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgYm9vbCBoYXMoY29uc3QgU3RyaW5nJiBuYW1l
KSBjb25zdDsKICAgICB2b2lkIHNldChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dmFsdWUpOwotICAgIFN0cmluZyB0b1N0cmluZygpOworICAgIFN0cmluZyB0b1N0cmluZygpIGNv
bnN0OwogICAgIG9wZXJhdG9yIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+
PiYoKSB7IHJldHVybiBtX3BhaXJzOyB9CiAgICAgdm9pZCB1cGRhdGVGcm9tQXNzb2NpYXRlZFVS
TCgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxNWMyZDRhNDEyZmQ3YTFl
ZmVjNjAzYzg5ZmJkYmRhMjVkODExNDMyLi4yOWY3ZjYxN2RmZDEzZmVkMjJhMDU4YjU2MWE5MzBl
ODM0ZjI0NjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBA
QAorMjAxNi0wOS0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubmZAZ21haWwuY29tPgorCisgICAg
ICAgIFtGZXRjaCBBUEldIEFkZCBzdXBwb3J0IGZvciBVUkxTZWFyY2hQYXJhbXMgYm9keQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNjY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIG5ldyB0
ZXN0cyB0byBjb25zdW1lLCBzdHJlYW0gYW5kIHVwbG9hZCBVUkxTZWFyY2hQYXJhbXMgYm9kaWVz
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0
LWhlYWRlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMuanM6
CisgICAgICAgIChjaGVja0NvbnRlbnRUeXBlKToKKyAgICAgICAgKHJlcXVlc3RIZWFkZXJzKToK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBs
b2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBs
b2FkLXdvcmtlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQuanM6IEFkZGVkLgor
ICAgICAgICAodGVzdFVwbG9hZCk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1l
bXB0eS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWluaXQtMDAyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHk6IEFkZGVkLgorICAgICAg
ICAobWFpbik6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuaHRt
bDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0tZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y29uc3VtZS1zdHJlYW0uaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLWV4cGVjdGVkLnR4
dDoKKwogMjAxNi0wOS0yNyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBJbXBvcnQgdzNjIHNoYWRvdyBET00gdGVzdHMgYW5kIGZpeCBvbmUgYXNzZXJ0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1o
ZWFkZXJzLWV4cGVjdGVkLnR4dAppbmRleCA2ZmU4ZWRhNTZlMmJlODFlYzAzMmJmMWNmZWZmZmJk
Njg2YzY1MWI4Li45ZmM4MWJjMWVjZjVkNjdlNGIzYWE1Mjk1NGIyNjUxN2JmYTkwYWQzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3Qt
aGVhZGVycy1leHBlY3RlZC50eHQKQEAgLTYsNiArNiw3IEBAIFBBU1MgRmV0Y2ggd2l0aCBQVVQg
d2l0aCBib2R5CiBQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRob3V0IGJvZHkgCiBQQVNTIEZldGNo
IHdpdGggUE9TVCB3aXRoIHRleHQgYm9keSAKIFBBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRm9y
bURhdGEgYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggVVJMU2VhcmNoUGFyYW1zIGJv
ZHkgCiBGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9keSBhc3NlcnRfZXF1YWxzOiBS
ZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9i
amVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu
Y29kZWQiCiBGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEFycmF5QnVmZmVyIGJvZHkgYXNzZXJ0
X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4
cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBwbGljYXRpb24veC13d3ct
Zm9ybS11cmxlbmNvZGVkIgogRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBVaW50OEFycmF5IGJv
ZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10eXBl
OiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAiYXBwbGljYXRp
b24veC13d3ctZm9ybS11cmxlbmNvZGVkIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJz
LXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLWV4cGVjdGVk
LnR4dAppbmRleCBmMGZjYjgyNTAwYzFmNGE4NjI1ZGI3OTc0YzljN2NjZjRhYzgxNmJiLi42ZWZh
YTEzNzhlNmE5MjE4OTMwNTA4MmU2NzY5NzBlMzgzMmI1NWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1
ZXN0LWhlYWRlcnMtd29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMt
d29ya2VyLWV4cGVjdGVkLnR4dApAQCAtNiw2ICs2LDcgQEAgUEFTUyBGZXRjaCB3aXRoIFBVVCB3
aXRoIGJvZHkKIFBBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGhvdXQgYm9keSAKIFBBU1MgRmV0Y2gg
d2l0aCBQT1NUIHdpdGggdGV4dCBib2R5IAogRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGb3Jt
RGF0YSBib2R5IENhbid0IGZpbmQgdmFyaWFibGU6IEZvcm1EYXRhCitQQVNTIEZldGNoIHdpdGgg
UE9TVCB3aXRoIFVSTFNlYXJjaFBhcmFtcyBib2R5IAogRkFJTCBGZXRjaCB3aXRoIFBPU1Qgd2l0
aCBCbG9iIGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29u
dGVudC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAi
YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgogRkFJTCBGZXRjaCB3aXRoIFBPU1Qg
d2l0aCBBcnJheUJ1ZmZlciBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hvdWxkIGhhdmUg
aGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1dCBnb3Qg
KHN0cmluZykgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKIEZBSUwgRmV0Y2gg
d2l0aCBQT1NUIHdpdGggVWludDhBcnJheSBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hv
dWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxs
IGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5qcwpp
bmRleCA0Yzc4ZmYwZGMxYzk5MjVhZjY3Njk3YzA3MGU5MTFjNTA3MDM4YzIwLi43YjBlZWU0ODlh
NzM3NzQ2MzkzMjZjMzZhYzdiMGE4ZGY1MzBkM2ZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhl
YWRlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmpzCkBAIC0xNSw2ICsxNSw4IEBAIGZ1
bmN0aW9uIGNoZWNrQ29udGVudFR5cGUoY29udGVudFR5cGUsIGJvZHkpCiAgICAgICAgIGV4cGVj
dGVkQ29udGVudFR5cGUgPSBudWxsOwogICAgIGVsc2UgaWYgKGJvZHkgaW5zdGFuY2VvZiBCbG9i
KQogICAgICAgICBleHBlY3RlZENvbnRlbnRUeXBlID0gYm9keS50eXBlID8gYm9keS50eXBlIDog
bnVsbDsKKyAgICBlbHNlIGlmIChib2R5IGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zKQorICAg
ICAgICBleHBlY3RlZENvbnRlbnRUeXBlID0gImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZDtjaGFyc2V0PVVURi04IjsKIAogICAgIGFzc2VydF9lcXVhbHMoY29udGVudFR5cGUgLCBl
eHBlY3RlZENvbnRlbnRUeXBlLCAiUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29udGVudC10
eXBlOiAiICsgZXhwZWN0ZWRDb250ZW50VHlwZSk7CiB9CkBAIC00OSw2ICs1MSw3IEBAIHJlcXVl
c3RIZWFkZXJzKCJGZXRjaCB3aXRoIFBVVCB3aXRoIGJvZHkiLCB1cmwsICJQVVQiLCAiUmVxdWVz
dCdzIGJvZHkiLCBsb2NhdGlvCiByZXF1ZXN0SGVhZGVycygiRmV0Y2ggd2l0aCBQT1NUIHdpdGhv
dXQgYm9keSIsIHVybCwgIlBPU1QiLCBudWxsLCBsb2NhdGlvbi5vcmlnaW4sICIwIik7CiByZXF1
ZXN0SGVhZGVycygiRmV0Y2ggd2l0aCBQT1NUIHdpdGggdGV4dCBib2R5IiwgdXJsLCAiUE9TVCIs
ICJSZXF1ZXN0J3MgYm9keSIsIGxvY2F0aW9uLm9yaWdpbiwgIjE0Iik7CiByZXF1ZXN0SGVhZGVy
cygiRmV0Y2ggd2l0aCBQT1NUIHdpdGggRm9ybURhdGEgYm9keSIsIHVybCwgIlBPU1QiLCBmdW5j
dGlvbigpIHsgcmV0dXJuIG5ldyBGb3JtRGF0YSgpOyB9LCBsb2NhdGlvbi5vcmlnaW4pOworcmVx
dWVzdEhlYWRlcnMoIkZldGNoIHdpdGggUE9TVCB3aXRoIFVSTFNlYXJjaFBhcmFtcyBib2R5Iiwg
dXJsLCAiUE9TVCIsIGZ1bmN0aW9uKCkgeyByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcygibmFt
ZT12YWx1ZSIpOyB9LCBsb2NhdGlvbi5vcmlnaW4sICIxMCIpOwogcmVxdWVzdEhlYWRlcnMoIkZl
dGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgQmxvYihbIlRl
c3QiXSksIGxvY2F0aW9uLm9yaWdpbiwgIjQiKTsKIHJlcXVlc3RIZWFkZXJzKCJGZXRjaCB3aXRo
IFBPU1Qgd2l0aCBBcnJheUJ1ZmZlciBib2R5IiwgdXJsLCAiUE9TVCIsIG5ldyBBcnJheUJ1ZmZl
cig0KSwgbG9jYXRpb24ub3JpZ2luLCAiNCIpOwogcmVxdWVzdEhlYWRlcnMoIkZldGNoIHdpdGgg
UE9TVCB3aXRoIFVpbnQ4QXJyYXkgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgVWludDhBcnJheSg0
KSwgbG9jYXRpb24ub3JpZ2luLCAiNCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE4NGU1YTA2MmU4N2IxYzJmMDExNDMzMzcyZDEyZTJkMDM2ZjViNzkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitQ
QVNTIEZldGNoIHdpdGggUFVUIHdpdGggYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGgg
dGV4dCBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBVUkxTZWFyY2hQYXJhbXMgYm9k
eSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQmxvYiBib2R5IAorUEFTUyBGZXRjaCB3aXRo
IFBPU1Qgd2l0aCBBcnJheUJ1ZmZlciBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBV
aW50OEFycmF5IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIEludDhBcnJheSBib2R5
IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGbG9hdDMyQXJyYXkgYm9keSAKK1BBU1MgRmV0
Y2ggd2l0aCBQT1NUIHdpdGggRmxvYXQ2NEFycmF5IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9T
VCB3aXRoIERhdGFWaWV3IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9k
eSB3aXRoIG1pbWUgdHlwZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQtd29ya2Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLXdvcmtlci1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTg0ZTVhMDYyZTg3YjFjMmYwMTE0MzMzNzJkMTJlMmQwMzZmNWI3OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorCitQQVNTIEZldGNoIHdpdGggUFVUIHdpdGggYm9keSAKK1BBU1MgRmV0Y2gg
d2l0aCBQT1NUIHdpdGggdGV4dCBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBVUkxT
ZWFyY2hQYXJhbXMgYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQmxvYiBib2R5IAor
UEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBBcnJheUJ1ZmZlciBib2R5IAorUEFTUyBGZXRjaCB3
aXRoIFBPU1Qgd2l0aCBVaW50OEFycmF5IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRo
IEludDhBcnJheSBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGbG9hdDMyQXJyYXkg
Ym9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRmxvYXQ2NEFycmF5IGJvZHkgCitQQVNT
IEZldGNoIHdpdGggUE9TVCB3aXRoIERhdGFWaWV3IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9T
VCB3aXRoIEJsb2IgYm9keSB3aXRoIG1pbWUgdHlwZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVz
dC11cGxvYWQtd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC13b3JrZXIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MTRkZTZmMzdmNmE5ZGYwZDdkNmEwMjcwY2ZiNWEwMzFlZDI0NGMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQtd29ya2VyLmh0bWwKQEAgLTAsMCArMSwxNCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorICAgIDx0aXRsZT5GZXRjaCBpbiB3b3JrZXI6IFVwbG9hZDwvdGl0bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
PC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgZmV0Y2hfdGVzdHNfZnJvbV93
b3JrZXIobmV3IFdvcmtlcigicmVxdWVzdC11cGxvYWQuanMiKSk7CisgICAgPC9zY3JpcHQ+Cisg
IDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNp
Yy9yZXF1ZXN0LXVwbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiNWI4ZTc2YmY1YjVlZjM1YjdmNzI2
NWRjMTJjNTI1ZmZmMjk1MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC5o
dG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgor
ICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+RmV0Y2g6IFVwbG9hZGluZyBj
b250ZW50PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdXRpbHMuanMi
Pjwvc2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxzY3JpcHQgc3JjPSJyZXF1ZXN0
LXVwbG9hZC5qcyI+PC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtdXBsb2FkLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVk
NzljNGMxODVjMjNiYjllOThiNTJmMzQ4OTI4ZDkxZDZkNzI5MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3JlcXVlc3QtdXBsb2FkLmpzCkBAIC0wLDAgKzEsMzUgQEAKK2lmICh0aGlzLmRvY3VtZW50
ID09PSB1bmRlZmluZWQpIHsKKyAgaW1wb3J0U2NyaXB0cygiL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyIpOworICBpbXBvcnRTY3JpcHRzKCIuLi9yZXNvdXJjZXMvdXRpbHMuanMiKTsKK30KKwor
ZnVuY3Rpb24gdGVzdFVwbG9hZChkZXNjLCB1cmwsIG1ldGhvZCwgYm9keSwgZXhwZWN0ZWRCb2R5
KSB7CisgIHZhciByZXF1ZXN0SW5pdCA9IHsibWV0aG9kIjogbWV0aG9kfQorICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24odGVzdCl7CisgICAgaWYgKHR5cGVvZiBib2R5ID09PSAiZnVuY3Rpb24iKQor
ICAgICAgYm9keSA9IGJvZHkoKTsKKyAgICBpZiAoYm9keSkKKyAgICAgIHJlcXVlc3RJbml0WyJi
b2R5Il0gPSBib2R5OworICAgIHJldHVybiBmZXRjaCh1cmwsIHJlcXVlc3RJbml0KS50aGVuKGZ1
bmN0aW9uKHJlc3ApIHsKKyAgICAgIHJldHVybiByZXNwLnRleHQoKS50aGVuKCh0ZXh0KT0+IHsK
KyAgICAgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCBleHBlY3RlZEJvZHkpOworICAgICAgfSk7Cisg
ICAgfSk7CisgIH0sIGRlc2MpOworfQorCit2YXIgdXJsID0gUkVTT1VSQ0VTX0RJUiArICJlY2hv
LWNvbnRlbnQucHkiCisKK3Rlc3RVcGxvYWQoIkZldGNoIHdpdGggUFVUIHdpdGggYm9keSIsIHVy
bCwgIlBVVCIsICJSZXF1ZXN0J3MgYm9keSIsICJSZXF1ZXN0J3MgYm9keSIpOwordGVzdFVwbG9h
ZCgiRmV0Y2ggd2l0aCBQT1NUIHdpdGggdGV4dCBib2R5IiwgdXJsLCAiUE9TVCIsICJSZXF1ZXN0
J3MgYm9keSIsICJSZXF1ZXN0J3MgYm9keSIpOwordGVzdFVwbG9hZCgiRmV0Y2ggd2l0aCBQT1NU
IHdpdGggVVJMU2VhcmNoUGFyYW1zIGJvZHkiLCB1cmwsICJQT1NUIiwgZnVuY3Rpb24oKSB7IHJl
dHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJuYW1lPXZhbHVlIik7IH0sICJuYW1lPXZhbHVlIik7
Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCBCbG9iIGJvZHkiLCB1cmwsICJQT1NU
IiwgbmV3IEJsb2IoWyJUZXN0Il0pLCAiVGVzdCIpOwordGVzdFVwbG9hZCgiRmV0Y2ggd2l0aCBQ
T1NUIHdpdGggQXJyYXlCdWZmZXIgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgQXJyYXlCdWZmZXIo
NCksICJcMFwwXDBcMCIpOwordGVzdFVwbG9hZCgiRmV0Y2ggd2l0aCBQT1NUIHdpdGggVWludDhB
cnJheSBib2R5IiwgdXJsLCAiUE9TVCIsIG5ldyBVaW50OEFycmF5KDQpLCAiXDBcMFwwXDAiKTsK
K3Rlc3RVcGxvYWQoIkZldGNoIHdpdGggUE9TVCB3aXRoIEludDhBcnJheSBib2R5IiwgdXJsLCAi
UE9TVCIsIG5ldyBJbnQ4QXJyYXkoNCksICJcMFwwXDBcMCIpOwordGVzdFVwbG9hZCgiRmV0Y2gg
d2l0aCBQT1NUIHdpdGggRmxvYXQzMkFycmF5IGJvZHkiLCB1cmwsICJQT1NUIiwgbmV3IEZsb2F0
MzJBcnJheSgxKSwgIlwwXDBcMFwwIik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0
aCBGbG9hdDY0QXJyYXkgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgRmxvYXQ2NEFycmF5KDEpLCAi
XDBcMFwwXDBcMFwwXDBcMCIpOwordGVzdFVwbG9hZCgiRmV0Y2ggd2l0aCBQT1NUIHdpdGggRGF0
YVZpZXcgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgp
LCAwLCA0KSwgIlwwXDBcMFwwIik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCBC
bG9iIGJvZHkgd2l0aCBtaW1lIHR5cGUiLCB1cmwsICJQT1NUIiwgbmV3IEJsb2IoWyJUZXN0Il0s
IHsgdHlwZTogInRleHQvbWF5YmUiIH0pLCAiVGVzdCIpOworCitkb25lKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3Qt
Y29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQKaW5kZXggMGVkNjBlNWYzZGU4YWNjYjRmNTU4YThh
NDNmMDA4ZmNlNTRjMzNiNy4uNjVmZmZiZDRmNTdiNzVmN2FiNjQ1MTQ0NDlkMzZjYzZjMDdjNzVj
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dApAQCAtOCw0ICs4LDcg
QEAgUEFTUyBDb25zdW1lIGVtcHR5IGJsb2IgcmVxdWVzdCBib2R5IGFzIGFycmF5QnVmZmVyCiBQ
QVNTIENvbnN1bWUgZW1wdHkgdGV4dCByZXF1ZXN0IGJvZHkgYXMgYXJyYXlCdWZmZXIgCiBQQVNT
IENvbnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJvZHkgYXMgdGV4dCAKIFBBU1MgQ29uc3VtZSBl
bXB0eSB0ZXh0IHJlcXVlc3QgYm9keSBhcyB0ZXh0IAorUEFTUyBDb25zdW1lIGVtcHR5IFVSTFNl
YXJjaFBhcmFtcyByZXF1ZXN0IGJvZHkgYXMgdGV4dCAKK0ZBSUwgQ29uc3VtZSBlbXB0eSBGb3Jt
RGF0YSByZXF1ZXN0IGJvZHkgYXMgdGV4dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCitQQVNTIENvbnN1bWUgZW1wdHkgQXJyYXlCdWZmZXIg
cmVxdWVzdCBib2R5IGFzIHRleHQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1l
LWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5odG1sCmluZGV4IGEyYmIz
ZTJhOWJkMzk3NzBkM2MzZGI5ZGQzOTAyYjYxZGY4NGM2YWQuLjk5NmViNTIzMmI1ZmVjNDY4NzFh
NGVkZDY5ZjhlNjViZGIyMGEzMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVt
cHR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbApAQCAtOTgsNiAr
OTgsOSBAQAogICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoInRleHQiLCAiIiwgZmFsc2Up
OwogICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwgeyAi
dHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIHRydWUpOwogICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0
eUJvZHkoInRleHQiLCAiIiwgdHJ1ZSk7CisgICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgi
VVJMU2VhcmNoUGFyYW1zIiwgbmV3IFVSTFNlYXJjaFBhcmFtcygiIiksIHRydWUpOworICAgIGNo
ZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoIkZvcm1EYXRhIiwgbmV3IEZvcm1EYXRhKCksIHRydWUp
OworICAgIGNoZWNrUmVxdWVzdFdpdGhFbXB0eUJvZHkoIkFycmF5QnVmZmVyIiwgbmV3IEFycmF5
QnVmZmVyKCksIHRydWUpOwogICAgIDwvc2NyaXB0PgogICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0
LWluaXQtMDAyLWV4cGVjdGVkLnR4dAppbmRleCA4OGM1YTdiMjBlN2M3ZTQwZDA4ZGQzNmJiMWZi
ZWQ1NWY4N2I5MTA5Li5hNzMzNTAxNmYzNjQxYTA5Njc1MTM1NTZiMGU2MGE0MWE3ZmUyMDM4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3Qv
cmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQKQEAgLTUsNSArNSw1IEBAIFBBU1MgSW5pdGlh
bGl6ZSBSZXF1ZXN0J3MgYm9keSB3aXRoIG51bGwKIFBBU1MgSW5pdGlhbGl6ZSBSZXF1ZXN0J3Mg
Ym9keSB3aXRoIGFwcGxpY2F0aW9uL29jdGV0LWJpbmFyeSAKIEZBSUwgSW5pdGlhbGl6ZSBSZXF1
ZXN0J3MgYm9keSB3aXRoIG11bHRpcGFydC9mb3JtLWRhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAogUEFTUyBJbml0aWFsaXplIFJlcXVl
c3QncyBib2R5IHdpdGggdGV4dC9wbGFpbjtjaGFyc2V0PVVURi04IAotRkFJTCBJbml0aWFsaXpl
IFJlcXVlc3QncyBib2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2No
YXJzZXQ9VVRGLTggVHlwZSBlcnJvcgorUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdp
dGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRGLTggCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvZWNoby1jb250ZW50LnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVjMzllODM4MTgxZjBlYzZkNWFmZWIzMDkzMTc4OWYwZWQ1M2ZiNzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvZWNoby1jb250ZW50LnB5CkBAIC0wLDAgKzEsOSBAQAor
ZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorCisgICAgaGVhZGVycyA9IFsoIlgtUmVxdWVz
dC1NZXRob2QiLCByZXF1ZXN0Lm1ldGhvZCksCisgICAgICAgICAgICAgICAoIlgtUmVxdWVzdC1D
b250ZW50LUxlbmd0aCIsIHJlcXVlc3QuaGVhZGVycy5nZXQoIkNvbnRlbnQtTGVuZ3RoIiwgIk5P
IikpLAorICAgICAgICAgICAgICAgKCJYLVJlcXVlc3QtQ29udGVudC1UeXBlIiwgcmVxdWVzdC5o
ZWFkZXJzLmdldCgiQ29udGVudC1UeXBlIiwgIk5PIikpXQorCisgICAgY29udGVudCA9IHJlcXVl
c3QuYm9keQorCisgICAgcmV0dXJuIGhlYWRlcnMsIGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29u
c3VtZS1lbXB0eS1leHBlY3RlZC50eHQKaW5kZXggZTk2Nzk1MThiZDljMDMwOTRkOGZmZmNmOWZj
ZjgyZGQxNzdiYzdjZi4uZTQ0MGMzNzcwOGQyYzljYzRjYWNmYjMxMjUwYmFkM2VkMTEwZDNiMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQKQEAgLTgsNCArOCw3
IEBAIFBBU1MgQ29uc3VtZSBlbXB0eSBibG9iIHJlc3BvbnNlIGJvZHkgYXMgYXJyYXlCdWZmZXIK
IFBBU1MgQ29uc3VtZSBlbXB0eSB0ZXh0IHJlc3BvbnNlIGJvZHkgYXMgYXJyYXlCdWZmZXIgCiBQ
QVNTIENvbnN1bWUgZW1wdHkgYmxvYiByZXNwb25zZSBib2R5IGFzIHRleHQgCiBQQVNTIENvbnN1
bWUgZW1wdHkgdGV4dCByZXNwb25zZSBib2R5IGFzIHRleHQgCitQQVNTIENvbnN1bWUgZW1wdHkg
VVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlIGJvZHkgYXMgdGV4dCAKK0ZBSUwgQ29uc3VtZSBlbXB0
eSBGb3JtRGF0YSByZXNwb25zZSBib2R5IGFzIHRleHQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IHVuZGVmaW5lZAorUEFTUyBDb25zdW1lIGVtcHR5IEFycmF5
QnVmZmVyIHJlc3BvbnNlIGJvZHkgYXMgdGV4dCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1lbXB0eS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1lbXB0eS5odG1s
CmluZGV4IDc4ODM4NDY5OTMzYmMyZDg1ODg3Y2E2YjgyYTNiNjAyZWQ1Y2I0ZGEuLmZhYTQ0M2I1
ZTMwMTE1NWMwMTRmMGZlMGNkMjY4ZGNjZmU4NzY0NDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWNvbnN1bWUtZW1wdHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5
Lmh0bWwKQEAgLTkzLDExICs5MywxMyBAQAogICAgICAgfSwgIkNvbnN1bWUgZW1wdHkgIiArIGJv
ZHlUeXBlICsgIiByZXNwb25zZSBib2R5IGFzICIgKyAoYXNUZXh0ID8gInRleHQiIDogImFycmF5
QnVmZmVyIikpOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBBZGQgQnVmZmVyU291cmNlLCBGb3Jt
RGF0YSBhbmQgVVJMU2VhcmNoUGFyYW1zLgogICAgIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5
KCJibG9iIiwgbmV3IEJsb2IoW10sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pLCBmYWxzZSk7
CiAgICAgY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoInRleHQiLCAiIiwgZmFsc2UpOwogICAg
IGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJibG9iIiwgbmV3IEJsb2IoW10sIHsgInR5cGUi
IDogInRleHQvcGxhaW4iIH0pLCB0cnVlKTsKICAgICBjaGVja1Jlc3BvbnNlV2l0aEVtcHR5Qm9k
eSgidGV4dCIsICIiLCB0cnVlKTsKKyAgICBjaGVja1Jlc3BvbnNlV2l0aEVtcHR5Qm9keSgiVVJM
U2VhcmNoUGFyYW1zIiwgbmV3IFVSTFNlYXJjaFBhcmFtcygiIiksIHRydWUpOworICAgIGNoZWNr
UmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJGb3JtRGF0YSIsIG5ldyBGb3JtRGF0YSgpLCB0cnVlKTsK
KyAgICBjaGVja1Jlc3BvbnNlV2l0aEVtcHR5Qm9keSgiQXJyYXlCdWZmZXIiLCBuZXcgQXJyYXlC
dWZmZXIoKSwgdHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1leHBlY3RlZC50eHQKaW5kZXggZjFmMGYwMGZkY2U4ZjljNGE0NWQ0MGM1ZWVh
MzgyN2FhMWQ0NjQ3OC4uYjkwZWJkOTMzMmE1NDNhOTM3YTA2NDg4YjM4NDc1MDM4ZDgzNzU5OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtY29uc3VtZS1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxMiBAQAogCi1QQVNT
IENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIHRleHQgCi1QQVNTIENvbnN1bWUgcmVzcG9uc2Un
cyBib2R5IGFzIGJsb2IgCi1QQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGFycmF5QnVm
ZmVyIAotUEFTUyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyBqc29uIAotRkFJTCBDb25zdW1l
IHJlc3BvbnNlJ3MgYm9keSBhcyBmb3JtRGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogIk5vdCBpbXBsZW1lbnRlZCIKK1BBU1MgQ29uc3VtZSB0ZXh0IHJl
c3BvbnNlJ3MgYm9keSBhcyB0ZXh0IAorUEFTUyBDb25zdW1lIHRleHQgcmVzcG9uc2UncyBib2R5
IGFzIGJsb2IgCitQQVNTIENvbnN1bWUgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZm
ZXIgCitQQVNTIENvbnN1bWUgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMganNvbiAKK0ZBSUwgQ29u
c3VtZSBmb3JtZGF0YSByZXNwb25zZSdzIGJvZHkgYXMgZm9ybURhdGEgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6ICJOb3QgaW1wbGVtZW50ZWQiCitQQVNTIENv
bnN1bWUgVVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBhcyB0ZXh0IAorUEFTUyBDb25z
dW1lIFVSTFNlYXJjaFBhcmFtcyByZXNwb25zZSdzIGJvZHkgYXMgYmxvYiAKK1BBU1MgQ29uc3Vt
ZSBVUkxTZWFyY2hQYXJhbXMgcmVzcG9uc2UncyBib2R5IGFzIGFycmF5QnVmZmVyIAogUEFTUyBD
b25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIGJsb2IgCiBQQVNTIENvbnN1bWUgYmxvYiBy
ZXNwb25zZSdzIGJvZHkgYXMgdGV4dCAKIFBBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3MgYm9k
eSBhcyBqc29uIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
ZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDUwMTVkNmNmYmNiOGYwNTZjOTk4MzA4MmMwMGE4NWNhYzViMjZjM2IuLmY5ZDdhYjJjODQ3
YzVhNDNjZjQ1ZmE5MzczMDAwNjY1YjY0YmU2MzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNl
LWNvbnN1bWUtc3RyZWFtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
LXN0cmVhbS1leHBlY3RlZC50eHQKQEAgLTMsNiArMyw3IEBAIFBBU1MgUmVhZCBlbXB0eSB0ZXh0
IHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIGVtcHR5IGJsb2Ig
cmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIAogUEFTUyBSZWFkIGJsb2IgcmVzcG9u
c2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIAogUEFTUyBSZWFkIHRleHQgcmVzcG9uc2UncyBi
b2R5IGFzIHJlYWRhYmxlU3RyZWFtIAorUEFTUyBSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFz
IHJlYWRhYmxlU3RyZWFtIAogUEFTUyBSZWFkIGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJvZHkg
YXMgcmVhZGFibGVTdHJlYW0gCiBGQUlMIFJlYWQgZm9ybSBkYXRhIHJlc3BvbnNlJ3MgYm9keSBh
cyByZWFkYWJsZVN0cmVhbSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogIm5vdCBpbXBsZW1lbnRlZCIKIFBBU1MgR2V0dGluZyBhbiBlcnJvciBSZXNwb25zZSBz
dHJlYW0gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uaHRtbAppbmRleCBmOTYxOTJmYTk4MGE5N2Fi
NmY0MGYyZDNiOTVlZjY2MTVmMDBjZjcxLi5hZWQ3YTdiZTUyYjI3ODg5MzM4YWZmMTlkZWQwYTg0
NjRjZWQxZGFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmh0bWwKQEAgLTI4LDYgKzI4LDgg
QEAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiBmb3JtRGF0YS5hcHBlbmQoIm5hbWUi
LCAidmFsdWUiKTsKIHZhciB0ZXh0RGF0YSA9IEpTT04uc3RyaW5naWZ5KCJUaGlzIGlzIHJlc3Bv
bnNlJ3MgYm9keSIpOwogdmFyIGJsb2IgPSBuZXcgQmxvYihbdGV4dERhdGFdLCB7ICJ0eXBlIiA6
ICJ0ZXh0L3BsYWluIiB9KTsKK3ZhciB1cmxTZWFyY2hQYXJhbXNEYXRhID0gIm5hbWU9dmFsdWUi
OwordmFyIHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsU2VhcmNoUGFy
YW1zRGF0YSk7CiAKIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CiAgICAgdmFyIHJlc3Bv
bnNlID0gbmV3IFJlc3BvbnNlKGJsb2IpOwpAQCAtNDAsNiArNDIsMTEgQEAgcHJvbWlzZV90ZXN0
KGZ1bmN0aW9uKHRlc3QpIHsKIH0sICJSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRh
YmxlU3RyZWFtIik7CiAKIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CisgICAgdmFyIHJl
c3BvbnNlID0gbmV3IFJlc3BvbnNlKHVybFNlYXJjaFBhcmFtcyk7CisgICAgcmV0dXJuIHZhbGlk
YXRlU3RyZWFtRnJvbVN0cmluZyhyZXNwb25zZS5ib2R5LmdldFJlYWRlcigpLCB1cmxTZWFyY2hQ
YXJhbXNEYXRhKTsKK30sICJSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3Ry
ZWFtIik7CisKK3Byb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CiAgICAgdmFyIGFycmF5QnVm
ZmVyID0gbmV3IEFycmF5QnVmZmVyKHRleHREYXRhLmxlbmd0aCk7CiAgICAgdmFyIGludDhBcnJh
eSA9IG5ldyBJbnQ4QXJyYXkoYXJyYXlCdWZmZXIpOwogICAgIGZvciAodmFyIGNwdHIgPSAwOyBj
cHRyIDwgdGV4dERhdGEubGVuZ3RoOyBjcHRyKyspCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1jb25zdW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLmh0bWwKaW5kZXggNTZlMjM0
MjQ4YzM4NmZiMjU0NzdmMzk4ODYzM2NhN2RlOTFhZmY3Yi4uZWM1MDlmZDQ1NmY0YzQzNzFhZDJm
N2E1NDYyMWQ3ZjNhNDcwYThkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUuaHRtbApAQCAtNjMsMjQgKzYzLDI5IEBA
CiAgICAgIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGNoZWNrUmVzcG9uc2VCb2R5KGJvZHks
IGJvZHlUeXBlLCBjaGVja0Z1bmN0aW9uKSB7CisgICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZUJv
ZHkoYm9keSwgYm9keVR5cGUsIGJvZHlDb25zdW1pbmdUeXBlLCBjaGVja0Z1bmN0aW9uKSB7CiAg
ICAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewogICAgICAgICB2YXIgcmVzcG9uc2Ug
PSBuZXcgUmVzcG9uc2UoYm9keSwgeyAiaGVhZGVycyI6IFtbIkNvbnRlbnQtVHlwZSIsICJ0ZXh0
L1BMQUlOIl1dIH0pOwogICAgICAgICBhc3NlcnRfZmFsc2UocmVzcG9uc2UuYm9keVVzZWQsICJi
b2R5VXNlZCBpcyBmYWxzZSBhdCBpbml0Iik7CiAgICAgICAgIHJldHVybiBjaGVja0Z1bmN0aW9u
KHJlc3BvbnNlLCBib2R5KTsKLSAgICAgIH0sICJDb25zdW1lIHJlc3BvbnNlJ3MgYm9keSBhcyAi
ICsgYm9keVR5cGUpOworICAgICAgfSwgIkNvbnN1bWUgIiArIGJvZHlUeXBlICsgIiByZXNwb25z
ZSdzIGJvZHkgYXMgIiArIGJvZHlDb25zdW1pbmdUeXBlKTsKICAgICB9CiAKICAgICB2YXIgZm9y
bURhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgICBmb3JtRGF0YS5hcHBlbmQoIm5hbWUiLCAidmFs
dWUiKTsKICAgICB2YXIgdGV4dERhdGEgPSBKU09OLnN0cmluZ2lmeSgiVGhpcyBpcyByZXNwb25z
ZSdzIGJvZHkiKTsKICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFt0ZXh0RGF0YV0sIHsgInR5cGUi
IDogInRleHQvcGxhaW4iIH0pOworICAgIHZhciB1cmxTZWFyY2hQYXJhbXNEYXRhID0gIm5hbWU9
dmFsdWUiOworICAgIHZhciB1cmxTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVy
bFNlYXJjaFBhcmFtc0RhdGEpOwogCi0gICAgY2hlY2tSZXNwb25zZUJvZHkodGV4dERhdGEsICJ0
ZXh0IiwgY2hlY2tCb2R5VGV4dCk7Ci0gICAgY2hlY2tSZXNwb25zZUJvZHkodGV4dERhdGEsICJi
bG9iIiwgZnVuY3Rpb24ocmVzcG9uc2UsIGJvZHkpIHsgY2hlY2tCb2R5QmxvYihyZXNwb25zZSwg
Ym9keSwgdHJ1ZSk7IH0pOwotICAgIGNoZWNrUmVzcG9uc2VCb2R5KHRleHREYXRhLCAiYXJyYXlC
dWZmZXIiLCBjaGVja0JvZHlBcnJheUJ1ZmZlcik7Ci0gICAgY2hlY2tSZXNwb25zZUJvZHkodGV4
dERhdGEsICJqc29uIiwgY2hlY2tCb2R5SlNPTik7Ci0gICAgY2hlY2tSZXNwb25zZUJvZHkoZm9y
bURhdGEsICJmb3JtRGF0YSIsIGNoZWNrQm9keUZvcm1EYXRhKTsKKyAgICBjaGVja1Jlc3BvbnNl
Qm9keSh0ZXh0RGF0YSwgInRleHQiLCAidGV4dCIsIGNoZWNrQm9keVRleHQpOworICAgIGNoZWNr
UmVzcG9uc2VCb2R5KHRleHREYXRhLCAidGV4dCIsICJibG9iIiwgZnVuY3Rpb24ocmVzcG9uc2Us
IGJvZHkpIHsgY2hlY2tCb2R5QmxvYihyZXNwb25zZSwgYm9keSwgdHJ1ZSk7IH0pOworICAgIGNo
ZWNrUmVzcG9uc2VCb2R5KHRleHREYXRhLCAidGV4dCIsICJhcnJheUJ1ZmZlciIsIGNoZWNrQm9k
eUFycmF5QnVmZmVyKTsKKyAgICBjaGVja1Jlc3BvbnNlQm9keSh0ZXh0RGF0YSwgInRleHQiLCAi
anNvbiIsIGNoZWNrQm9keUpTT04pOworICAgIGNoZWNrUmVzcG9uc2VCb2R5KGZvcm1EYXRhLCAi
Zm9ybWRhdGEiLCAiZm9ybURhdGEiLCBjaGVja0JvZHlGb3JtRGF0YSk7CisgICAgY2hlY2tSZXNw
b25zZUJvZHkodXJsU2VhcmNoUGFyYW1zLCAiVVJMU2VhcmNoUGFyYW1zIiwgInRleHQiLCBmdW5j
dGlvbihyZXNwb25zZSkgeyBjaGVja0JvZHlUZXh0KHJlc3BvbnNlLCB1cmxTZWFyY2hQYXJhbXMp
OyB9KTsKKyAgICBjaGVja1Jlc3BvbnNlQm9keSh1cmxTZWFyY2hQYXJhbXMsICJVUkxTZWFyY2hQ
YXJhbXMiLCAiYmxvYiIsIGZ1bmN0aW9uKHJlc3BvbnNlLCBib2R5KSB7IGNoZWNrQm9keUJsb2Io
cmVzcG9uc2UsIHVybFNlYXJjaFBhcmFtc0RhdGEsIGZhbHNlKTsgfSk7CisgICAgY2hlY2tSZXNw
b25zZUJvZHkodXJsU2VhcmNoUGFyYW1zLCAiVVJMU2VhcmNoUGFyYW1zIiwgImFycmF5QnVmZmVy
IiwgZnVuY3Rpb24ocmVzcG9uc2UpIHsgY2hlY2tCb2R5QXJyYXlCdWZmZXIocmVzcG9uc2UsIHVy
bFNlYXJjaFBhcmFtc0RhdGEpOyB9KTsKIAogICAgIGZ1bmN0aW9uIGNoZWNrQmxvYlJlc3BvbnNl
Qm9keShibG9iQm9keSwgYmxvYkRhdGEsIGJvZHlUeXBlLCBjaGVja0Z1bmN0aW9uKSB7CiAgICAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtaW5pdC0wMDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtaW5pdC0wMDItZXhwZWN0
ZWQudHh0CmluZGV4IGQwZWZhN2NmMDdmMjBhMjYyNTM3NDQ0ZTUzYmRiYjBjOWQ5MjEzYTIuLmVk
MTYwYzA0NjM1MWIyY2U3ZmQ2OTBhZGU1ZGRiMzdlMDQzMzNjYTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNl
L3Jlc3BvbnNlLWluaXQtMDAyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0
LTAwMi1leHBlY3RlZC50eHQKQEAgLTIsNyArMiw3IEBACiBQQVNTIEluaXRpYWxpemUgUmVzcG9u
c2Ugd2l0aCBoZWFkZXJzIHZhbHVlcyAKIFBBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkg
d2l0aCBhcHBsaWNhdGlvbi9vY3RldC1iaW5hcnkgCiBGQUlMIEluaXRpYWxpemUgUmVzcG9uc2Un
cyBib2R5IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCi1GQUlMIEluaXRpYWxpemUgUmVzcG9uc2Un
cyBib2R5IHdpdGggYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9VVRG
LTggYXNzZXJ0X3RydWU6IENvbnRlbnQtVHlwZSBoZWFkZXIgc2hvdWxkIGJlICJhcHBsaWNhdGlv
bi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIgIGV4cGVjdGVkIHRydWUgZ290
IG51bGwKK1BBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0aCBhcHBsaWNhdGlvbi94
LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCAKIFBBU1MgSW5pdGlhbGl6ZSBSZXNw
b25zZSdzIGJvZHkgd2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTggCiBQQVNTIFJlYWQgUmVz
cG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIAogUEFTUyBUZXN0aW5nIGVtcHR5IFJlc3Bv
bnNlIENvbnRlbnQtVHlwZSBoZWFkZXIgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290308</attachid>
            <date>2016-09-30 00:10:41 -0700</date>
            <delta_ts>2016-09-30 01:07:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-162667-20160930090736.patch</filename>
            <type>text/plain</type>
            <size>35868</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk0MWJhYzE4MDczMjhj
NDdlZjY2MTI5YzllOTliYWJjYzIwM2M4YS4uNzNkMjlkMzdlNmFmM2YxMDRkMTI5YWJjOTA3NTg5
Yzc1MjM2ZTJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA5LTMwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQSV0gQWRk
IHN1cHBvcnQgZm9yIFVSTFNlYXJjaFBhcmFtcyBib2R5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2NjcKKworICAgICAgICBSZXZpZXdlZCBieSBB
bGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC13b3JrZXIuaHRtbAorICAg
ICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvcmVxdWVzdC11cGxvYWQuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXh0cmFjdEJ5dGVzRnJvbVRleHQpOiBNb3Zpbmcg
dG8gYSBzdGF0aWMgZnVuY3Rpb24gdGhhdCBzaG91bGQgYmUgbW92ZWQgdG8gYSBTdHJpbmcgbWV0
aG9kLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5OjpGZXRjaEJvZHkpOiBBZGRpbmcgY29u
c3RydWN0b3IgZm9yIFVSTFNlYXJjaFBhcmFtcy4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9k
eTo6ZXh0cmFjdCk6IEFkZGluZyBVUkxTZWFyY2hQYXJhbXMgYm9keSBpbml0aWFsaXphdGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Y29uc3VtZSk6IENvbnN1bWluZyBVUkxTZWFy
Y2hQYXJhbXMgYm9kaWVzLgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Ojpjb25zdW1lQXNT
dHJlYW0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Y29uc3VtZVRleHQp
OiBVcGRhdGVkIHRvIHRha2UgYSBwYXJhbWV0ZXIgdG8gaGFuZGxlIGJvdGggdGV4dCBhbmQgVVJM
U2VhcmNoUGFyYW1zIGJvZGllcy4KKyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keTo6Ym9keUZv
ckludGVybmFsUmVxdWVzdCk6IEFkZCBVUkxTZWFyY2hQYXJhbXMgYm9keSB1cGxvYWQuCisgICAg
ICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNsb25lKTogQWRkIFVSTFNlYXJjaFBhcmFtcyBib2R5
IGNsb25pbmcKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hCb2R5Ojp1cmxTZWFyY2hQYXJhbXNCb2R5KToKKyAgICAgICAgKiBodG1s
L1VSTFNlYXJjaFBhcmFtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxTZWFyY2hQYXJhbXM6
OnRvU3RyaW5nKToKKyAgICAgICAgKiBodG1sL1VSTFNlYXJjaFBhcmFtcy5oOgorCiAyMDE2LTA5
LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIGRvd25sb2FkIGF0dHJpYnV0ZSBvbiBhcmVhIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5kZXggYTE1M2ZmZDU3NTZiYWRjOTVmODFm
MmM3ZWQ3YmRjZmE0NjEwYzFhYS4uYmNlYjllZDU5NTM4ZDVhMzcwYjFkM2RjOTQzYmU5NTcxZmY2
MzViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAt
NDEsMTEgKzQxLDIxIEBACiAjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01Gb3Jt
RGF0YS5oIgogI2luY2x1ZGUgIkpTUmVhZGFibGVTdHJlYW0uaCIKKyNpbmNsdWRlICJKU1VSTFNl
YXJjaFBhcmFtcy5oIgogI2luY2x1ZGUgIlJlYWRhYmxlU3RyZWFtU291cmNlLmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9BcnJheUJ1ZmZlclZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisv
LyBGSVhNRTogVGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBub3QgZWZmaWNpZW50IGFuZCB3ZSBzaG91
bGQgcHJvYmFibHkgdXNlIFVURjhFbmNvZGluZygpLgorc3RhdGljIFZlY3Rvcjx1aW50OF90PiBl
eHRyYWN0Qnl0ZXNGcm9tVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgQ1N0cmluZyBk
YXRhID0gdGV4dC51dGY4KCk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlKGRhdGEubGVuZ3Ro
KCkpOworICAgIG1lbWNweSh2YWx1ZS5kYXRhKCksIGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgp
KTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIEZldGNoQm9keTo6RmV0Y2hCb2R5KFJlZjxjb25z
dCBCbG9iPiYmIGJsb2IpCiAgICAgOiBtX3R5cGUoVHlwZTo6QmxvYikKICAgICAsIG1fZGF0YShX
VEZNb3ZlKGJsb2IpKQpAQCAtNzksNiArODksMTMgQEAgRmV0Y2hCb2R5OjpGZXRjaEJvZHkoUmVm
PGNvbnN0IEFycmF5QnVmZmVyVmlldz4mJiBkYXRhVmlldykKIHsKIH0KIAorRmV0Y2hCb2R5OjpG
ZXRjaEJvZHkoUmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4mJiB1cmwpCisgICAgOiBtX3R5cGUo
VHlwZTo6VVJMU2VhY2hQYXJhbXMpCisgICAgLCBtX2RhdGEoV1RGTW92ZSh1cmwpKQorICAgICwg
bV9jb250ZW50VHlwZShBU0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5j
b2RlZDtjaGFyc2V0PVVURi04IikpCit7Cit9CisKIEZldGNoQm9keTo6RmV0Y2hCb2R5KFR5cGUg
dHlwZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgY29uc3QgRmV0Y2hCb2R5Q29uc3VtZXIm
IGNvbnN1bWVyKQogICAgIDogbV90eXBlKHR5cGUpCiAgICAgLCBtX2NvbnRlbnRUeXBlKGNvbnRl
bnRUeXBlKQpAQCAtOTYsNiArMTEzLDggQEAgRmV0Y2hCb2R5IEZldGNoQm9keTo6ZXh0cmFjdChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OkV4ZWNTdGF0ZSYgc3QKICAgICB9
CiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybiBGZXRjaEJvZHkodmFs
dWUudG9XVEZTdHJpbmcoJnN0YXRlKSk7CisgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTVVJMU2Vh
cmNoUGFyYW1zOjppbmZvKCkpKQorICAgICAgICByZXR1cm4gRmV0Y2hCb2R5KCpKU1VSTFNlYXJj
aFBhcmFtczo6dG9XcmFwcGVkKHZhbHVlKSk7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTUmVh
ZGFibGVTdHJlYW06OmluZm8oKSkpCiAgICAgICAgIHJldHVybiB7IFR5cGU6OlJlYWRhYmxlU3Ry
ZWFtIH07CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzKEpTQzo6SlNBcnJheUJ1ZmZlcjo6aW5mbygp
KSkgewpAQCAtMTg1LDcgKzIwNCwxMCBAQCB2b2lkIEZldGNoQm9keTo6Y29uc3VtZShGZXRjaEJv
ZHlPd25lciYgb3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKICAgICAgICAg
Y29uc3VtZUFycmF5QnVmZmVyVmlldyhXVEZNb3ZlKHByb21pc2UpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgVHlwZTo6VGV4dDoKLSAgICAgICAgY29uc3VtZVRleHQoV1RGTW92ZShwcm9t
aXNlKSk7CisgICAgICAgIGNvbnN1bWVUZXh0KFdURk1vdmUocHJvbWlzZSksIHRleHRCb2R5KCkp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBUeXBlOjpVUkxTZWFjaFBhcmFtczoKKyAgICAg
ICAgY29uc3VtZVRleHQoV1RGTW92ZShwcm9taXNlKSwgdXJsU2VhcmNoUGFyYW1zQm9keSgpLnRv
U3RyaW5nKCkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBUeXBlOjpCbG9iOgogICAgICAg
ICBjb25zdW1lQmxvYihvd25lciwgV1RGTW92ZShwcm9taXNlKSk7CkBAIC0yMjUsNyArMjQ3LDEz
IEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lQXNTdHJlYW0oRmV0Y2hCb2R5T3duZXImIG93bmVy
LCBGZXRjaFJlc3BvbnNlU291cmNlJiBzb3VyCiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIFR5cGU6OlRleHQ6IHsKLSAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEgPSBleHRyYWN0
RnJvbVRleHQoKTsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGEgPSBleHRyYWN0Qnl0ZXNG
cm9tVGV4dCh0ZXh0Qm9keSgpKTsKKyAgICAgICAgY2xvc2VTdHJlYW0gPSBzb3VyY2UuZW5xdWV1
ZShBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOworICAg
ICAgICBtX2RhdGEgPSBudWxscHRyOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBU
eXBlOjpVUkxTZWFjaFBhcmFtczogeworICAgICAgICBWZWN0b3I8dWludDhfdD4gZGF0YSA9IGV4
dHJhY3RCeXRlc0Zyb21UZXh0KHVybFNlYXJjaFBhcmFtc0JvZHkoKS50b1N0cmluZygpKTsKICAg
ICAgICAgY2xvc2VTdHJlYW0gPSBzb3VyY2UuZW5xdWV1ZShBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRl
KGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSkpOwogICAgICAgICBtX2RhdGEgPSBudWxscHRyOwog
ICAgICAgICBicmVhazsKQEAgLTI2Miw5ICsyOTAsOSBAQCB2b2lkIEZldGNoQm9keTo6Y29uc3Vt
ZUFycmF5QnVmZmVyVmlldyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAgICAgbV9k
YXRhID0gbnVsbHB0cjsKIH0KIAotdm9pZCBGZXRjaEJvZHk6OmNvbnN1bWVUZXh0KFJlZjxEZWZl
cnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lVGV4dChSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKLSAgICBW
ZWN0b3I8dWludDhfdD4gZGF0YSA9IGV4dHJhY3RGcm9tVGV4dCgpOworICAgIFZlY3Rvcjx1aW50
OF90PiBkYXRhID0gZXh0cmFjdEJ5dGVzRnJvbVRleHQodGV4dCk7CiAgICAgbV9jb25zdW1lci5y
ZXNvbHZlV2l0aERhdGEoV1RGTW92ZShwcm9taXNlKSwgZGF0YS5kYXRhKCksIGRhdGEuc2l6ZSgp
KTsKICAgICBtX2RhdGEgPSBudWxscHRyOwogfQpAQCAtMjc2LDE2ICszMDQsNiBAQCB2b2lkIEZl
dGNoQm9keTo6Y29uc3VtZUJsb2IoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pcwogICAgIG1fZGF0YSA9IG51bGxwdHI7CiB9CiAKLVZlY3Rvcjx1aW50
OF90PiBGZXRjaEJvZHk6OmV4dHJhY3RGcm9tVGV4dCgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKG1f
dHlwZSA9PSBUeXBlOjpUZXh0KTsKLSAgICAvLyBGSVhNRTogVGhpcyBkb3VibGUgYWxsb2NhdGlv
biBpcyBub3QgZWZmaWNpZW50LiBNaWdodCB3YW50IHRvIGZpeCB0aGF0IGF0IFdURlN0cmluZyBs
ZXZlbC4KLSAgICBDU3RyaW5nIGRhdGEgPSB0ZXh0Qm9keSgpLnV0ZjgoKTsKLSAgICBWZWN0b3I8
dWludDhfdD4gdmFsdWUoZGF0YS5sZW5ndGgoKSk7Ci0gICAgbWVtY3B5KHZhbHVlLmRhdGEoKSwg
ZGF0YS5kYXRhKCksIGRhdGEubGVuZ3RoKCkpOwotICAgIHJldHVybiB2YWx1ZTsKLX0KLQogdm9p
ZCBGZXRjaEJvZHk6OmxvYWRpbmdGYWlsZWQoKQogewogICAgIGlmIChtX2NvbnN1bWVQcm9taXNl
KSB7CkBAIC0zMDgsNiArMzI2LDggQEAgUmVmUHRyPEZvcm1EYXRhPiBGZXRjaEJvZHk6OmJvZHlG
b3JJbnRlcm5hbFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGUKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBUeXBlOjpUZXh0OgogICAgICAgICByZXR1cm4gRm9y
bURhdGE6OmNyZWF0ZShVVEY4RW5jb2RpbmcoKS5lbmNvZGUodGV4dEJvZHkoKSwgRW50aXRpZXNG
b3JVbmVuY29kYWJsZXMpKTsKKyAgICBjYXNlIFR5cGU6OlVSTFNlYWNoUGFyYW1zOgorICAgICAg
ICByZXR1cm4gRm9ybURhdGE6OmNyZWF0ZShVVEY4RW5jb2RpbmcoKS5lbmNvZGUodXJsU2VhcmNo
UGFyYW1zQm9keSgpLnRvU3RyaW5nKCksIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKSk7CiAgICAg
Y2FzZSBUeXBlOjpCbG9iOiB7CiAgICAgICAgIFJlZlB0cjxGb3JtRGF0YT4gYm9keSA9IEZvcm1E
YXRhOjpjcmVhdGUoKTsKICAgICAgICAgYm9keS0+YXBwZW5kQmxvYihibG9iQm9keSgpLnVybCgp
KTsKQEAgLTM1MCw2ICszNzAsOSBAQCBGZXRjaEJvZHkgRmV0Y2hCb2R5OjpjbG9uZSgpIGNvbnN0
CiAgICAgY2FzZSBUeXBlOjpUZXh0OgogICAgICAgICBjbG9uZS5tX2RhdGEgPSB0ZXh0Qm9keSgp
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6OlVSTFNlYWNoUGFyYW1zOgorICAgICAg
ICBjbG9uZS5tX2RhdGEgPSB1cmxTZWFyY2hQYXJhbXNCb2R5KCk7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVHlwZTo6TG9hZGVkOgogICAgIGNhc2UgVHlwZTo6Tm9uZToKICAgICBjYXNlIFR5
cGU6OkxvYWRpbmc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaAppbmRl
eCAxYmFkZjNkNDcwM2ZhMTJjZDc5ODFmNTgwNWJhNWZlZDk5MjAyMTZkLi43YjE0YmRmNzRjM2Mw
YmY5MzIzOTdjZjYxYTdmMGYyNjczYmYwODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoQm9keS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGZXRjaExvYWRlci5o
IgogI2luY2x1ZGUgIkZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCisjaW5j
bHVkZSAiVVJMU2VhcmNoUGFyYW1zLmgiCiAjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CkBAIC03OSw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxGb3Jt
RGF0YT4gYm9keUZvckludGVybmFsUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgY29u
c3Q7CiAKLSAgICBlbnVtIGNsYXNzIFR5cGUgeyBOb25lLCBBcnJheUJ1ZmZlciwgQXJyYXlCdWZm
ZXJWaWV3LCBCbG9iLCBGb3JtRGF0YSwgVGV4dCwgTG9hZGluZywgTG9hZGVkLCBSZWFkYWJsZVN0
cmVhbSB9OworICAgIGVudW0gY2xhc3MgVHlwZSB7IE5vbmUsIEFycmF5QnVmZmVyLCBBcnJheUJ1
ZmZlclZpZXcsIEJsb2IsIEZvcm1EYXRhLCBUZXh0LCBVUkxTZWFjaFBhcmFtcywgTG9hZGluZywg
TG9hZGVkLCBSZWFkYWJsZVN0cmVhbSB9OwogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQogCiAgICAgRmV0Y2hCb2R5Q29uc3VtZXImIGNvbnN1bWVyKCkgeyByZXR1cm4g
bV9jb25zdW1lcjsgfQpAQCAtOTQsMTUgKzk1LDE1IEBAIHByaXZhdGU6CiAgICAgRmV0Y2hCb2R5
KFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+JiYpOwogICAgIEZldGNoQm9keShET01Gb3JtRGF0
YSYsIERvY3VtZW50Jik7CiAgICAgRmV0Y2hCb2R5KFN0cmluZyYmKTsKKyAgICBGZXRjaEJvZHko
UmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4mJik7CiAgICAgRmV0Y2hCb2R5KFR5cGUsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IEZldGNoQm9keUNvbnN1bWVyJik7CiAgICAgRmV0Y2hCb2R5KFR5cGUg
dHlwZSkgOiBtX3R5cGUodHlwZSkgeyB9CiAKICAgICB2b2lkIGNvbnN1bWUoRmV0Y2hCb2R5T3du
ZXImLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAotICAgIFZlY3Rvcjx1aW50OF90PiBleHRy
YWN0RnJvbVRleHQoKSBjb25zdDsKICAgICB2b2lkIGNvbnN1bWVBcnJheUJ1ZmZlcihSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKICAgICB2b2lkIGNvbnN1bWVBcnJheUJ1ZmZlclZpZXcoUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7Ci0gICAgdm9pZCBjb25zdW1lVGV4dChSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKKyAgICB2b2lkIGNvbnN1bWVUZXh0KFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgY29uc3VtZUJsb2IoRmV0Y2hCb2R5T3duZXImLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKTsKIAogICAgIGNvbnN0IEJsb2ImIGJsb2JCb2R5KCkgY29uc3Qg
eyByZXR1cm4gc3RkOjpleHBlcmltZW50YWw6OmdldDxSZWY8Y29uc3QgQmxvYj4+KG1fZGF0YSku
Z2V0KCk7IH0KQEAgLTExMiwxMSArMTEzLDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgQXJyYXlC
dWZmZXJWaWV3JiBhcnJheUJ1ZmZlclZpZXdCb2R5KCkgY29uc3QgeyByZXR1cm4gc3RkOjpleHBl
cmltZW50YWw6OmdldDxSZWY8Y29uc3QgQXJyYXlCdWZmZXJWaWV3Pj4obV9kYXRhKS5nZXQoKTsg
fQogICAgIFN0cmluZyYgdGV4dEJvZHkoKSB7IHJldHVybiBzdGQ6OmV4cGVyaW1lbnRhbDo6Z2V0
PFN0cmluZz4obV9kYXRhKTsgfQogICAgIGNvbnN0IFN0cmluZyYgdGV4dEJvZHkoKSBjb25zdCB7
IHJldHVybiBzdGQ6OmV4cGVyaW1lbnRhbDo6Z2V0PFN0cmluZz4obV9kYXRhKTsgfQorICAgIGNv
bnN0IFVSTFNlYXJjaFBhcmFtcyYgdXJsU2VhcmNoUGFyYW1zQm9keSgpIGNvbnN0IHsgcmV0dXJu
IHN0ZDo6ZXhwZXJpbWVudGFsOjpnZXQ8UmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4+KG1fZGF0
YSkuZ2V0KCk7IH0KIAogICAgIFR5cGUgbV90eXBlIHsgVHlwZTo6Tm9uZSB9OwogCi0gICAgLy8g
RklYTUU6IEFkZCBzdXBwb3J0IGZvciBVUkxTZWFyY2hQYXJhbXMuCi0gICAgc3RkOjpleHBlcmlt
ZW50YWw6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxjb25zdCBCbG9iPiwgUmVmPEZvcm1E
YXRhPiwgUmVmPGNvbnN0IEFycmF5QnVmZmVyPiwgUmVmPGNvbnN0IEFycmF5QnVmZmVyVmlldz4s
IFN0cmluZz4gbV9kYXRhOworICAgIHN0ZDo6ZXhwZXJpbWVudGFsOjp2YXJpYW50PHN0ZDo6bnVs
bHB0cl90LCBSZWY8Y29uc3QgQmxvYj4sIFJlZjxGb3JtRGF0YT4sIFJlZjxjb25zdCBBcnJheUJ1
ZmZlcj4sIFJlZjxjb25zdCBBcnJheUJ1ZmZlclZpZXc+LCBSZWY8Y29uc3QgVVJMU2VhcmNoUGFy
YW1zPiwgU3RyaW5nPiBtX2RhdGE7CiAgICAgU3RyaW5nIG1fY29udGVudFR5cGU7CiAKICAgICBG
ZXRjaEJvZHlDb25zdW1lciBtX2NvbnN1bWVyIHsgRmV0Y2hCb2R5Q29uc3VtZXI6OlR5cGU6Ok5v
bmUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmNwcAppbmRleCBjMThiZTA2
M2RiY2M4YmE0ZWRmODY0Y2IxYTU2OGQ1YmI2MzJjNjRiLi40OWI5ZTI2YjkxZGU2MTA3Yjg1NDY2
NjEwNmIyNmJhMjI4YWQzM2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNl
YXJjaFBhcmFtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMu
Y3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBVUkxTZWFyY2hQYXJhbXM6OnJlbW92ZShjb25z
dCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIHVwZGF0ZVVSTCgpOwogfQogCi1TdHJpbmcgVVJMU2Vh
cmNoUGFyYW1zOjp0b1N0cmluZygpCitTdHJpbmcgVVJMU2VhcmNoUGFyYW1zOjp0b1N0cmluZygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFVSTFBhcnNlcjo6c2VyaWFsaXplKG1fcGFpcnMpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVVJMU2VhcmNoUGFyYW1zLmgKaW5kZXggYmZmYTUyZWUyMjYyNDhhODE5
MDc0MzljZjM3MGE4ZWRjYjExMDI5OS4uY2MzMTQ0Y2M5NDY3OTg3ZmZkNDJjMWQ2NTBlYWJmZjQ4
YWNhZThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxTZWFyY2hQYXJhbXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTFNlYXJjaFBhcmFtcy5oCkBAIC00Miw3ICs0
Miw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8U3RyaW5nPiBnZXRBbGwoY29uc3QgU3RyaW5nJiBu
YW1lKSBjb25zdDsKICAgICBib29sIGhhcyhjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAg
IHZvaWQgc2V0KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7Ci0gICAg
U3RyaW5nIHRvU3RyaW5nKCk7CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAgICAgb3Bl
cmF0b3IgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JigpIHsgcmV0dXJu
IG1fcGFpcnM7IH0KICAgICB2b2lkIHVwZGF0ZUZyb21Bc3NvY2lhdGVkVVJMKCk7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDk5OWE2NjY0YjU0ZDg3YzhlOTMxODY2N2ZmYzhl
YTJiODdjOTgyMTAuLjQyNDJiODQ0ZDNiNTY1Njc2ZThiNTExNWIwZDI4NWI4MTFiNjZmNmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE2LTA5LTMw
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uZkBnbWFpbC5jb20+CisKKyAgICAgICAgW0ZldGNoIEFQ
SV0gQWRkIHN1cHBvcnQgZm9yIFVSTFNlYXJjaFBhcmFtcyBib2R5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI2NjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZGluZyBuZXcgdGVzdHMgdG8gY29u
c3VtZSwgc3RyZWFtIGFuZCB1cGxvYWQgVVJMU2VhcmNoUGFyYW1zIGJvZGllcy4KKworICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtaGVhZGVycy13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmpzOgorICAgICAgICAo
Y2hlY2tDb250ZW50VHlwZSk6CisgICAgICAgIChyZXF1ZXN0SGVhZGVycyk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvcmVxdWVzdC11cGxvYWQtd29ya2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC13b3JrZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNp
Yy9yZXF1ZXN0LXVwbG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3RVcGxvYWQpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVz
dC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1p
bml0LTAwMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9yZXNvdXJjZXMvZWNoby1jb250ZW50LnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4pOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5Lmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3Ry
ZWFtLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25z
ZS9yZXNwb25zZS1jb25zdW1lLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi1leHBlY3RlZC50eHQ6CisKIDIwMTYt
MDktMjkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgZG93bmxvYWQgYXR0cmlidXRlIG9uIGFyZWEgZWxlbWVudHMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jh
c2ljL3JlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDZmZThlZGE1NmUyYmU4MWVjMDMyYmYxY2ZlZmZmYmQ2ODZjNjUxYjgu
LjlmYzgxYmMxZWNmNWQ2N2U0YjNhYTUyOTU0YjI2NTE3YmZhOTBhZDMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2lj
L3JlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLWV4
cGVjdGVkLnR4dApAQCAtNiw2ICs2LDcgQEAgUEFTUyBGZXRjaCB3aXRoIFBVVCB3aXRoIGJvZHkK
IFBBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGhvdXQgYm9keSAKIFBBU1MgRmV0Y2ggd2l0aCBQT1NU
IHdpdGggdGV4dCBib2R5IAogUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGb3JtRGF0YSBib2R5
IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBVUkxTZWFyY2hQYXJhbXMgYm9keSAKIEZBSUwg
RmV0Y2ggd2l0aCBQT1NUIHdpdGggQmxvYiBib2R5IGFzc2VydF9lcXVhbHM6IFJlcXVlc3Qgc2hv
dWxkIGhhdmUgaGVhZGVyIGNvbnRlbnQtdHlwZTogbnVsbCBleHBlY3RlZCAob2JqZWN0KSBudWxs
IGJ1dCBnb3QgKHN0cmluZykgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKIEZB
SUwgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQXJyYXlCdWZmZXIgYm9keSBhc3NlcnRfZXF1YWxzOiBS
ZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhwZWN0ZWQgKG9i
amVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu
Y29kZWQiCiBGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIFVpbnQ4QXJyYXkgYm9keSBhc3NlcnRf
ZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6IG51bGwgZXhw
ZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlvbi94LXd3dy1m
b3JtLXVybGVuY29kZWQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMtd29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy13b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4
IGYwZmNiODI1MDBjMWY0YTg2MjVkYjc5NzRjOWM3Y2NmNGFjODE2YmIuLjZlZmFhMTM3OGU2YTky
MTg5MzA1MDgyZTY3Njk3MGUzODMyYjU1ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVy
cy13b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy13b3JrZXItZXhw
ZWN0ZWQudHh0CkBAIC02LDYgKzYsNyBAQCBQQVNTIEZldGNoIHdpdGggUFVUIHdpdGggYm9keQog
UEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aG91dCBib2R5IAogUEFTUyBGZXRjaCB3aXRoIFBPU1Qg
d2l0aCB0ZXh0IGJvZHkgCiBGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEZvcm1EYXRhIGJvZHkg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogRm9ybURhdGEKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGgg
VVJMU2VhcmNoUGFyYW1zIGJvZHkgCiBGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9k
eSBhc3NlcnRfZXF1YWxzOiBSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6
IG51bGwgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290IChzdHJpbmcpICJhcHBsaWNhdGlv
bi94LXd3dy1mb3JtLXVybGVuY29kZWQiCiBGQUlMIEZldGNoIHdpdGggUE9TVCB3aXRoIEFycmF5
QnVmZmVyIGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBoZWFkZXIgY29u
dGVudC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAoc3RyaW5nKSAi
YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgogRkFJTCBGZXRjaCB3aXRoIFBPU1Qg
d2l0aCBVaW50OEFycmF5IGJvZHkgYXNzZXJ0X2VxdWFsczogUmVxdWVzdCBzaG91bGQgaGF2ZSBo
ZWFkZXIgY29udGVudC10eXBlOiBudWxsIGV4cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAo
c3RyaW5nKSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFz
aWMvcmVxdWVzdC1oZWFkZXJzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC1oZWFkZXJzLmpzCmluZGV4IDRjNzhm
ZjBkYzFjOTkyNWFmNjc2OTdjMDcwZTkxMWM1MDcwMzhjMjAuLjdiMGVlZTQ4OWE3Mzc3NDYzOTMy
NmMzNmFjN2IwYThkZjUzMGQzZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtaGVhZGVycy5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9yZXF1ZXN0LWhlYWRlcnMuanMKQEAgLTE1LDYgKzE1LDggQEAgZnVuY3Rpb24gY2hl
Y2tDb250ZW50VHlwZShjb250ZW50VHlwZSwgYm9keSkKICAgICAgICAgZXhwZWN0ZWRDb250ZW50
VHlwZSA9IG51bGw7CiAgICAgZWxzZSBpZiAoYm9keSBpbnN0YW5jZW9mIEJsb2IpCiAgICAgICAg
IGV4cGVjdGVkQ29udGVudFR5cGUgPSBib2R5LnR5cGUgPyBib2R5LnR5cGUgOiBudWxsOworICAg
IGVsc2UgaWYgKGJvZHkgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpCisgICAgICAgIGV4cGVj
dGVkQ29udGVudFR5cGUgPSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJz
ZXQ9VVRGLTgiOwogCiAgICAgYXNzZXJ0X2VxdWFscyhjb250ZW50VHlwZSAsIGV4cGVjdGVkQ29u
dGVudFR5cGUsICJSZXF1ZXN0IHNob3VsZCBoYXZlIGhlYWRlciBjb250ZW50LXR5cGU6ICIgKyBl
eHBlY3RlZENvbnRlbnRUeXBlKTsKIH0KQEAgLTQ5LDYgKzUxLDcgQEAgcmVxdWVzdEhlYWRlcnMo
IkZldGNoIHdpdGggUFVUIHdpdGggYm9keSIsIHVybCwgIlBVVCIsICJSZXF1ZXN0J3MgYm9keSIs
IGxvY2F0aW8KIHJlcXVlc3RIZWFkZXJzKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aG91dCBib2R5Iiwg
dXJsLCAiUE9TVCIsIG51bGwsIGxvY2F0aW9uLm9yaWdpbiwgIjAiKTsKIHJlcXVlc3RIZWFkZXJz
KCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCB0ZXh0IGJvZHkiLCB1cmwsICJQT1NUIiwgIlJlcXVlc3Qn
cyBib2R5IiwgbG9jYXRpb24ub3JpZ2luLCAiMTQiKTsKIHJlcXVlc3RIZWFkZXJzKCJGZXRjaCB3
aXRoIFBPU1Qgd2l0aCBGb3JtRGF0YSBib2R5IiwgdXJsLCAiUE9TVCIsIGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gbmV3IEZvcm1EYXRhKCk7IH0sIGxvY2F0aW9uLm9yaWdpbik7CityZXF1ZXN0SGVhZGVy
cygiRmV0Y2ggd2l0aCBQT1NUIHdpdGggVVJMU2VhcmNoUGFyYW1zIGJvZHkiLCB1cmwsICJQT1NU
IiwgZnVuY3Rpb24oKSB7IHJldHVybiBuZXcgVVJMU2VhcmNoUGFyYW1zKCJuYW1lPXZhbHVlIik7
IH0sIGxvY2F0aW9uLm9yaWdpbiwgIjEwIik7CiByZXF1ZXN0SGVhZGVycygiRmV0Y2ggd2l0aCBQ
T1NUIHdpdGggQmxvYiBib2R5IiwgdXJsLCAiUE9TVCIsIG5ldyBCbG9iKFsiVGVzdCJdKSwgbG9j
YXRpb24ub3JpZ2luLCAiNCIpOwogcmVxdWVzdEhlYWRlcnMoIkZldGNoIHdpdGggUE9TVCB3aXRo
IEFycmF5QnVmZmVyIGJvZHkiLCB1cmwsICJQT1NUIiwgbmV3IEFycmF5QnVmZmVyKDQpLCBsb2Nh
dGlvbi5vcmlnaW4sICI0Iik7CiByZXF1ZXN0SGVhZGVycygiRmV0Y2ggd2l0aCBQT1NUIHdpdGgg
VWludDhBcnJheSBib2R5IiwgdXJsLCAiUE9TVCIsIG5ldyBVaW50OEFycmF5KDQpLCBsb2NhdGlv
bi5vcmlnaW4sICI0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTg0ZTVhMDYy
ZTg3YjFjMmYwMTE0MzMzNzJkMTJlMmQwMzZmNWI3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3Jl
cXVlc3QtdXBsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACisKK1BBU1MgRmV0Y2gg
d2l0aCBQVVQgd2l0aCBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCB0ZXh0IGJvZHkg
CitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIFVSTFNlYXJjaFBhcmFtcyBib2R5IAorUEFTUyBG
ZXRjaCB3aXRoIFBPU1Qgd2l0aCBCbG9iIGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRo
IEFycmF5QnVmZmVyIGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIFVpbnQ4QXJyYXkg
Ym9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggSW50OEFycmF5IGJvZHkgCitQQVNTIEZl
dGNoIHdpdGggUE9TVCB3aXRoIEZsb2F0MzJBcnJheSBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBP
U1Qgd2l0aCBGbG9hdDY0QXJyYXkgYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggRGF0
YVZpZXcgYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQmxvYiBib2R5IHdpdGggbWlt
ZSB0eXBlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC13b3JrZXItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvcmVxdWVzdC11cGxvYWQtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
ODRlNWEwNjJlODdiMWMyZjAxMTQzMzM3MmQxMmUyZDAzNmY1Yjc5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
YmFzaWMvcmVxdWVzdC11cGxvYWQtd29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBA
CisKK1BBU1MgRmV0Y2ggd2l0aCBQVVQgd2l0aCBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qg
d2l0aCB0ZXh0IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIFVSTFNlYXJjaFBhcmFt
cyBib2R5IAorUEFTUyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBCbG9iIGJvZHkgCitQQVNTIEZldGNo
IHdpdGggUE9TVCB3aXRoIEFycmF5QnVmZmVyIGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3
aXRoIFVpbnQ4QXJyYXkgYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggSW50OEFycmF5
IGJvZHkgCitQQVNTIEZldGNoIHdpdGggUE9TVCB3aXRoIEZsb2F0MzJBcnJheSBib2R5IAorUEFT
UyBGZXRjaCB3aXRoIFBPU1Qgd2l0aCBGbG9hdDY0QXJyYXkgYm9keSAKK1BBU1MgRmV0Y2ggd2l0
aCBQT1NUIHdpdGggRGF0YVZpZXcgYm9keSAKK1BBU1MgRmV0Y2ggd2l0aCBQT1NUIHdpdGggQmxv
YiBib2R5IHdpdGggbWltZSB0eXBlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkx
NGRlNmYzN2Y2YTlkZjBkN2Q2YTAyNzBjZmI1YTAzMWVkMjQ0YzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9i
YXNpYy9yZXF1ZXN0LXVwbG9hZC13b3JrZXIuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cisg
ICAgPHRpdGxlPkZldGNoIGluIHdvcmtlcjogVXBsb2FkPC90aXRsZT4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICA8L2hlYWQ+Cisg
IDxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICBmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihuZXcg
V29ya2VyKCJyZXF1ZXN0LXVwbG9hZC5qcyIpKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11cGxvYWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3Qt
dXBsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI1YjhlNzZiZjViNWVmMzViN2Y3MjY1ZGMxMmM1MjVm
ZmYyOTUwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL3JlcXVlc3QtdXBsb2FkLmh0bWwKQEAgLTAs
MCArMSwxMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5GZXRjaDogVXBsb2FkaW5nIGNvbnRlbnQ8L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy91dGlscy5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPHNjcmlwdCBzcmM9InJlcXVlc3QtdXBsb2FkLmpz
Ij48L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVzdC11
cGxvYWQuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9iYXNpYy9yZXF1ZXN0LXVwbG9hZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWQ3OWM0YzE4NWMy
M2JiOWU5OGI1MmYzNDg5MjhkOTFkNmQ3MjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvcmVxdWVz
dC11cGxvYWQuanMKQEAgLTAsMCArMSwzNSBAQAoraWYgKHRoaXMuZG9jdW1lbnQgPT09IHVuZGVm
aW5lZCkgeworICBpbXBvcnRTY3JpcHRzKCIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIik7Cisg
IGltcG9ydFNjcmlwdHMoIi4uL3Jlc291cmNlcy91dGlscy5qcyIpOworfQorCitmdW5jdGlvbiB0
ZXN0VXBsb2FkKGRlc2MsIHVybCwgbWV0aG9kLCBib2R5LCBleHBlY3RlZEJvZHkpIHsKKyAgdmFy
IHJlcXVlc3RJbml0ID0geyJtZXRob2QiOiBtZXRob2R9CisgIHByb21pc2VfdGVzdChmdW5jdGlv
bih0ZXN0KXsKKyAgICBpZiAodHlwZW9mIGJvZHkgPT09ICJmdW5jdGlvbiIpCisgICAgICBib2R5
ID0gYm9keSgpOworICAgIGlmIChib2R5KQorICAgICAgcmVxdWVzdEluaXRbImJvZHkiXSA9IGJv
ZHk7CisgICAgcmV0dXJuIGZldGNoKHVybCwgcmVxdWVzdEluaXQpLnRoZW4oZnVuY3Rpb24ocmVz
cCkgeworICAgICAgcmV0dXJuIHJlc3AudGV4dCgpLnRoZW4oKHRleHQpPT4geworICAgICAgICBh
c3NlcnRfZXF1YWxzKHRleHQsIGV4cGVjdGVkQm9keSk7CisgICAgICB9KTsKKyAgICB9KTsKKyAg
fSwgZGVzYyk7Cit9CisKK3ZhciB1cmwgPSBSRVNPVVJDRVNfRElSICsgImVjaG8tY29udGVudC5w
eSIKKwordGVzdFVwbG9hZCgiRmV0Y2ggd2l0aCBQVVQgd2l0aCBib2R5IiwgdXJsLCAiUFVUIiwg
IlJlcXVlc3QncyBib2R5IiwgIlJlcXVlc3QncyBib2R5Iik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3
aXRoIFBPU1Qgd2l0aCB0ZXh0IGJvZHkiLCB1cmwsICJQT1NUIiwgIlJlcXVlc3QncyBib2R5Iiwg
IlJlcXVlc3QncyBib2R5Iik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCBVUkxT
ZWFyY2hQYXJhbXMgYm9keSIsIHVybCwgIlBPU1QiLCBmdW5jdGlvbigpIHsgcmV0dXJuIG5ldyBV
UkxTZWFyY2hQYXJhbXMoIm5hbWU9dmFsdWUiKTsgfSwgIm5hbWU9dmFsdWUiKTsKK3Rlc3RVcGxv
YWQoIkZldGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgQmxv
YihbIlRlc3QiXSksICJUZXN0Iik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCBB
cnJheUJ1ZmZlciBib2R5IiwgdXJsLCAiUE9TVCIsIG5ldyBBcnJheUJ1ZmZlcig0KSwgIlwwXDBc
MFwwIik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCBVaW50OEFycmF5IGJvZHki
LCB1cmwsICJQT1NUIiwgbmV3IFVpbnQ4QXJyYXkoNCksICJcMFwwXDBcMCIpOwordGVzdFVwbG9h
ZCgiRmV0Y2ggd2l0aCBQT1NUIHdpdGggSW50OEFycmF5IGJvZHkiLCB1cmwsICJQT1NUIiwgbmV3
IEludDhBcnJheSg0KSwgIlwwXDBcMFwwIik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qg
d2l0aCBGbG9hdDMyQXJyYXkgYm9keSIsIHVybCwgIlBPU1QiLCBuZXcgRmxvYXQzMkFycmF5KDEp
LCAiXDBcMFwwXDAiKTsKK3Rlc3RVcGxvYWQoIkZldGNoIHdpdGggUE9TVCB3aXRoIEZsb2F0NjRB
cnJheSBib2R5IiwgdXJsLCAiUE9TVCIsIG5ldyBGbG9hdDY0QXJyYXkoMSksICJcMFwwXDBcMFww
XDBcMFwwIik7Cit0ZXN0VXBsb2FkKCJGZXRjaCB3aXRoIFBPU1Qgd2l0aCBEYXRhVmlldyBib2R5
IiwgdXJsLCAiUE9TVCIsIG5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoOCksIDAsIDQpLCAi
XDBcMFwwXDAiKTsKK3Rlc3RVcGxvYWQoIkZldGNoIHdpdGggUE9TVCB3aXRoIEJsb2IgYm9keSB3
aXRoIG1pbWUgdHlwZSIsIHVybCwgIlBPU1QiLCBuZXcgQmxvYihbIlRlc3QiXSwgeyB0eXBlOiAi
dGV4dC9tYXliZSIgfSksICJUZXN0Iik7CisKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVx
dWVzdC1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVt
cHR5LWV4cGVjdGVkLnR4dAppbmRleCAwZWQ2MGU1ZjNkZThhY2NiNGY1NThhOGE0M2YwMDhmY2U1
NGMzM2I3Li42NWZmZmJkNGY1N2I3NWY3YWI2NDUxNDQ0OWQzNmNjNmMwN2M3NWNiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9y
ZXF1ZXN0LWNvbnN1bWUtZW1wdHktZXhwZWN0ZWQudHh0CkBAIC04LDQgKzgsNyBAQCBQQVNTIENv
bnN1bWUgZW1wdHkgYmxvYiByZXF1ZXN0IGJvZHkgYXMgYXJyYXlCdWZmZXIKIFBBU1MgQ29uc3Vt
ZSBlbXB0eSB0ZXh0IHJlcXVlc3QgYm9keSBhcyBhcnJheUJ1ZmZlciAKIFBBU1MgQ29uc3VtZSBl
bXB0eSBibG9iIHJlcXVlc3QgYm9keSBhcyB0ZXh0IAogUEFTUyBDb25zdW1lIGVtcHR5IHRleHQg
cmVxdWVzdCBib2R5IGFzIHRleHQgCitQQVNTIENvbnN1bWUgZW1wdHkgVVJMU2VhcmNoUGFyYW1z
IHJlcXVlc3QgYm9keSBhcyB0ZXh0IAorRkFJTCBDb25zdW1lIGVtcHR5IEZvcm1EYXRhIHJlcXVl
c3QgYm9keSBhcyB0ZXh0IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiB1bmRlZmluZWQKK1BBU1MgQ29uc3VtZSBlbXB0eSBBcnJheUJ1ZmZlciByZXF1ZXN0IGJv
ZHkgYXMgdGV4dCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L3JlcXVlc3QvcmVxdWVzdC1jb25zdW1lLWVtcHR5Lmh0bWwKaW5kZXggYTJiYjNlMmE5YmQzOTc3
MGQzYzNkYjlkZDM5MDJiNjFkZjg0YzZhZC4uOTk2ZWI1MjMyYjVmZWM0Njg3MWE0ZWRkNjlmOGU2
NWJkYjIwYTMzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWNvbnN1bWUtZW1wdHkuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXF1ZXN0L3JlcXVlc3QtY29uc3VtZS1lbXB0eS5odG1sCkBAIC05OCw2ICs5OCw5IEBACiAg
ICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgidGV4dCIsICIiLCBmYWxzZSk7CiAgICAgY2hl
Y2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiYmxvYiIsIG5ldyBCbG9iKFtdLCB7ICJ0eXBlIiA6ICJ0
ZXh0L3BsYWluIiB9KSwgdHJ1ZSk7CiAgICAgY2hlY2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgidGV4
dCIsICIiLCB0cnVlKTsKKyAgICBjaGVja1JlcXVlc3RXaXRoRW1wdHlCb2R5KCJVUkxTZWFyY2hQ
YXJhbXMiLCBuZXcgVVJMU2VhcmNoUGFyYW1zKCIiKSwgdHJ1ZSk7CisgICAgY2hlY2tSZXF1ZXN0
V2l0aEVtcHR5Qm9keSgiRm9ybURhdGEiLCBuZXcgRm9ybURhdGEoKSwgdHJ1ZSk7CisgICAgY2hl
Y2tSZXF1ZXN0V2l0aEVtcHR5Qm9keSgiQXJyYXlCdWZmZXIiLCBuZXcgQXJyYXlCdWZmZXIoKSwg
dHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVl
c3QvcmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L3JlcXVlc3QtaW5pdC0wMDIt
ZXhwZWN0ZWQudHh0CmluZGV4IDg4YzVhN2IyMGU3YzdlNDBkMDhkZDM2YmIxZmJlZDU1Zjg3Yjkx
MDkuLmE3MzM1MDE2ZjM2NDFhMDk2NzUxMzU1NmIwZTYwYTQxYTdmZTIwMzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
cXVlc3QvcmVxdWVzdC1pbml0LTAwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9yZXF1ZXN0LWlu
aXQtMDAyLWV4cGVjdGVkLnR4dApAQCAtNSw1ICs1LDUgQEAgUEFTUyBJbml0aWFsaXplIFJlcXVl
c3QncyBib2R5IHdpdGggbnVsbAogUEFTUyBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5IHdpdGgg
YXBwbGljYXRpb24vb2N0ZXQtYmluYXJ5IAogRkFJTCBJbml0aWFsaXplIFJlcXVlc3QncyBib2R5
IHdpdGggbXVsdGlwYXJ0L2Zvcm0tZGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogdW5kZWZpbmVkCiBQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkg
d2l0aCB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTggCi1GQUlMIEluaXRpYWxpemUgUmVxdWVzdCdz
IGJvZHkgd2l0aCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYt
OCBUeXBlIGVycm9yCitQQVNTIEluaXRpYWxpemUgUmVxdWVzdCdzIGJvZHkgd2l0aCBhcHBsaWNh
dGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCAKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
b3VyY2VzL2VjaG8tY29udGVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWMzOWU4MzgxODFmMGVjNmQ1YWZlYjMwOTMxNzg5ZjBlZDUzZmI3NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc291cmNlcy9lY2hvLWNvbnRlbnQucHkKQEAgLTAsMCArMSw5IEBACitkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CisKKyAgICBoZWFkZXJzID0gWygiWC1SZXF1ZXN0LU1ldGhvZCIs
IHJlcXVlc3QubWV0aG9kKSwKKyAgICAgICAgICAgICAgICgiWC1SZXF1ZXN0LUNvbnRlbnQtTGVu
Z3RoIiwgcmVxdWVzdC5oZWFkZXJzLmdldCgiQ29udGVudC1MZW5ndGgiLCAiTk8iKSksCisgICAg
ICAgICAgICAgICAoIlgtUmVxdWVzdC1Db250ZW50LVR5cGUiLCByZXF1ZXN0LmhlYWRlcnMuZ2V0
KCJDb250ZW50LVR5cGUiLCAiTk8iKSldCisKKyAgICBjb250ZW50ID0gcmVxdWVzdC5ib2R5CisK
KyAgICByZXR1cm4gaGVhZGVycywgY29udGVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y29uc3VtZS1lbXB0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5
LWV4cGVjdGVkLnR4dAppbmRleCBlOTY3OTUxOGJkOWMwMzA5NGQ4ZmZmY2Y5ZmNmODJkZDE3N2Jj
N2NmLi5lNDQwYzM3NzA4ZDJjOWNjNGNhY2ZiMzEyNTBiYWQzZWQxMTBkM2IxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9y
ZXNwb25zZS1jb25zdW1lLWVtcHR5LWV4cGVjdGVkLnR4dApAQCAtOCw0ICs4LDcgQEAgUEFTUyBD
b25zdW1lIGVtcHR5IGJsb2IgcmVzcG9uc2UgYm9keSBhcyBhcnJheUJ1ZmZlcgogUEFTUyBDb25z
dW1lIGVtcHR5IHRleHQgcmVzcG9uc2UgYm9keSBhcyBhcnJheUJ1ZmZlciAKIFBBU1MgQ29uc3Vt
ZSBlbXB0eSBibG9iIHJlc3BvbnNlIGJvZHkgYXMgdGV4dCAKIFBBU1MgQ29uc3VtZSBlbXB0eSB0
ZXh0IHJlc3BvbnNlIGJvZHkgYXMgdGV4dCAKK1BBU1MgQ29uc3VtZSBlbXB0eSBVUkxTZWFyY2hQ
YXJhbXMgcmVzcG9uc2UgYm9keSBhcyB0ZXh0IAorRkFJTCBDb25zdW1lIGVtcHR5IEZvcm1EYXRh
IHJlc3BvbnNlIGJvZHkgYXMgdGV4dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogdW5kZWZpbmVkCitQQVNTIENvbnN1bWUgZW1wdHkgQXJyYXlCdWZmZXIgcmVz
cG9uc2UgYm9keSBhcyB0ZXh0IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
LWVtcHR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWVtcHR5Lmh0bWwKaW5kZXggNzg4
Mzg0Njk5MzNiYzJkODU4ODdjYTZiODJhM2I2MDJlZDVjYjRkYS4uZmFhNDQzYjVlMzAxMTU1YzAx
NGYwZmUwY2QyNjhkY2NmZTg3NjQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3Vt
ZS1lbXB0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZW1wdHkuaHRtbApAQCAt
OTMsMTEgKzkzLDEzIEBACiAgICAgICB9LCAiQ29uc3VtZSBlbXB0eSAiICsgYm9keVR5cGUgKyAi
IHJlc3BvbnNlIGJvZHkgYXMgIiArIChhc1RleHQgPyAidGV4dCIgOiAiYXJyYXlCdWZmZXIiKSk7
CiAgICAgfQogCi0gICAgLy8gRklYTUU6IEFkZCBCdWZmZXJTb3VyY2UsIEZvcm1EYXRhIGFuZCBV
UkxTZWFyY2hQYXJhbXMuCiAgICAgY2hlY2tSZXNwb25zZVdpdGhFbXB0eUJvZHkoImJsb2IiLCBu
ZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9wbGFpbiIgfSksIGZhbHNlKTsKICAgICBjaGVj
a1Jlc3BvbnNlV2l0aEVtcHR5Qm9keSgidGV4dCIsICIiLCBmYWxzZSk7CiAgICAgY2hlY2tSZXNw
b25zZVdpdGhFbXB0eUJvZHkoImJsb2IiLCBuZXcgQmxvYihbXSwgeyAidHlwZSIgOiAidGV4dC9w
bGFpbiIgfSksIHRydWUpOwogICAgIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJ0ZXh0Iiwg
IiIsIHRydWUpOworICAgIGNoZWNrUmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJVUkxTZWFyY2hQYXJh
bXMiLCBuZXcgVVJMU2VhcmNoUGFyYW1zKCIiKSwgdHJ1ZSk7CisgICAgY2hlY2tSZXNwb25zZVdp
dGhFbXB0eUJvZHkoIkZvcm1EYXRhIiwgbmV3IEZvcm1EYXRhKCksIHRydWUpOworICAgIGNoZWNr
UmVzcG9uc2VXaXRoRW1wdHlCb2R5KCJBcnJheUJ1ZmZlciIsIG5ldyBBcnJheUJ1ZmZlcigpLCB0
cnVlKTsKICAgICA8L3NjcmlwdD4KICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtY29uc3VtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1l
LWV4cGVjdGVkLnR4dAppbmRleCBmMWYwZjAwZmRjZThmOWM0YTQ1ZDQwYzVlZWEzODI3YWExZDQ2
NDc4Li5iOTBlYmQ5MzMyYTU0M2E5MzdhMDY0ODhiMzg0NzUwMzhkODM3NTk4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25z
ZS1jb25zdW1lLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDEyIEBACiAKLVBBU1MgQ29uc3VtZSBy
ZXNwb25zZSdzIGJvZHkgYXMgdGV4dCAKLVBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMg
YmxvYiAKLVBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIgCi1QQVNT
IENvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzIGpzb24gCi1GQUlMIENvbnN1bWUgcmVzcG9uc2Un
cyBib2R5IGFzIGZvcm1EYXRhIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiAiTm90IGltcGxlbWVudGVkIgorUEFTUyBDb25zdW1lIHRleHQgcmVzcG9uc2UncyBi
b2R5IGFzIHRleHQgCitQQVNTIENvbnN1bWUgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgYmxvYiAK
K1BBU1MgQ29uc3VtZSB0ZXh0IHJlc3BvbnNlJ3MgYm9keSBhcyBhcnJheUJ1ZmZlciAKK1BBU1Mg
Q29uc3VtZSB0ZXh0IHJlc3BvbnNlJ3MgYm9keSBhcyBqc29uIAorRkFJTCBDb25zdW1lIGZvcm1k
YXRhIHJlc3BvbnNlJ3MgYm9keSBhcyBmb3JtRGF0YSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogIk5vdCBpbXBsZW1lbnRlZCIKK1BBU1MgQ29uc3VtZSBVUkxT
ZWFyY2hQYXJhbXMgcmVzcG9uc2UncyBib2R5IGFzIHRleHQgCitQQVNTIENvbnN1bWUgVVJMU2Vh
cmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9keSBhcyBibG9iIAorUEFTUyBDb25zdW1lIFVSTFNlYXJj
aFBhcmFtcyByZXNwb25zZSdzIGJvZHkgYXMgYXJyYXlCdWZmZXIgCiBQQVNTIENvbnN1bWUgYmxv
YiByZXNwb25zZSdzIGJvZHkgYXMgYmxvYiAKIFBBU1MgQ29uc3VtZSBibG9iIHJlc3BvbnNlJ3Mg
Ym9keSBhcyB0ZXh0IAogUEFTUyBDb25zdW1lIGJsb2IgcmVzcG9uc2UncyBib2R5IGFzIGpzb24g
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS1leHBlY3RlZC50eHQKaW5kZXggNTAxNWQ2
Y2ZiY2I4ZjA1NmM5OTgzMDgyYzAwYTg1Y2FjNWIyNmMzYi4uZjlkN2FiMmM4NDdjNWE0M2NmNDVm
YTkzNzMwMDA2NjViNjRiZTYzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1z
dHJlYW0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLWV4
cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgUEFTUyBSZWFkIGVtcHR5IHRleHQgcmVzcG9uc2Un
cyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCiBQQVNTIFJlYWQgZW1wdHkgYmxvYiByZXNwb25zZSdz
IGJvZHkgYXMgcmVhZGFibGVTdHJlYW0gCiBQQVNTIFJlYWQgYmxvYiByZXNwb25zZSdzIGJvZHkg
YXMgcmVhZGFibGVTdHJlYW0gCiBQQVNTIFJlYWQgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVh
ZGFibGVTdHJlYW0gCitQQVNTIFJlYWQgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVT
dHJlYW0gCiBQQVNTIFJlYWQgYXJyYXkgYnVmZmVyIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJs
ZVN0cmVhbSAKIEZBSUwgUmVhZCBmb3JtIGRhdGEgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxl
U3RyZWFtIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAibm90
IGltcGxlbWVudGVkIgogUEFTUyBHZXR0aW5nIGFuIGVycm9yIFJlc3BvbnNlIHN0cmVhbSAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jb25zdW1lLXN0cmVhbS5odG1sCmluZGV4IGY5NjE5MmZhOTgwYTk3YWI2ZjQwZjJkM2I5
NWVmNjYxNWYwMGNmNzEuLmFlZDdhN2JlNTJiMjc4ODkzMzhhZmYxOWRlZDBhODQ2NGNlZDFkYWUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9u
c2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uaHRtbApAQCAtMjgsNiArMjgsOCBAQCB2YXIgZm9y
bURhdGEgPSBuZXcgRm9ybURhdGEoKTsKIGZvcm1EYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIp
OwogdmFyIHRleHREYXRhID0gSlNPTi5zdHJpbmdpZnkoIlRoaXMgaXMgcmVzcG9uc2UncyBib2R5
Iik7CiB2YXIgYmxvYiA9IG5ldyBCbG9iKFt0ZXh0RGF0YV0sIHsgInR5cGUiIDogInRleHQvcGxh
aW4iIH0pOwordmFyIHVybFNlYXJjaFBhcmFtc0RhdGEgPSAibmFtZT12YWx1ZSI7Cit2YXIgdXJs
U2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmxTZWFyY2hQYXJhbXNEYXRhKTsK
IAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKICAgICB2YXIgcmVzcG9uc2UgPSBuZXcg
UmVzcG9uc2UoYmxvYik7CkBAIC00MCw2ICs0MiwxMSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24o
dGVzdCkgewogfSwgIlJlYWQgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0i
KTsKIAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKKyAgICB2YXIgcmVzcG9uc2UgPSBu
ZXcgUmVzcG9uc2UodXJsU2VhcmNoUGFyYW1zKTsKKyAgICByZXR1cm4gdmFsaWRhdGVTdHJlYW1G
cm9tU3RyaW5nKHJlc3BvbnNlLmJvZHkuZ2V0UmVhZGVyKCksIHVybFNlYXJjaFBhcmFtc0RhdGEp
OworfSwgIlJlYWQgdGV4dCByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKKwor
cHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKICAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcg
QXJyYXlCdWZmZXIodGV4dERhdGEubGVuZ3RoKTsKICAgICB2YXIgaW50OEFycmF5ID0gbmV3IElu
dDhBcnJheShhcnJheUJ1ZmZlcik7CiAgICAgZm9yICh2YXIgY3B0ciA9IDA7IGNwdHIgPCB0ZXh0
RGF0YS5sZW5ndGg7IGNwdHIrKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUuaHRtbAppbmRleCA1NmUyMzQyNDhjMzg2ZmIy
NTQ3N2YzOTg4NjMzY2E3ZGU5MWFmZjdiLi5lYzUwOWZkNDU2ZjRjNDM3MWFkMmY3YTU0NjIxZDdm
M2E0NzBhOGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVz
cG9uc2UvcmVzcG9uc2UtY29uc3VtZS5odG1sCkBAIC02MywyNCArNjMsMjkgQEAKICAgICAgfSk7
CiAgICAgfQogCi0gICAgZnVuY3Rpb24gY2hlY2tSZXNwb25zZUJvZHkoYm9keSwgYm9keVR5cGUs
IGNoZWNrRnVuY3Rpb24pIHsKKyAgICBmdW5jdGlvbiBjaGVja1Jlc3BvbnNlQm9keShib2R5LCBi
b2R5VHlwZSwgYm9keUNvbnN1bWluZ1R5cGUsIGNoZWNrRnVuY3Rpb24pIHsKICAgICAgIHByb21p
c2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgIHZhciByZXNwb25zZSA9IG5ldyBSZXNw
b25zZShib2R5LCB7ICJoZWFkZXJzIjogW1siQ29udGVudC1UeXBlIiwgInRleHQvUExBSU4iXV0g
fSk7CiAgICAgICAgIGFzc2VydF9mYWxzZShyZXNwb25zZS5ib2R5VXNlZCwgImJvZHlVc2VkIGlz
IGZhbHNlIGF0IGluaXQiKTsKICAgICAgICAgcmV0dXJuIGNoZWNrRnVuY3Rpb24ocmVzcG9uc2Us
IGJvZHkpOwotICAgICAgfSwgIkNvbnN1bWUgcmVzcG9uc2UncyBib2R5IGFzICIgKyBib2R5VHlw
ZSk7CisgICAgICB9LCAiQ29uc3VtZSAiICsgYm9keVR5cGUgKyAiIHJlc3BvbnNlJ3MgYm9keSBh
cyAiICsgYm9keUNvbnN1bWluZ1R5cGUpOwogICAgIH0KIAogICAgIHZhciBmb3JtRGF0YSA9IG5l
dyBGb3JtRGF0YSgpOwogICAgIGZvcm1EYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIpOwogICAg
IHZhciB0ZXh0RGF0YSA9IEpTT04uc3RyaW5naWZ5KCJUaGlzIGlzIHJlc3BvbnNlJ3MgYm9keSIp
OwogICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3RleHREYXRhXSwgeyAidHlwZSIgOiAidGV4dC9w
bGFpbiIgfSk7CisgICAgdmFyIHVybFNlYXJjaFBhcmFtc0RhdGEgPSAibmFtZT12YWx1ZSI7Cisg
ICAgdmFyIHVybFNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXModXJsU2VhcmNoUGFy
YW1zRGF0YSk7CiAKLSAgICBjaGVja1Jlc3BvbnNlQm9keSh0ZXh0RGF0YSwgInRleHQiLCBjaGVj
a0JvZHlUZXh0KTsKLSAgICBjaGVja1Jlc3BvbnNlQm9keSh0ZXh0RGF0YSwgImJsb2IiLCBmdW5j
dGlvbihyZXNwb25zZSwgYm9keSkgeyBjaGVja0JvZHlCbG9iKHJlc3BvbnNlLCBib2R5LCB0cnVl
KTsgfSk7Ci0gICAgY2hlY2tSZXNwb25zZUJvZHkodGV4dERhdGEsICJhcnJheUJ1ZmZlciIsIGNo
ZWNrQm9keUFycmF5QnVmZmVyKTsKLSAgICBjaGVja1Jlc3BvbnNlQm9keSh0ZXh0RGF0YSwgImpz
b24iLCBjaGVja0JvZHlKU09OKTsKLSAgICBjaGVja1Jlc3BvbnNlQm9keShmb3JtRGF0YSwgImZv
cm1EYXRhIiwgY2hlY2tCb2R5Rm9ybURhdGEpOworICAgIGNoZWNrUmVzcG9uc2VCb2R5KHRleHRE
YXRhLCAidGV4dCIsICJ0ZXh0IiwgY2hlY2tCb2R5VGV4dCk7CisgICAgY2hlY2tSZXNwb25zZUJv
ZHkodGV4dERhdGEsICJ0ZXh0IiwgImJsb2IiLCBmdW5jdGlvbihyZXNwb25zZSwgYm9keSkgeyBj
aGVja0JvZHlCbG9iKHJlc3BvbnNlLCBib2R5LCB0cnVlKTsgfSk7CisgICAgY2hlY2tSZXNwb25z
ZUJvZHkodGV4dERhdGEsICJ0ZXh0IiwgImFycmF5QnVmZmVyIiwgY2hlY2tCb2R5QXJyYXlCdWZm
ZXIpOworICAgIGNoZWNrUmVzcG9uc2VCb2R5KHRleHREYXRhLCAidGV4dCIsICJqc29uIiwgY2hl
Y2tCb2R5SlNPTik7CisgICAgY2hlY2tSZXNwb25zZUJvZHkoZm9ybURhdGEsICJmb3JtZGF0YSIs
ICJmb3JtRGF0YSIsIGNoZWNrQm9keUZvcm1EYXRhKTsKKyAgICBjaGVja1Jlc3BvbnNlQm9keSh1
cmxTZWFyY2hQYXJhbXMsICJVUkxTZWFyY2hQYXJhbXMiLCAidGV4dCIsIGZ1bmN0aW9uKHJlc3Bv
bnNlKSB7IGNoZWNrQm9keVRleHQocmVzcG9uc2UsIHVybFNlYXJjaFBhcmFtcyk7IH0pOworICAg
IGNoZWNrUmVzcG9uc2VCb2R5KHVybFNlYXJjaFBhcmFtcywgIlVSTFNlYXJjaFBhcmFtcyIsICJi
bG9iIiwgZnVuY3Rpb24ocmVzcG9uc2UsIGJvZHkpIHsgY2hlY2tCb2R5QmxvYihyZXNwb25zZSwg
dXJsU2VhcmNoUGFyYW1zRGF0YSwgZmFsc2UpOyB9KTsKKyAgICBjaGVja1Jlc3BvbnNlQm9keSh1
cmxTZWFyY2hQYXJhbXMsICJVUkxTZWFyY2hQYXJhbXMiLCAiYXJyYXlCdWZmZXIiLCBmdW5jdGlv
bihyZXNwb25zZSkgeyBjaGVja0JvZHlBcnJheUJ1ZmZlcihyZXNwb25zZSwgdXJsU2VhcmNoUGFy
YW1zRGF0YSk7IH0pOwogCiAgICAgZnVuY3Rpb24gY2hlY2tCbG9iUmVzcG9uc2VCb2R5KGJsb2JC
b2R5LCBibG9iRGF0YSwgYm9keVR5cGUsIGNoZWNrRnVuY3Rpb24pIHsKICAgICAgIHByb21pc2Vf
dGVzdChmdW5jdGlvbih0ZXN0KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAw
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1pbml0LTAwMi1leHBlY3RlZC50eHQKaW5k
ZXggZDBlZmE3Y2YwN2YyMGEyNjI1Mzc0NDRlNTNiZGJiMGM5ZDkyMTNhMi4uZWQxNjBjMDQ2MzUx
YjJjZTdmZDY5MGFkZTVkZGIzN2UwNDMzM2NhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
aW5pdC0wMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWluaXQtMDAyLWV4cGVj
dGVkLnR4dApAQCAtMiw3ICsyLDcgQEAKIFBBU1MgSW5pdGlhbGl6ZSBSZXNwb25zZSB3aXRoIGhl
YWRlcnMgdmFsdWVzIAogUEFTUyBJbml0aWFsaXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIGFwcGxp
Y2F0aW9uL29jdGV0LWJpbmFyeSAKIEZBSUwgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0
aCBtdWx0aXBhcnQvZm9ybS1kYXRhIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiB1bmRlZmluZWQKLUZBSUwgSW5pdGlhbGl6ZSBSZXNwb25zZSdzIGJvZHkgd2l0
aCBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCBhc3NlcnRf
dHJ1ZTogQ29udGVudC1UeXBlIGhlYWRlciBzaG91bGQgYmUgImFwcGxpY2F0aW9uL3gtd3d3LWZv
cm0tdXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IiAgZXhwZWN0ZWQgdHJ1ZSBnb3QgbnVsbAorUEFT
UyBJbml0aWFsaXplIFJlc3BvbnNlJ3MgYm9keSB3aXRoIGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0t
dXJsZW5jb2RlZDtjaGFyc2V0PVVURi04IAogUEFTUyBJbml0aWFsaXplIFJlc3BvbnNlJ3MgYm9k
eSB3aXRoIHRleHQvcGxhaW47Y2hhcnNldD1VVEYtOCAKIFBBU1MgUmVhZCBSZXNwb25zZSdzIGJv
ZHkgYXMgcmVhZGFibGVTdHJlYW0gCiBQQVNTIFRlc3RpbmcgZW1wdHkgUmVzcG9uc2UgQ29udGVu
dC1UeXBlIGhlYWRlciAK
</data>

          </attachment>
      

    </bug>

</bugzilla>