<?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>95734</bug_id>
          
          <creation_ts>2012-09-04 04:39:33 -0700</creation_ts>
          <short_desc>MediaStream API: Add the async createOffer functionality to RTCPeerConnection</short_desc>
          <delta_ts>2012-09-05 00:39:53 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80589</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>bashi</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710973</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-04 04:39:33 -0700</bug_when>
    <thetext>As before this is an entire slice of functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710984</commentid>
    <comment_count>1</comment_count>
      <attachid>162012</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-04 04:51:05 -0700</bug_when>
    <thetext>Created attachment 162012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710985</commentid>
    <comment_count>2</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-04 04:54:34 -0700</bug_when>
    <thetext>Here&apos;s another usage of the &quot;abstract-base-class-in-platform-with-implementation-in-webcore-proper&quot; pattern that I used recently.

The RequestImpl class has the reference to two callbacks which the Request class hides from the platform implementor.

Other than that the rest of the code is pretty much business as usual, nothing I haven&apos;t done before several times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710986</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 04:54:40 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711037</commentid>
    <comment_count>4</comment_count>
      <attachid>162026</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-04 05:59:05 -0700</bug_when>
    <thetext>Created attachment 162026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711289</commentid>
    <comment_count>5</comment_count>
      <attachid>162026</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-04 11:38:35 -0700</bug_when>
    <thetext>Comment on attachment 162026
Patch

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

&gt; Source/Platform/chromium/public/WebRTCSessionDescriptionDescriptor.h:57
&gt; +/*
&gt; + *  In order to establish the media plane, PeerConnection needs specific
&gt; + *  parameters to indicate what to transmit to the remote side, as well
&gt; + *  as how to handle the media that is received. These parameters are
&gt; + *  determined by the exchange of session descriptions in offers and
&gt; + *  answers, and there are certain details to this process that must be
&gt; + *  handled in the JSEP APIs.
&gt; +
&gt; + *  Whether a session description was sent or received affects the
&gt; + *  meaning of that description. For example, the list of codecs sent to
&gt; + *  a remote party indicates what the local side is willing to decode,
&gt; + *  and what the remote party should send.
&gt; + */

C++ style comments pls.  :-)

&gt; Source/Platform/chromium/public/WebRTCSessionDescriptionDescriptor.h:58
&gt; +class WebRTCSessionDescriptionDescriptor {

&quot;DescriptionDescriptor&quot; :(

&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:145
&gt; +    RefPtr&lt;RTCSessionDescriptionCallback&gt; successCallback = prpSuccessCallback;

There&apos;s on real point in creating a successCallback local.  All you&apos;re using it for is to test for null, which you can do on the PassRefPtr directly.  Once you remove successCallback you can rename prpSuccessCallback to successCallback

&gt; Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:64
&gt; +void RTCSessionDescriptionRequestImpl::requestSucceeded(PassRefPtr&lt;RTCSessionDescriptionDescriptor&gt; sdd)

sdd -&gt; sessionDescriptionDescriptor

Please use complete words in variable names.  I know we use some abbreviations in this code, but we&apos;d like to limit it to abbreviations that appear in the spec.

&gt; Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:76
&gt; +    if (m_errorCallback.get())

No need to call .get() here.  You can test m_errorCallback the same way you&apos;ve tested m_successCallback on line 66.

&gt; Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:99
&gt; +        request.requestSucceeded(sd);
&gt; +    } else
&gt; +        request.requestFailed(&quot;TEST_ERROR&quot;);

Do we want to call these back async during testing to make the test environment more like the production environment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711292</commentid>
    <comment_count>6</comment_count>
      <attachid>162026</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-04 11:39:40 -0700</bug_when>
    <thetext>Comment on attachment 162026
Patch

DescriptionDescriptor is really a goofy name, but I&apos;m not sure what to recommend that&apos;s better.  I&apos;m sure someone will make fun of us later for having that name in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711356</commentid>
    <comment_count>7</comment_count>
      <attachid>162026</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-04 12:44:03 -0700</bug_when>
    <thetext>Comment on attachment 162026
Patch

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

&gt;&gt; Source/Platform/chromium/public/WebRTCSessionDescriptionDescriptor.h:57
&gt;&gt; + */
&gt; 
&gt; C++ style comments pls.  :-)

Fixed.

&gt;&gt; Source/Platform/chromium/public/WebRTCSessionDescriptionDescriptor.h:58
&gt;&gt; +class WebRTCSessionDescriptionDescriptor {
&gt; 
&gt; &quot;DescriptionDescriptor&quot; :(

Fixme added.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:145
&gt;&gt; +    RefPtr&lt;RTCSessionDescriptionCallback&gt; successCallback = prpSuccessCallback;
&gt; 
&gt; There&apos;s on real point in creating a successCallback local.  All you&apos;re using it for is to test for null, which you can do on the PassRefPtr directly.  Once you remove successCallback you can rename prpSuccessCallback to successCallback

Fixed.

&gt;&gt; Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:64
&gt;&gt; +void RTCSessionDescriptionRequestImpl::requestSucceeded(PassRefPtr&lt;RTCSessionDescriptionDescriptor&gt; sdd)
&gt; 
&gt; sdd -&gt; sessionDescriptionDescriptor
&gt; 
&gt; Please use complete words in variable names.  I know we use some abbreviations in this code, but we&apos;d like to limit it to abbreviations that appear in the spec.

Fixed. Sorry!

&gt;&gt; Source/WebCore/Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:76
&gt;&gt; +    if (m_errorCallback.get())
&gt; 
&gt; No need to call .get() here.  You can test m_errorCallback the same way you&apos;ve tested m_successCallback on line 66.

Doh. Fixed.

&gt;&gt; Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp:99
&gt;&gt; +        request.requestFailed(&quot;TEST_ERROR&quot;);
&gt; 
&gt; Do we want to call these back async during testing to make the test environment more like the production environment?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711360</commentid>
    <comment_count>8</comment_count>
      <attachid>162083</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-04 12:51:17 -0700</bug_when>
    <thetext>Created attachment 162083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711374</commentid>
    <comment_count>9</comment_count>
      <attachid>162083</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-04 13:02:43 -0700</bug_when>
    <thetext>Comment on attachment 162083
Patch

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711429</commentid>
    <comment_count>10</comment_count>
      <attachid>162083</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 14:01:45 -0700</bug_when>
    <thetext>Comment on attachment 162083
Patch

Clearing flags on attachment: 162083

Committed r127501: &lt;http://trac.webkit.org/changeset/127501&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711430</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 14:01:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711585</commentid>
    <comment_count>12</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-09-04 17:17:13 -0700</bug_when>
    <thetext>This change caused build failures on Win(e.g. http://build.chromium.org/p/chromium.webkit/builders/Win%20Builder/builds/27580)

I removed chromium/public/WebOfferAnswerRequest.h from Platform.gypi to try to fix the failures. http://trac.webkit.org/changeset/127526

Tommy, could you check and do proper fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711796</commentid>
    <comment_count>13</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-09-05 00:39:41 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; This change caused build failures on Win(e.g. http://build.chromium.org/p/chromium.webkit/builders/Win%20Builder/builds/27580)
&gt; 
&gt; I removed chromium/public/WebOfferAnswerRequest.h from Platform.gypi to try to fix the failures. http://trac.webkit.org/changeset/127526
&gt; 
&gt; Tommy, could you check and do proper fix?

That was the proper fix. Thanks for that and sorry for leaving that erroneous file in there. I

s there a reason why it is only the cr-win build that has that warning?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162012</attachid>
            <date>2012-09-04 04:51:05 -0700</date>
            <delta_ts>2012-09-04 05:58:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95734-20120904135048.patch</filename>
            <type>text/plain</type>
            <size>68873</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzMDEzMzk2NzRkNTdh
M2NhMjQyYzNkMmJjYTIwZWY5MThiOWM0NjFkLi43MmZlNzIwYmMxOGE4OWIxNzdmYzgwN2RmZjI2
N2VmZTVlZjk3Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wOS0wNCAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgYXN5bmMgY3JlYXRlT2ZmZXIgZnVuY3Rpb25hbGl0eSB0byBSVENQ
ZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTU3MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcjo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6On5XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6aXNOdWxsKToKKyAgICAgICAgKiBjaHJvbWl1
bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6RXh0cmFEYXRhOjp+RXh0cmFEYXRh
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6V2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6On5XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dDo6aXNOdWxsKToKKwogMjAxMi0wOS0wMyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEFkZCBJY2UtcmVsYXRlZCBmdW5j
dGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5MDI2YjcxMmIy
YjBmYjJiNzRiNmU4MjM0ZDEzZDE1MWNhY2FlYi4uZTNkMDI2NmE5ZTUzZmIyZjE4ZjU2ZWJmYTlj
ODdhMjhmMDZkYzFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTA5LTA0ICBU
b21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3Ry
ZWFtIEFQSTogQWRkIHRoZSBhc3luYyBjcmVhdGVPZmZlciBmdW5jdGlvbmFsaXR5IHRvIFJUQ1Bl
ZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTczNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGNyZWF0ZU9mZmVyIHNlbmRzIGEgcmVxdWVzdCB0byB0aGUgcGxhdGZvcm0gaW1wbGVtZW50
ZXIgcmVxdWVzdGluZyBpdCB0byBnYXRoZXIgdXAgYWxsIGNhbmRpZGF0ZXMuCisgICAgICAgIFRo
aXMgY2FuIHRha2Ugc29tZSB0aW1lLCB0aGVyZWZvcmUgdGhlIHJlcXVlc3QgaXMgYXN5bmMuCisK
KyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVP
ZmZlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxs
YmFjay5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDRXJyb3JDYWxs
YmFjazo6flJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRXJyb3JDYWxsYmFjay5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2s6On5SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjp+
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWls
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6
OmNsZWFyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwpOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yOjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6YXNz
aWduKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6dHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNldFR5cGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZHApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZXRTRFApOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6
OmFzc2lnbik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3Q6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoRXh0cmFEYXRhQ29u
dGFpbmVyKToKKyAgICAgICAgKFdlYktpdDo6RXh0cmFEYXRhQ29udGFpbmVyOjpFeHRyYURhdGFD
b250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpFeHRyYURhdGFDb250YWluZXI6OmV4dHJhRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OmV4
dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3Q6OnNldEV4dHJhRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15
OjpjcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp0eXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNkcCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OkV4dHJhRGF0YTo6
fkV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0Ojp+UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpleHRyYURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2hyb21pdW0pOgorCiAyMDEyLTA4LTMxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhh
dXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFBvcnQgdGhlIFF0IHBpeG1hcCBKUyBi
aW5kaW5ncyB0byB1c2UgdGhlIEpTQyBDIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L1BsYXRmb3JtLmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQppbmRleCA2ZDBj
MWQ4NWRlYjNhNzY3OTgzMjlhZjkyOGQzYTkyODJlOGJkMjQzLi43MGVlNjgxODRjMzMyYTI4OGU1
MDdhOTUyODZjMWIyNWNlMWU0NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZv
cm0uZ3lwaQorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQpAQCAtOTQsNiArOTQs
NyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZXNzYWdlUG9ydENoYW5uZWxD
bGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1pbWVSZWdpc3RyeS5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTm9uQ29weWFibGUuaCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk9mZmVyQW5zd2VyUmVxdWVzdC5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xp
ZW50LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaCcsCkBAIC0xMDcsNiArMTA4LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlY3QuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlZmVycmVyUG9saWN5LmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZW5kZXJpbmdTdGF0cy5oJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oCmluZGV4IGQwYzIyOTNhMDU1Y2MxNDMzYjUwZjE3ZDI0M2E4NTE2NTFh
NWI5ZjguLmM4ZjJmMTM3NTNhZjA4NTgxMmZkNmRkYTQzODdkMWEyNGMxNzRiM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzcsNiArMzcsOCBAQCBjbGFzcyBXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENDb25maWd1cmF0aW9uOwogY2xhc3MgV2ViUlRDSUNF
Q2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudDsKK2NsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CitjbGFzcyBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OwogCiBjbGFzcyBXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIgewogcHVibGljOgpAQCAtNDQsNiArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3Qg
V2ViTWVkaWFDb25zdHJhaW50cyYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZl
cihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViTWVkaWFD
b25zdHJhaW50cyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSUNFKGNvbnN0IFdlYlJU
Q0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3Jp
cHRvciYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NjFmNDM1OWMxYTUz
ZmM1ZmU1YjM3MDViNTM5YTY5ZmI0NzU4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
aApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yX2gKKyNkZWZpbmUgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcl9oCisKKyNp
bmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgorI2luY2x1
ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFz
cyBXZWJTdHJpbmc7CisKKy8qCisgKiAgSW4gb3JkZXIgdG8gZXN0YWJsaXNoIHRoZSBtZWRpYSBw
bGFuZSwgUGVlckNvbm5lY3Rpb24gbmVlZHMgc3BlY2lmaWMKKyAqICBwYXJhbWV0ZXJzIHRvIGlu
ZGljYXRlIHdoYXQgdG8gdHJhbnNtaXQgdG8gdGhlIHJlbW90ZSBzaWRlLCBhcyB3ZWxsCisgKiAg
YXMgaG93IHRvIGhhbmRsZSB0aGUgbWVkaWEgdGhhdCBpcyByZWNlaXZlZC4gVGhlc2UgcGFyYW1l
dGVycyBhcmUKKyAqICBkZXRlcm1pbmVkIGJ5IHRoZSBleGNoYW5nZSBvZiBzZXNzaW9uIGRlc2Ny
aXB0aW9ucyBpbiBvZmZlcnMgYW5kCisgKiAgYW5zd2VycywgYW5kIHRoZXJlIGFyZSBjZXJ0YWlu
IGRldGFpbHMgdG8gdGhpcyBwcm9jZXNzIHRoYXQgbXVzdCBiZQorICogIGhhbmRsZWQgaW4gdGhl
IEpTRVAgQVBJcy4KKworICogIFdoZXRoZXIgYSBzZXNzaW9uIGRlc2NyaXB0aW9uIHdhcyBzZW50
IG9yIHJlY2VpdmVkIGFmZmVjdHMgdGhlCisgKiAgbWVhbmluZyBvZiB0aGF0IGRlc2NyaXB0aW9u
LiBGb3IgZXhhbXBsZSwgdGhlIGxpc3Qgb2YgY29kZWNzIHNlbnQgdG8KKyAqICBhIHJlbW90ZSBw
YXJ0eSBpbmRpY2F0ZXMgd2hhdCB0aGUgbG9jYWwgc2lkZSBpcyB3aWxsaW5nIHRvIGRlY29kZSwK
KyAqICBhbmQgd2hhdCB0aGUgcmVtb3RlIHBhcnR5IHNob3VsZCBzZW5kLgorICovCitjbGFzcyBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKCkgeyB9CisgICAgV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IoKSB7IHJlc2V0KCk7IH0KKworICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3ImIG9wZXJhdG9yPShjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yJiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhlcik7CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0
IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKTsKKworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgdHlwZSwgY29uc3QgV2ViU3RyaW5n
JiBzZHApOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIGJvb2wgaXNOdWxs
KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CisKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYlN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFR5
cGUoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgc2RwKCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFNEUChjb25zdCBXZWJTdHJpbmcmKTsK
KworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I+Jik7CisKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4oKSBjb25zdDsKKyNlbmRpZgor
Citwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzliNGUxMzgwOWMwNDJhYzEwYjFi
M2Q3NDJiNjkxMjlhMjVlZjllNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RfaAorI2RlZmlu
ZSBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1v
bi5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0
ci5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CisKK2NsYXNzIFdlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0
YSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9
OworCisgICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCgpIHsgfQorICAgIFdlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAgIH5XZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0KCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdCYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOworICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Jik7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgcmVzZXQoKTsKKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5p
c051bGwoKTsgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoY29u
c3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmluZyYgZXJyb3IpIGNvbnN0
OworCisgICAgLy8gRXh0cmEgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuCisgICAg
Ly8gSWYgbm9uLW51bGwsIHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBiZSBkZWxldGVkIHdo
ZW4gdGhlIG9iamVjdCBpcyBkZXN0cm95ZWQuCisgICAgLy8gU2V0dGluZyB0aGUgZXh0cmEgZGF0
YSBwb2ludGVyIHdpbGwgY2F1c2UgYW55IGV4aXN0aW5nIG5vbi1udWxsCisgICAgLy8gZXh0cmEg
ZGF0YSBwb2ludGVyIHRvIGJlIGRlbGV0ZWQuCisgICAgV0VCS0lUX0VYUE9SVCBFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEo
RXh0cmFEYXRhKik7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2Vi
UHJpdmF0ZVB0cjxXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiBtX3ByaXZh
dGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1NzlmMmNlMGQz
NmQxMzFmYTU0OWI5ZTkwMmU2ZWRlZTRlZTVkMTBiLi5iY2M2YWZmOTY2ZjM0ODg1YzU4NWU4Nzgw
ZDZlMzEyMDg0YWQwY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIyLDEwICsyMjIsMTIg
QEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb24wMC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9y
Q2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVFdmVudC5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRl
bnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsCkBAIC04NTksNiArODYxLDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRl
RXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKKyAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBiNzE4YmIwZDAxNTM3MjhjNjdmZGYxMWJiMGM4ODM0MTA5MWJmYWViLi45MTcwNDlkNWE1
MjBkYzg5MjUxZTNiYzMyMTJkYzAyNjcxMmFlZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTYyNyw2ICs2MjcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUkdCQ29sb3IuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUkdCQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ0Vy
cm9yQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDRXJyb3JDYWxs
YmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDSWNlQ2FuZGlkYXRlLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ0ljZUNhbmRpZGF0ZS5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIFwKQEAgLTYzNSw2ICs2
MzcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENQZWVyQ29ubmVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NjcmVlbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmlwdFByb2ZpbGUuY3BwIFwKQEAgLTEyMjUsMTAgKzEy
MjksMTIgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRs
IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwg
XAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Np
b25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50
dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCkBAIC0xOTIwLDYgKzE5MjYsNyBAQCB3ZWJj
b3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmggXAorCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIFwK
QEAgLTE5MjgsNiArMTkzNSw5IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb24uaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2Ny
aXB0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q2xpZW50LmggXApAQCAtNDU1NCw2ICs0NTY0LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42OTMxOTQ2OGVmMGUxM2IyNzgxNDU3M2YxMTYxMTExOGU5MzE4MzIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNh
bGxiYWNrLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDRXJyb3JDYWxsYmFj
a19oCisjZGVmaW5lIFJUQ0Vycm9yQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDUGVlckNvbm5lY3Rp
b247CisKK2NsYXNzIFJUQ0Vycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENFcnJv
ckNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDRXJyb3JDYWxsYmFjaygpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5mb3Jt
YXRpb24sIFJUQ1BlZXJDb25uZWN0aW9uKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0Vy
cm9yQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU0MGQxNGRhZTE3ZGRiZDBh
NjNmYWY2N2RiODgyYTRiYWIzY2MyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAg
ICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENhbGxiYWNrCisgICAgXSBSVENF
cnJvckNhbGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcg
ZXJyb3JJbmZvcm1hdGlvbiwgaW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNlKTsKKyAgICB9Owor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDhjY2UwNTNmMDNkOGE5MWY5OTYyN2NmNzBjMTVjNjIy
NWZhOTQ3YWUuLjEwNzFhMjRhYjU5MTZiMDg0YzFlMjBjOTMyY2E4MGIyOTM0Yzk0MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCkBAIC00MCw5ICs0MCwxNCBAQAogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWlu
dHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1FdmVudC5oIgogI2luY2x1ZGUgIlJUQ0Nv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJSVENFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
UlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMCw2ICsxMzUs
MjcgQEAgUlRDUGVlckNvbm5lY3Rpb246On5SVENQZWVyQ29ubmVjdGlvbigpCiB7CiB9CiAKK3Zv
aWQgUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2s+IHBycFN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFp
bnRzLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5
U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayA9
IHBycFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjaykgeworICAgICAg
ICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0lt
cGw6OmNyZWF0ZShtZWRpYUNvbnN0cmFpbnRzLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJl
cXVlc3QgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHN1Y2Nlc3ND
YWxsYmFjaywgZXJyb3JDYWxsYmFjaywgdGhpcyk7CisgICAgbV9wZWVySGFuZGxlci0+Y3JlYXRl
T2ZmZXIocmVxdWVzdC5yZWxlYXNlKCksIGNvbnN0cmFpbnRzKTsKK30KKwogdm9pZCBSVENQZWVy
Q29ubmVjdGlvbjo6dXBkYXRlSWNlKGNvbnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24s
IGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0
YXRlID09IFJlYWR5U3RhdGVDbG9zZWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAppbmRleCA1NGUwZDRkZWU1NWM5
YzgyZDllY2NiYTVjNGJlZTRiMmZjNjQ0ZDY4Li5kNGM0Y2RmZDIxMTM4NTg0ZWM5ZmViNmM3MmQ2
ODkzNjdkMGNiZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCkBAIC00OCwxMiArNDgsMTYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgUlRDQ29uZmlndXJh
dGlvbjsKK2NsYXNzIFJUQ0Vycm9yQ2FsbGJhY2s7CitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRp
b25DYWxsYmFjazsKIAogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRl
ZDxSVENQZWVyQ29ubmVjdGlvbj4sIHB1YmxpYyBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQsIHB1YmxpYyBFdmVudFRhcmdldCwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGljdGlvbmFyeSYgcnRjQ29uZmlndXJhdGlvbiwgY29u
c3QgRGljdGlvbmFyeSYgbWVkaWFDb25zdHJhaW50cywgRXhjZXB0aW9uQ29kZSYpOwogICAgIH5S
VENQZWVyQ29ubmVjdGlvbigpOwogCisgICAgdm9pZCBjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNr
PiwgY29uc3QgRGljdGlvbmFyeSYgbWVkaWFDb25zdHJhaW50cywgRXhjZXB0aW9uQ29kZSYpOwor
CiAgICAgU3RyaW5nIHJlYWR5U3RhdGUoKSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRlSWNlKGNv
bnN0IERpY3Rpb25hcnkmIHJ0Y0NvbmZpZ3VyYXRpb24sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlh
Q29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKaW5kZXggNTEwY2Uz
MDFjMWM4ZWRhNWE0Y2U0ZDM1ZjI1MjU1MmNjZjg4ZjBiOS4uMDJmYTM0NTQ4ZGRjMmMxODA3OGM3
YjI0OTc4NmViODI3YWI4ZTE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwKQEAgLTM4LDYgKzM4LDkgQEAg
bW9kdWxlIG1lZGlhc3RyZWFtIHsKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCwKICAgICAgICAgRXZlbnRUYXJnZXQKICAgICBdIFJUQ1BlZXJDb25uZWN0aW9uIHsKKyAg
ICAgICAgdm9pZCBjcmVhdGVPZmZlcihpbiBbQ2FsbGJhY2tdIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrIHN1Y2Nlc3NDYWxsYmFjaywgaW4gW0NhbGxiYWNrLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gUlRDRXJyb3JDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIGluIFtPcHRpb25h
bD1EZWZhdWx0SXNVbmRlZmluZWRdIERpY3Rpb25hcnkgbWVkaWFDb25zdHJhaW50cykKKyAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgcmVhZHlTdGF0ZTsKIAogICAgICAgICB2b2lkIHVwZGF0ZUljZShpbiBbT3B0
aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0aW9uYXJ5IGNvbmZpZ3VyYXRpb24sIGluIFtP
cHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERpY3Rpb25hcnkgbWVkaWFDb25zdHJhaW50cykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTFlMGE5OTEz
ZTY2ZTYzODI3Y2M3ODY4NzE0ZmUzZDNmNWFmMTVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkNhbGxiYWNrX2gKKyNkZWZpbmUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2tfaAorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CitjbGFzcyBS
VENTZXNzaW9uRGVzY3JpcHRpb247CisKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxi
YWNrIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaygpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChSVENTZXNzaW9uRGVzY3JpcHRpb24qLCBS
VENQZWVyQ29ubmVjdGlvbiopID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBSVENTZXNzaW9uRGVz
Y3JpcHRpb25DYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRhNTM2ZDRkOWMyODEwOTkwMDFmNzMyNWVlYWFjMDQ3NjFiNWUwMzcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIG1lZGlhc3RyZWFtIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ2FsbGJhY2sKKyAgICBdIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBSVENTZXNzaW9u
RGVzY3JpcHRpb24gc2RwLCBpbiBSVENQZWVyQ29ubmVjdGlvbiBzb3VyY2UpOworICAgIH07CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDJjZWE3M2ZhZTg1ZjExNjBmNzg3OTJmNzBhYzZmMzFmYzcwN2YyOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGwuY3BwCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0
aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIKKworI2luY2x1ZGUgIlJUQ0Vycm9yQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNr
LmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGw+IFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjcmVhdGUoUGFzc1JlZlB0
cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVm
UHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDUGVlckNv
bm5lY3Rpb24+IG93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwoc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBvd25l
cikpOworfQorCitSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9y
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IG93bmVyKQorICAgIDogbV9z
dWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQorICAgICwgbV9lcnJvckNhbGxiYWNrKGVy
cm9yQ2FsbGJhY2spCisgICAgLCBtX293bmVyKG93bmVyKQoreworfQorCitSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0SW1wbDo6flJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKCkK
K3sKK30KKwordm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6cmVxdWVzdFN1
Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHNkZCkK
K3sKKyAgICBpZiAobV9zdWNjZXNzQ2FsbGJhY2spIHsKKyAgICAgICAgUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbj4gc2QgPSBSVENTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZShzZGQpOwor
ICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc2QuZ2V0KCksIG1fb3duZXIu
Z2V0KCkpOworICAgIH0KKworICAgIGNsZWFyKCk7Cit9CisKK3ZvaWQgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWlsZWQoY29uc3QgU3RyaW5nJiBlcnJvcikKK3sK
KyAgICBpZiAobV9lcnJvckNhbGxiYWNrLmdldCgpKQorICAgICAgICBtX2Vycm9yQ2FsbGJhY2st
PmhhbmRsZUV2ZW50KGVycm9yLCBtX293bmVyLmdldCgpKTsKKworICAgIGNsZWFyKCk7Cit9CisK
K3ZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKCkKK3sKKyAgICBt
X3N1Y2Nlc3NDYWxsYmFjay5jbGVhcigpOworICAgIG1fZXJyb3JDYWxsYmFjay5jbGVhcigpOwor
ICAgIG1fb3duZXIuY2xlYXIoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjIwYTViODk4OTBlOWFjNjMyYjc3OGVlZTUyYmFjNTJj
MmY1MzVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsX2gKKyNkZWZp
bmUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGxfaAorCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENFcnJvckNhbGxiYWNrOworY2xhc3MgUlRD
UGVlckNvbm5lY3Rpb247CitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjazsKKwor
Y2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwgOiBwdWJsaWMgUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IGNyZWF0ZShQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiwgUGFz
c1JlZlB0cjxSVENQZWVyQ29ubmVjdGlvbj4pOworICAgIHZpcnR1YWwgflJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN1Y2NlZWRl
ZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKSBPVkVS
UklERTsKKworcHJpdmF0ZToKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENF
cnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxSVENQZWVyQ29ubmVjdGlvbj4pOworCisgICAgdm9p
ZCBjbGVhcigpOworCisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiBt
X3N1Y2Nlc3NDYWxsYmFjazsKKyAgICBSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gbV9lcnJvckNh
bGxiYWNrOworICAgIFJlZlB0cjxSVENQZWVyQ29ubmVjdGlvbj4gbV9vd25lcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNlbmRpZiAvLyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbF9oCisKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDlmZWEyOTExODk3MTE2NjE2ODQwNGIxMWE4Yzk5ZDA1MDBmMzlkOGUuLmE2
YzI5OWY0YWQ3ZWM2YTc5NjMwN2NlY2JlMDJkN2Q5Mzk5NzE5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTQ2Miw2ICs0NjIsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3Bw
JywKQEAgLTg2MiwxMCArODYzLDEyIEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaWRsJywK
ICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRsJywK
KyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRsJywK
ICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRs
JywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlk
bCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRp
b24uaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9T
ZXNzaW9uRGVzY3JpcHRpb24uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL25hdmlnYXRvcmNv
bnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsJywKICAgICAgICAgICAgICdNb2R1
bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwnLApAQCAtMTYwNCw2
ICsxNjA3LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uMDAuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL1BlZXJDb25uZWN0aW9uMDAuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENFcnJvckNhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDSWNlQ2FuZGlkYXRlLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENJY2VDYW5kaWRhdGUuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGVFdmVudC5jcHAnLApAQCAtMTYxMiw2ICsxNjE2LDkgQEAKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uaCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmNwcCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgnLApAQCAtODM0MSw2ICs4MzQ4LDggQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlByZXJlbmRlci5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDQ29uZmlndXJh
dGlvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRD
SUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAorICAg
ICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQv
V2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViU2Nyb2xsYmFyVGhlbWVHZW9tZXRyeU5hdGl2ZS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhckltcGwu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3YTJiODJlMjJhMTg0MzhlNmQyOGM3ODNkYTljOWJjNWQ0
MmM4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwCkBAIC0wLDAg
KzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4K
KworI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKKyNpbmNsdWRl
IDxwdWJsaWMvV2ViU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6V2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcihjb25zdCBQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+JiBzZXNzaW9uRGVzY3JpcHRpb24pCisgICAgOiBtX3By
aXZhdGUoc2Vzc2lvbkRlc2NyaXB0aW9uKQoreworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I6OmFzc2lnbihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yJiBvdGhlcikKK3sKKyAgICBtX3ByaXZhdGUgPSBvdGhlci5tX3ByaXZhdGU7Cit9
CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6cmVzZXQoKQorewor
ICAgIG1fcHJpdmF0ZS5yZXNldCgpOworfQorCitXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7
Cit9CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6aW5pdGlhbGl6
ZShjb25zdCBXZWJTdHJpbmcmIHR5cGUsIGNvbnN0IFdlYlN0cmluZyYgc2RwKQoreworICAgIG1f
cHJpdmF0ZSA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmNyZWF0ZSh0eXBlLCBz
ZHApOworfQorCitXZWJTdHJpbmcgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6
dHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJl
dHVybiBtX3ByaXZhdGUuZ2V0KCktPnR5cGUoKTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yOjpzZXRUeXBlKGNvbnN0IFdlYlN0cmluZyYgdHlwZSkKK3sKKyAg
ICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQo
KS0+c2V0VHlwZSh0eXBlKTsKK30KKworV2ViU3RyaW5nIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3I6OnNkcCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxs
KCkpOworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCktPnNkcCgpOworfQorCit2b2lkIFdlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNldFNEUChjb25zdCBXZWJTdHJpbmcmIHNk
cCkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgcmV0dXJuIG1fcHJp
dmF0ZS5nZXQoKS0+c2V0U2RwKHNkcCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFjOGRmNzFmZDJjZDI0
YjJmYjkxZDZkZjEwYWY4NTc0NTg3ODY4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdC5jcHAKQEAgLTAsMCArMSw5OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdC5oPgorCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
ci5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCIKKyNpbmNsdWRl
IDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6V2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdChjb25zdCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3Q+JiBjb25zdHJhaW50cykKKyAgICA6IG1fcHJpdmF0ZShjb25zdHJhaW50cykK
K3sKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Ojphc3NpZ24oY29u
c3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgb3RoZXIpCit7CisgICAgbV9wcml2
YXRlID0gb3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3Q6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKwordm9pZCBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpyZXF1ZXN0U3VjY2VlZGVkKGNvbnN0IFdl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIHNlc3Npb25EZXNjcmlwdGlvbikgY29u
c3QKK3sKKyAgICBBU1NFUlQobV9wcml2YXRlLmdldCgpKTsKKyAgICBtX3ByaXZhdGUtPnJlcXVl
c3RTdWNjZWVkZWQoc2Vzc2lvbkRlc2NyaXB0aW9uKTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0OjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmluZyYgZXJyb3Ip
IGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CisgICAgbV9wcml2YXRlLT5y
ZXF1ZXN0RmFpbGVkKGVycm9yKTsKK30KKworY2xhc3MgRXh0cmFEYXRhQ29udGFpbmVyIDogcHVi
bGljIFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OkV4dHJhRGF0YSB7Citw
dWJsaWM6CisgICAgRXh0cmFEYXRhQ29udGFpbmVyKFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3Q6OkV4dHJhRGF0YSogZXh0cmFEYXRhKSA6IG1fZXh0cmFEYXRhKFdURjo6YWRvcHRQdHIo
ZXh0cmFEYXRhKSkgeyB9CisKKyAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpF
eHRyYURhdGEqIGV4dHJhRGF0YSgpIHsgcmV0dXJuIG1fZXh0cmFEYXRhLmdldCgpOyB9CisKK3By
aXZhdGU6CisgICAgT3duUHRyPFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OkV4dHJh
RGF0YT4gbV9leHRyYURhdGE7Cit9OworCitXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
OjpFeHRyYURhdGEqIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OmV4dHJhRGF0YSgp
IGNvbnN0Cit7CisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OkV4dHJh
RGF0YT4gZGF0YSA9IG1fcHJpdmF0ZS0+ZXh0cmFEYXRhKCk7CisgICAgaWYgKCFkYXRhKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXh0cmFEYXRhQ29udGFpbmVy
Kj4oZGF0YS5nZXQoKSktPmV4dHJhRGF0YSgpOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3Q6OnNldEV4dHJhRGF0YShFeHRyYURhdGEqIGV4dHJhRGF0YSkKK3sKKyAg
ICBtX3ByaXZhdGUtPnNldEV4dHJhRGF0YShhZG9wdFJlZihuZXcgRXh0cmFEYXRhQ29udGFpbmVy
KGV4dHJhRGF0YSkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAppbmRl
eCA2N2Y4ZDdlMjNkYjU1NTA1NzE4YjJhZTJjZTJmODNjNzM4MDQ4N2IxLi44NWQwMjYyYzM3ZDY5
MWQ0YTY1OGFkZTViYzZkMDRkOTc5MWM4ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ci5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGluaXRp
YWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1Jl
ZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRy
PFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcj4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0o
UGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3Ry
YWludHM+KSBPVkVSUklERTsKQEAgLTc4LDYgKzc5LDEwIEBAIGJvb2wgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyRHVtbXk6OmluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwg
UGFzCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15OjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3Q+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQoreworfQorCiBib29sIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckR1bW15OjphZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KQogewogICAgIHJldHVybiBm
YWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKaW5kZXggYTYxOTE1ZTgxNjM2ZGFkZDE2
N2FkYTQ1NDVmMGM5YWFkY2RmMDE2Yi4uMGM3MzBiMmFjZDhiODA1NTFlMmFhMDA1ZGRhMWIwMDk3
YjFmNDFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAgLTQzLDYgKzQzLDggQEAg
Y2xhc3MgTWVkaWFDb25zdHJhaW50czsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247CiBjbGFzcyBS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
Q2xpZW50OworY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKK2NsYXNzIFJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7CiAKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlciB7CiBwdWJsaWM6CkBAIC01MSw2ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
Ym9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4pID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZlcihQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+LCBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRy
PFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAg
ICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0
ZURlc2NyaXB0b3I+KSA9IDA7CiAgICAgdmlydHVhbCBib29sIGFkZFN0cmVhbShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaAppbmRleCAwNGUzNGI3
OGQ4NmVjM2RiM2E2MDk4M2ZmZmNlNDE3ZjU4M2Y4NTI0Li41MjNjMjdmYTE1NGNiMGIzMzM4N2Y2
NjIwYWEwZjY3ZWQwZjc3YzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvci5oCkBAIC00NCwxMCArNDQsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgc2RwKTsKICAgICB2aXJ0dWFsIH5SVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yKCk7CiAKLSAgICBjb25zdCBTdHJpbmcmIHR5cGUoKSB7IHJldHVybiBtX3R5
cGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
ICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKSB7IG1fdHlwZSA9IHR5cGU7IH0K
IAotICAgIGNvbnN0IFN0cmluZyYgc2RwKCkgeyByZXR1cm4gbV9zZHA7IH0KKyAgICBjb25zdCBT
dHJpbmcmIHNkcCgpIGNvbnN0IHsgcmV0dXJuIG1fc2RwOyB9CiAgICAgdm9pZCBzZXRTZHAoY29u
c3QgU3RyaW5nJiBzZHApIHsgbV9zZHAgPSBzZHA7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTk4ZTg0MDU2ZjAxZTNmMjY0MDlk
ZDBhNDE1NDNmY2IxMTY4NmMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp
cworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RfaAor
I2RlZmluZSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0X2gKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I7CisKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiB7Citw
dWJsaWM6CisgICAgY2xhc3MgRXh0cmFEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0cmFEYXRh
PiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9
OworCisgICAgdmlydHVhbCB+UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yPikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVk
KGNvbnN0IFN0cmluZyYgZXJyb3IpID0gMDsKKworICAgIFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBl
eHRyYURhdGEoKSBjb25zdCB7IHJldHVybiBtX2V4dHJhRGF0YTsgfQorICAgIHZvaWQgc2V0RXh0
cmFEYXRhKFBhc3NSZWZQdHI8RXh0cmFEYXRhPiBleHRyYURhdGEpIHsgbV9leHRyYURhdGEgPSBl
eHRyYURhdGE7IH0KKworcHJvdGVjdGVkOgorICAgIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QoKSB7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RXh0cmFEYXRhPiBtX2V4dHJhRGF0YTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNlbmRpZiAvLyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNw
cAppbmRleCAzMzJhMTYyMzVhZTM0NjE1MWYwZjE0OGI4N2ViNTFmNDEyMzRkMjJlLi5hMDAyMjAy
N2EyZTJlY2NiOWVjZWVlY2I5MGY0MjEzY2QxM2QyN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCkBAIC0zOCwxMSAr
MzgsMTUgQEAKICNpbmNsdWRlICJSVENDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUlRDSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNsaWVudC5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIK
KyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSA8cHVi
bGljL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhQ29uc3RyYWludHMuaD4K
ICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8
cHVibGljL1dlYlJUQ0NvbmZpZ3VyYXRpb24uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDSUNF
Q2FuZGlkYXRlRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC02OCw2ICs3MiwxNSBAQCBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNocm9taXVtOjppbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4gYwog
ICAgIHJldHVybiBtX3dlYkhhbmRsZXIgPyBtX3dlYkhhbmRsZXItPmluaXRpYWxpemUoY29uZmln
dXJhdGlvbiwgY29uc3RyYWludHMpIDogZmFsc2U7CiB9CiAKK3ZvaWQgUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2hyb21pdW06OmNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdD4gcmVxdWVzdCwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25z
dHJhaW50cykKK3sKKyAgICAvLyBGSVhNRTogU2hvdWxkIHRoZSBlcnJvciBjYWxsYmFjayBiZSB0
cmlnZ2VyZWQgaGVyZT8KKyAgICBpZiAoIW1fd2ViSGFuZGxlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV93ZWJIYW5kbGVyLT5jcmVhdGVPZmZlcihyZXF1ZXN0LCBjb25zdHJhaW50cyk7Cit9
CisKIGJvb2wgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW06OnVwZGF0ZUljZShQYXNz
UmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8TWVkaWFD
b25zdHJhaW50cz4gY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFtX3dlYkhhbmRsZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaApp
bmRleCBkZWMwZDdhNzJmMTY0MmU1MjU5MGVjOTMwYjQ2YjhkZGVjNTFjZDk3Li44OTkzYzExODcx
MTc4MDQ1Yzc0NjA0MTVmNTZhMDIwNGQwZDYxZGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJD
aHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9t
aXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgKQEAgLTU0LDYgKzU0LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoUGFzc1JlZlB0cjxSVENDb25m
aWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAKKyAg
ICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHVwZGF0ZUljZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRk
SWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8UlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURl
c2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MzYwOWUyZTNl
Y2ExMWUyM2NjMDk2MzY0MWRmM2ZjNjM5NmY3MDYwLi40MjgwMTkwOGQ0NThmOTM0YzMwMmE4ZDBh
ZTAxYWNhMzg5ZmQ2NjEwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDktMDQgIFRvbW15IFdpZGVuZmx5Y2h0
ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhl
IGFzeW5jIGNyZWF0ZU9mZmVyIGZ1bmN0aW9uYWxpdHkgdG8gUlRDUGVlckNvbm5lY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAg
ICAgKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZU9mZmVyKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyLmg6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKwogMjAx
Mi0wOS0wMyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0VGTF0gQ2hhbmdlIHRoZSBmb2N1cyB3aGVuIHRoZSB3ZWIgdmlldyBpcyBjbGlja2VkIGluIE1p
bmlCcm93c2VyIGFuZCBFV2ViTGF1bmNoZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKaW5kZXggODkxNDZiNzJlZWQwNjRjMzczYWE1NTRkMTNkZTVjZjg1ZDllOTIzYy4uYzBhMzU2
NTc2MzJkYzE4NjBmZmUyMzI0ZDZjMDE1OThjM2Q1ODlkYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlci5jcHAKQEAgLTM1LDYgKzM1LDggQEAKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJN
ZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CiAjaW5jbHVkZSA8cHVi
bGljL1dlYlZlY3Rvci5oPgogCkBAIC04Niw2ICs4OCwxNyBAQCBib29sIE1vY2tXZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYs
IGNvbgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXI6OmNyZWF0ZU9mZmVyKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQorewor
ICAgIFdlYlN0cmluZyBzaG91bGRTdWNjZWVkOworICAgIGlmIChjb25zdHJhaW50cy5nZXRNYW5k
YXRvcnlDb25zdHJhaW50VmFsdWUoInN1Y2NlZWQiLCBzaG91bGRTdWNjZWVkKSAmJiBzaG91bGRT
dWNjZWVkID09ICJ0cnVlIikgeworICAgICAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yIHNkOworICAgICAgICBzZC5pbml0aWFsaXplKCJvZmZlciIsICJTb21lIFNEUCBoZXJl
Iik7CisgICAgICAgIHJlcXVlc3QucmVxdWVzdFN1Y2NlZWRlZChzZCk7CisgICAgfSBlbHNlCisg
ICAgICAgIHJlcXVlc3QucmVxdWVzdEZhaWxlZCgiVEVTVF9FUlJPUiIpOworfQorCiBib29sIE1v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnVwZGF0ZUlDRShjb25zdCBXZWJSVENDb25m
aWd1cmF0aW9uJiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50cyYpCiB7CiAgICAgbV9jbGllbnQt
PmRpZENoYW5nZUlDRVN0YXRlKFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDo6SUNF
U3RhdGVHYXRoZXJpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IDQ5Mjc5
Mjc4MDQ5OTUzNThjMWIyODJhZTc2MDZiNTNhMTU2MmI2MmYuLmVjNzdhNzY3ZDZiZDA1MzNhN2Fh
MGRhYzI0YmE5YmM0YmFmZjYyYjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoY29u
c3QgV2ViS2l0OjpXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNv
bnN0cmFpbnRzJikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoY29u
c3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViS2l0
OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0
ZUlDRShjb25zdCBXZWJLaXQ6OldlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJLaXQ6Oldl
Yk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkSUNFQ2Fu
ZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5MjRhYzQ3MTljYmE3YTY1ODIzMjlhNzRlYmU3NTUwMTRkYWRkNjdiLi42
ZDdhMWJlYTY0MjVlZWY3YWIxMjQ4YjIwODI0MmU2Yzg2OGIzZWRmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTItMDktMDQgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+
CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhlIGFzeW5jIGNyZWF0ZU9mZmVyIGZ1
bmN0aW9uYWxpdHkgdG8gUlRDUGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLWNyZWF0ZU9mZmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wOS0wMyAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAg
aHR0cC90ZXN0cy9pbmNyZW1lbnRhbC9wYXJ0aWFsLWpwZWcuaHRtbCBpcyBmbGFreQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVPZmZlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmMyNjM3
YWVkZDhlMzA3MTBiY2QwODljMzk0NjI0MzBlM2Q5OWM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gW2Fk
ZHxyZW1vdmVdU3RyZWFtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBy
ZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuCitQQVNTIHNlc3Npb25EZXNjcmlwdGlvbi50eXBl
IGlzICJvZmZlciIKK1BBU1MgcmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLgorUEFTUyBlcnJvclJl
YXNvbiBpcyAiVEVTVF9FUlJPUiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmY0NzYyZGIxOWYxNjBiYmZiY2FjYjEwYTY4ZDU3ZTRlMTk1Zjg3YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRl
T2ZmZXIuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gW2FkZHxyZW1vdmVdU3Ry
ZWFtLiIpOworCit2YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMihyZWFz
b24pCit7CisgICAgdGVzdFBhc3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworCisg
ICAgZXJyb3JSZWFzb24gPSByZWFzb247CisgICAgc2hvdWxkQmUoJ2Vycm9yUmVhc29uJywgJyJU
RVNUX0VSUk9SIicpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJlcXVl
c3RTdWNjZWVkZWQyKHNkLCBzb3VyY2UpCit7CisgICAgdGVzdEZhaWxlZCgncmVxdWVzdFN1Y2Nl
ZWRlZCB3YXMgY2FsbGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBy
ZXF1ZXN0RmFpbGVkMSgpCit7CisgICAgdGVzdEZhaWxlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2Fs
bGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2Vl
ZGVkMShzZCwgc291cmNlKQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2Fz
IGNhbGxlZC4nKTsKKworICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IHNkOworICAgIHNob3VsZEJl
KCdzZXNzaW9uRGVzY3JpcHRpb24udHlwZScsICcib2ZmZXIiJyk7CisKKyAgICBwYy5jcmVhdGVP
ZmZlcihyZXF1ZXN0U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxlZDIsIHttYW5kYXRvcnk6eyJzdWNj
ZWVkIjpmYWxzZX19KTsKK30KKworcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVs
bCwgbnVsbCk7CitwYy5jcmVhdGVPZmZlcihyZXF1ZXN0U3VjY2VlZGVkMSwgcmVxdWVzdEZhaWxl
ZDEsIHttYW5kYXRvcnk6eyJzdWNjZWVkIjp0cnVlfX0pOworCit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162026</attachid>
            <date>2012-09-04 05:59:05 -0700</date>
            <delta_ts>2012-09-04 12:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95734-20120904145847.patch</filename>
            <type>text/plain</type>
            <size>69354</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzMDEzMzk2NzRkNTdh
M2NhMjQyYzNkMmJjYTIwZWY5MThiOWM0NjFkLi43MmZlNzIwYmMxOGE4OWIxNzdmYzgwN2RmZjI2
N2VmZTVlZjk3Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wOS0wNCAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgYXN5bmMgY3JlYXRlT2ZmZXIgZnVuY3Rpb25hbGl0eSB0byBSVENQ
ZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTU3MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcjo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6On5XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6aXNOdWxsKToKKyAgICAgICAgKiBjaHJvbWl1
bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6RXh0cmFEYXRhOjp+RXh0cmFEYXRh
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6V2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6On5XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dDo6aXNOdWxsKToKKwogMjAxMi0wOS0wMyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEFkZCBJY2UtcmVsYXRlZCBmdW5j
dGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5MDI2YjcxMmIy
YjBmYjJiNzRiNmU4MjM0ZDEzZDE1MWNhY2FlYi4uZTNkMDI2NmE5ZTUzZmIyZjE4ZjU2ZWJmYTlj
ODdhMjhmMDZkYzFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDEyLTA5LTA0ICBU
b21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3Ry
ZWFtIEFQSTogQWRkIHRoZSBhc3luYyBjcmVhdGVPZmZlciBmdW5jdGlvbmFsaXR5IHRvIFJUQ1Bl
ZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTczNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGNyZWF0ZU9mZmVyIHNlbmRzIGEgcmVxdWVzdCB0byB0aGUgcGxhdGZvcm0gaW1wbGVtZW50
ZXIgcmVxdWVzdGluZyBpdCB0byBnYXRoZXIgdXAgYWxsIGNhbmRpZGF0ZXMuCisgICAgICAgIFRo
aXMgY2FuIHRha2Ugc29tZSB0aW1lLCB0aGVyZWZvcmUgdGhlIHJlcXVlc3QgaXMgYXN5bmMuCisK
KyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVP
ZmZlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxs
YmFjay5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDRXJyb3JDYWxs
YmFjazo6flJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRXJyb3JDYWxsYmFjay5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2s6On5SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3RJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBs
KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjp+
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWls
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6
OmNsZWFyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwpOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yOjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6YXNz
aWduKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yOjpvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6dHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNldFR5cGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZHApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZXRTRFApOgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6
OmFzc2lnbik6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdDo6cmVxdWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3Q6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoRXh0cmFEYXRhQ29u
dGFpbmVyKToKKyAgICAgICAgKFdlYktpdDo6RXh0cmFEYXRhQ29udGFpbmVyOjpFeHRyYURhdGFD
b250YWluZXIpOgorICAgICAgICAoV2ViS2l0OjpFeHRyYURhdGFDb250YWluZXI6OmV4dHJhRGF0
YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OmV4
dHJhRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3Q6OnNldEV4dHJhRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckR1bW15KToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15
OjpjcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp0eXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNkcCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OkV4dHJhRGF0YTo6
fkV4dHJhRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0Ojp+UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpleHRyYURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2hyb21pdW0pOgorCiAyMDEyLTA4LTMxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhh
dXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFBvcnQgdGhlIFF0IHBpeG1hcCBKUyBi
aW5kaW5ncyB0byB1c2UgdGhlIEpTQyBDIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L1BsYXRmb3JtLmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQppbmRleCA2ZDBj
MWQ4NWRlYjNhNzY3OTgzMjlhZjkyOGQzYTkyODJlOGJkMjQzLi43MGVlNjgxODRjMzMyYTI4OGU1
MDdhOTUyODZjMWIyNWNlMWU0NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZv
cm0uZ3lwaQorKysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQpAQCAtOTQsNiArOTQs
NyBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZXNzYWdlUG9ydENoYW5uZWxD
bGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1pbWVSZWdpc3RyeS5o
JywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTm9uQ29weWFibGUuaCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk9mZmVyQW5zd2VyUmVxdWVzdC5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xp
ZW50LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuaCcsCkBAIC0xMDcsNiArMTA4LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJs
aWMvV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2No
cm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcsCisgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IuaCcsCisgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlY3QuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlZmVycmVyUG9saWN5LmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJSZW5kZXJpbmdTdGF0cy5oJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5oCmluZGV4IGQwYzIyOTNhMDU1Y2MxNDMzYjUwZjE3ZDI0M2E4NTE2NTFh
NWI5ZjguLmM4ZjJmMTM3NTNhZjA4NTgxMmZkNmRkYTQzODdkMWEyNGMxNzRiM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVy
Q29ubmVjdGlvbkhhbmRsZXIuaApAQCAtMzcsNiArMzcsOCBAQCBjbGFzcyBXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3I7CiBjbGFzcyBXZWJSVENDb25maWd1cmF0aW9uOwogY2xhc3MgV2ViUlRDSUNF
Q2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNs
aWVudDsKK2NsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CitjbGFzcyBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OwogCiBjbGFzcyBXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIgewogcHVibGljOgpAQCAtNDQsNiArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3Qg
V2ViTWVkaWFDb25zdHJhaW50cyYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZl
cihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViTWVkaWFD
b25zdHJhaW50cyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSUNFKGNvbnN0IFdlYlJU
Q0NvbmZpZ3VyYXRpb24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3Jp
cHRvciYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NjFmNDM1OWMxYTUz
ZmM1ZmU1YjM3MDViNTM5YTY5ZmI0NzU4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxh
dGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
aApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yX2gKKyNkZWZpbmUgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcl9oCisKKyNp
bmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgorI2luY2x1
ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFz
cyBXZWJTdHJpbmc7CisKKy8qCisgKiAgSW4gb3JkZXIgdG8gZXN0YWJsaXNoIHRoZSBtZWRpYSBw
bGFuZSwgUGVlckNvbm5lY3Rpb24gbmVlZHMgc3BlY2lmaWMKKyAqICBwYXJhbWV0ZXJzIHRvIGlu
ZGljYXRlIHdoYXQgdG8gdHJhbnNtaXQgdG8gdGhlIHJlbW90ZSBzaWRlLCBhcyB3ZWxsCisgKiAg
YXMgaG93IHRvIGhhbmRsZSB0aGUgbWVkaWEgdGhhdCBpcyByZWNlaXZlZC4gVGhlc2UgcGFyYW1l
dGVycyBhcmUKKyAqICBkZXRlcm1pbmVkIGJ5IHRoZSBleGNoYW5nZSBvZiBzZXNzaW9uIGRlc2Ny
aXB0aW9ucyBpbiBvZmZlcnMgYW5kCisgKiAgYW5zd2VycywgYW5kIHRoZXJlIGFyZSBjZXJ0YWlu
IGRldGFpbHMgdG8gdGhpcyBwcm9jZXNzIHRoYXQgbXVzdCBiZQorICogIGhhbmRsZWQgaW4gdGhl
IEpTRVAgQVBJcy4KKworICogIFdoZXRoZXIgYSBzZXNzaW9uIGRlc2NyaXB0aW9uIHdhcyBzZW50
IG9yIHJlY2VpdmVkIGFmZmVjdHMgdGhlCisgKiAgbWVhbmluZyBvZiB0aGF0IGRlc2NyaXB0aW9u
LiBGb3IgZXhhbXBsZSwgdGhlIGxpc3Qgb2YgY29kZWNzIHNlbnQgdG8KKyAqICBhIHJlbW90ZSBw
YXJ0eSBpbmRpY2F0ZXMgd2hhdCB0aGUgbG9jYWwgc2lkZSBpcyB3aWxsaW5nIHRvIGRlY29kZSwK
KyAqICBhbmQgd2hhdCB0aGUgcmVtb3RlIHBhcnR5IHNob3VsZCBzZW5kLgorICovCitjbGFzcyBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAgICBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKCkgeyB9CisgICAgV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcihjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9CisgICAgfldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IoKSB7IHJlc2V0KCk7IH0KKworICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3ImIG9wZXJhdG9yPShjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yJiBvdGhlcikKKyAgICB7CisgICAgICAgIGFzc2lnbihvdGhlcik7CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0
IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImKTsKKworICAgIFdFQktJVF9FWFBP
UlQgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgdHlwZSwgY29uc3QgV2ViU3RyaW5n
JiBzZHApOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIGJvb2wgaXNOdWxs
KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CisKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYlN0cmluZyB0eXBlKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFR5
cGUoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgc2RwKCkg
Y29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldFNEUChjb25zdCBXZWJTdHJpbmcmKTsK
KworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I+Jik7CisKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4oKSBjb25zdDsKKyNlbmRpZgor
Citwcml2YXRlOgorICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4gbV9wcml2YXRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzliNGUxMzgwOWMwNDJhYzEwYjFi
M2Q3NDJiNjkxMjlhMjVlZjllNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oCkBAIC0wLDAg
KzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RfaAorI2RlZmlu
ZSBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgIldlYkNvbW1v
bi5oIgorI2luY2x1ZGUgIldlYk5vbkNvcHlhYmxlLmgiCisjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0
ci5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
K2NsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CisKK2NsYXNzIFdlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgeworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0
YSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5FeHRyYURhdGEoKSB7IH0KKyAgICB9
OworCisgICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCgpIHsgfQorICAgIFdlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdCYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQorICAgIH5XZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0KCkgeyByZXNldCgpOyB9CisKKyAgICBXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0JiBvcGVyYXRvcj0oY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdCYgb3RoZXIpCisgICAgeworICAgICAgICBhc3NpZ24ob3RoZXIpOworICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Jik7CisKKyAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgcmVzZXQoKTsKKyAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZS5p
c051bGwoKTsgfQorCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RTdWNjZWVkZWQoY29u
c3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpIGNvbnN0OworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFdlYlN0cmluZyYgZXJyb3IpIGNvbnN0
OworCisgICAgLy8gRXh0cmEgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuCisgICAg
Ly8gSWYgbm9uLW51bGwsIHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBiZSBkZWxldGVkIHdo
ZW4gdGhlIG9iamVjdCBpcyBkZXN0cm95ZWQuCisgICAgLy8gU2V0dGluZyB0aGUgZXh0cmEgZGF0
YSBwb2ludGVyIHdpbGwgY2F1c2UgYW55IGV4aXN0aW5nIG5vbi1udWxsCisgICAgLy8gZXh0cmEg
ZGF0YSBwb2ludGVyIHRvIGJlIGRlbGV0ZWQuCisgICAgV0VCS0lUX0VYUE9SVCBFeHRyYURhdGEq
IGV4dHJhRGF0YSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRFeHRyYURhdGEo
RXh0cmFEYXRhKik7CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENT
ZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiYpOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2Vi
UHJpdmF0ZVB0cjxXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiBtX3ByaXZh
dGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA1NzlmMmNlMGQz
NmQxMzFmYTU0OWI5ZTkwMmU2ZWRlZTRlZTVkMTBiLi5iY2M2YWZmOTY2ZjM0ODg1YzU4NWU4Nzgw
ZDZlMzEyMDg0YWQwY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjIyLDEwICsyMjIsMTIg
QEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2
aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb24wMC5pZGwKKyAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9y
Q2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVFdmVudC5pZGwKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAorICAgIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsCiAKICAgICBNb2R1bGVzL25hdmlnYXRvcmNvbnRl
bnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRsCkBAIC04NTksNiArODYxLDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRl
RXZlbnQuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAK
ICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKKyAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcAog
ICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBiNzE4YmIwZDAxNTM3MjhjNjdmZGYxMWJiMGM4ODM0MTA5MWJmYWViLi45MTcwNDlkNWE1
MjBkYzg5MjUxZTNiYzMyMTJkYzAyNjcxMmFlZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTYyNyw2ICs2MjcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUkdCQ29sb3IuY3BwIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUkdCQ29sb3IuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ0Vy
cm9yQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDRXJyb3JDYWxs
YmFjay5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDSWNlQ2FuZGlkYXRlLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ0ljZUNhbmRpZGF0ZS5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIFwKQEAgLTYzNSw2ICs2
MzcsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENQZWVyQ29ubmVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2suY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NjcmVlbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTY3JlZW4uaCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NjcmlwdFByb2ZpbGUuY3BwIFwKQEAgLTEyMjUsMTAgKzEy
MjksMTIgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNrLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaWRs
IFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwg
XAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuaWRsIFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
LmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlw
dGlvbkNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Np
b25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50
dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL25v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCkBAIC0xOTIwLDYgKzE5MjYsNyBAQCB3ZWJj
b3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmggXAorCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwIFwK
QEAgLTE5MjgsNiArMTkzNSw5IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmggXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb24uaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlv
bi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2Ny
aXB0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlh
Q2xpZW50LmggXApAQCAtNDU1NCw2ICs0NTY0LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42OTMxOTQ2OGVmMGUxM2IyNzgxNDU3M2YxMTYxMTExOGU5MzE4MzIyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNh
bGxiYWNrLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUlRDRXJyb3JDYWxsYmFj
a19oCisjZGVmaW5lIFJUQ0Vycm9yQ2FsbGJhY2tfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDUGVlckNvbm5lY3Rp
b247CisKK2NsYXNzIFJUQ0Vycm9yQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENFcnJv
ckNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDRXJyb3JDYWxsYmFjaygpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVFdmVudChjb25zdCBTdHJpbmcmIGVycm9ySW5mb3Jt
YXRpb24sIFJUQ1BlZXJDb25uZWN0aW9uKikgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFJUQ0Vy
cm9yQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU0MGQxNGRhZTE3ZGRiZDBh
NjNmYWY2N2RiODgyYTRiYWIzY2MyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAg
ICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENhbGxiYWNrCisgICAgXSBSVENF
cnJvckNhbGxiYWNrIHsKKyAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcg
ZXJyb3JJbmZvcm1hdGlvbiwgaW4gUlRDUGVlckNvbm5lY3Rpb24gc291cmNlKTsKKyAgICB9Owor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Bl
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDhjY2UwNTNmMDNkOGE5MWY5OTYyN2NmNzBjMTVjNjIy
NWZhOTQ3YWUuLmQ0YzA4YzA1MTc4NjZiZjJkNTRhYjNiMTEwYzhjZWE0OWFmMDk4NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uY3BwCkBAIC00MCw5ICs0MCwxNCBAQAogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWlu
dHNJbXBsLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1FdmVudC5oIgogI2luY2x1ZGUgIlJUQ0Nv
bmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJSVENFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
UlRDSWNlQ2FuZGlkYXRlLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZUV2ZW50LmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2su
aCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCisjaW5jbHVk
ZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMCw2ICsxMzUs
MjcgQEAgUlRDUGVlckNvbm5lY3Rpb246On5SVENQZWVyQ29ubmVjdGlvbigpCiB7CiB9CiAKK3Zv
aWQgUlRDUGVlckNvbm5lY3Rpb246OmNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2s+IHBycFN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENFcnJv
ckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFp
bnRzLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5
U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjayA9
IHBycFN1Y2Nlc3NDYWxsYmFjazsKKyAgICBpZiAoIXN1Y2Nlc3NDYWxsYmFjaykgeworICAgICAg
ICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0lt
cGw6OmNyZWF0ZShtZWRpYUNvbnN0cmFpbnRzLCBlYyk7CisgICAgaWYgKGVjKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw+IHJl
cXVlc3QgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6Y3JlYXRlKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCB0aGlzKTsK
KyAgICBtX3BlZXJIYW5kbGVyLT5jcmVhdGVPZmZlcihyZXF1ZXN0LnJlbGVhc2UoKSwgY29uc3Ry
YWludHMpOworfQorCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjp1cGRhdGVJY2UoY29uc3QgRGlj
dGlvbmFyeSYgcnRjQ29uZmlndXJhdGlvbiwgY29uc3QgRGljdGlvbmFyeSYgbWVkaWFDb25zdHJh
aW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBSZWFk
eVN0YXRlQ2xvc2luZyB8fCBtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NlZCkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5oCmluZGV4IDU0ZTBkNGRlZTU1YzljODJkOWVjY2JhNWM0YmVlNGIyZmM2NDRkNjguLmQ0
YzRjZGZkMjExMzg1ODRlYzlmZWI2YzcyZDY4OTM2N2QwY2JlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmgKQEAg
LTQ4LDEyICs0OCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhQ29uc3Ry
YWludHM7CiBjbGFzcyBSVENDb25maWd1cmF0aW9uOworY2xhc3MgUlRDRXJyb3JDYWxsYmFjazsK
K2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrOwogCiBjbGFzcyBSVENQZWVyQ29u
bmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1BlZXJDb25uZWN0aW9uPiwgcHVibGljIFJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMg
QWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENQZWVy
Q29ubmVjdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEaWN0aW9u
YXJ5JiBydGNDb25maWd1cmF0aW9uLCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFpbnRz
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgflJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKKyAgICB2b2lk
IGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+LCBQ
YXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+LCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0
cmFpbnRzLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBTdHJpbmcgcmVhZHlTdGF0ZSgpIGNvbnN0
OwogCiAgICAgdm9pZCB1cGRhdGVJY2UoY29uc3QgRGljdGlvbmFyeSYgcnRjQ29uZmlndXJhdGlv
biwgY29uc3QgRGljdGlvbmFyeSYgbWVkaWFDb25zdHJhaW50cywgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmlkbAppbmRleCA1MTBjZTMwMWMxYzhlZGE1YTRjZTRkMzVmMjUyNTUyY2NmODhm
MGI5Li4wMmZhMzQ1NDhkZGMyYzE4MDc4YzdiMjQ5Nzg2ZWI4MjdhYjhlMTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmlkbApAQCAtMzgsNiArMzgsOSBAQCBtb2R1bGUgbWVkaWFzdHJlYW0gewogICAgICAgICBD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAgICBFdmVudFRhcmdldAogICAg
IF0gUlRDUGVlckNvbm5lY3Rpb24geworICAgICAgICB2b2lkIGNyZWF0ZU9mZmVyKGluIFtDYWxs
YmFja10gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2sgc3VjY2Vzc0NhbGxiYWNrLCBpbiBb
Q2FsbGJhY2ssT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBSVENFcnJvckNhbGxiYWNrIGZh
aWx1cmVDYWxsYmFjaywgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlvbmFy
eSBtZWRpYUNvbnN0cmFpbnRzKQorICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyByZWFkeVN0YXRlOwogCiAgICAg
ICAgIHZvaWQgdXBkYXRlSWNlKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERpY3Rp
b25hcnkgY29uZmlndXJhdGlvbiwgaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGlj
dGlvbmFyeSBtZWRpYUNvbnN0cmFpbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhMWUwYTk5MTNlNjZlNjM4MjdjYzc4Njg3MTRmZTNkM2Y1YWYxNWUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBk
aXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2tfaAorI2RlZmluZSBSVENTZXNzaW9u
RGVzY3JpcHRpb25DYWxsYmFja19oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBS
VENQZWVyQ29ubmVjdGlvbjsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjsKKworY2xhc3Mg
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2sgOiBwdWJsaWMgUmVmQ291bnRlZDxSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjaz4geworcHVibGljOgorICAgIHZpcnR1YWwgflJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50
KFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiosIFJUQ1BlZXJDb25uZWN0aW9uKikgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2VuZGlmIC8vIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE1MzZkNGQ5YzI4MTA5OTAw
MWY3MzI1ZWVhYWMwNDc2MWI1ZTAzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgbWVkaWFzdHJlYW0geworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAorICAgICAgICBDYWxsYmFj
aworICAgIF0gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2sgeworICAgICAgICBib29sZWFu
IGhhbmRsZUV2ZW50KGluIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiBzZHAsIGluIFJUQ1BlZXJDb25u
ZWN0aW9uIHNvdXJjZSk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmU0NDY5Zjk0MTQzODljYzk3NjIwNDQyMmQy
ZmQwOTRjNmI3NDY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAKQEAgLTAsMCAr
MSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
CisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5oIgor
CisjaW5jbHVkZSAiUlRDRXJyb3JDYWxsYmFjay5oIgorI2luY2x1ZGUgIlJUQ1BlZXJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbD4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGw6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NS
ZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0cjxSVENQZWVy
Q29ubmVjdGlvbj4gb3duZXIpCit7CisgICAgUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsPiByZXF1ZXN0ID0gYWRvcHRSZWYobmV3IFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsKGNvbnRleHQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgb3duZXIp
KTsKKyAgICByZXF1ZXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVxdWVzdC5y
ZWxlYXNlKCk7Cit9CisKK1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJh
Y2ssIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0
cjxSVENQZWVyQ29ubmVjdGlvbj4gb3duZXIpCisgICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCwgdGhpcykKKyAgICAsIG1fc3VjY2Vzc0NhbGxiYWNrKHN1Y2Nlc3NDYWxsYmFjaykKKyAgICAs
IG1fZXJyb3JDYWxsYmFjayhlcnJvckNhbGxiYWNrKQorICAgICwgbV9vd25lcihvd25lcikKK3sK
K30KKworUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6On5SVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0SW1wbCgpCit7Cit9CisKK3ZvaWQgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPiBzZGQpCit7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNrKSB7CisgICAg
ICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHNkID0gUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uOjpjcmVhdGUoc2RkKTsKKyAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2stPmhhbmRsZUV2ZW50
KHNkLmdldCgpLCBtX293bmVyLmdldCgpKTsKKyAgICB9CisKKyAgICBjbGVhcigpOworfQorCit2
b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVkKGNvbnN0
IFN0cmluZyYgZXJyb3IpCit7CisgICAgaWYgKG1fZXJyb3JDYWxsYmFjay5nZXQoKSkKKyAgICAg
ICAgbV9lcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChlcnJvciwgbV9vd25lci5nZXQoKSk7CisK
KyAgICBjbGVhcigpOworfQorCit2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBs
OjpzdG9wKCkKK3sKKyAgICBjbGVhcigpOworfQorCit2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3RJbXBsOjpjbGVhcigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsK
KyAgICBtX2Vycm9yQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX293bmVyLmNsZWFyKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRh
ZWJmYzk4YjgxMTJmZTJmYzg4MTk1NTNjODI0OGM2NTljZjRhYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAq
IDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMg
Y29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbF9oCisjZGVmaW5lIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3RJbXBsX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJBY3Rp
dmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUlRDRXJyb3JDYWxsYmFjazsKK2NsYXNz
IFJUQ1BlZXJDb25uZWN0aW9uOworY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7
CisKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsIDogcHVibGljIFJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBs
PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+LCBQYXNzUmVm
UHRyPFJUQ1BlZXJDb25uZWN0aW9uPik7CisgICAgdmlydHVhbCB+UlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdEltcGwoKTsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBh
c3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpIE9WRVJSSURF
OworCisgICAgLy8gQWN0aXZlRE9NT2JqZWN0CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVS
UklERTsKKworcHJpdmF0ZToKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDUGVl
ckNvbm5lY3Rpb24+KTsKKworICAgIHZvaWQgY2xlYXIoKTsKKworICAgIFJlZlB0cjxSVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CisgICAgUmVmUHRyPFJU
Q0Vycm9yQ2FsbGJhY2s+IG1fZXJyb3JDYWxsYmFjazsKKyAgICBSZWZQdHI8UlRDUGVlckNvbm5l
Y3Rpb24+IG1fb3duZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGxfaAorCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5ZmVhMjkxMTg5NzExNjYxNjg0
MDRiMTFhOGM5OWQwNTAwZjM5ZDhlLi5hNmMyOTlmNGFkN2VjNmE3OTYzMDdjZWNiZTAyZDdkOTM5
OTcxOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00NjIsNiArNDYyLDcgQEAKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvci5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRp
YVN0cmVhbUNlbnRlckNocm9taXVtLmNwcCcsCkBAIC04NjIsMTAgKzg2MywxMiBAQAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFj
ay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9QZWVyQ29ubmVjdGlvbjAwLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENFcnJvckNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENJY2VDYW5kaWRhdGUuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ0ljZUNhbmRpZGF0ZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxz
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlm
aWNhdGlvbnMuaWRsJywKQEAgLTE2MDQsNiArMTYwNyw3IEBACiAgICAgICAgICAgICAnTW9kdWxl
cy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmgnLAorICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5oJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwJywKQEAgLTE2MTIs
NiArMTYxNiw5IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29u
bmVjdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvbi5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwu
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24u
Y3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlv
bi5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5o
JywKQEAgLTgzNDEsNiArODM0OCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJQcmVyZW5kZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ0NvbmZpZ3VyYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJh
clRoZW1lR2VvbWV0cnlOYXRpdmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJTY3JvbGxiYXJJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2EyYjgyZTIy
YTE4NDM4ZTZkMjhjNzgzZGE5YzliYzVkNDJjOGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Io
Y29uc3QgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiYgc2Vzc2lv
bkRlc2NyaXB0aW9uKQorICAgIDogbV9wcml2YXRlKHNlc3Npb25EZXNjcmlwdGlvbikKK3sKK30K
Kwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjphc3NpZ24oY29uc3Qg
V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgb3RoZXIpCit7CisgICAgbV9wcml2
YXRlID0gb3RoZXIubV9wcml2YXRlOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3I6OnJlc2V0KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wcml2YXRlLmdldCgpOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I6OmluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiB0eXBlLCBjb25zdCBX
ZWJTdHJpbmcmIHNkcCkKK3sKKyAgICBtX3ByaXZhdGUgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yOjpjcmVhdGUodHlwZSwgc2RwKTsKK30KKworV2ViU3RyaW5nIFdlYlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnR5cGUoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9w
cml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpLT50eXBlKCk7Cit9
CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6c2V0VHlwZShjb25z
dCBXZWJTdHJpbmcmIHR5cGUpCit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwor
ICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCktPnNldFR5cGUodHlwZSk7Cit9CisKK1dlYlN0cmlu
ZyBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZHAoKSBjb25zdAoreworICAg
IEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgp
LT5zZHAoKTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpz
ZXRTRFAoY29uc3QgV2ViU3RyaW5nJiBzZHApCit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNO
dWxsKCkpOworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCktPnNldFNkcChzZHApOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVhYzhkZjcxZmQyY2QyNGIyZmI5MWQ2ZGYxMGFmODU3NDU4Nzg2OGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8cHVi
bGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KKworI2luY2x1ZGUgIlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0LmgiCisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3Q6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoY29uc3QgUGFz
c1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiYgY29uc3RyYWludHMpCisgICAg
OiBtX3ByaXZhdGUoY29uc3RyYWludHMpCit7Cit9CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdDo6YXNzaWduKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QmIG90aGVyKQoreworICAgIG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKK30KKwordm9p
ZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2
YXRlLnJlc2V0KCk7Cit9CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6
cmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
JiBzZXNzaW9uRGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQo
KSk7CisgICAgbV9wcml2YXRlLT5yZXF1ZXN0U3VjY2VlZGVkKHNlc3Npb25EZXNjcmlwdGlvbik7
Cit9CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6cmVxdWVzdEZhaWxl
ZChjb25zdCBXZWJTdHJpbmcmIGVycm9yKSBjb25zdAoreworICAgIEFTU0VSVChtX3ByaXZhdGUu
Z2V0KCkpOworICAgIG1fcHJpdmF0ZS0+cmVxdWVzdEZhaWxlZChlcnJvcik7Cit9CisKK2NsYXNz
IEV4dHJhRGF0YUNvbnRhaW5lciA6IHB1YmxpYyBXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0OjpFeHRyYURhdGEgeworcHVibGljOgorICAgIEV4dHJhRGF0YUNvbnRhaW5lcihX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSkgOiBt
X2V4dHJhRGF0YShXVEY6OmFkb3B0UHRyKGV4dHJhRGF0YSkpIHsgfQorCisgICAgV2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEoKSB7IHJldHVybiBt
X2V4dHJhRGF0YS5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE93blB0cjxXZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0OjpFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworfTsKKworV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6RXh0cmFEYXRhKiBXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0OjpleHRyYURhdGEoKSBjb25zdAoreworICAgIFJlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0OjpFeHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0
YSgpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEV4dHJhRGF0YUNvbnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30K
Kwordm9pZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpzZXRFeHRyYURhdGEoRXh0
cmFEYXRhKiBleHRyYURhdGEpCit7CisgICAgbV9wcml2YXRlLT5zZXRFeHRyYURhdGEoYWRvcHRS
ZWYobmV3IEV4dHJhRGF0YUNvbnRhaW5lcihleHRyYURhdGEpKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5jcHAKaW5kZXggNjdmOGQ3ZTIzZGI1NTUwNTcxOGIyYWUyY2UyZjgz
YzczODA0ODdiMS4uODVkMDI2MmMzN2Q2OTFkNGE2NThhZGU1YmM2ZDA0ZDk3OTFjOGVkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlv
bj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogCisgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRp
ZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9y
PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CkBAIC03OCw2ICs3OSwx
MCBAQCBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15Ojppbml0aWFsaXplKFBhc3NS
ZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhcwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9p
ZCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6Y3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRz
PikKK3sKK30KKwogYm9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6YWRkU3RyZWFt
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
CmluZGV4IGE2MTkxNWU4MTYzNmRhZGQxNjdhZGE0NTQ1ZjBjOWFhZGNkZjAxNmIuLjBjNzMwYjJh
Y2Q4YjgwNTUxZTJhYTAwNWRkYTFiMDA5N2IxZjQxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oCkBAIC00Myw2ICs0Myw4IEBAIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBS
VENDb25maWd1cmF0aW9uOwogY2xhc3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNz
IFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I7CitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OwogCiBj
bGFzcyBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIgewogcHVibGljOgpAQCAtNTEsNiArNTMsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0Nv
bmZpZ3VyYXRpb24+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAKKyAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25S
ZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxN
ZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUo
UGFzc1JlZlB0cjxSVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBhZGRTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVm
UHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yLmgKaW5kZXggMDRlMzRiNzhkODZlYzNkYjNhNjA5ODNmZmZjZTQxN2Y1ODNmODUy
NC4uNTIzYzI3ZmExNTRjYjBiMzMzODdmNjYyMGFhMGY2N2VkMGY3N2MwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHNkcCk7CiAgICAgdmly
dHVhbCB+UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcigpOwogCi0gICAgY29uc3QgU3Ry
aW5nJiB0eXBlKCkgeyByZXR1cm4gbV90eXBlOyB9CisgICAgY29uc3QgU3RyaW5nJiB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9CiAKLSAgICBjb25zdCBTdHJpbmcmIHNkcCgpIHsgcmV0
dXJuIG1fc2RwOyB9CisgICAgY29uc3QgU3RyaW5nJiBzZHAoKSBjb25zdCB7IHJldHVybiBtX3Nk
cDsgfQogICAgIHZvaWQgc2V0U2RwKGNvbnN0IFN0cmluZyYgc2RwKSB7IG1fc2RwID0gc2RwOyB9
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjE5OGU4NDA1NmYwMWUzZjI2NDA5ZGQwYTQxNTQzZmNiMTE2ODZjMQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4K
KyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0X2gKKyNkZWZpbmUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdF9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOworCitjbGFzcyBS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdD4geworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0YSA6IHB1
YmxpYyBSZWZDb3VudGVkPEV4dHJhRGF0YT4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVh
bCB+RXh0cmFEYXRhKCkgeyB9CisgICAgfTsKKworICAgIHZpcnR1YWwgflJUQ1Nlc3Npb25EZXNj
cmlwdGlvblJlcXVlc3QoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVk
KFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKSA9IDA7CisKKyAg
ICBQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRy
YURhdGE7IH0KKyAgICB2b2lkIHNldEV4dHJhRGF0YShQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0
cmFEYXRhKSB7IG1fZXh0cmFEYXRhID0gZXh0cmFEYXRhOyB9CisKK3Byb3RlY3RlZDoKKyAgICBS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0KCkgeyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRy
PEV4dHJhRGF0YT4gbV9leHRyYURhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAKaW5kZXggMzMyYTE2MjM1YWUzNDYxNTFmMGYxNDhi
ODdlYjUxZjQxMjM0ZDIyZS4uYTAwMjIwMjdhMmUyZWNjYjllY2VlZWNiOTBmNDIxM2NkMTNkMjdk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtLmNwcApAQCAtMzgsMTEgKzM4LDE1IEBACiAjaW5jbHVkZSAiUlRDQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgIlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKICNpbmNsdWRl
ICJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJNZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFt
RGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENDb25maWd1cmF0aW9uLmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaD4KKyNpbmNsdWRl
IDxwdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgorI2luY2x1ZGUg
PHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNiArNzIsMTUgQEAg
Ym9vbCBSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZShQYXNzUmVm
UHRyPFJUQ0NvbmZpZ3VyYXRpb24+IGMKICAgICByZXR1cm4gbV93ZWJIYW5kbGVyID8gbV93ZWJI
YW5kbGVyLT5pbml0aWFsaXplKGNvbmZpZ3VyYXRpb24sIGNvbnN0cmFpbnRzKSA6IGZhbHNlOwog
fQogCit2b2lkIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcihQ
YXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQ
dHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludHMpCit7CisgICAgLy8gRklYTUU6IFNob3Vs
ZCB0aGUgZXJyb3IgY2FsbGJhY2sgYmUgdHJpZ2dlcmVkIGhlcmU/CisgICAgaWYgKCFtX3dlYkhh
bmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fd2ViSGFuZGxlci0+Y3JlYXRlT2ZmZXIo
cmVxdWVzdCwgY29uc3RyYWludHMpOworfQorCiBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxl
ckNocm9taXVtOjp1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjb25maWd1
cmF0aW9uLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQogewogICAg
IGlmICghbV93ZWJIYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtLmgKaW5kZXggZGVjMGQ3YTcyZjE2NDJlNTI1OTBlYzkzMGI0
NmI4ZGRlYzUxY2Q5Ny4uODk5M2MxMTg3MTE3ODA0NWM3NDYwNDE1ZjU2YTAyMDRkMGQ2MWRiYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0v
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpbml0
aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4pIE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NS
ZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0
cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNh
bmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFt
KFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNTM2MDllMmUzZWNhMTFlMjNjYzA5NjM2NDFkZjNmYzYzOTZmNzA2MC4u
NDI4MDE5MDhkNDU4ZjkzNGMzMDJhOGQwYWUwMWFjYTM4OWZkNjYxMCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEy
LTA5LTA0ICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAg
IE1lZGlhU3RyZWFtIEFQSTogQWRkIHRoZSBhc3luYyBjcmVhdGVPZmZlciBmdW5jdGlvbmFsaXR5
IHRvIFJUQ1BlZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NTczNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlci5jcHA6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyOjpjcmVhdGVPZmZlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9j
a1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlcik6CisKIDIwMTItMDktMDMgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9p
QHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIENoYW5nZSB0aGUgZm9jdXMgd2hlbiB0aGUg
d2ViIHZpZXcgaXMgY2xpY2tlZCBpbiBNaW5pQnJvd3NlciBhbmQgRVdlYkxhdW5jaGVyCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmluZGV4IDg5MTQ2YjcyZWVkMDY0YzM3M2FhNTU0
ZDEzZGU1Y2Y4NWQ5ZTkyM2MuLmMwYTM1NjU3NjMyZGMxODYwZmZlMjMyNGQ2YzAxNTk4YzNkNTg5
ZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCkBAIC0zNSw2ICszNSw4IEBA
CiAKICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxwdWJs
aWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlN0cmluZy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4KIApAQCAtODYsNiArODgs
MTcgQEAgYm9vbCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjppbml0aWFsaXplKGNv
bnN0IFdlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9p
ZCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpjcmVhdGVPZmZlcihjb25zdCBXZWJS
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJNZWRpYUNvbnN0
cmFpbnRzJiBjb25zdHJhaW50cykKK3sKKyAgICBXZWJTdHJpbmcgc2hvdWxkU3VjY2VlZDsKKyAg
ICBpZiAoY29uc3RyYWludHMuZ2V0TWFuZGF0b3J5Q29uc3RyYWludFZhbHVlKCJzdWNjZWVkIiwg
c2hvdWxkU3VjY2VlZCkgJiYgc2hvdWxkU3VjY2VlZCA9PSAidHJ1ZSIpIHsKKyAgICAgICAgV2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBzZDsKKyAgICAgICAgc2QuaW5pdGlhbGl6
ZSgib2ZmZXIiLCAiU29tZSBTRFAgaGVyZSIpOworICAgICAgICByZXF1ZXN0LnJlcXVlc3RTdWNj
ZWVkZWQoc2QpOworICAgIH0gZWxzZQorICAgICAgICByZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRF
U1RfRVJST1IiKTsKK30KKwogYm9vbCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjp1
cGRhdGVJQ0UoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3Ry
YWludHMmKQogewogICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VJQ0VTdGF0ZShXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXJDbGllbnQ6OklDRVN0YXRlR2F0aGVyaW5nKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaAppbmRleCA0OTI3OTI3ODA0OTk1MzU4YzFiMjgyYWU3NjA2YjUzYTE1NjJi
NjJmLi5lYzc3YTc2N2Q2YmQwNTMzYTdhYTBkYWMyNGJhOWJjNGJhZmY2MmI1IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC00NCw2ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBpbml0aWFsaXplKGNvbnN0IFdlYktpdDo6V2ViUlRDQ29uZmlndXJhdGlvbiYs
IGNvbnN0IFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURFOwogCisgICAgdmly
dHVhbCB2b2lkIGNyZWF0ZU9mZmVyKGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdCYsIGNvbnN0IFdlYktpdDo6V2ViTWVkaWFDb25zdHJhaW50cyYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJQ0UoY29uc3QgV2ViS2l0OjpXZWJSVENDb25maWd1
cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGFkZElDRUNhbmRpZGF0ZShjb25zdCBXZWJLaXQ6OldlYlJUQ0lDRUNh
bmRpZGF0ZURlc2NyaXB0b3ImKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFt
KGNvbnN0IFdlYktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0OjpX
ZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTI0YWM0NzE5Y2JhN2E2NTgy
MzI5YTc0ZWJlNzU1MDE0ZGFkZDY3Yi4uNmQ3YTFiZWE2NDI1ZWVmN2FiMTI0OGIyMDgyNDJlNmM4
NjhiM2VkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA5LTA0ICBUb21teSBXaWRlbmZs
eWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogQWRk
IHRoZSBhc3luYyBjcmVhdGVPZmZlciBmdW5jdGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTczNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRl
T2ZmZXIuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMDMgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jk
b25AZ21haWwuY29tPgogCiAgICAgICAgIGh0dHAvdGVzdHMvaW5jcmVtZW50YWwvcGFydGlhbC1q
cGVnLmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGZjMjYzN2FlZGQ4ZTMwNzEwYmNkMDg5YzM5NDYyNDMwZTNkOTlj
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rl
c3RzIFJUQ1BlZXJDb25uZWN0aW9uIFthZGR8cmVtb3ZlXVN0cmVhbS4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2FsbGVkLgorUEFT
UyBzZXNzaW9uRGVzY3JpcHRpb24udHlwZSBpcyAib2ZmZXIiCitQQVNTIHJlcXVlc3RGYWlsZWQg
d2FzIGNhbGxlZC4KK1BBU1MgZXJyb3JSZWFzb24gaXMgIlRFU1RfRVJST1IiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVh
dGVPZmZlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmNDc2MmRiMTlmMTYwYmJmYmNhY2IxMGE2OGQ1N2U0
ZTE5NWY4N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIFJUQ1BlZXJD
b25uZWN0aW9uIFthZGR8cmVtb3ZlXVN0cmVhbS4iKTsKKwordmFyIHBjID0gbnVsbDsKKworZnVu
Y3Rpb24gcmVxdWVzdEZhaWxlZDIocmVhc29uKQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RG
YWlsZWQgd2FzIGNhbGxlZC4nKTsKKworICAgIGVycm9yUmVhc29uID0gcmVhc29uOworICAgIHNo
b3VsZEJlKCdlcnJvclJlYXNvbicsICciVEVTVF9FUlJPUiInKTsKKworICAgIGZpbmlzaEpTVGVz
dCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMihzZCwgc291cmNlKQoreworICAg
IHRlc3RGYWlsZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcmVxdWVzdEZhaWxlZDEoKQoreworICAgIHRlc3RGYWls
ZWQoJ3JlcXVlc3RGYWlsZWQgd2FzIGNhbGxlZC4nKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
KworZnVuY3Rpb24gcmVxdWVzdFN1Y2NlZWRlZDEoc2QsIHNvdXJjZSkKK3sKKyAgICB0ZXN0UGFz
c2VkKCdyZXF1ZXN0U3VjY2VlZGVkIHdhcyBjYWxsZWQuJyk7CisKKyAgICBzZXNzaW9uRGVzY3Jp
cHRpb24gPSBzZDsKKyAgICBzaG91bGRCZSgnc2Vzc2lvbkRlc2NyaXB0aW9uLnR5cGUnLCAnIm9m
ZmVyIicpOworCisgICAgcGMuY3JlYXRlT2ZmZXIocmVxdWVzdFN1Y2NlZWRlZDIsIHJlcXVlc3RG
YWlsZWQyLCB7bWFuZGF0b3J5Onsic3VjY2VlZCI6ZmFsc2V9fSk7Cit9CisKK3BjID0gbmV3IHdl
YmtpdFJUQ1BlZXJDb25uZWN0aW9uKG51bGwsIG51bGwpOworcGMuY3JlYXRlT2ZmZXIocmVxdWVz
dFN1Y2NlZWRlZDEsIHJlcXVlc3RGYWlsZWQxLCB7bWFuZGF0b3J5Onsic3VjY2VlZCI6dHJ1ZX19
KTsKKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOword2luZG93LnN1Y2Nlc3NmdWxseVBh
cnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162083</attachid>
            <date>2012-09-04 12:51:17 -0700</date>
            <delta_ts>2012-09-04 14:01:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95734-20120904215059.patch</filename>
            <type>text/plain</type>
            <size>72395</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAzMDEzMzk2NzRkNTdh
M2NhMjQyYzNkMmJjYTIwZWY5MThiOWM0NjFkLi43MmZlNzIwYmMxOGE4OWIxNzdmYzgwN2RmZjI2
N2VmZTVlZjk3Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wOS0wNCAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IEFkZCB0aGUgYXN5bmMgY3JlYXRlT2ZmZXIgZnVuY3Rpb25hbGl0eSB0byBSVENQ
ZWVyQ29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTU3MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsYXRmb3JtLmd5cGk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlci5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJU
Q1BlZXJDb25uZWN0aW9uSGFuZGxlcik6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYlJU
Q1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcjo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6On5XZWJSVENTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6aXNOdWxsKToKKyAgICAgICAgKiBjaHJvbWl1
bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6RXh0cmFEYXRhOjp+RXh0cmFEYXRh
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6V2Vi
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6On5XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dDo6aXNOdWxsKToKKwogMjAxMi0wOS0wMyAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEFkZCBJY2UtcmVsYXRlZCBmdW5j
dGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5MDI2YjcxMmIy
YjBmYjJiNzRiNmU4MjM0ZDEzZDE1MWNhY2FlYi4uZTNmY2EzYTRlYjFhM2RlOGU3YzE4MTBlNzNh
MzIzMTUzMzg2YWNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEyLTA5LTA0ICBU
b21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3Ry
ZWFtIEFQSTogQWRkIHRoZSBhc3luYyBjcmVhdGVPZmZlciBmdW5jdGlvbmFsaXR5IHRvIFJUQ1Bl
ZXJDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTczNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIGNyZWF0ZU9mZmVyIHNlbmRzIGEgcmVxdWVzdCB0byB0aGUgcGxhdGZvcm0gaW1wbGVtZW50
ZXIgcmVxdWVzdGluZyBpdCB0byBnYXRoZXIgdXAgYWxsIGNhbmRpZGF0ZXMuCisgICAgICAgIFRo
aXMgY2FuIHRha2Ugc29tZSB0aW1lLCB0aGVyZWZvcmUgdGhlIHJlcXVlc3QgaXMgYXN5bmMuCisK
KyAgICAgICAgVGVzdDogZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVP
ZmZlci5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxs
YmFjay5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDRXJyb3JDYWxs
YmFjazo6flJUQ0Vycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRXJyb3JDYWxsYmFjay5pZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmlkbDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uQ2FsbGJhY2s6On5SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayk6CisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5p
ZGw6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGw6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjp+UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RTdWNjZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnJlcXVlc3RGYWlsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OnN0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OmNsZWFyKToK
KyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwpOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwOiBDb3BpZWQgZnJvbSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmguCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yOjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6YXNzaWduKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6cmVzZXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpv
cGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcj4pOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcjo6dHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNldFR5cGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZHApOgorICAgICAgICAoV2ViS2l0OjpXZWJS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZXRTRFApOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OmFzc2lnbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OnJlc2V0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6cmVx
dWVzdFN1Y2NlZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlv
blJlcXVlc3Q6OnJlcXVlc3RGYWlsZWQpOgorICAgICAgICAoRXh0cmFEYXRhQ29udGFpbmVyKToK
KyAgICAgICAgKFdlYktpdDo6RXh0cmFEYXRhQ29udGFpbmVyOjpFeHRyYURhdGFDb250YWluZXIp
OgorICAgICAgICAoV2ViS2l0OjpFeHRyYURhdGFDb250YWluZXI6OmV4dHJhRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OmV4dHJhRGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OnNldEV4
dHJhRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmNwcDoKKyAgICAgICAgKFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15KToK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckR1bW15OjpjcmVhdGVP
ZmZlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp0eXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnNkcCk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3QpOgorICAgICAgICAoRXh0cmFEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OkV4dHJhRGF0YTo6fkV4dHJhRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Ojp+UlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0OjpleHRyYURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6c2V0RXh0cmFEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcik6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDaHJvbWl1bS5oOgorICAgICAgICAoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hy
b21pdW0pOgorCiAyMDEyLTA4LTMxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5v
a2lhLmNvbT4KIAogICAgICAgICBbUXRdIFBvcnQgdGhlIFF0IHBpeG1hcCBKUyBiaW5kaW5ncyB0
byB1c2UgdGhlIEpTQyBDIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQppbmRleCA2ZDBjMWQ4NWRlYjNh
NzY3OTgzMjlhZjkyOGQzYTkyODJlOGJkMjQzLi43MGVlNjgxODRjMzMyYTI4OGU1MDdhOTUyODZj
MWIyNWNlMWU0NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQor
KysgYi9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQpAQCAtOTQsNiArOTQsNyBAQAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZXNzYWdlUG9ydENoYW5uZWxDbGllbnQuaCcs
CiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1pbWVSZWdpc3RyeS5oJywKICAgICAg
ICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTm9uQ29weWFibGUuaCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vcHVibGljL1dlYk9mZmVyQW5zd2VyUmVxdWVzdC5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCcs
CkBAIC0xMDcsNiArMTA4LDggQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUlRD
SUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMv
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcsCisgICAgICAgICAgICAn
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCisg
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3QuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlY3QuaCcsCiAgICAgICAg
ICAgICAnY2hyb21pdW0vcHVibGljL1dlYlJlZmVycmVyUG9saWN5LmgnLAogICAgICAgICAgICAg
J2Nocm9taXVtL3B1YmxpYy9XZWJSZW5kZXJpbmdTdGF0cy5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgg
Yi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlci5oCmluZGV4IGQwYzIyOTNhMDU1Y2MxNDMzYjUwZjE3ZDI0M2E4NTE2NTFhNWI5ZjguLmM4
ZjJmMTM3NTNhZjA4NTgxMmZkNmRkYTQzODdkMWEyNGMxNzRiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
KysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaApAQCAtMzcsNiArMzcsOCBAQCBjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2NyaXB0
b3I7CiBjbGFzcyBXZWJSVENDb25maWd1cmF0aW9uOwogY2xhc3MgV2ViUlRDSUNFQ2FuZGlkYXRl
RGVzY3JpcHRvcjsKIGNsYXNzIFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKK2Ns
YXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CitjbGFzcyBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0OwogCiBjbGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIgewogcHVibGljOgpAQCAtNDQsNiArNDYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJv
b2wgaW5pdGlhbGl6ZShjb25zdCBXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2ViTWVkaWFD
b25zdHJhaW50cyYpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPZmZlcihjb25zdCBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29uc3QgV2ViTWVkaWFDb25zdHJhaW50
cyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSUNFKGNvbnN0IFdlYlJUQ0NvbmZpZ3Vy
YXRpb24mLCBjb25zdCBXZWJNZWRpYUNvbnN0cmFpbnRzJikgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBhZGRJQ0VDYW5kaWRhdGUoY29uc3QgV2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYpID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3Jp
cHRvciYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3IuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NDYwZTBhNDdlYjFlNzJjYjczNWZi
ZWYxMDEwZTM4OGFlYWI1MTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaApAQCAtMCww
ICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yX2gKKyNk
ZWZpbmUgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcl9oCisKKyNpbmNsdWRlICJX
ZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgorI2luY2x1ZGUgIldlYlBy
aXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJTdHJp
bmc7CisKKy8vICBJbiBvcmRlciB0byBlc3RhYmxpc2ggdGhlIG1lZGlhIHBsYW5lLCBQZWVyQ29u
bmVjdGlvbiBuZWVkcyBzcGVjaWZpYworLy8gIHBhcmFtZXRlcnMgdG8gaW5kaWNhdGUgd2hhdCB0
byB0cmFuc21pdCB0byB0aGUgcmVtb3RlIHNpZGUsIGFzIHdlbGwKKy8vICBhcyBob3cgdG8gaGFu
ZGxlIHRoZSBtZWRpYSB0aGF0IGlzIHJlY2VpdmVkLiBUaGVzZSBwYXJhbWV0ZXJzIGFyZQorLy8g
IGRldGVybWluZWQgYnkgdGhlIGV4Y2hhbmdlIG9mIHNlc3Npb24gZGVzY3JpcHRpb25zIGluIG9m
ZmVycyBhbmQKKy8vICBhbnN3ZXJzLCBhbmQgdGhlcmUgYXJlIGNlcnRhaW4gZGV0YWlscyB0byB0
aGlzIHByb2Nlc3MgdGhhdCBtdXN0IGJlCisvLyAgaGFuZGxlZCBpbiB0aGUgSlNFUCBBUElzLgor
Ly8KKy8vICBXaGV0aGVyIGEgc2Vzc2lvbiBkZXNjcmlwdGlvbiB3YXMgc2VudCBvciByZWNlaXZl
ZCBhZmZlY3RzIHRoZQorLy8gIG1lYW5pbmcgb2YgdGhhdCBkZXNjcmlwdGlvbi4gRm9yIGV4YW1w
bGUsIHRoZSBsaXN0IG9mIGNvZGVjcyBzZW50IHRvCisvLyAgYSByZW1vdGUgcGFydHkgaW5kaWNh
dGVzIHdoYXQgdGhlIGxvY2FsIHNpZGUgaXMgd2lsbGluZyB0byBkZWNvZGUsCisvLyAgYW5kIHdo
YXQgdGhlIHJlbW90ZSBwYXJ0eSBzaG91bGQgc2VuZC4KKworLy8gRklYTUU6IEludmVudCBsZXNz
IGNvbnZvbHV0ZWQgbmFtZS4KK2NsYXNzIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IgeworcHVibGljOgorICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoKSB7
IH0KKyAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFdlYlJUQ1Nl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KKyAg
ICB+V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcigpIHsgcmVzZXQoKTsgfQorCisg
ICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgb3BlcmF0b3I9KGNvbnN0IFdl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3ImIG90aGVyKQorICAgIHsKKyAgICAgICAg
YXNzaWduKG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvciYpOworCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViU3Ry
aW5nJiB0eXBlLCBjb25zdCBXZWJTdHJpbmcmIHNkcCk7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHJlc2V0KCk7CisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX3ByaXZhdGUuaXNO
dWxsKCk7IH0KKworICAgIFdFQktJVF9FWFBPUlQgV2ViU3RyaW5nIHR5cGUoKSBjb25zdDsKKyAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0VHlwZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJL
SVRfRVhQT1JUIFdlYlN0cmluZyBzZHAoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0U0RQKGNvbnN0IFdlYlN0cmluZyYpOworCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisg
ICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcihjb25zdCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6UlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4mKTsKKworICAgIG9w
ZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yPigpIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgV2ViUHJpdmF0ZVB0cjxX
ZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBtX3ByaXZhdGU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zOWI0ZTEzODA5YzA0MmFjMTBiMWIzZDc0MmI2OTEyOWEyNWVmOWU0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdF9oCisjZGVmaW5lIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViTm9uQ29weWFibGUu
aCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcjsKKworY2xhc3MgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCB7Citw
dWJsaWM6CisgICAgY2xhc3MgRXh0cmFEYXRhIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1
YWwgfkV4dHJhRGF0YSgpIHsgfQorICAgIH07CisKKyAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0KCkgeyB9CisgICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdChjb25z
dCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiBvdGhlcikgeyBhc3NpZ24ob3RoZXIp
OyB9CisgICAgfldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoKSB7IHJlc2V0KCk7IH0K
KworICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmIG9wZXJhdG9yPShjb25zdCBX
ZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiBvdGhlcikKKyAgICB7CisgICAgICAgIGFz
c2lnbihvdGhlcik7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBXRUJLSVRf
RVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Qm
KTsKKworICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOworICAgIGJvb2wgaXNOdWxsKCkg
Y29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9CisKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgcmVxdWVzdFN1Y2NlZWRlZChjb25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yJikgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHJlcXVlc3RGYWlsZWQoY29u
c3QgV2ViU3RyaW5nJiBlcnJvcikgY29uc3Q7CisKKyAgICAvLyBFeHRyYSBkYXRhIGFzc29jaWF0
ZWQgd2l0aCB0aGlzIG9iamVjdC4KKyAgICAvLyBJZiBub24tbnVsbCwgdGhlIGV4dHJhIGRhdGEg
cG9pbnRlciB3aWxsIGJlIGRlbGV0ZWQgd2hlbiB0aGUgb2JqZWN0IGlzIGRlc3Ryb3llZC4KKyAg
ICAvLyBTZXR0aW5nIHRoZSBleHRyYSBkYXRhIHBvaW50ZXIgd2lsbCBjYXVzZSBhbnkgZXhpc3Rp
bmcgbm9uLW51bGwKKyAgICAvLyBleHRyYSBkYXRhIHBvaW50ZXIgdG8gYmUgZGVsZXRlZC4KKyAg
ICBXRUJLSVRfRVhQT1JUIEV4dHJhRGF0YSogZXh0cmFEYXRhKCkgY29uc3Q7CisgICAgV0VCS0lU
X0VYUE9SVCB2b2lkIHNldEV4dHJhRGF0YShFeHRyYURhdGEqKTsKKworI2lmIFdFQktJVF9JTVBM
RU1FTlRBVElPTgorICAgIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoY29uc3QgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q+Jik7Cisj
ZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6OlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3Q+IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDU3OWYyY2UwZDM2ZDEzMWZhNTQ5YjllOTAyZTZlZGVlNGVlNWQxMGIu
LmJjYzZhZmY5NjZmMzQ4ODVjNTg1ZTg3ODBkNmUzMTIwODRhZDBjYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yMjIsMTAgKzIyMiwxMiBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBN
b2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2su
aWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbAorICAgIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0lj
ZUNhbmRpZGF0ZUV2ZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5l
Y3Rpb24uaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24u
aWRsCisgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFj
ay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKIAog
ICAgIE1vZHVsZXMvbmF2aWdhdG9yY29udGVudHV0aWxzL05hdmlnYXRvckNvbnRlbnRVdGlscy5p
ZGwKQEAgLTg1OSw2ICs4NjEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVFdmVudC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uLmNwcAorICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdEltcGwuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9u
RGVzY3JpcHRpb24uY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9s
bGVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGI3MThiYjBkMDE1MzcyOGM2N2ZkZjExYmIw
Yzg4MzQxMDkxYmZhZWIuLjkxNzA0OWQ1YTUyMGRjODkyNTFlM2JjMzIxMmRjMDI2NzEyYWVmMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNjI3LDYgKzYyNyw4IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JlcXVlc3RB
bmltYXRpb25GcmFtZUNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSR0JD
b2xvci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSR0JDb2xvci5oIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUlRDRXJyb3JDYWxsYmFjay5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNSVENFcnJvckNhbGxiYWNrLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSVENJY2VDYW5kaWRhdGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUlRD
SWNlQ2FuZGlkYXRlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENJY2VDYW5kaWRh
dGVFdmVudC5jcHAgXApAQCAtNjM1LDYgKzYzNyw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyAr
PSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JUQ1BlZXJDb25uZWN0aW9uLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyZWVuLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NjcmVlbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJv
ZmlsZS5jcHAgXApAQCAtMTIyNSwxMCArMTIyOSwxMiBAQCBkb21fYmluZGluZ19pZGxzICs9IFwK
IAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JD
YWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JV
c2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0ljZUNhbmRpZGF0ZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENJY2VDYW5kaWRhdGVFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb24uaWRsIFwKKwkkKFdlYkNvcmUpL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL25hdmlnYXRvcmNvbnRlbnR1dGlscy9OYXZpZ2F0b3JDb250ZW50VXRpbHMuaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIFwK
QEAgLTE5MjAsNiArMTkyNiw3IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3ND
YWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25u
ZWN0aW9uMDAuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uMDAuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENF
cnJvckNhbGxiYWNrLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
SWNlQ2FuZGlkYXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENJY2VDYW5kaWRhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENJY2VDYW5kaWRhdGVFdmVudC5jcHAgXApAQCAtMTkyOCw2ICsxOTM1LDkgQEAgd2ViY29yZV9t
b2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb24uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmggXAorCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dEltcGwuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDbGllbnQuaCBcCkBAIC00NTU0LDYgKzQ1NjQsNyBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uUmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDRXJyb3JDYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MzE5NDY4ZWYwZTEzYjI3ODE0NTcz
ZjExNjExMTE4ZTkzMTgzMjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaApAQCAtMCwwICsxLDUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
ICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBSVENFcnJvckNhbGxiYWNrX2gKKyNkZWZpbmUgUlRDRXJyb3JDYWxsYmFja19o
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSVENQZWVyQ29ubmVjdGlvbjsKKworY2xhc3MgUlRDRXJyb3JDYWxsYmFjayA6
IHB1YmxpYyBSZWZDb3VudGVkPFJUQ0Vycm9yQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5SVENFcnJvckNhbGxiYWNrKCkgeyB9CisgICAgdmlydHVhbCBib29sIGhhbmRsZUV2ZW50
KGNvbnN0IFN0cmluZyYgZXJyb3JJbmZvcm1hdGlvbiwgUlRDUGVlckNvbm5lY3Rpb24qKSA9IDA7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjZW5kaWYgLy8gUlRDRXJyb3JDYWxsYmFja19oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ZTQwZDE0ZGFlMTdkZGJkMGE2M2ZhZjY3ZGI4ODJhNGJhYjNjYzI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNh
bGxiYWNrLmlkbApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIG1lZGlhc3RyZWFtIHsK
KworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAg
ICAgICAgQ2FsbGJhY2sKKyAgICBdIFJUQ0Vycm9yQ2FsbGJhY2sgeworICAgICAgICBib29sZWFu
IGhhbmRsZUV2ZW50KGluIERPTVN0cmluZyBlcnJvckluZm9ybWF0aW9uLCBpbiBSVENQZWVyQ29u
bmVjdGlvbiBzb3VyY2UpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOGNjZTA1
M2YwM2Q4YTkxZjk5NjI3Y2Y3MGMxNWM2MjI1ZmE5NDdhZS4uZGZiYzg5YmNlYWQ1MTIzNWI3ODA4
ZWIwMjM3OTA3M2QyNGU1MjNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTQwLDkgKzQwLDE0IEBA
CiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50c0ltcGwuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVh
bUV2ZW50LmgiCiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlJUQ0Vy
cm9yQ2FsbGJhY2suaCIKICNpbmNsdWRlICJSVENJY2VDYW5kaWRhdGUuaCIKICNpbmNsdWRlICJS
VENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiUlRDSWNlQ2FuZGlkYXRlRXZl
bnQuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJSVENT
ZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMTMwLDYgKzEzNSwyNiBAQCBSVENQZWVyQ29ubmVjdGlvbjo6flJUQ1Bl
ZXJDb25uZWN0aW9uKCkKIHsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y3JlYXRlT2Zm
ZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxi
YWNrLCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IGVycm9yQ2FsbGJhY2ssIGNvbnN0IERp
Y3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlm
IChtX3JlYWR5U3RhdGUgPT0gUmVhZHlTdGF0ZUNsb3NpbmcgfHwgbV9yZWFkeVN0YXRlID09IFJl
YWR5U3RhdGVDbG9zZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghc3VjY2Vzc0NhbGxiYWNrKSB7CisgICAgICAg
IGVjID0gVFlQRV9NSVNNQVRDSF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1w
bDo6Y3JlYXRlKG1lZGlhQ29uc3RyYWludHMsIGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJl
dHVybjsKKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbD4gcmVx
dWVzdCA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjcmVhdGUoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIHRoaXMpOwor
ICAgIG1fcGVlckhhbmRsZXItPmNyZWF0ZU9mZmVyKHJlcXVlc3QucmVsZWFzZSgpLCBjb25zdHJh
aW50cyk7Cit9CisKIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnVwZGF0ZUljZShjb25zdCBEaWN0
aW9uYXJ5JiBydGNDb25maWd1cmF0aW9uLCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFp
bnRzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAobV9yZWFkeVN0YXRlID09IFJlYWR5
U3RhdGVDbG9zaW5nIHx8IG1fcmVhZHlTdGF0ZSA9PSBSZWFkeVN0YXRlQ2xvc2VkKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmgKaW5kZXggNTRlMGQ0ZGVlNTVjOWM4MmQ5ZWNjYmE1YzRiZWU0YjJmYzY0NGQ2OC4uZDRj
NGNkZmQyMTEzODU4NGVjOWZlYjZjNzJkNjg5MzY3ZDBjYmU1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaApAQCAt
NDgsMTIgKzQ4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFDb25zdHJh
aW50czsKIGNsYXNzIFJUQ0NvbmZpZ3VyYXRpb247CitjbGFzcyBSVENFcnJvckNhbGxiYWNrOwor
Y2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CiAKIGNsYXNzIFJUQ1BlZXJDb25u
ZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUGVlckNvbm5lY3Rpb24+LCBwdWJsaWMgUlRD
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJUQ1BlZXJD
b25uZWN0aW9uPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERpY3Rpb25h
cnkmIHJ0Y0NvbmZpZ3VyYXRpb24sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3RyYWludHMs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB+UlRDUGVlckNvbm5lY3Rpb24oKTsKIAorICAgIHZvaWQg
Y3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBh
c3NSZWZQdHI8UlRDRXJyb3JDYWxsYmFjaz4sIGNvbnN0IERpY3Rpb25hcnkmIG1lZGlhQ29uc3Ry
YWludHMsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIFN0cmluZyByZWFkeVN0YXRlKCkgY29uc3Q7
CiAKICAgICB2b2lkIHVwZGF0ZUljZShjb25zdCBEaWN0aW9uYXJ5JiBydGNDb25maWd1cmF0aW9u
LCBjb25zdCBEaWN0aW9uYXJ5JiBtZWRpYUNvbnN0cmFpbnRzLCBFeGNlcHRpb25Db2RlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNv
bm5lY3Rpb24uaWRsCmluZGV4IDUxMGNlMzAxYzFjOGVkYTVhNGNlNGQzNWYyNTI1NTJjY2Y4OGYw
YjkuLjAyZmEzNDU0OGRkYzJjMTgwNzhjN2IyNDk3ODZlYjgyN2FiOGUxNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uaWRsCkBAIC0zOCw2ICszOCw5IEBAIG1vZHVsZSBtZWRpYXN0cmVhbSB7CiAgICAgICAgIENh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCiAgICAgICAgIEV2ZW50VGFyZ2V0CiAgICAg
XSBSVENQZWVyQ29ubmVjdGlvbiB7CisgICAgICAgIHZvaWQgY3JlYXRlT2ZmZXIoaW4gW0NhbGxi
YWNrXSBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayBzdWNjZXNzQ2FsbGJhY2ssIGluIFtD
YWxsYmFjayxPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFJUQ0Vycm9yQ2FsbGJhY2sgZmFp
bHVyZUNhbGxiYWNrLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0aW9uYXJ5
IG1lZGlhQ29uc3RyYWludHMpCisgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlYWR5U3RhdGU7CiAKICAgICAg
ICAgdm9pZCB1cGRhdGVJY2UoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRGljdGlv
bmFyeSBjb25maWd1cmF0aW9uLCBpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBEaWN0
aW9uYXJ5IG1lZGlhQ29uc3RyYWludHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkNhbGxiYWNr
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMWExZTBhOTkxM2U2NmU2MzgyN2NjNzg2ODcxNGZlM2QzZjVhZjE1ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2suaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRp
c3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFja19oCisjZGVmaW5lIFJUQ1Nlc3Npb25E
ZXNjcmlwdGlvbkNhbGxiYWNrX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJU
Q1BlZXJDb25uZWN0aW9uOworY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOworCitjbGFzcyBS
VENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uQ2FsbGJhY2soKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlRXZlbnQo
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uKiwgUlRDUGVlckNvbm5lY3Rpb24qKSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjZW5kaWYgLy8gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2tfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25D
YWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Np
b25EZXNjcmlwdGlvbkNhbGxiYWNrLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTUzNmQ0ZDljMjgxMDk5MDAx
ZjczMjVlZWFhYzA0NzYxYjVlMDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICog
ICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBtZWRpYXN0cmVhbSB7CisKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENhbGxiYWNr
CisgICAgXSBSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjayB7CisgICAgICAgIGJvb2xlYW4g
aGFuZGxlRXZlbnQoaW4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uIHNkcCwgaW4gUlRDUGVlckNvbm5l
Y3Rpb24gc291cmNlKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViODhlNjI1N2UxZGI1ZGM5MWQ4MzdlOGVhZDEy
M2Y1Y2YyNjZkNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmNwcApAQCAtMCwwICsx
LDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
ICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMK
KyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgiCisK
KyNpbmNsdWRlICJSVENFcnJvckNhbGxiYWNrLmgiCisjaW5jbHVkZSAiUlRDUGVlckNvbm5lY3Rp
b24uaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJSVENT
ZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjay5oIgorI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFJU
Q1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQ
dHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1Jl
ZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQYXNzUmVmUHRyPFJUQ1BlZXJD
b25uZWN0aW9uPiBvd25lcikKK3sKKyAgICBSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGw+IHJlcXVlc3QgPSBhZG9wdFJlZihuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdEltcGwoY29udGV4dCwgc3VjY2Vzc0NhbGxiYWNrLCBlcnJvckNhbGxiYWNrLCBvd25lcikp
OworICAgIHJlcXVlc3QtPnN1c3BlbmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXF1ZXN0LnJl
bGVhc2UoKTsKK30KKworUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGw6OlJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFj
aywgUGFzc1JlZlB0cjxSVENFcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQYXNzUmVmUHRy
PFJUQ1BlZXJDb25uZWN0aW9uPiBvd25lcikKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
LCB0aGlzKQorICAgICwgbV9zdWNjZXNzQ2FsbGJhY2soc3VjY2Vzc0NhbGxiYWNrKQorICAgICwg
bV9lcnJvckNhbGxiYWNrKGVycm9yQ2FsbGJhY2spCisgICAgLCBtX293bmVyKG93bmVyKQorewor
fQorCitSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbDo6flJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3RJbXBsKCkKK3sKK30KKwordm9pZCBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0SW1wbDo6cmVxdWVzdFN1Y2NlZWRlZChQYXNzUmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3I+IGRlc2NyaXB0b3IpCit7CisgICAgaWYgKG1fc3VjY2Vzc0NhbGxiYWNrKSB7
CisgICAgICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Npb25EZXNjcmlwdGlv
biA9IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0b3IpOworICAgICAgICBt
X3N1Y2Nlc3NDYWxsYmFjay0+aGFuZGxlRXZlbnQoc2Vzc2lvbkRlc2NyaXB0aW9uLmdldCgpLCBt
X293bmVyLmdldCgpKTsKKyAgICB9CisKKyAgICBjbGVhcigpOworfQorCit2b2lkIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpyZXF1ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJy
b3IpCit7CisgICAgaWYgKG1fZXJyb3JDYWxsYmFjaykKKyAgICAgICAgbV9lcnJvckNhbGxiYWNr
LT5oYW5kbGVFdmVudChlcnJvciwgbV9vd25lci5nZXQoKSk7CisKKyAgICBjbGVhcigpOworfQor
Cit2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpzdG9wKCkKK3sKKyAgICBj
bGVhcigpOworfQorCit2b2lkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsOjpjbGVh
cigpCit7CisgICAgbV9zdWNjZXNzQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtX2Vycm9yQ2FsbGJh
Y2suY2xlYXIoKTsKKyAgICBtX293bmVyLmNsZWFyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVl
c3RJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3RJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRhZWJmYzk4YjgxMTJmZTJmYzg4
MTk1NTNjODI0OGM2NTljZjRhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaApAQCAt
MCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAg
ICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
IHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
SW1wbF9oCisjZGVmaW5lIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsX2gKKworI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNp
bmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgUlRDRXJyb3JDYWxsYmFjazsKK2NsYXNzIFJUQ1BlZXJDb25uZWN0aW9u
OworY2xhc3MgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s7CisKK2NsYXNzIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3RJbXBsIDogcHVibGljIFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3QsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3RJbXBsPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJhY2s+
LCBQYXNzUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFJUQ1BlZXJDb25uZWN0
aW9uPik7CisgICAgdmlydHVhbCB+UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwoKTsK
KworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0RmFpbGVkKGNvbnN0IFN0cmluZyYgZXJyb3IpIE9WRVJSSURFOworCisgICAgLy8gQWN0aXZl
RE9NT2JqZWN0CisgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKKworcHJpdmF0ZToK
KyAgICBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0SW1wbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxsYmFjaz4sIFBhc3NSZWZQ
dHI8UlRDRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+KTsKKwor
ICAgIHZvaWQgY2xlYXIoKTsKKworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25DYWxs
YmFjaz4gbV9zdWNjZXNzQ2FsbGJhY2s7CisgICAgUmVmUHRyPFJUQ0Vycm9yQ2FsbGJhY2s+IG1f
ZXJyb3JDYWxsYmFjazsKKyAgICBSZWZQdHI8UlRDUGVlckNvbm5lY3Rpb24+IG1fb3duZXI7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjZW5kaWYgLy8gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGxfaAorCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCA5ZmVhMjkxMTg5NzExNjYxNjg0MDRiMTFhOGM5OWQwNTAwZjM5
ZDhlLi5hNmMyOTlmNGFkN2VjNmE3OTYzMDdjZWNiZTAyZDdkOTM5OTcxOTc2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC00NjIsNiArNDYyLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3IuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lv
bkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9t
aXVtLmNwcCcsCkBAIC04NjIsMTAgKzg2MywxMiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5pZGwnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhU3VjY2Vzc0NhbGxiYWNr
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAw
LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNr
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZUV2
ZW50LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVj
dGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRl
c2NyaXB0aW9uLmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNz
aW9uRGVzY3JpcHRpb25DYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsJywKQEAg
LTE2MDQsNiArMTYwNyw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmgnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlRXZlbnQuY3BwJywKQEAgLTE2MTIsNiArMTYxNiw5IEBACiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5oJywKICAgICAg
ICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uLmgn
LAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
Q2FsbGJhY2suaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0SW1wbC5jcHAnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdEltcGwuaCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5oJywKICAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oJywKQEAgLTgzNDEsNiArODM0
OCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJQcmVyZW5k
ZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ0Nv
bmZpZ3VyYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3Bw
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9z
dXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRpdmUuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlNjcm9sbGJhclRoZW1lR2VvbWV0cnlOYXRp
dmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJTY3JvbGxi
YXJJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2EyYjgyZTIyYTE4NDM4ZTZkMjhjNzgzZGE5
YzliYzVkNDJjOGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcApA
QCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yLmg+CisKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCisj
aW5jbHVkZSA8cHVibGljL1dlYlN0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3I6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoY29uc3QgUGFzc1JlZlB0cjxS
VENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiYgc2Vzc2lvbkRlc2NyaXB0aW9uKQorICAg
IDogbV9wcml2YXRlKHNlc3Npb25EZXNjcmlwdGlvbikKK3sKK30KKwordm9pZCBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjphc3NpZ24oY29uc3QgV2ViUlRDU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvciYgb3RoZXIpCit7CisgICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2
YXRlOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnJlc2V0
KCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcjo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJUQ1Nlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wcml2YXRl
LmdldCgpOworfQorCit2b2lkIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6Omlu
aXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJTdHJpbmcmIHNkcCkKK3sK
KyAgICBtX3ByaXZhdGUgPSBSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpjcmVhdGUo
dHlwZSwgc2RwKTsKK30KKworV2ViU3RyaW5nIFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I6OnR5cGUoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsK
KyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpLT50eXBlKCk7Cit9CisKK3ZvaWQgV2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6c2V0VHlwZShjb25zdCBXZWJTdHJpbmcmIHR5cGUp
Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBtX3ByaXZh
dGUuZ2V0KCktPnNldFR5cGUodHlwZSk7Cit9CisKK1dlYlN0cmluZyBXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yOjpzZHAoKSBjb25zdAoreworICAgIEFTU0VSVCghbV9wcml2YXRl
LmlzTnVsbCgpKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpLT5zZHAoKTsKK30KKwordm9p
ZCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpzZXRTRFAoY29uc3QgV2ViU3Ry
aW5nJiBzZHApCit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVy
biBtX3ByaXZhdGUuZ2V0KCktPnNldFNkcChzZHApOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViUlRDU2Vzc2lvbkRlc2NyaXB0
aW9uUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0
L1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYzhkZjcx
ZmQyY2QyNGIyZmI5MWQ2ZGYxMGFmODU3NDU4Nzg2OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYlJUQ1Nlc3Npb25EZXNjcmlw
dGlvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25E
ZXNjcmlwdGlvblJlcXVlc3QuaD4KKworI2luY2x1ZGUgIlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3IuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgiCisj
aW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3Q6Oldl
YlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoY29uc3QgUGFzc1JlZlB0cjxSVENTZXNzaW9u
RGVzY3JpcHRpb25SZXF1ZXN0PiYgY29uc3RyYWludHMpCisgICAgOiBtX3ByaXZhdGUoY29uc3Ry
YWludHMpCit7Cit9CisKK3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6YXNz
aWduKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmIG90aGVyKQoreworICAg
IG1fcHJpdmF0ZSA9IG90aGVyLm1fcHJpdmF0ZTsKK30KKwordm9pZCBXZWJSVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0OjpyZXNldCgpCit7CisgICAgbV9wcml2YXRlLnJlc2V0KCk7Cit9CisK
K3ZvaWQgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6cmVxdWVzdFN1Y2NlZWRlZChj
b25zdCBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJiBzZXNzaW9uRGVzY3JpcHRp
b24pIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fcHJpdmF0ZS5nZXQoKSk7CisgICAgbV9wcml2YXRl
LT5yZXF1ZXN0U3VjY2VlZGVkKHNlc3Npb25EZXNjcmlwdGlvbik7Cit9CisKK3ZvaWQgV2ViUlRD
U2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdDo6cmVxdWVzdEZhaWxlZChjb25zdCBXZWJTdHJpbmcm
IGVycm9yKSBjb25zdAoreworICAgIEFTU0VSVChtX3ByaXZhdGUuZ2V0KCkpOworICAgIG1fcHJp
dmF0ZS0+cmVxdWVzdEZhaWxlZChlcnJvcik7Cit9CisKK2NsYXNzIEV4dHJhRGF0YUNvbnRhaW5l
ciA6IHB1YmxpYyBXZWJDb3JlOjpSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpFeHRyYURh
dGEgeworcHVibGljOgorICAgIEV4dHJhRGF0YUNvbnRhaW5lcihXZWJSVENTZXNzaW9uRGVzY3Jp
cHRpb25SZXF1ZXN0OjpFeHRyYURhdGEqIGV4dHJhRGF0YSkgOiBtX2V4dHJhRGF0YShXVEY6OmFk
b3B0UHRyKGV4dHJhRGF0YSkpIHsgfQorCisgICAgV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVx
dWVzdDo6RXh0cmFEYXRhKiBleHRyYURhdGEoKSB7IHJldHVybiBtX2V4dHJhRGF0YS5nZXQoKTsg
fQorCitwcml2YXRlOgorICAgIE93blB0cjxXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
OjpFeHRyYURhdGE+IG1fZXh0cmFEYXRhOworfTsKKworV2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9u
UmVxdWVzdDo6RXh0cmFEYXRhKiBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpleHRy
YURhdGEoKSBjb25zdAoreworICAgIFJlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0
OjpFeHRyYURhdGE+IGRhdGEgPSBtX3ByaXZhdGUtPmV4dHJhRGF0YSgpOworICAgIGlmICghZGF0
YSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV4dHJhRGF0YUNv
bnRhaW5lcio+KGRhdGEuZ2V0KCkpLT5leHRyYURhdGEoKTsKK30KKwordm9pZCBXZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0OjpzZXRFeHRyYURhdGEoRXh0cmFEYXRhKiBleHRyYURhdGEp
Cit7CisgICAgbV9wcml2YXRlLT5zZXRFeHRyYURhdGEoYWRvcHRSZWYobmV3IEV4dHJhRGF0YUNv
bnRhaW5lcihleHRyYURhdGEpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5j
cHAKaW5kZXggNjdmOGQ3ZTIzZGI1NTUwNTcxOGIyYWUyY2UyZjgzYzczODA0ODdiMS4uODVkMDI2
MmMzN2Q2OTFkNGE2NThhZGU1YmM2ZDA0ZDk3OTFjOGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuY3BwCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBpbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVy
KFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVk
aWFDb25zdHJhaW50cz4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFz
c1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJU
Q0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRk
U3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRp
YUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CkBAIC03OCw2ICs3OSwxMCBAQCBib29sIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckR1bW15Ojppbml0aWFsaXplKFBhc3NSZWZQdHI8UlRDQ29uZmlndXJh
dGlvbj4sIFBhcwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJEdW1teTo6Y3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKK3sKK30KKwogYm9vbCBS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXJEdW1teTo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCmluZGV4IGE2MTkxNWU4MTYz
NmRhZGQxNjdhZGE0NTQ1ZjBjOWFhZGNkZjAxNmIuLjBjNzMwYjJhY2Q4YjgwNTUxZTJhYTAwNWRk
YTFiMDA5N2IxZjQxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5oCkBAIC00Myw2ICs0
Myw4IEBAIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBjbGFzcyBSVENDb25maWd1cmF0aW9uOwog
Y2xhc3MgUlRDSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIFJUQ1BlZXJDb25uZWN0aW9u
SGFuZGxlckNsaWVudDsKK2NsYXNzIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7Citj
bGFzcyBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0OwogCiBjbGFzcyBSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXIgewogcHVibGljOgpAQCAtNTEsNiArNTMsNyBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRpb24+LCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
T2ZmZXIoUGFzc1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0PiwgUGFzc1JlZlB0
cjxNZWRpYUNvbnN0cmFpbnRzPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFz
c1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikg
PSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxSVENJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yPikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+LCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWlu
dHM+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgKaW5kZXgg
MDRlMzRiNzhkODZlYzNkYjNhNjA5ODNmZmZjZTQxN2Y1ODNmODUyNC4uNTIzYzI3ZmExNTRjYjBi
MzMzODdmNjYyMGFhMGY2N2VkMGY3N2MwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHNkcCk7CiAgICAgdmlydHVhbCB+UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcigpOwogCi0gICAgY29uc3QgU3RyaW5nJiB0eXBlKCkgeyByZXR1
cm4gbV90eXBlOyB9CisgICAgY29uc3QgU3RyaW5nJiB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkgeyBtX3R5cGUgPSB0
eXBlOyB9CiAKLSAgICBjb25zdCBTdHJpbmcmIHNkcCgpIHsgcmV0dXJuIG1fc2RwOyB9CisgICAg
Y29uc3QgU3RyaW5nJiBzZHAoKSBjb25zdCB7IHJldHVybiBtX3NkcDsgfQogICAgIHZvaWQgc2V0
U2RwKGNvbnN0IFN0cmluZyYgc2RwKSB7IG1fc2RwID0gc2RwOyB9CiAKIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVz
Y3JpcHRpb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
VENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE5OGU4NDA1NmYwMWUz
ZjI2NDA5ZGQwYTQxNTQzZmNiMTE2ODZjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaApA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisg
KiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1
ZXN0X2gKKyNkZWZpbmUgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdF9oCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOworCitjbGFzcyBSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVz
dD4geworcHVibGljOgorICAgIGNsYXNzIEV4dHJhRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPEV4
dHJhRGF0YT4geworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+RXh0cmFEYXRhKCkgeyB9
CisgICAgfTsKKworICAgIHZpcnR1YWwgflJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QoKSB7
IH0KKworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3VjY2VlZGVkKFBhc3NSZWZQdHI8UlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEZhaWxlZChjb25zdCBTdHJpbmcmIGVycm9yKSA9IDA7CisKKyAgICBQYXNzUmVmUHRyPEV4dHJh
RGF0YT4gZXh0cmFEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9leHRyYURhdGE7IH0KKyAgICB2b2lk
IHNldEV4dHJhRGF0YShQYXNzUmVmUHRyPEV4dHJhRGF0YT4gZXh0cmFEYXRhKSB7IG1fZXh0cmFE
YXRhID0gZXh0cmFEYXRhOyB9CisKK3Byb3RlY3RlZDoKKyAgICBSVENTZXNzaW9uRGVzY3JpcHRp
b25SZXF1ZXN0KCkgeyB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEV4dHJhRGF0YT4gbV9leHRy
YURhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJv
bWl1bS5jcHAKaW5kZXggMzMyYTE2MjM1YWUzNDYxNTFmMGYxNDhiODdlYjUxZjQxMjM0ZDIyZS4u
YTAwMjIwMjdhMmUyZWNjYjllY2VlZWNiOTBmNDIxM2NkMTNkMjdkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmNwcApAQCAt
MzgsMTEgKzM4LDE1IEBACiAjaW5jbHVkZSAiUlRDQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IlJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKICNpbmNsdWRlICJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDbGllbnQuaCIKKyNpbmNsdWRlICJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yLmgiCisjaW5jbHVkZSAiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oIgogI2luY2x1
ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYUNvbnN0cmFp
bnRzLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oPgogI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJSVENDb25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlJUQ0lDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViUlRDU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNz
aW9uRGVzY3JpcHRpb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNiArNzIsMTUgQEAgYm9vbCBSVENQZWVyQ29ubmVj
dGlvbkhhbmRsZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZShQYXNzUmVmUHRyPFJUQ0NvbmZpZ3VyYXRp
b24+IGMKICAgICByZXR1cm4gbV93ZWJIYW5kbGVyID8gbV93ZWJIYW5kbGVyLT5pbml0aWFsaXpl
KGNvbmZpZ3VyYXRpb24sIGNvbnN0cmFpbnRzKSA6IGZhbHNlOwogfQogCit2b2lkIFJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlckNocm9taXVtOjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPFJUQ1Nlc3Np
b25EZXNjcmlwdGlvblJlcXVlc3Q+IHJlcXVlc3QsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50
cz4gY29uc3RyYWludHMpCit7CisgICAgLy8gRklYTUU6IFNob3VsZCB0aGUgZXJyb3IgY2FsbGJh
Y2sgYmUgdHJpZ2dlcmVkIGhlcmU/CisgICAgaWYgKCFtX3dlYkhhbmRsZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fd2ViSGFuZGxlci0+Y3JlYXRlT2ZmZXIocmVxdWVzdCwgY29uc3RyYWlu
dHMpOworfQorCiBib29sIFJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtOjp1cGRhdGVJ
Y2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uLCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnRzKQogewogICAgIGlmICghbV93ZWJIYW5kbGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNocm9t
aXVtLmgKaW5kZXggZGVjMGQ3YTcyZjE2NDJlNTI1OTBlYzkzMGI0NmI4ZGRlYzUxY2Q5Ny4uODk5
M2MxMTg3MTE3ODA0NWM3NDYwNDE1ZjU2YTAyMDRkMGQ2MWRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1bS5oCkBAIC01NCw2ICs1
NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKFBhc3NSZWZQdHI8
UlRDQ29uZmlndXJhdGlvbj4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURF
OwogCisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8UlRDU2Vzc2lvbkRl
c2NyaXB0aW9uUmVxdWVzdD4sIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCB1cGRhdGVJY2UoUGFzc1JlZlB0cjxSVENDb25maWd1cmF0aW9u
PiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGFkZEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPFJUQ0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I+
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFT
dHJlYW1EZXNjcmlwdG9yPiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPikgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTM2
MDllMmUzZWNhMTFlMjNjYzA5NjM2NDFkZjNmYzYzOTZmNzA2MC4uYWVhYTkxMzUwZDFiY2IzZGVm
MmFiMGJlMDcwNDM0MDJhODU5YThjZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTA0ICBUb21teSBXaWRl
bmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtIEFQSTog
QWRkIHRoZSBhc3luYyBjcmVhdGVPZmZlciBmdW5jdGlvbmFsaXR5IHRvIFJUQ1BlZXJDb25uZWN0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTcz
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHA6
CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjpTdWNjZXNzQ2FsbGJh
Y2tUYXNrOjpTdWNjZXNzQ2FsbGJhY2tUYXNrKToKKyAgICAgICAgKE1vY2tXZWJSVENQZWVyQ29u
bmVjdGlvbkhhbmRsZXI6OlN1Y2Nlc3NDYWxsYmFja1Rhc2s6OnJ1bklmVmFsaWQpOgorICAgICAg
ICAoTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6RmFpbHVyZUNhbGxiYWNrVGFzazo6
RmFpbHVyZUNhbGxiYWNrVGFzayk6CisgICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25I
YW5kbGVyOjpGYWlsdXJlQ2FsbGJhY2tUYXNrOjpydW5JZlZhbGlkKToKKyAgICAgICAgKE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNyZWF0ZU9mZmVyKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmg6Cisg
ICAgICAgIChNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKToKKyAgICAgICAgKE1vY2tX
ZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OnRhc2tMaXN0KToKKyAgICAgICAgKFN1Y2Nlc3ND
YWxsYmFja1Rhc2spOgorICAgICAgICAoRmFpbHVyZUNhbGxiYWNrVGFzayk6CisKIDIwMTItMDkt
MDMgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
IENoYW5nZSB0aGUgZm9jdXMgd2hlbiB0aGUgd2ViIHZpZXcgaXMgY2xpY2tlZCBpbiBNaW5pQnJv
d3NlciBhbmQgRVdlYkxhdW5jaGVyCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCmlu
ZGV4IDg5MTQ2YjcyZWVkMDY0YzM3M2FhNTU0ZDEzZGU1Y2Y4NWQ5ZTkyM2MuLjdmODJhNGY3M2E5
ZWExZWZhNDk4M2ViM2QxYjg2YmQzMGZjZWFhMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCkBAIC0zNSwxMSArMzUsMzYgQEAKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRp
YUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlckNsaWVudC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJl
cXVlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYlZlY3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitNb2NrV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOjpTdWNjZXNzQ2FsbGJhY2tUYXNrOjpTdWNjZXNzQ2FsbGJhY2tU
YXNrKE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqIG9iamVjdCwgY29uc3QgV2ViS2l0
OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJSVENT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJiByZXN1bHQpCisgICAgOiBNZXRob2RUYXNrPE1v
Y2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+KG9iamVjdCkKKyAgICAsIG1fcmVxdWVzdChy
ZXF1ZXN0KQorICAgICwgbV9yZXN1bHQocmVzdWx0KQoreworfQorCit2b2lkIE1vY2tXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXI6OlN1Y2Nlc3NDYWxsYmFja1Rhc2s6OnJ1bklmVmFsaWQoKQor
eworICAgIG1fcmVxdWVzdC5yZXF1ZXN0U3VjY2VlZGVkKG1fcmVzdWx0KTsKK30KKworTW9ja1dl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcjo6RmFpbHVyZUNhbGxiYWNrVGFzazo6RmFpbHVyZUNh
bGxiYWNrVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBvYmplY3QsIGNvbnN0
IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYgcmVxdWVzdCkKKyAgICA6
IE1ldGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4ob2JqZWN0KQorICAg
ICwgbV9yZXF1ZXN0KHJlcXVlc3QpCit7Cit9CisKK3ZvaWQgTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlcjo6RmFpbHVyZUNhbGxiYWNrVGFzazo6cnVuSWZWYWxpZCgpCit7CisgICAgbV9y
ZXF1ZXN0LnJlcXVlc3RGYWlsZWQoIlRFU1RfRVJST1IiKTsKK30KKwogTW9ja1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlcjo6TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcihXZWJSVENQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVu
dCkKIHsKQEAgLTg2LDYgKzExMSwxNyBAQCBib29sIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbgogICAgIHJl
dHVybiB0cnVlOwogfQogCit2b2lkIE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI6OmNy
ZWF0ZU9mZmVyKGNvbnN0IFdlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQoreworICAgIFdlYlN0cmlu
ZyBzaG91bGRTdWNjZWVkOworICAgIGlmIChjb25zdHJhaW50cy5nZXRNYW5kYXRvcnlDb25zdHJh
aW50VmFsdWUoInN1Y2NlZWQiLCBzaG91bGRTdWNjZWVkKSAmJiBzaG91bGRTdWNjZWVkID09ICJ0
cnVlIikgeworICAgICAgICBXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIHNlc3Np
b25EZXNjcmlwdGlvbjsKKyAgICAgICAgc2Vzc2lvbkRlc2NyaXB0aW9uLmluaXRpYWxpemUoIm9m
ZmVyIiwgIlNvbWUgU0RQIGhlcmUiKTsKKyAgICAgICAgcG9zdFRhc2sobmV3IFN1Y2Nlc3NDYWxs
YmFja1Rhc2sodGhpcywgcmVxdWVzdCwgc2Vzc2lvbkRlc2NyaXB0aW9uKSk7CisgICAgfSBlbHNl
CisgICAgICAgIHBvc3RUYXNrKG5ldyBGYWlsdXJlQ2FsbGJhY2tUYXNrKHRoaXMsIHJlcXVlc3Qp
KTsKK30KKwogYm9vbCBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyOjp1cGRhdGVJQ0Uo
Y29uc3QgV2ViUlRDQ29uZmlndXJhdGlvbiYsIGNvbnN0IFdlYk1lZGlhQ29uc3RyYWludHMmKQog
ewogICAgIG1fY2xpZW50LT5kaWRDaGFuZ2VJQ0VTdGF0ZShXZWJSVENQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQ6OklDRVN0YXRlR2F0aGVyaW5nKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuaAppbmRleCA0OTI3OTI3ODA0OTk1MzU4YzFiMjgyYWU3NjA2YjUzYTE1NjJiNjJmLi40MmQ0
MGQ3MmExMjIwNzc2OTRlNTZkNjQ3MWNiNzE4NjQ1MmMxZmNmIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYlJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlci5oCkBAIC0zMiw3ICszMiwxMSBAQAogI2RlZmluZSBNb2NrV2ViUlRDUGVlckNv
bm5lY3Rpb25IYW5kbGVyX2gKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRl
ICJUYXNrLmgiCiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5o
PgorI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg+
CisjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGll
bnQ7CkBAIC00NCwxNiArNDgsNDEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGluaXRp
YWxpemUoY29uc3QgV2ViS2l0OjpXZWJSVENDb25maWd1cmF0aW9uJiwgY29uc3QgV2ViS2l0OjpX
ZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
T2ZmZXIoY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0JiwgY29u
c3QgV2ViS2l0OjpXZWJNZWRpYUNvbnN0cmFpbnRzJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHVwZGF0ZUlDRShjb25zdCBXZWJLaXQ6OldlYlJUQ0NvbmZpZ3VyYXRpb24mLCBjb25zdCBX
ZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWludHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
YWRkSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYktpdDo6V2ViUlRDSUNFQ2FuZGlkYXRlRGVzY3JpcHRv
ciYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhZGRTdHJlYW0oY29uc3QgV2ViS2l0OjpX
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImLCBjb25zdCBXZWJLaXQ6OldlYk1lZGlhQ29uc3RyYWlu
dHMmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU3RyZWFtKGNvbnN0IFdlYktp
dDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHN0b3AoKSBPVkVSUklERTsKIAorICAgIC8vIFRhc2sgcmVsYXRlZCBtZXRob2RzCisgICAgVGFz
a0xpc3QqIHRhc2tMaXN0KCkgeyByZXR1cm4gJm1fdGFza0xpc3Q7IH0KKwogcHJpdmF0ZToKICAg
ICBNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKCkgeyB9CiAKICAgICBXZWJLaXQ6Oldl
YlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudCogbV9jbGllbnQ7CisKKyAgICBUYXNrTGlz
dCBtX3Rhc2tMaXN0OworCisgICAgY2xhc3MgU3VjY2Vzc0NhbGxiYWNrVGFzayA6IHB1YmxpYyBN
ZXRob2RUYXNrPE1vY2tXZWJSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXI+IHsKKyAgICBwdWJsaWM6
CisgICAgICAgIFN1Y2Nlc3NDYWxsYmFja1Rhc2soTW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFu
ZGxlciosIGNvbnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdCYsIGNv
bnN0IFdlYktpdDo6V2ViUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcnVuSWZWYWxpZCgpIE9WRVJSSURFOworCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0IG1fcmVxdWVzdDsK
KyAgICAgICAgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIG1fcmVz
dWx0OworICAgIH07CisKKyAgICBjbGFzcyBGYWlsdXJlQ2FsbGJhY2tUYXNrIDogcHVibGljIE1l
dGhvZFRhc2s8TW9ja1dlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlcj4geworICAgIHB1YmxpYzoK
KyAgICAgICAgRmFpbHVyZUNhbGxiYWNrVGFzayhNb2NrV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyKiwgY29uc3QgV2ViS2l0OjpXZWJSVENTZXNzaW9uRGVzY3JpcHRpb25SZXF1ZXN0Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBydW5JZlZhbGlkKCkgT1ZFUlJJREU7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBXZWJLaXQ6OldlYlJUQ1Nlc3Npb25EZXNjcmlwdGlvblJlcXVlc3QgbV9yZXF1
ZXN0OworICAgIH07CiB9OwogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA5MjRhYzQ3MTljYmE3YTY1ODIzMjlhNzRlYmU3NTUwMTRkYWRkNjdiLi42ZDdhMWJlYTY0MjVl
ZWY3YWIxMjQ4YjIwODI0MmU2Yzg2OGIzZWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDktMDQgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5jb20+CisKKyAgICAgICAg
TWVkaWFTdHJlYW0gQVBJOiBBZGQgdGhlIGFzeW5jIGNyZWF0ZU9mZmVyIGZ1bmN0aW9uYWxpdHkg
dG8gUlRDUGVlckNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1NzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9m
ZmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0wMyAgTm9l
bCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgaHR0cC90ZXN0cy9p
bmNyZW1lbnRhbC9wYXJ0aWFsLWpwZWcuaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LWNyZWF0ZU9mZmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmMyNjM3YWVkZDhlMzA3MTBi
Y2QwODljMzk0NjI0MzBlM2Q5OWM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVPZmZlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMyBAQAorVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gW2FkZHxyZW1vdmVdU3Ry
ZWFtLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXF1ZXN0U3VjY2Vl
ZGVkIHdhcyBjYWxsZWQuCitQQVNTIHNlc3Npb25EZXNjcmlwdGlvbi50eXBlIGlzICJvZmZlciIK
K1BBU1MgcmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLgorUEFTUyBlcnJvclJlYXNvbiBpcyAiVEVT
VF9FUlJPUiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JUQ1BlZXJDb25u
ZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY0NzYyZGIxOWYx
NjBiYmZiY2FjYjEwYTY4ZDU3ZTRlMTk1Zjg3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbApA
QCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1M
Ly9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgUlRDUGVlckNvbm5lY3Rpb24gW2FkZHxyZW1vdmVdU3RyZWFtLiIpOworCit2
YXIgcGMgPSBudWxsOworCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVkMihyZWFzb24pCit7CisgICAg
dGVzdFBhc3NlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworCisgICAgZXJyb3JSZWFz
b24gPSByZWFzb247CisgICAgc2hvdWxkQmUoJ2Vycm9yUmVhc29uJywgJyJURVNUX0VSUk9SIicp
OworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIHJlcXVlc3RTdWNjZWVkZWQy
KHNkLCBzb3VyY2UpCit7CisgICAgdGVzdEZhaWxlZCgncmVxdWVzdFN1Y2NlZWRlZCB3YXMgY2Fs
bGVkLicpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0RmFpbGVk
MSgpCit7CisgICAgdGVzdEZhaWxlZCgncmVxdWVzdEZhaWxlZCB3YXMgY2FsbGVkLicpOworICAg
IGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiByZXF1ZXN0U3VjY2VlZGVkMShzZCwgc291
cmNlKQoreworICAgIHRlc3RQYXNzZWQoJ3JlcXVlc3RTdWNjZWVkZWQgd2FzIGNhbGxlZC4nKTsK
KworICAgIHNlc3Npb25EZXNjcmlwdGlvbiA9IHNkOworICAgIHNob3VsZEJlKCdzZXNzaW9uRGVz
Y3JpcHRpb24udHlwZScsICcib2ZmZXIiJyk7CisKKyAgICBwYy5jcmVhdGVPZmZlcihyZXF1ZXN0
U3VjY2VlZGVkMiwgcmVxdWVzdEZhaWxlZDIsIHttYW5kYXRvcnk6eyJzdWNjZWVkIjpmYWxzZX19
KTsKK30KKworcGMgPSBuZXcgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24obnVsbCwgbnVsbCk7Citw
Yy5jcmVhdGVPZmZlcihyZXF1ZXN0U3VjY2VlZGVkMSwgcmVxdWVzdEZhaWxlZDEsIHttYW5kYXRv
cnk6eyJzdWNjZWVkIjp0cnVlfX0pOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3
aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>