<?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>49736</bug_id>
          
          <creation_ts>2010-11-18 08:54:19 -0800</creation_ts>
          <short_desc>For speech input events, send an object containing all the recognition results and metadata.</short_desc>
          <delta_ts>2010-12-10 22:29:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310873</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-18 08:54:19 -0800</bug_when>
    <thetext>Currently the speech input event &apos;onwebkitspeechchange&apos; receives no parameters. WebCore already has the full list of recognition results and populates only the top result into the input field automatically. In this patch we pass a SpeechInputEvent object to the event handler, and the JS code can access the full list of results via &quot;event.results.length&quot;, &quot;results[i].utterance&quot; and &quot;results[i].confidence&quot;.

To test multiple recognition results, I have replaced the &apos;setMockSpeechInputResult&apos; methods with &apos;addMockSpeechInputResult&apos; which can be called multiple times to add multiple results. This method also takes in the result&apos;s confidence value. The mock object in webCore has been updated, along with existing layout tests and a new test added.

I have placed some newly added speech input IDLs and headers under WebCore/page since that seemed most appropriate and previously added files are located there. I&apos;m happy to move them if there is a better suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310876</commentid>
    <comment_count>1</comment_count>
      <attachid>74243</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-18 09:07:17 -0800</bug_when>
    <thetext>Created attachment 74243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310892</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-18 09:35:05 -0800</bug_when>
    <thetext>Attachment 74243 did not build on mac:
Build output: http://queues.webkit.org/results/6222057</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310900</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-11-18 09:44:43 -0800</bug_when>
    <thetext>Attachment 74243 did not build on win:
Build output: http://queues.webkit.org/results/6123061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312279</commentid>
    <comment_count>4</comment_count>
      <attachid>74243</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-22 03:24:28 -0800</bug_when>
    <thetext>Comment on attachment 74243
Patch

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

r=me

&gt; WebCore/page/SpeechInputEvent.h:42
&gt; +    ~SpeechInputEvent() {}

Please put this and the constructor in a .cpp.  With something like a RefPtr of Vectors, this could lead to a lot of blow up in .o file size for anything that includes this file.

&gt; WebCore/page/SpeechInputResultList.h:54
&gt; +    SpeechInputResultList(const SpeechInputResultArray&amp; results)

ditto (and for the ~)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312294</commentid>
    <comment_count>5</comment_count>
      <attachid>74540</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-22 04:41:29 -0800</bug_when>
    <thetext>Created attachment 74540
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312302</commentid>
    <comment_count>6</comment_count>
      <attachid>74540</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-22 05:16:00 -0800</bug_when>
    <thetext>Comment on attachment 74540
Patch for landing

Rejecting patch 74540 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
_MINOR 0320
    setenv YACC /Developer/usr/bin/yacc
    /bin/sh -c /Users/abarth/git/webkit-queue/WebKitBuild/WebCore.build/Debug/WebCore.build/Script-5DF50887116F3077005202AB.sh

** BUILD FAILED **


The following build commands failed:
WebCore:
	CompileC /Users/abarth/git/webkit-queue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/JSEventCustom.o /Users/abarth/git/webkit-queue/WebCore/bindings/js/JSEventCustom.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/6274062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312318</commentid>
    <comment_count>7</comment_count>
      <attachid>74546</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-22 06:40:00 -0800</bug_when>
    <thetext>Created attachment 74546
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312332</commentid>
    <comment_count>8</comment_count>
      <attachid>74546</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-22 07:21:51 -0800</bug_when>
    <thetext>Comment on attachment 74546
Patch for landing

Rejecting patch 74546 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
ebug/WebCore.build/Objects-normal/x86_64/JSSpeechInputResult.o /Users/abarth/git/webkit-queue/WebKitBuild/Debug/DerivedSources/WebCore/JSSpeechInputResult.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
	CompileC /Users/abarth/git/webkit-queue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/JSSpeechInputResultList.o /Users/abarth/git/webkit-queue/WebKitBuild/Debug/DerivedSources/WebCore/JSSpeechInputResultList.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(4 failures)


Full output: http://queues.webkit.org/results/6272057</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312340</commentid>
    <comment_count>9</comment_count>
      <attachid>74553</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-22 07:50:29 -0800</bug_when>
    <thetext>Created attachment 74553
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312352</commentid>
    <comment_count>10</comment_count>
      <attachid>74553</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-22 08:43:31 -0800</bug_when>
    <thetext>Comment on attachment 74553
Patch for landing

Rejecting patch 74553 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
Element.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(26 failures)


Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--release&apos;]&quot; exit_code: 1
nsitionEvent.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
	CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/JSSVGFEMorphologyElement.o /Projects/CommitQueue/WebKitBuild/Release/DerivedSources/WebCore/JSSVGFEMorphologyElement.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(26 failures)


Full output: http://queues.webkit.org/results/6281054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312364</commentid>
    <comment_count>11</comment_count>
      <attachid>74553</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-22 09:02:05 -0800</bug_when>
    <thetext>Comment on attachment 74553
Patch for landing

I can&apos;t find out why this patch doesn&apos;t pass through commit queue (no useful error messages shown in the CQ build log). This patch builds fine in my mac with &apos;build-webkit --release&apos;. Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312725</commentid>
    <comment_count>12</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-11-23 02:02:33 -0800</bug_when>
    <thetext>Committed r72591: &lt;http://trac.webkit.org/changeset/72591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320604</commentid>
    <comment_count>13</comment_count>
      <attachid>74553</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 22:29:02 -0800</bug_when>
    <thetext>Comment on attachment 74553
Patch for landing

Cleared review? from attachment 74553 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74243</attachid>
            <date>2010-11-18 09:07:17 -0800</date>
            <delta_ts>2010-11-22 04:41:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49736-20101118170715.patch</filename>
            <type>text/plain</type>
            <size>59303</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYjFmOTA5NTMxNWU4YjI1NTkyNDUwMTMyMzYzYzFjMjZmNjg1MWM1Li5hZDk1YThh
ZWRlOGU4ODQwYjM1MmE2ZTk3YTUzYzI1MjE1YmRlMTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3Igc3BlZWNoIGlu
cHV0IGV2ZW50LCBzZW5kIGFuIGV2ZW50IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgcmVjb2du
aXRpb24gcmVzdWx0cyBhbmQgbWV0YWRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00OTczNgorCisgICAgICAgICogZmFzdC9zcGVlY2gvaW5wdXQt
b25zcGVlY2hjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sOiBOZXcgdGVzdCB0byBjaGVj
ayBtdWx0aXBsZSByZXN1bHRzLgorICAgICAgICAqIGZhc3Qvc3BlZWNoL2lucHV0LXRleHQtbGFu
Z3VhZ2UtdGFnLmh0bWw6IFVwZGF0ZWQgd2l0aCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sOiBEaXR0by4KKyAg
ICAgICAgKiBmYXN0L3NwZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9yZS1nZW5lcmF0ZWQtZXZlbnRz
Lmh0bWw6IERpdHRvLgorCiAyMDEwLTExLTE4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzIyODgu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5n
ZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNw
ZWVjaGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMzMjhkNDVlYWViZWRm
NDlhZGU2MzhjNmRhZDBmMWM3OTljMTQyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNoL2lucHV0LW9uc3BlZWNoY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE2IEBACitUZXN0cyBmb3IgdGhlIG9uc3BlZWNoY2hhbmdlIGV2ZW50IHdpdGggPGlu
cHV0IHR5cGU9InRleHQiIHNwZWVjaD4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlIGlzICJH
cmVlbiBlZ2dzIGFuZCBoYW0iCitQQVNTIHdpbmRvdy5ldmVudC5yZXN1bHRzLmxlbmd0aCBpcyAz
CitQQVNTIHdpbmRvdy5ldmVudC5yZXN1bHRzWzBdLnV0dGVyYW5jZSBpcyAiR3JlZW4gZWdncyBh
bmQgaGFtIgorUEFTUyB3aW5kb3cuZXZlbnQucmVzdWx0c1swXS5jb25maWRlbmNlIGlzIDAuOAor
UEFTUyB3aW5kb3cuZXZlbnQucmVzdWx0c1sxXS51dHRlcmFuY2UgaXMgIkdyZWVuIHggYW5kIGhh
bSIKK1BBU1Mgd2luZG93LmV2ZW50LnJlc3VsdHNbMV0uY29uZmlkZW5jZSBpcyAwLjUKK1BBU1Mg
d2luZG93LmV2ZW50LnJlc3VsdHNbMl0udXR0ZXJhbmNlIGlzICIzIHggYW5kIGFtIgorUEFTUyB3
aW5kb3cuZXZlbnQucmVzdWx0c1syXS5jb25maWRlbmNlIGlzIDAuMgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNWFhMTQ3YzhmNTdiOWQ0MjU1MGE1NjBiYTQxMDQzYzMwZTQxYzYwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQu
aHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitkZXNjcmlwdGlvbignVGVzdHMgZm9yIHRoZSBvbnNw
ZWVjaGNoYW5nZSBldmVudCB3aXRoICZsdDtpbnB1dCB0eXBlPSJ0ZXh0IiBzcGVlY2g+LicpOwor
CitmdW5jdGlvbiBvblNwZWVjaENoYW5nZSgpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlJywgJ0dyZWVuIGVn
Z3MgYW5kIGhhbScpOworICAgIHNob3VsZEV2YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRz
Lmxlbmd0aCcsIDMpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmV2ZW50LnJl
c3VsdHNbMF0udXR0ZXJhbmNlJywgJ0dyZWVuIGVnZ3MgYW5kIGhhbScpOworICAgIHNob3VsZEV2
YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRzWzBdLmNvbmZpZGVuY2UnLCAwLjgpOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmV2ZW50LnJlc3VsdHNbMV0udXR0ZXJhbmNl
JywgJ0dyZWVuIHggYW5kIGhhbScpOworICAgIHNob3VsZEV2YWx1YXRlVG8oJ3dpbmRvdy5ldmVu
dC5yZXN1bHRzWzFdLmNvbmZpZGVuY2UnLCAwLjUpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygnd2luZG93LmV2ZW50LnJlc3VsdHNbMl0udXR0ZXJhbmNlJywgJzMgeCBhbmQgYW0nKTsKKyAg
ICBzaG91bGRFdmFsdWF0ZVRvKCd3aW5kb3cuZXZlbnQucmVzdWx0c1syXS5jb25maWRlbmNlJywg
MC4yKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuKCkgeworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnR3Jl
ZW4gZWdncyBhbmQgaGFtJywgMC44LCAnJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnR3JlZW4geCBhbmQgaGFtJywgMC41LCAnJyk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnMyB4
IGFuZCBhbScsIDAuMiwgJycpOworCisgICAgICAgIC8vIENsaWNraW5nIHRoZSBzcGVlY2ggYnV0
dG9uIHNob3VsZCBmaWxsIGluIG1vY2sgc3BlZWNoLXJlY29nbml6ZWQgdGV4dC4KKyAgICAgICAg
dmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwZWVjaElucHV0Jyk7CisgICAg
ICAgIHZhciB4ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNDsKKyAg
ICAgICAgdmFyIHkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOwor
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9
CisKK3dpbmRvdy5vbmxvYWQgPSBydW47Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3
aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPGlucHV0IGlkPSdz
cGVlY2hJbnB1dCcgeC13ZWJraXQtc3BlZWNoIG9ud2Via2l0c3BlZWNoY2hhbmdlPSJvblNwZWVj
aENoYW5nZSgpIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc3BlZWNoL2lucHV0LXRleHQtbGFuZ3VhZ2UtdGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1YWdlLXRhZy5odG1sCmluZGV4IGI0NTI2NjFmYjA4Njdm
MjVjZjUyOWE2NGYxZWM3OWQ1MmZiNjllOWIuLmZkZjU4NjgzYzI0ZWFiZWNjNGY5ZjM0NjcwOGIy
M2M1NWRkMDhjZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRl
eHQtbGFuZ3VhZ2UtdGFnLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQt
dGV4dC1sYW5ndWFnZS10YWcuaHRtbApAQCAtMzgsOCArMzgsOCBAQCBmdW5jdGlvbiBzcGVlY2hC
dXR0b25DbGljayhlbGVtZW50SWQpIHsKIAogZnVuY3Rpb24gcnVuKCkgewogICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMg
b2YgdGhlIG1vb24nLCAnZW4tR0InKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
TW9ja1NwZWVjaElucHV0UmVzdWx0KCfmnIjjga7lhpnnnJ8nLCAnamEnKTsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0
aGUgbW9vbicsIDEuMCwgJ2VuLUdCJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFk
ZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgn5pyI44Gu5YaZ55yfJywgMS4wLCAnamEnKTsKICAgICAg
ICAgc3BlZWNoQnV0dG9uQ2xpY2soJ3NwZWVjaElucHV0Tm9uZScpOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1s
CmluZGV4IGNlZjc3MDU2YjE3ZDFjZDQ1MWI0OTBiN2MxZjI0NmJhNmM4OTUwZGIuLjM1MWE5NTM3
MGJkNjg3OWE0MzY5MjVhZTBkNTkzYmM0NzE2ZWMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbApAQCAtMzIsNyArMzIs
NyBAQCBmdW5jdGlvbiBvbldlYmtpdFNwZWVjaENoYW5nZSgpIHsKIAogZnVuY3Rpb24gcnVuKCkg
ewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2Vu
ZGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tTcGVlY2hJbnB1dFJl
c3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nLCAnJyk7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nLCAx
LjAsICcnKTsKIAogICAgICAgICAvLyBDbGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQg
ZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25pemVkIHRleHQuCiAgICAgICAgIHZhciBpbnB1dCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGVlY2hJbnB1dCcpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2Vu
ZXJhdGVkLWV2ZW50cy5odG1sCmluZGV4IGM2ODQ4NjM3NzA1MzM5OWIyOWQwNGZjMjk5MDdlNTVl
OGFiZjA2MDguLjEyYmVhNWU0Mzg3MjZmZmIzZWU5NTI0NmJhYjAzNjYwYjE5ODkwNDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL3NwZWVjaC1idXR0b24taWdub3JlLWdlbmVy
YXRlZC1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9zcGVlY2gtYnV0
dG9uLWlnbm9yZS1nZW5lcmF0ZWQtZXZlbnRzLmh0bWwKQEAgLTQ5LDcgKzQ5LDcgQEAgZnVuY3Rp
b24gc2V0dXBEaXNwYXRjaEV2ZW50VGVzdCgpIHsKIGZ1bmN0aW9uIHJ1bigpIHsKICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgewogICAg
ICAgICAvLyBSdW5uaW5nIGluIERSVCwgdGVzdCB0aGUgZXZlbnRTZW5kZXIgY2FzZS4KLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJl
cyBvZiB0aGUgbW9vbicsICcnKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9j
a1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicsIDEuMCwgJycpOwogICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3BlZWNoSW5wdXQnKS5vbndlYmtpdHNwZWVj
aGNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3BlZWNoSW5wdXQiKS52YWx1ZScsICdQaWN0dXJl
cyBvZiB0aGUgbW9vbicpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwOGY4ODA5NzEwMzA3NTkxNTdkZGU1NjU2OGE3
MGNkOGE4ODQxNDQxLi4wMDk0ZWY0OTY2NjRkOWU2MDNmNzhiYzM3MjNjNDYyMGU2ZjE4MGY0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTMzMCw2ICszMzAsOSBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBwYWdl
L1BlcmZvcm1hbmNlVGltaW5nLmlkbAogICAgIHBhZ2UvUG9zaXRpb25FcnJvci5pZGwKICAgICBw
YWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCisgICAgcGFnZS9T
cGVlY2hJbnB1dFJlc3VsdC5pZGwKKyAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwK
ICAgICBwYWdlL1dlYktpdFBvaW50LmlkbAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbAog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDMwOGU5YTQ0ZTg4ZTc0MjE5OGM3OTE1OTdkOGUyM2E5MmY2ZjIzY2QuLmI3YzM0ZWEyMzAxMzdl
ZDZhMTAwZjBlZGE2ZDkwMTc2YTliZDZmMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTAtMTEtMTggIFNh
dGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3Igc3BlZWNoIGlucHV0IGV2ZW50LCBzZW5k
IGFuIGV2ZW50IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgcmVjb2duaXRpb24gcmVzdWx0cyBh
bmQgbWV0YWRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTczNgorCisgICAgICAgIEN1cnJlbnRseSB0aGUgc3BlZWNoIGlucHV0IGV2ZW50ICdv
bndlYmtpdHNwZWVjaGNoYW5nZScgcmVjZWl2ZXMgbm8gcGFyYW1ldGVycy4gV2ViQ29yZSBhbHJl
YWR5CisgICAgICAgIGhhcyB0aGUgZnVsbCBsaXN0IG9mIHJlY29nbml0aW9uIHJlc3VsdHMgYW5k
IHBvcHVsYXRlcyBvbmx5IHRoZSB0b3AgcmVzdWx0IGludG8gdGhlIGlucHV0IGZpZWxkCisgICAg
ICAgIGF1dG9tYXRpY2FsbHkuIEluIHRoaXMgcGF0Y2ggd2UgcGFzcyBhIFNwZWVjaElucHV0RXZl
bnQgb2JqZWN0IHRvIHRoZSBldmVudCBoYW5kbGVyLCBhbmQgdGhlIEpTCisgICAgICAgIGNvZGUg
Y2FuIGFjY2VzcyB0aGUgZnVsbCBsaXN0IG9mIHJlc3VsdHMgdmlhICJldmVudC5yZXN1bHRzLmxl
bmd0aCIsICJyZXN1bHRzW2ldLnV0dGVyYW5jZSIgYW5kCisgICAgICAgICJyZXN1bHRzW2ldLmNv
bmZpZGVuY2UiLiBBbHNvIHVwZGF0ZWQgbW9jayBvYmplY3Qgd2l0aCBhcHByb3ByaWF0ZSBtZXRo
b2RzIHRvIHRlc3QgbXVsdGlwbGUgcmVzdWx0cy4KKworICAgICAgICBUZXN0OiBmYXN0L3NwZWVj
aC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEFkZGVkIG5l
dyBldmVudAorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOiBBZGRlZCBuZXcgZXZlbnQKKyAgICAgICAgKiBkb20v
RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnQ6OmlzU3BlZWNoSW5wdXRFdmVudCk6
CisgICAgICAgICogZG9tL0V2ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdl
L1NwZWVjaElucHV0RXZlbnQuaDogTmV3IGZpbGUgaW1wbGVtZW50aW5nIFNwZWVjaElucHV0RXZl
bnQuaWRsCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dEV2ZW50Ojp+U3BlZWNoSW5wdXRF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dEV2ZW50OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRFdmVudDo6aXNTcGVlY2hJbnB1dEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6OnJlc3VsdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoSW5wdXRFdmVudDo6U3BlZWNoSW5wdXRFdmVudCk6CisgICAgICAgICogcGFn
ZS9TcGVlY2hJbnB1dEV2ZW50LmlkbDogTmV3IGZpbGUgZGVmaW5pbmcgU3BlZWNoSW5wdXRFdmVu
dCBvYmplY3QKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaDoKKyAgICAgICAg
KiBwYWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElu
cHV0UmVzdWx0OjpjcmVhdGUpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaDoK
KyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbDogTmV3IGZpbGUgZGVmaW5pbmcg
YSBzaW5nbGUgU3BlZWNoSW5wdXRSZXN1bHQgb2JqZWN0CisgICAgICAgICogcGFnZS9TcGVlY2hJ
bnB1dFJlc3VsdExpc3QuaDogTmV3IGZpbGUgaW1wbGVtZW50aW5nIFNwZWVjaElucHV0UmVzdWx0
TGlzdC5pZGwKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0TGlzdDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0TGlzdDo6bGVuZ3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0UmVzdWx0TGlzdDo6aXRlbSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6OlNwZWVjaElucHV0UmVzdWx0TGlzdCk6Cisg
ICAgICAgICogcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsOiBOZXcgZmlsZSBkZWZpbmlu
ZyBhIGxpc3Qgb2YgU3BlZWNoSW5wdXRSZXN1bHQgb2JqZWN0cworICAgICAgICAqIHBsYXRmb3Jt
L21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVj
aElucHV0Q2xpZW50TW9jazo6YWRkUmVjb2duaXRpb25SZXN1bHQpOiBSZW5hbWVkIG1ldGhvZCBh
bmQgYWRkZWQgb25lIHBhcmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xp
ZW50TW9jazo6Y2xlYXJSZXN1bHRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xp
ZW50TW9jazo6dGltZXJGaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1
dENsaWVudE1vY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1l
bnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50
OjpzZXRSZWNvZ25pdGlvblJlc3VsdCk6IFBhc3MgbmV3IGV2ZW50IG9iamVjdCB0byBoYW5kbGVy
LgorCiAyMDEwLTExLTE4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzIyODguCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA1
ZGNjNDY4ZDdkYzdjNmVhOTQ1ODM1MGU1ODI3OTUzYzBjZDUzNGIzLi5lNGU5MTU1ZDFmYWFlNDY5
YzJiOTBmN2I1YmNkNmMyNzA4MTkzZTYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIxNTUsMTEgKzIxNTUsMTMgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
IFwKIAlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAJV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0Q2xpZW50LmggXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmggXAog
CVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAgXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1
dC5oIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKIAlXZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRSZXN1bHQuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1
bHQuaCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIFwKIAlXZWJDb3Jl
L3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgXAogCVdlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRp
bWVyLmggXAogCVdlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFR5cGVzLmggXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0ZGZlZmMw
YjgxYTNhMGFkZDdmZmFjZmUyYzg5NmM3MmRlMmI1M2RjLi4yNmQ4MjYxZWYzZjVlZWIyZGQxOTlh
MDY4NGI0MDkwYWNkYTQ4ODEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjUwLDYgKzI1MCw5IEBACiAgICAgICAgICAgICAn
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvUG9zaXRpb25F
cnJvci5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvU2NyZWVuLmlkbCcsCisgICAgICAgICAgICAn
cGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1
dFJlc3VsdC5pZGwnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmlk
bCcsCiAgICAgICAgICAgICAncGFnZS9XZWJLaXRQb2ludC5pZGwnLAogICAgICAgICAgICAgJ3Bh
Z2UvV29ya2VyTmF2aWdhdG9yLmlkbCcsCiAgICAgICAgICAgICAncGx1Z2lucy9ET01NaW1lVHlw
ZS5pZGwnLApAQCAtMjI5Miw5ICsyMjk1LDExIEBACiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJ
bnB1dC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXQuaCcsCiAgICAgICAgICAg
ICAncGFnZS9TcGVlY2hJbnB1dENsaWVudC5oJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVjaElu
cHV0RXZlbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgnLAog
ICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuY3BwJywKICAgICAgICAgICAgICdw
YWdlL1NwZWVjaElucHV0UmVzdWx0LmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRS
ZXN1bHRMaXN0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oJywKICAgICAgICAgICAgICdwYWdl
L1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggZWMyMTNkNjBiODQ1YjMxMzcxMjE3OTkz
MWVjNmEzODk1MjVmYmFkOC4uYzA1YjNhNDc0OWZiZmZjYmVlNzE4MmExZWE5NWIxZTI0ZjAxNWU3
MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
cHJpCkBAIC0zMTEsNiArMzExLDkgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBwYWdlL1BlcmZv
cm1hbmNlVGltaW5nLmlkbCBcCiAgICAgcGFnZS9Qb3NpdGlvbkVycm9yLmlkbCBcCiAgICAgcGFn
ZS9TY3JlZW4uaWRsIFwKKyAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsIFwKKyAgICBwYWdl
L1NwZWVjaElucHV0UmVzdWx0LmlkbCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3Qu
aWRsIFwKICAgICBwYWdlL1dlYktpdFBvaW50LmlkbCBcCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0
b3IuaWRsIFwKICAgICBwbHVnaW5zL0RPTVBsdWdpbi5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggM2QwNjI2YWJlMzljYjAx
ZjcyM2E3ZDcwNTAyZjQ3ZTg0MjJlODEyNy4uYjU5M2NhZDZiNDA2YzNkZmQ5M2Q3MjgzMjRkMWUz
MzVmYTVkYTI3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3Jl
L1dlYkNvcmUucHJvCkBAIC0yMDA5LDggKzIwMDksMTAgQEAgSEVBREVSUyArPSBcCiAgICAgcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5oIFwKICAgICBwYWdlL1NwZWVjaElucHV0LmggXAogICAgIHBh
Z2UvU3BlZWNoSW5wdXRDbGllbnQuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmggXAog
ICAgIHBhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKICAgICBwYWdlL1NwZWVjaElucHV0UmVz
dWx0LmggXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggXAogICAgIHBhZ2UvV2lu
ZG93RmVhdHVyZXMuaCBcCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAgcGFnZS9Y
U1NBdWRpdG9yLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4YWMyZDdlYmRjMmU5NmFiOWNmMWFlN2IzYjRhOTY0NDYwNzhkMTcwLi4wMDAxZDlmOGRh
OWMzZTlmZWQ4ZDhmNGRiZmZlMDk0MmY5YTBmZDVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUxMiw2ICsxNTEyLDExIEBACiAJCTc1MzVCQzk1MTIw
MjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MzVCQzkzMTIwMjBDRkYwMDM3RUM0NSAv
KiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCAqLzsgfTsKIAkJNzU0MTMzQTgxMDJFMDBFODAwMDc1
RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDEzM0E3MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggKi87IH07CiAJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcCAqLzsgfTsKKwkJNzU0MTVBRkQxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVj
aElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NDE1QUY4MTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggKi87IH07
CisJCTc1NDE1QUZFMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmlkbCBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVBRjkxMjk1
OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuaWRsICovOyB9OworCQk3NTQxNUFGRjEy
OTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHQuaWRsIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUFGQTEyOTU4RDVFMDAzQUQ2Njkg
LyogU3BlZWNoSW5wdXRSZXN1bHQuaWRsICovOyB9OworCQk3NTQxNUIwMDEyOTU4RDVFMDAzQUQ2
NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUFGQjEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmggKi87IH07CisJCTc1NDE1QjAxMTI5NThENUUwMDNBRDY2OSAvKiBTcGVl
Y2hJbnB1dFJlc3VsdExpc3QuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTQxNUFGQzEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmlkbCAqLzsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5l
UmVjb3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5o
ICovOyB9OwogCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovOyB9
OwogCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDgxMURERjI2OTAw
RDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLzsgfTsKQEAgLTc2NjksNiArNzY3NCwxMSBAQAog
CQk3NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBw
YXRoID0gbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTQxMzNBOTEwMkUwMEY0MDAw
NzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVBRjgxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUFGOTEyOTU4RDVFMDAzQUQ2
NjkgLyogU3BlZWNoSW5wdXRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNo
SW5wdXRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1QUZBMTI5
NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gU3BlZWNoSW5wdXRSZXN1bHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3NTQxNUFGQjEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0UmVzdWx0TGlzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUFGQzEyOTU4RDVFMDAzQUQ2NjkgLyog
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hJ
bnB1dFJlc3VsdExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZF
NjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVS
ZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRp
bWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzMzMCw5ICsxMzM0MCwxNCBAQAogCQkJCTc1NzhGOTA4MTFEREYyNjkw
MEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8sCiAJCQkJNzU3OEY5MDkxMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0LmggKi8sCiAJCQkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1IC8q
IFNwZWVjaElucHV0Q2xpZW50LmggKi8sCisJCQkJNzU0MTVBRjgxMjk1OEQ1RTAwM0FENjY5IC8q
IFNwZWVjaElucHV0RXZlbnQuaCAqLywKKwkJCQk3NTQxNUFGOTEyOTU4RDVFMDAzQUQ2NjkgLyog
U3BlZWNoSW5wdXRFdmVudC5pZGwgKi8sCiAJCQkJNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8q
IFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLywKIAkJCQk3NTg5NzhFQTEyNzA5MEQ2MDA3NkQ1QTkg
LyogU3BlZWNoSW5wdXRSZXN1bHQuY3BwICovLAogCQkJCTc1ODk3OEVCMTI3MDkwRDYwMDc2RDVB
OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5oICovLAorCQkJCTc1NDE1QUZBMTI5NThENUUwMDNBRDY2
OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5pZGwgKi8sCisJCQkJNzU0MTVBRkIxMjk1OEQ1RTAwM0FE
NjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5oICovLAorCQkJCTc1NDE1QUZDMTI5NThENUUw
MDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsICovLAogCQkJCTYyQzEyMTdBMTFB
QjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMxMjE3QjEx
QUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLAogCQkJCTAwM0YxRkU5MTFF
NkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVudFR5cGVzLmggKi8sCkBAIC0yMTM0MSw2ICsyMTM1
Niw4IEBACiAJCQkJQkNCOTJENEYxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2FsUG9z
aXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBRTFGQTcxMjkzOURCNzAwNENCMDI2
IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTQxNUFGRDEyOTU4
RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU0
MTVCMDAxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkBAIC0yMTQwMCw3ICsyMTQxNyw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJ
YnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWls
ZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwogCQkJY29t
cGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0g
RW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25z
ID0gKAogCQkJCUVuZ2xpc2gsCkBAIC0yMTQ2NCw2ICsyMTQ4MCw5IEBACiAJCQkJODUxMzZDQTgw
QUVENjY1OTAwRjkwQTNEIC8qIHdlc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQkxQUIxQUU3QTBDMDUxRkRFMDAxMzlGNEYgLyogem9vbUluQ3Vyc29yLnBuZyBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkJMUFCMUFFN0IwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJzb3Iu
cG5nIGluIFJlc291cmNlcyAqLywKKwkJCQk3NTQxNUFGRTEyOTU4RDVFMDAzQUQ2NjkgLyogU3Bl
ZWNoSW5wdXRFdmVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCTc1NDE1QUZGMTI5NThENUUw
MDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCTc1
NDE1QjAxMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsIGluIFJl
c291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCmluZGV4IGQ2NzFk
ZWU0MjA2ZTVlODc1Y2VlNzNiOGZlNzJhZDE2M2I2Zjk1YWMuLmZkODAzNjBhNzNiZWU2MjE3MWUz
MjkxNmUwNDM2ZjM1ZmEyNThkMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNw
cApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkpTUGFnZVRyYW5zaXRpb25FdmVudC5oIgog
I2luY2x1ZGUgIkpTUG9wU3RhdGVFdmVudC5oIgogI2luY2x1ZGUgIkpTUHJvZ3Jlc3NFdmVudC5o
IgorI2luY2x1ZGUgIkpTU3BlZWNoSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIkpTVGV4dEV2ZW50
LmgiCiAjaW5jbHVkZSAiSlNVSUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25F
dmVudC5oIgpAQCAtNjgsNiArNjksNyBAQAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJQb3BTdGF0ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVudC5o
IgorI2luY2x1ZGUgIlNwZWVjaElucHV0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIK
ICNpbmNsdWRlICJVSUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIK
QEAgLTE5Myw2ICsxOTUsMTAgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRXZlbnQqIGV2ZW50KQogICAgIGVsc2UgaWYgKGV2
ZW50LT5pc0F1ZGlvUHJvY2Vzc2luZ0V2ZW50KCkpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVf
RE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQXVkaW9Qcm9jZXNzaW5nRXZl
bnQsIGV2ZW50KTsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgZWxzZSBp
ZiAoZXZlbnQtPmlzU3BlZWNoSW5wdXRFdmVudCgpKQorICAgICAgICB3cmFwcGVyID0gQ1JFQVRF
X0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNwZWVjaElucHV0RXZlbnQs
IGV2ZW50KTsKKyNlbmRpZgogICAgIGVsc2UKICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01f
T0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBFdmVudCwgZXZlbnQpOwogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50Q3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRDdXN0b20uY3BwCmluZGV4IGJiODg1Yjk4
NzA2NDdkNWNkODkxOTRiMjAxYWMyOGVjZTZhNDk5YjcuLmZmOWI5OGIyMzFlNGU1YjEyM2IxNWUx
NWE4ZDUzODQxNTRkYTZlMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4RXZlbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZl
bnRDdXN0b20uY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVjhQb3BTdGF0ZUV2ZW50
LmgiCiAjaW5jbHVkZSAiVjhQcm9ncmVzc0V2ZW50LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgor
I2luY2x1ZGUgIlY4U3BlZWNoSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIlY4U3RvcmFnZUV2ZW50
LmgiCiAjaW5jbHVkZSAiVjhUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJWOFRvdWNoRXZlbnQuaCIK
QEAgLTE3Miw2ICsxNzMsMTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRXZlbnQqIGlt
cGwpCiAgICAgaWYgKGltcGwtPmlzQXVkaW9Qcm9jZXNzaW5nRXZlbnQoKSkKICAgICAgICAgcmV0
dXJuIHRvVjgoc3RhdGljX2Nhc3Q8QXVkaW9Qcm9jZXNzaW5nRXZlbnQqPihpbXBsKSk7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGlmIChpbXBsLT5pc1NwZWVjaElucHV0
RXZlbnQoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U3BlZWNoSW5wdXRFdmVu
dCo+KGltcGwpKTsKKyNlbmRpZgogICAgIGlmIChpbXBsLT5pc0N1c3RvbUV2ZW50KCkpCiAgICAg
ICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PEN1c3RvbUV2ZW50Kj4oaW1wbCkpOwogICAgIHJl
dHVybiBWOEV2ZW50Ojp3cmFwKGltcGwpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnQu
Y3BwIGIvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4IGM4ZGE0NjE3ZWNmMjM0NTlhZTRmYTE5
MDBkZDM1NDNjYjI4M2IzZGMuLmE5NDlmZDUyM2U1ZWUxOTgzZmQ4YTgxMmViM2QyNDY5OGJlY2Yy
NmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9F
dmVudC5jcHAKQEAgLTIzNiw2ICsyMzYsMTMgQEAgYm9vbCBFdmVudDo6aXNBdWRpb1Byb2Nlc3Np
bmdFdmVudCgpIGNvbnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiti
b29sIEV2ZW50Ojppc1NwZWVjaElucHV0RXZlbnQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKyNlbmRpZgorCiBib29sIEV2ZW50Ojpmcm9tVXNlckdlc3R1cmUoKQogewogICAgIGlm
ICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggMGQy
ZjJiOTkzZWE1NTk3ODRmNjU2ZmZhYTBkYTliNWU4MjZkYjYxMC4uZjA1ZDM2YzkwMDAwMTUyMjZh
NjgwYzEyMTY0MGJmZjQ3YWUyMjQ4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9FdmVudC5oCkBAIC0xNDIsNiArMTQyLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEZXZpY2VNb3Rpb25FdmVudCgpIGNvbnN0
OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNEZXZpY2VPcmllbnRhdGlvbkV2ZW50KCkgY29uc3Q7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNTcGVlY2hJbnB1dEV2ZW50KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgYm9vbCBmcm9tVXNl
ckdlc3R1cmUoKTsKICAgICAgICAgCiAgICAgICAgIGJvb2wgcHJvcGFnYXRpb25TdG9wcGVkKCkg
Y29uc3QgeyByZXR1cm4gbV9wcm9wYWdhdGlvblN0b3BwZWQgfHwgbV9pbW1lZGlhdGVQcm9wYWdh
dGlvblN0b3BwZWQ7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBhZjRlN2QwNTQ4
MjE3MTEwZTM5N2MzYmM0YTFmZWNmNzc2N2I1ODA5Li5kMDM4NjUzYzU0ODQ2ZDI1YmM1ZTdlODc3
OThkNjkwN2QxYTVkOWQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xOTI3LDEx
ICsxOTI3LDYgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1NwZWVjaEVuYWJsZWQoKSBjb25z
dAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaXNwYXRj
aFdlYmtpdFNwZWVjaENoYW5nZUV2ZW50KCkKLXsKLSAgICBBU1NFUlQoaXNTcGVlY2hFbmFibGVk
KCkpOwotICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0
c3BlZWNoY2hhbmdlRXZlbnQsIHRydWUsIGZhbHNlKSk7Ci19CiAjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDk4ODQxMTdiODExY2NhMTllZTA3NDdi
MDVkMDViOGZjZTAyMmI1MWIuLjI5ODNiOWIyOGIyNzM0ZDUxYmU4YWY2MzhiMzBmZmFiZjUzNGVi
MzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTA3LDcgKzEwNyw2IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAgICAgdmlydHVhbCBib29sIGlzU3BlZWNoRW5h
YmxlZCgpIGNvbnN0OwotICAgIHZvaWQgZGlzcGF0Y2hXZWJraXRTcGVlY2hDaGFuZ2VFdmVudCgp
OwogI2VuZGlmCiAKICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2NoZWNrZWQ7
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmggYi9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhYmMyZjZmM2UzZjVkNmI1ZTM4
NThjNzk0Nzk2YzQzMzdkOGQwYzcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoSW5wdXRFdmVudC5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVj
aElucHV0RXZlbnRfaAorI2RlZmluZSBTcGVlY2hJbnB1dEV2ZW50X2gKKworI2lmIEVOQUJMRShJ
TlBVVF9TUEVFQ0gpCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0
UmVzdWx0TGlzdC5oIgorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBTcGVlY2hJbnB1dEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1Ymxp
YzoKKyAgICB+U3BlZWNoSW5wdXRFdmVudCgpIHt9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Bl
ZWNoSW5wdXRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25z
dCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHRzKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTcGVlY2hJbnB1dEV2ZW50KGV2ZW50VHlwZSwgcmVzdWx0cykpOworICAg
IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc1NwZWVjaElucHV0RXZlbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CisKKyAgICBTcGVlY2hJbnB1dFJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7
IHJldHVybiBtX3Jlc3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hJbnB1dEV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTcGVlY2hJbnB1dFJlc3Vs
dEFycmF5JiByZXN1bHRzKQorICAgICAgICA6IEV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwgZmFsc2Up
IC8vIENhbiBidWJibGUsIG5vdCBjYW5jZWxhYmxlCisgICAgICAgICwgbV9yZXN1bHRzKFNwZWVj
aElucHV0UmVzdWx0TGlzdDo6Y3JlYXRlKHJlc3VsdHMpKQorICAgIHsKKyAgICB9CisKKyAgICBS
ZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHRMaXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYg
Ly8gU3BlZWNoSW5wdXRFdmVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5w
dXRFdmVudC5pZGwgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzQ2MTQ4MzQxNWQ1Y2E4OWE1NTExM2ZkYTU3YzYwOTE0ZThmY2FiMgotLS0gL2Rldi9udWxs
CisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29u
ZGl0aW9uYWw9SU5QVVRfU1BFRUNICisgICAgXSBTcGVlY2hJbnB1dEV2ZW50IDogRXZlbnQgewor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgU3BlZWNoSW5wdXRSZXN1bHRMaXN0IHJlc3VsdHM7
CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVu
ZXIuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgKaW5kZXggNTY4YjFiN2I2
MmYwMjgxNjc2YTcxNTY4Mjc2NzI1N2FmMTA5MjIzZC4uNzQxNTMwMTI3Mjk0ODU2ZGNkMDJhYTE3
MTVjYzU5ODFmYzJjMjE2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlz
dGVuZXIuaAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oCkBAIC0zOCw4
ICszOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PFNwZWVjaElucHV0UmVzdWx0PiA+IFNwZWVjaElucHV0UmVzdWx0QXJyYXk7Ci0KIC8vIEludGVy
ZmFjZSB0byBiZSBpbXBsZW1lbnRlZCBieSB0aGUgZWxlbWVudCB3aGljaCBpbnZva2VzIFNwZWVj
aElucHV0LgogY2xhc3MgU3BlZWNoSW5wdXRMaXN0ZW5lciB7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGIvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0UmVzdWx0LmNwcAppbmRleCBmNWI2OTcyZjAyMjNhNTUzOTFhNWMxOTcxMzExNzI1N2Ex
NTYzMDE1Li4xYzA0MmEwNTYxMDFmZDIxYWVlM2Q0NTQyNDBhYzg1NTM0YWRkNDk0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dFJlc3VsdC5jcHAKQEAgLTM1LDYgKzM1LDExIEBAIFBhc3NSZWZQdHI8U3Bl
ZWNoSW5wdXRSZXN1bHQ+IFNwZWVjaElucHV0UmVzdWx0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiB1
dHRlcmFuY2UsCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hJbnB1dFJlc3VsdCh1dHRl
cmFuY2UsIGNvbmZpZGVuY2UpKTsKIH0KIAorUGFzc1JlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdD4g
U3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShjb25zdCBTcGVlY2hJbnB1dFJlc3VsdCYgc291cmNl
KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoSW5wdXRSZXN1bHQoc291cmNlLm1f
dXR0ZXJhbmNlLCBzb3VyY2UubV9jb25maWRlbmNlKSk7Cit9CisKIFNwZWVjaElucHV0UmVzdWx0
OjpTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBTdHJpbmcmIHV0dGVyYW5jZSwgZG91YmxlIGNvbmZp
ZGVuY2UpCiAgICAgOiBtX3V0dGVyYW5jZSh1dHRlcmFuY2UpCiAgICAgLCBtX2NvbmZpZGVuY2Uo
Y29uZmlkZW5jZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5o
IGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmgKaW5kZXggZWY5ZmQxMDJjOTQ4NGVj
Mjg0ZDlmMmZiMzg0NjhlY2JjMDIyNDNkMS4uNDU3ZjA3ODM1NzljYzlmMDg2Yjc0NWZmMjQxYjkx
ZWU0OTUxM2IyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmgK
KysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmgKQEAgLTM4LDYgKzM4LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogLy8gZmllbGRzLCBhcyByZWNlaXZlZCBmcm9tIHRoZSBlbWJl
ZGRlci4KIGNsYXNzIFNwZWVjaElucHV0UmVzdWx0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNo
SW5wdXRSZXN1bHQ+IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hJbnB1
dFJlc3VsdD4gY3JlYXRlKGNvbnN0IFNwZWVjaElucHV0UmVzdWx0JiBzb3VyY2UpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNwZWVjaElucHV0UmVzdWx0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1
dHRlcmFuY2UsIGRvdWJsZSBjb25maWRlbmNlKTsKIAogICAgIGRvdWJsZSBjb25maWRlbmNlKCkg
Y29uc3Q7CkBAIC01MCw2ICs1MSw4IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fY29uZmlkZW5j
ZTsKIH07CiAKK3R5cGVkZWYgVmVjdG9yPFJlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdD4gPiBTcGVl
Y2hJbnB1dFJlc3VsdEFycmF5OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0UmVzdWx0LmlkbCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjY4OGRlNDdhZGRiZTRjZWJjZDAzMzYyZGM5ZTYzNTRmMGE3YTJjZAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSAorICAgIF0gU3BlZWNoSW5wdXRSZXN1bHQgeworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHV0dGVyYW5jZTsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGZsb2F0IGNvbmZpZGVuY2U7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGIvV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0UmVzdWx0TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkYmU3NWM5YmFmMTRlODAwNmJkZDZm
NzE3MThiM2JiNzI0ZDhhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXRSZXN1bHRMaXN0LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3Bl
ZWNoSW5wdXRSZXN1bHRMaXN0X2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRSZXN1bHRMaXN0X2gKKwor
I2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNpbmNsdWRlICJTcGVlY2hJbnB1dFJlc3VsdC5o
IgorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTcGVlY2hJbnB1dFJlc3VsdExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hJbnB1
dFJlc3VsdExpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hJbnB1
dFJlc3VsdExpc3Q+IGNyZWF0ZShjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHRz
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hJbnB1dFJlc3VsdExp
c3QocmVzdWx0cykpOworICAgIH0KKworICAgIC8vIE1ldGhvZHMgZnJvbSB0aGUgSURMLgorICAg
IHNpemVfdCBsZW5ndGgoKSB7IHJldHVybiBtX3Jlc3VsdHMuc2l6ZSgpOyB9CisgICAgU3BlZWNo
SW5wdXRSZXN1bHQqIGl0ZW0odW5zaWduZWQgaW5kZXgpCisgICAgeworICAgICAgICByZXR1cm4g
aW5kZXggPj0gbV9yZXN1bHRzLnNpemUoKSA/IDAgOiBtX3Jlc3VsdHNbaW5kZXhdLmdldCgpOwor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hJbnB1dFJlc3VsdExpc3QoY29uc3QgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cykKKyAgICAgICAgOiBtX3Jlc3VsdHMocmVzdWx0cykg
Ly8gVGFrZXMgYSBjb3B5IG9mIHRoZSBhcnJheSBvZiBSZWZQdHJzLgorICAgIHsKKyAgICB9CisK
KyAgICBTcGVlY2hJbnB1dFJlc3VsdEFycmF5IG1fcmVzdWx0czsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNlbmRpZiAv
LyBTcGVlY2hJbnB1dFJlc3VsdExpc3RfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0UmVzdWx0TGlzdC5pZGwgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YTIzZDRmMDIzNzA5NDA2NzUyYzVhZjc0MTBmMzgzNWMxNmQ5ODg1
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5p
ZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVy
ZmFjZSBbCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAorICAgICAgICBDb25kaXRpb25hbD1JTlBV
VF9TUEVFQ0gKKyAgICBdIFNwZWVjaElucHV0UmVzdWx0TGlzdCB7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICAgICAgU3BlZWNoSW5wdXRSZXN1
bHQgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcAppbmRl
eCA4MjAxNTJjMjI2ZDVmNjg2MDE3NTY2OGNiY2VlZmQ0MzZlMGJlNWU3Li4xNmYyODI1NTg2NTE0
ODcyYTA5NGE5M2IwNzQxMmI1NGNkNWQyZDI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcApAQCAtODEsMTggKzgxLDIxIEBAIHZvaWQgU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrOjpjYW5jZWxSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKQogICAg
IH0KIH0KIAotdm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnNldFJlY29nbml0aW9uUmVzdWx0
KGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9p
ZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OmFkZFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmlu
ZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFn
ZSkKIHsKICAgICBpZiAobGFuZ3VhZ2UuaXNFbXB0eSgpKQotICAgICAgICBtX3Jlc3VsdEZvckVt
cHR5TGFuZ3VhZ2UgPSByZXN1bHQ7Ci0gICAgZWxzZQotICAgICAgICBtX3JlY29nbml0aW9uUmVz
dWx0LnNldChsYW5ndWFnZSwgcmVzdWx0KTsKKyAgICAgICAgbV9yZXN1bHRzRm9yRW1wdHlMYW5n
dWFnZS5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShyZXN1bHQsIGNvbmZpZGVuY2Up
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFtX3JlY29nbml0aW9uUmVzdWx0cy5jb250YWlu
cyhsYW5ndWFnZSkpCisgICAgICAgICAgICBtX3JlY29nbml0aW9uUmVzdWx0cy5zZXQobGFuZ3Vh
Z2UsIFNwZWVjaElucHV0UmVzdWx0QXJyYXkoKSk7CisgICAgICAgIG1fcmVjb2duaXRpb25SZXN1
bHRzLmZpbmQobGFuZ3VhZ2UpLT5zZWNvbmQuYXBwZW5kKFNwZWVjaElucHV0UmVzdWx0OjpjcmVh
dGUocmVzdWx0LCBjb25maWRlbmNlKSk7CisgICAgfQogfQogCiB2b2lkIFNwZWVjaElucHV0Q2xp
ZW50TW9jazo6Y2xlYXJSZXN1bHRzKCkKIHsKLSAgICBtX3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2Ug
PSBTdHJpbmcoKTsKLSAgICBtX3JlY29nbml0aW9uUmVzdWx0LmNsZWFyKCk7CisgICAgbV9yZXN1
bHRzRm9yRW1wdHlMYW5ndWFnZS5jbGVhcigpOworICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLmNs
ZWFyKCk7CiB9CiAKIHZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKFdlYkNv
cmU6OlRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4qKQpAQCAtMTAyLDE4ICsxMDUsMTcgQEAg
dm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8U3Bl
ZWNoSW5wdXRDbGllbnRNb2NrPiopCiAgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVj
b3JkaW5nKG1fcmVxdWVzdElkKTsKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSByZXN1bHRzOwogICAg
ICAgICBib29sIG5vUmVzdWx0c0ZvdW5kID0gZmFsc2U7CiAKICAgICAgICAgLy8gRW1wdHkgbGFu
Z3VhZ2UgY2FzZSBtdXN0IGJlIGhhbmRsZWQgc2VwYXJhdGVseSB0byBhdm9pZCBwcm9ibGVtcyB3
aXRoIEhhc2hNYXAgYW5kIGVtcHR5IGtleXMuCiAgICAgICAgIGlmIChtX2xhbmd1YWdlLmlzRW1w
dHkoKSkgewotICAgICAgICAgICAgaWYgKCFtX3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2UuaXNOdWxs
KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNy
ZWF0ZShtX3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2UsIDEuMCkpOworICAgICAgICAgICAgaWYgKCFt
X3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2xp
c3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChtX3JlcXVlc3RJZCwgbV9yZXN1bHRzRm9yRW1w
dHlMYW5ndWFnZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbm9SZXN1bHRz
Rm91bmQgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fcmVjb2du
aXRpb25SZXN1bHQuY29udGFpbnMobV9sYW5ndWFnZSkpCi0gICAgICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShtX3JlY29nbml0aW9uUmVzdWx0Lmdl
dChtX2xhbmd1YWdlKSwgMS4wKSk7CisgICAgICAgICAgICBpZiAobV9yZWNvZ25pdGlvblJlc3Vs
dHMuY29udGFpbnMobV9sYW5ndWFnZSkpCisgICAgICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0
UmVjb2duaXRpb25SZXN1bHQobV9yZXF1ZXN0SWQsIG1fcmVjb2duaXRpb25SZXN1bHRzLmdldCht
X2xhbmd1YWdlKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbm9SZXN1bHRz
Rm91bmQgPSB0cnVlOwogICAgICAgICB9CkBAIC0xMjQsMTAgKzEyNiwxMSBAQCB2b2lkIFNwZWVj
aElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxTcGVlY2hJbnB1dENs
aWVudE1vY2s+KikKICAgICAgICAgICAgIFN0cmluZyBlcnJvcigiZXJyb3I6IG5vIHJlc3VsdCBm
b3VuZCBmb3IgbGFuZ3VhZ2UgJyIpOwogICAgICAgICAgICAgZXJyb3IuYXBwZW5kKG1fbGFuZ3Vh
Z2UpOwogICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCInIik7CisgICAgICAgICAgICBTcGVlY2hJ
bnB1dFJlc3VsdEFycmF5IHJlc3VsdHM7CiAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChTcGVl
Y2hJbnB1dFJlc3VsdDo6Y3JlYXRlKGVycm9yLCAxLjApKTsKKyAgICAgICAgICAgIG1fbGlzdGVu
ZXItPnNldFJlY29nbml0aW9uUmVzdWx0KG1fcmVxdWVzdElkLCByZXN1bHRzKTsKICAgICAgICAg
fQogCi0gICAgICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KG1fcmVxdWVzdElk
LCByZXN1bHRzKTsKICAgICAgICAgbV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvZ25pdGlvbiht
X3JlcXVlc3RJZCk7CiAgICAgICAgIG1fcmVxdWVzdElkID0gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKaW5kZXggYzIyMTliNDA0NWM3
ZmIyYjMxMDZkMjkxN2YyZmZlN2I5N2NkNDdjZC4uNmY3MjE5MTBkMTYxNjNhYTM3ZjIzYjQzMDU1
MzNkMDBiMWFhMmNhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElu
cHV0Q2xpZW50TW9jay5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENs
aWVudE1vY2suaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlICJTcGVlY2hJbnB1dENsaWVudC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTQ4LDcgKzQ5LDcgQEAgY2xhc3Mg
U3BlZWNoSW5wdXRDbGllbnRNb2NrIDogcHVibGljIFNwZWVjaElucHV0Q2xpZW50IHsKIHB1Ymxp
YzoKICAgICBTcGVlY2hJbnB1dENsaWVudE1vY2soKTsKIAotICAgIHZvaWQgc2V0UmVjb2duaXRp
b25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UpOworICAgIHZvaWQgYWRkUmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQs
IGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKTsKICAgICB2
b2lkIGNsZWFyUmVzdWx0cygpOwogCiAgICAgLy8gU3BlZWNoSW5wdXRDbGllbnQgbWV0aG9kcy4K
QEAgLTY1LDkgKzY2LDkgQEAgcHJpdmF0ZToKICAgICBTcGVlY2hJbnB1dExpc3RlbmVyKiBtX2xp
c3RlbmVyOwogICAgIGludCBtX3JlcXVlc3RJZDsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+IG1fcmVjb2duaXRpb25SZXN1bHQ7CisgICAgSGFzaE1hcDxTdHJpbmcsIFNwZWVjaElucHV0
UmVzdWx0QXJyYXk+IG1fcmVjb2duaXRpb25SZXN1bHRzOwogICAgIEF0b21pY1N0cmluZyBtX2xh
bmd1YWdlOwotICAgIFN0cmluZyBtX3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2U7CisgICAgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKaW5kZXggZmJhNTIzZTViNDkyZmQzZGNlODY4NDc2NTU1MDVmYWU0Yjg3ODEy
Ni4uYmE0YzdiYjg1MDY1N2FjZjk1Y2MzZDIwNmFkMzdmNTU2OTJkNjdhNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC00MSw2ICs0MSw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRlICJTcGVlY2hJbnB1dC5oIgorI2luY2x1ZGUgIlNw
ZWVjaElucHV0RXZlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NzgsNyArNDc5
LDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6c2V0UmVjb2duaXRpb25S
ZXN1bHQoaW50LCBjb25zdCBTcGVlY2hJbnB1dFIKICAgICAvLyBoZXJlLCB3ZSB0YWtlIGEgdGVt
cG9yYXJ5IHJlZmVyZW5jZS4KICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gaG9sZFJlZihp
bnB1dCk7CiAgICAgaW5wdXQtPnNldFZhbHVlKHJlc3VsdHMuaXNFbXB0eSgpID8gIiIgOiByZXN1
bHRzWzBdLT51dHRlcmFuY2UoKSk7Ci0gICAgaW5wdXQtPmRpc3BhdGNoV2Via2l0U3BlZWNoQ2hh
bmdlRXZlbnQoKTsKKyAgICBpbnB1dC0+ZGlzcGF0Y2hFdmVudChTcGVlY2hJbnB1dEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHNwZWVjaGNoYW5nZUV2ZW50LCByZXN1bHRzKSk7CiAg
ICAgcmVuZGVyZXIoKS0+cmVwYWludCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmZTU3YjJlNThm
MDAyMmY3MzUyZDUzMWQzMjQ2ZjZiNTEyN2ZkNThmLi41ZjE0YjcxOWFjMjcwMzE0MzhjYmIwYWQ2
MmZiOWExMWY3OTcwYWE0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0x
OCAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBzcGVlY2ggaW5wdXQgZXZlbnQs
IHNlbmQgYW4gZXZlbnQgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSByZWNvZ25pdGlvbiByZXN1
bHRzIGFuZCBtZXRhZGF0YS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ5NzM2CisKKyAgICAgICAgVXBkYXRlZCBtb2NrIG9iamVjdCdzIG1ldGhvZCB0
byBuZXcgc2lnbmF0dXJlLgorCisgICAgICAgICogcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJv
bGxlck1vY2suaDoKKyAgICAgICAgKiBzcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1w
bDo6YWRkTW9ja1JlY29nbml0aW9uUmVzdWx0KToKKyAgICAgICAgKiBzcmMvV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyTW9ja0ltcGwuaDoKKwogMjAxMC0xMS0xOCAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0
c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXJNb2NrLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29u
dHJvbGxlck1vY2suaAppbmRleCAzMTY3MmJhMGFhY2YzMGFjOWQyMjQ3N2ZmNTkyNjA1MWQ5ZWVk
NDViLi5lNDQwYjg5YTU2NmNkMDAxNjZkNWZiNmM1MjQwYWM4YjE4ODE0N2ZiIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2su
aApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdlYlNwZWVjaElucHV0TGlzdGVu
ZXIqIGxpc3RlbmVyKTsKICAgICB2aXJ0dWFsIH5XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2Nr
KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja1JlY29nbml0aW9uUmVzdWx0KGNvbnN0
IFdlYlN0cmluZyYgcmVzdWx0LCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJl
c3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBjbGVhclJlc3VsdHMoKSA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNw
cAppbmRleCA4Y2Y3ODQ4NzgyNGViZjUzN2RlMjlhNDhiZjgwNmM5YzU5YmVjNzhjLi40OGY4YjUw
N2Q3ZWM4OTEzYjIyNmU3OWVkMDRhYzI0ZWVmNDQzMTBjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcApAQCAt
NTUsOSArNTUsOSBAQCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6fldlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2tJbXBsKCkKICAgICBtX3dlYmNvcmVNb2NrLT5zZXRMaXN0ZW5l
cigwKTsKIH0KIAotdm9pZCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6c2V0TW9j
a1JlY29nbml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0LCBjb25zdCBXZWJTdHJp
bmcgJmxhbmd1YWdlKQordm9pZCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6YWRk
TW9ja1JlY29nbml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29u
ZmlkZW5jZSwgY29uc3QgV2ViU3RyaW5nICZsYW5ndWFnZSkKIHsKLSAgICBtX3dlYmNvcmVNb2Nr
LT5zZXRSZWNvZ25pdGlvblJlc3VsdChyZXN1bHQsIGxhbmd1YWdlKTsKKyAgICBtX3dlYmNvcmVN
b2NrLT5hZGRSZWNvZ25pdGlvblJlc3VsdChyZXN1bHQsIGNvbmZpZGVuY2UsIGxhbmd1YWdlKTsK
IH0KIAogdm9pZCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6Y2xlYXJSZXN1bHRz
KCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9ja0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9ja0ltcGwuaAppbmRleCA3NjgwODczOTI2OGI5ZGFiY2NkM2E1Yzg4NWU0YzI0OTYwZThl
YmU0Li5iZjAwZWQwM2Y3NDIxMGJkMjYwMDlhNGMwZTE3MDI1YTBmZDk3NWNkIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1w
bC5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoaW50
IHJlcXVlc3RJZCk7CiAKICAgICAvLyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrIG1ldGhv
ZHMuCi0gICAgdm9pZCBzZXRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiBy
ZXN1bHQsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpOworICAgIHZvaWQgYWRkTW9ja1JlY29n
bml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwg
Y29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSk7CiAgICAgdm9pZCBjbGVhclJlc3VsdHMoKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xz
L0NoYW5nZUxvZwppbmRleCBhZTBhYTc5ZDI3ZjI4MTJkYmU4NzBjMDRhNDYyMTI5MTEyYTJmMWU2
Li5jMjBiYzlkYTZjNmM0MTgyM2VjYjI4OTVhZWViZjY2ZDliMDA3MTNlIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzIgQEAKKzIwMTAtMTEtMTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3Ig
c3BlZWNoIGlucHV0IGV2ZW50LCBzZW5kIGFuIGV2ZW50IG9iamVjdCBjb250YWluaW5nIGFsbCB0
aGUgcmVjb2duaXRpb24gcmVzdWx0cyBhbmQgbWV0YWRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTczNgorCisgICAgICAgIFVwZGF0ZWQgRFJU
IGJ5IHJlbmFtaW5nIHRoZSBtb2NrIHJlc3VsdCBtZXRob2Qgb24gYWxsIHBsYXRmb3JtcyB0byB0
aGUgbmV3IHNpZ25hdHVyZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdENhbGxiYWNr
KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3Vs
dCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5o
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVz
dWx0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRS
ZXN1bHQpOgorCiAyMDEwLTExLTE3ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBEb24ndCB0cmlnZ2VyIFdpbmRvd3MgYnVpbGRzIHdoZW4gY2hyb21pdW0td2luIHRl
c3QgcmVzdWx0cyBjaGFuZ2UKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA5NjE5Mzg5NzJkOGYyM2I4YzM4YjY0ODRkYjVh
MzE5ZWRiNWY3ZGFjLi5mMDY4MWIxMzg2M2JiNDczNTExM2U4ODk3ZGEwNmIwYjg1OGJmYmQyIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0xMDc2LDE5ICsxMDc2LDIxIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldE1vY2tH
ZW9sb2NhdGlvbkVycm9yQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0CiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7Ci0gICAgaWYgKGFyZ3VtZW50
Q291bnQgPCAyKQorICAgIGlmIChhcmd1bWVudENvdW50IDwgMykKICAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHJlc3VsdChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNb
MF0sIGV4Y2VwdGlvbikpOwogICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CiAKLSAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gbGFuZ3VhZ2UoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29u
dGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pKTsKKyAgICBkb3VibGUgY29uZmlkZW5jZSA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbik7CisKKyAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gbGFuZ3VhZ2UoQWRvcHQsIEpTVmFsdWVUb1N0cmlu
Z0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKICAgICBBU1NFUlQoISpl
eGNlcHRpb24pOwogCiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0
aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2Jq
ZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KHJlc3VsdC5n
ZXQoKSwgbGFuZ3VhZ2UuZ2V0KCkpOworICAgIGNvbnRyb2xsZXItPmFkZE1vY2tTcGVlY2hJbnB1
dFJlc3VsdChyZXN1bHQuZ2V0KCksIGNvbmZpZGVuY2UsIGxhbmd1YWdlLmdldCgpKTsKIAogICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KQEAgLTE5NzMsNyArMTk3
NSw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5j
dGlvbnMoKQogICAgICAgICB7ICJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCBzZXRNb2NrRGV2
aWNlT3JpZW50YXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRNb2NrR2VvbG9j
YXRpb25FcnJvciIsIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24iLCBzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldE1vY2tTcGVlY2hJbnB1dFJl
c3VsdCIsIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAg
IHsgImFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsIGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE5ld1dpbmRvd3NDb3B5QmFja0ZvcndhcmRM
aXN0Iiwgc2V0TmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExpc3RDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRQT1NJWExvY2FsZSIsIHNldFBPU0lYTG9jYWxlQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0UGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24iLCBzZXRQ
ZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBi
NjE4NjBiYzY0NjUyNWZjNzA3ZDE0NjIwNzA0NjQwYjVkY2M4M2M0Li4zOTFmN2Y1MDgwMDI1Zjhl
YmE2NDZmYThkY2M1MWM1NzZmMDJiMTZkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBk
b3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblBy
b3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKGludCBjb2RlLCBKU1N0cmluZ1JlZiBtZXNzYWdlKTsKICAgICB2b2lkIHNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5KTsKLSAgICB2b2lkIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1Jl
ZiByZXN1bHQsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKTsKKyAgICB2b2lkIGFkZE1vY2tTcGVlY2hJ
bnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBKU1N0cmlu
Z1JlZiBsYW5ndWFnZSk7CiAgICAgdm9pZCBzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2Nh
dGlvbihKU1N0cmluZ1JlZiBwYXRoKTsKICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wg
ZmxhZyk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDg1YjJkY2U1ZjVmNDczYWE4NTY5MDE2NWI2MzRkMzY4
Nzc1YzY5MDguLjkxNjgxOWQ5YjY5NzNkM2RlNjkxZDdmMGY4N2NhZGY1YzcyNzZlMWYgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0
aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0
aW9uRXJyb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9y
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOwotICAgIGJpbmRNZXRo
b2QoInNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja1NwZWVjaElucHV0UmVzdWx0KTsKKyAgICBiaW5kTWV0aG9kKCJhZGRNb2NrU3BlZWNoSW5w
dXRSZXN1bHQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3Vs
dCk7CiAgICAgYmluZE1ldGhvZCgic2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQiLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJz
ZXRQT1NJWExvY2FsZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0UE9TSVhMb2NhbGUpOwog
ICAgIGJpbmRNZXRob2QoInNldFNjcm9sbGJhclBvbGljeSIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0U2Nyb2xsYmFyUG9saWN5KTsKQEAgLTE1MzcsMTMgKzE1MzcsMTMgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWJvcnRNb2RhbChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWEKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAotdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsK
LSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygp
IHx8ICFhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8
IDMgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpIHx8ICFhcmd1bWVudHNbMV0uaXNOdW1iZXIo
KSB8fCAhYXJndW1lbnRzWzJdLmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
c2hlbGwtPndlYlZpZXdIb3N0KCktPnNwZWVjaElucHV0Q29udHJvbGxlck1vY2soKS0+c2V0TW9j
a1JlY29nbml0aW9uUmVzdWx0KGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLCBj
cHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzFdKSk7CisgICAgbV9zaGVsbC0+d2ViVmll
d0hvc3QoKS0+c3BlZWNoSW5wdXRDb250cm9sbGVyTW9jaygpLT5hZGRNb2NrUmVjb2duaXRpb25S
ZXN1bHQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIGFyZ3VtZW50c1sxXS50
b0RvdWJsZSgpLCBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzJdKSk7CiB9CiAKIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxheWVyVHJlZUFzVGV4dChjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3MsIENwcFZhcmlhbnQqIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4
IDYyZjQ3M2M3ZTkxMGUzZDc3Y2EwNmNiNTRiNTQ5MzEwYTAzN2QyNGIuLjc1ODE3ODE0MjdjZDQ2
Zjc1NjdlMTgzOTNiZTZlY2JiNGQzMDMyMTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMzI2
LDcgKzMyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFib3J0TW9kYWwoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgLy8gU3BlZWNoIGlucHV0IHJlbGF0ZWQgZnVu
Y3Rpb25zLgotICAgIHZvaWQgc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGFkZE1vY2tTcGVlY2hJbnB1dFJlc3Vs
dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICB2b2lkIGxheWVy
VHJlZUFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3MsIENwcFZhcmlhbnQqIHJlc3Vs
dCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDM5ZmIxMTY1MDY2ODAyYTgxNmEzNTRmYWFh
ZTFhMGIwOWQwOTQ3ODcuLjljM2VkZTBlOWRmNWFjMDBkNDhlY2I5Yjg1YmZkM2FhMDk5ZWJlMDUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29u
dHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91
dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNTAwLDcgKzUwMCw3IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KQogICAgIHNl
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihhbGxvdyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQs
IEpTU3RyaW5nUmVmIGxhbmd1YWdlKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9j
a1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2Us
IEpTU3RyaW5nUmVmIGxhbmd1YWdlKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHNw
ZWVjaCBpbnB1dCBsYXlvdXQgdGVzdHMuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ4NS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBiMTlkNmI1
ZTMwZjc1YjY5ZDdmODc0MDMwZjU3NGI2ODc2ZDg1YjZlLi5lM2YyMTQxNDIzYWM3OWE3NjU2YTA4
OTFiZjYwNzIxNmY0OWFiZmEzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC0zNzMsNyArMzczLDcg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJv
b2wgYWxsb3cpCiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIFVJRGVsZWdhdGVdIGRpZFNldE1v
Y2tHZW9sb2NhdGlvblBlcm1pc3Npb25dOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBKU1N0cmluZ1Jl
ZiBsYW5ndWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1
dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBKU1N0cmluZ1Jl
ZiBsYW5ndWFnZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBzcGVlY2ggaW5wdXQg
bGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Mzk0ODUuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDcxMzVhMWE4NGNjY2Y3NjhkYmMw
MjM2YzllY2JkYmEzMTNjOTk2NDUuLjYyNGNmOTc2MmQ4NjVkNzFmM2VkMzE0ZGI1YWMyM2JjODE4
NzA1ZDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03NjgsNyArNzY4LDcgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG8KICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dlb2xvY2F0
aW9uUG9zaXRpb24obGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOwogfQogCi12b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgUVN0cmlu
ZyYgcmVzdWx0LCBjb25zdCBRU3RyaW5nJiBsYW5ndWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBRU3RyaW5nJiByZXN1bHQsIGRv
dWJsZSBjb25maWRlbmNlLCBjb25zdCBRU3RyaW5nJiBsYW5ndWFnZSkKIHsKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGZvciBzcGVlY2ggaW5wdXQgbGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0ODUuCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmgg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgK
aW5kZXggNWMxNzYyNGU5ZWMzMjJkOWIzOWE2MjQ1NWM5MGE4Zjg5YzhhZjM0Ny4uNTkwMjI1Yjhh
ZWI0NTkwYzM2MjM4ODFmYzRjZmI2MmEwM2Q3OThjOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMjE4LDcg
KzIxOCw3IEBAIHB1YmxpYyBzbG90czoKICAgICBib29sIGlzR2VvbG9jYXRpb25QZXJtaXNzaW9u
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldDsgfQogICAg
IGJvb2wgZ2VvbG9jYXRpb25QZXJtaXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlv
blBlcm1pc3Npb247IH0KIAotICAgIHZvaWQgc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0
IFFTdHJpbmcmIHJlc3VsdCwgY29uc3QgUVN0cmluZyYgbGFuZ3VhZ2UpOworICAgIHZvaWQgYWRk
TW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IFFTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNvbmZp
ZGVuY2UsIGNvbnN0IFFTdHJpbmcmIGxhbmd1YWdlKTsKIAogICAgIC8vIEVtcHR5IHN0dWIgbWV0
aG9kIHRvIGtlZXAgcGFyaXR5IHdpdGggb2JqZWN0IG1vZGVsIGV4cG9zZWQgYnkgZ2xvYmFsIExh
eW91dFRlc3RDb250cm9sbGVyLgogICAgIHZvaWQgYWJvcnRNb2RhbCgpIHt9CmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAppbmRleCAzODZmMTE4YmVmOWQ1Y2FkYjMyZWU5MDU4MjZhOGYzMmVlOGQ5ZmE2Li40
NDFiODIwZGU2Zjk2ZTFjZjc5NDhmNjAwNjk1ZDljOTdlYjRkMGY1IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldp
bi5jcHAKQEAgLTQwNSw3ICs0MDUsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRH
ZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvdykKICAgICBzZXRHZW9sb2NhdGlvblBlcm1p
c3Npb25Db21tb24oYWxsb3cpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
b2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBKU1N0cmluZ1JlZiBsYW5n
dWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3Vs
dChKU1N0cmluZ1JlZiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBKU1N0cmluZ1JlZiBsYW5n
dWFnZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBzcGVlY2ggaW5wdXQgbGF5b3V0
IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzk0ODUuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlv
dXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xh
eW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IDMyNjE0YzExMzNkZGY4YWFkNzdlZmIwZDFk
NGE2YjMwZTQwMTEwOGIuLjg1ODdmZWE0NmE4MWI4NjE1Y2Y0OWVlN2JlYmU5YmIzMGNhY2U1NTgg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRl
c3RDb250cm9sbGVyV3guY3BwCkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxsb3cpCiAgICAgc2V0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uQ29tbW9uKGFsbG93KTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJlc3VsdCwgSlNT
dHJpbmdSZWYgbGFuZ3VhZ2UpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3Bl
ZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwgSlNT
dHJpbmdSZWYgbGFuZ3VhZ2UpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Igc3BlZWNo
IGlucHV0IGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM5NDg1Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74540</attachid>
            <date>2010-11-22 04:41:29 -0800</date>
            <delta_ts>2010-11-22 06:39:51 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49736-20101122124126.patch</filename>
            <type>text/plain</type>
            <size>65344</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMWFjOWZkYWNiNTAxZDFkMzg1ZjgxM2UwZmZjZjdiZDljZWNmZGE2Li5kYTlkZTZk
NWIwMGFlZmUwNWVlNDUxOThjMGU2OGQ4ODViNzY1NGZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1
dCBldmVudCwgc2VuZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0
aW9uIHJlc3VsdHMgYW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MzYKKworICAgICAgICAqIGZhc3Qvc3BlZWNoL2lucHV0LW9u
c3BlZWNoY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
cGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbDogTmV3IHRlc3QgdG8gY2hlY2sg
bXVsdGlwbGUgcmVzdWx0cy4KKyAgICAgICAgKiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1
YWdlLXRhZy5odG1sOiBVcGRhdGVkIHdpdGggbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAg
ICogZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbDogRGl0dG8uCisgICAg
ICAgICogZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5o
dG1sOiBEaXR0by4KKwogMjAxMC0xMS0yMiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1h
bm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5n
ZS1ldmVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMzMjhkNDVlYWViZWRmNDlhZGU2Mzhj
NmRhZDBmMWM3OTljMTQyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNoL2lucHV0LW9uc3BlZWNoY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2
IEBACitUZXN0cyBmb3IgdGhlIG9uc3BlZWNoY2hhbmdlIGV2ZW50IHdpdGggPGlucHV0IHR5cGU9
InRleHQiIHNwZWVjaD4uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlIGlzICJHcmVlbiBlZ2dz
IGFuZCBoYW0iCitQQVNTIHdpbmRvdy5ldmVudC5yZXN1bHRzLmxlbmd0aCBpcyAzCitQQVNTIHdp
bmRvdy5ldmVudC5yZXN1bHRzWzBdLnV0dGVyYW5jZSBpcyAiR3JlZW4gZWdncyBhbmQgaGFtIgor
UEFTUyB3aW5kb3cuZXZlbnQucmVzdWx0c1swXS5jb25maWRlbmNlIGlzIDAuOAorUEFTUyB3aW5k
b3cuZXZlbnQucmVzdWx0c1sxXS51dHRlcmFuY2UgaXMgIkdyZWVuIHggYW5kIGhhbSIKK1BBU1Mg
d2luZG93LmV2ZW50LnJlc3VsdHNbMV0uY29uZmlkZW5jZSBpcyAwLjUKK1BBU1Mgd2luZG93LmV2
ZW50LnJlc3VsdHNbMl0udXR0ZXJhbmNlIGlzICIzIHggYW5kIGFtIgorUEFTUyB3aW5kb3cuZXZl
bnQucmVzdWx0c1syXS5jb25maWRlbmNlIGlzIDAuMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWFhMTQ3
YzhmNTdiOWQ0MjU1MGE1NjBiYTQxMDQzYzMwZTQxYzYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbApAQCAt
MCwwICsxLDQ4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CitkZXNjcmlwdGlvbignVGVzdHMgZm9yIHRoZSBvbnNwZWVjaGNoYW5n
ZSBldmVudCB3aXRoICZsdDtpbnB1dCB0eXBlPSJ0ZXh0IiBzcGVlY2g+LicpOworCitmdW5jdGlv
biBvblNwZWVjaENoYW5nZSgpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlJywgJ0dyZWVuIGVnZ3MgYW5kIGhh
bScpOworICAgIHNob3VsZEV2YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRzLmxlbmd0aCcs
IDMpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmV2ZW50LnJlc3VsdHNbMF0u
dXR0ZXJhbmNlJywgJ0dyZWVuIGVnZ3MgYW5kIGhhbScpOworICAgIHNob3VsZEV2YWx1YXRlVG8o
J3dpbmRvdy5ldmVudC5yZXN1bHRzWzBdLmNvbmZpZGVuY2UnLCAwLjgpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnd2luZG93LmV2ZW50LnJlc3VsdHNbMV0udXR0ZXJhbmNlJywgJ0dyZWVu
IHggYW5kIGhhbScpOworICAgIHNob3VsZEV2YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRz
WzFdLmNvbmZpZGVuY2UnLCAwLjUpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93
LmV2ZW50LnJlc3VsdHNbMl0udXR0ZXJhbmNlJywgJzMgeCBhbmQgYW0nKTsKKyAgICBzaG91bGRF
dmFsdWF0ZVRvKCd3aW5kb3cuZXZlbnQucmVzdWx0c1syXS5jb25maWRlbmNlJywgMC4yKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuKCkgeworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnR3JlZW4gZWdncyBh
bmQgaGFtJywgMC44LCAnJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tT
cGVlY2hJbnB1dFJlc3VsdCgnR3JlZW4geCBhbmQgaGFtJywgMC41LCAnJyk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnMyB4IGFuZCBhbScs
IDAuMiwgJycpOworCisgICAgICAgIC8vIENsaWNraW5nIHRoZSBzcGVlY2ggYnV0dG9uIHNob3Vs
ZCBmaWxsIGluIG1vY2sgc3BlZWNoLXJlY29nbml6ZWQgdGV4dC4KKyAgICAgICAgdmFyIGlucHV0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwZWVjaElucHV0Jyk7CisgICAgICAgIHZhciB4
ID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNDsKKyAgICAgICAgdmFy
IHkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKK3dpbmRv
dy5vbmxvYWQgPSBydW47Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPGlucHV0IGlkPSdzcGVlY2hJbnB1
dCcgeC13ZWJraXQtc3BlZWNoIG9ud2Via2l0c3BlZWNoY2hhbmdlPSJvblNwZWVjaENoYW5nZSgp
Ij4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNo
L2lucHV0LXRleHQtbGFuZ3VhZ2UtdGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9p
bnB1dC10ZXh0LWxhbmd1YWdlLXRhZy5odG1sCmluZGV4IGI0NTI2NjFmYjA4NjdmMjVjZjUyOWE2
NGYxZWM3OWQ1MmZiNjllOWIuLmZkZjU4NjgzYzI0ZWFiZWNjNGY5ZjM0NjcwOGIyM2M1NWRkMDhj
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtbGFuZ3Vh
Z2UtdGFnLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1sYW5n
dWFnZS10YWcuaHRtbApAQCAtMzgsOCArMzgsOCBAQCBmdW5jdGlvbiBzcGVlY2hCdXR0b25DbGlj
ayhlbGVtZW50SWQpIHsKIAogZnVuY3Rpb24gcnVuKCkgewogICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1v
b24nLCAnZW4tR0InKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja1NwZWVj
aElucHV0UmVzdWx0KCfmnIjjga7lhpnnnJ8nLCAnamEnKTsKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbics
IDEuMCwgJ2VuLUdCJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdCgn5pyI44Gu5YaZ55yfJywgMS4wLCAnamEnKTsKICAgICAgICAgc3BlZWNo
QnV0dG9uQ2xpY2soJ3NwZWVjaElucHV0Tm9uZScpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCmluZGV4IGNl
Zjc3MDU2YjE3ZDFjZDQ1MWI0OTBiN2MxZjI0NmJhNmM4OTUwZGIuLjM1MWE5NTM3MGJkNjg3OWE0
MzY5MjVhZTBkNTkzYmM0NzE2ZWMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5j
dGlvbiBvbldlYmtpdFNwZWVjaENoYW5nZSgpIHsKIAogZnVuY3Rpb24gcnVuKCkgewogICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGlj
dHVyZXMgb2YgdGhlIG1vb24nLCAnJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFk
ZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nLCAxLjAsICcnKTsK
IAogICAgICAgICAvLyBDbGlja2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBt
b2NrIHNwZWVjaC1yZWNvZ25pemVkIHRleHQuCiAgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdzcGVlY2hJbnB1dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2
ZW50cy5odG1sCmluZGV4IGM2ODQ4NjM3NzA1MzM5OWIyOWQwNGZjMjk5MDdlNTVlOGFiZjA2MDgu
LjEyYmVhNWU0Mzg3MjZmZmIzZWU5NTI0NmJhYjAzNjYwYjE5ODkwNDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNoL3NwZWVjaC1idXR0b24taWdub3JlLWdlbmVyYXRlZC1ldmVu
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9y
ZS1nZW5lcmF0ZWQtZXZlbnRzLmh0bWwKQEAgLTQ5LDcgKzQ5LDcgQEAgZnVuY3Rpb24gc2V0dXBE
aXNwYXRjaEV2ZW50VGVzdCgpIHsKIGZ1bmN0aW9uIHJ1bigpIHsKICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAvLyBS
dW5uaW5nIGluIERSVCwgdGVzdCB0aGUgZXZlbnRTZW5kZXIgY2FzZS4KLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUg
bW9vbicsICcnKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElu
cHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicsIDEuMCwgJycpOwogICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc3BlZWNoSW5wdXQnKS5vbndlYmtpdHNwZWVjaGNoYW5nZSA9
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3BlZWNoSW5wdXQiKS52YWx1ZScsICdQaWN0dXJlcyBvZiB0aGUg
bW9vbicpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKaW5kZXggZjYyMmQwMTJlYWRjN2I1NTczYmNkZDgyMWJlNDJkMjQ1YzFj
NjJmZS4uZGIyZjY2Y2M3NGMzMDEyMzdhNDI0MTFhZjIwMmUxZTkwNGJjNzAyMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApA
QCAtMzIyOCwzICszMjI4LDkgQEAgQlVHX0FOVE9OTSBXSU4gTElOVVggOiBzdmcvVzNDLVNWRy0x
LjEvYW5pbWF0ZS1lbGVtLTMwLXQuc3ZnID0gSU1BR0UKIEJVR19BTlRPTk0gV0lOIExJTlVYIDog
c3ZnL2NhcnRvLm5ldC9zZWxlY3Rpb25saXN0LnN2ZyA9IElNQUdFCiBCVUdfQU5UT05NIFdJTiBM
SU5VWCA6IHN2Zy9jdXN0b20vaW1hZ2Utc21hbGwtd2lkdGgtaGVpZ2h0LnN2ZyA9IElNQUdFIAog
QlVHX0FOVE9OTSBMSU5VWCA6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2hpbmRpLXdoaXRlc3Bh
Y2UuaHRtbCA9IElNQUdFK1RFWFQKKworLy8gUmVtb3ZlIHRoZXNlIG9uY2UgdGhlIENocm9taXVt
IHNpZGUgaGFzIGNhdWdodCBvbiB3aXRoIG11bHRpcGxlIHNwZWVjaCBpbnB1dCByZXN1bHRzLgor
QlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sID0g
VEVYVAorQlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1YWdlLXRhZy5odG1s
ID0gVEVYVAorQlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5o
dG1sID0gVEVYVAorQlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9yZS1n
ZW5lcmF0ZWQtZXZlbnRzLmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZmJjN2I1YzQwZTA1ZDI5Y2Uw
YmJhNmZkNTUwYmEzMzFmYjZiYmUxLi4yMTc0OGFlZDQ0MjljMWQ5YTJhMDRkYWEyYzkxOGU2Nzdh
YmVhOWNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTMyOSw2ICszMjksOSBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMK
ICAgICBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAogICAgIHBhZ2UvUG9zaXRpb25FcnJvci5p
ZGwKICAgICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCisg
ICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKKyAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0
TGlzdC5pZGwKICAgICBwYWdlL1dlYktpdFBvaW50LmlkbAogICAgIHBhZ2UvV29ya2VyTmF2aWdh
dG9yLmlkbAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGMzYjU3YTJiNjUxNWJkNGNiNGNmY2I1NDRhYTEwNGNhMjI5MGVlMjcuLmJhZjA4
ZDk2MGQ4ODM3MzhmYmY1ZTNjMTRlMmZkYWFmMWQ1MmU2M2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTAt
MTEtMTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1dCBldmVu
dCwgc2VuZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0aW9uIHJl
c3VsdHMgYW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDk3MzYKKworICAgICAgICBDdXJyZW50bHkgdGhlIHNwZWVjaCBpbnB1dCBl
dmVudCAnb253ZWJraXRzcGVlY2hjaGFuZ2UnIHJlY2VpdmVzIG5vIHBhcmFtZXRlcnMuIFdlYkNv
cmUgYWxyZWFkeQorICAgICAgICBoYXMgdGhlIGZ1bGwgbGlzdCBvZiByZWNvZ25pdGlvbiByZXN1
bHRzIGFuZCBwb3B1bGF0ZXMgb25seSB0aGUgdG9wIHJlc3VsdCBpbnRvIHRoZSBpbnB1dCBmaWVs
ZAorICAgICAgICBhdXRvbWF0aWNhbGx5LiBJbiB0aGlzIHBhdGNoIHdlIHBhc3MgYSBTcGVlY2hJ
bnB1dEV2ZW50IG9iamVjdCB0byB0aGUgZXZlbnQgaGFuZGxlciwgYW5kIHRoZSBKUworICAgICAg
ICBjb2RlIGNhbiBhY2Nlc3MgdGhlIGZ1bGwgbGlzdCBvZiByZXN1bHRzIHZpYSAiZXZlbnQucmVz
dWx0cy5sZW5ndGgiLCAicmVzdWx0c1tpXS51dHRlcmFuY2UiIGFuZAorICAgICAgICAicmVzdWx0
c1tpXS5jb25maWRlbmNlIi4gQWxzbyB1cGRhdGVkIG1vY2sgb2JqZWN0IHdpdGggYXBwcm9wcmlh
dGUgbWV0aG9kcyB0byB0ZXN0IG11bHRpcGxlIHJlc3VsdHMuCisKKyAgICAgICAgVGVzdDogZmFz
dC9zcGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbAorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBB
ZGRlZCBuZXcgZXZlbnQKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KTogQWRkZWQgbmV3IGV2ZW50CisgICAgICAg
ICogZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojppc1NwZWVjaElucHV0
RXZlbnQpOgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAg
ICogcGFnZS9TcGVlY2hJbnB1dEV2ZW50Lmg6IE5ldyBmaWxlIGltcGxlbWVudGluZyBTcGVlY2hJ
bnB1dEV2ZW50LmlkbAorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRFdmVudDo6flNwZWVj
aElucHV0RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRFdmVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6OmlzU3BlZWNoSW5wdXRFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dEV2ZW50OjpyZXN1bHRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6OlNwZWVjaElucHV0RXZlbnQpOgorICAgICAg
ICAqIHBhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGw6IE5ldyBmaWxlIGRlZmluaW5nIFNwZWVjaElu
cHV0RXZlbnQgb2JqZWN0CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmg6Cisg
ICAgICAgICogcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
cGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0UmVz
dWx0Lmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGw6IE5ldyBmaWxlIGRl
ZmluaW5nIGEgc2luZ2xlIFNwZWVjaElucHV0UmVzdWx0IG9iamVjdAorICAgICAgICAqIHBhZ2Uv
U3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmg6IE5ldyBmaWxlIGltcGxlbWVudGluZyBTcGVlY2hJbnB1
dFJlc3VsdExpc3QuaWRsCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6Omxlbmd0
aCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6Oml0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0OjpTcGVlY2hJbnB1dFJlc3VsdExp
c3QpOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbDogTmV3IGZpbGUg
ZGVmaW5pbmcgYSBsaXN0IG9mIFNwZWVjaElucHV0UmVzdWx0IG9iamVjdHMKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hJbnB1dENsaWVudE1vY2s6OmFkZFJlY29nbml0aW9uUmVzdWx0KTogUmVuYW1lZCBt
ZXRob2QgYW5kIGFkZGVkIG9uZSBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJ
bnB1dENsaWVudE1vY2s6OmNsZWFyUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJ
bnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9u
RWxlbWVudDo6c2V0UmVjb2duaXRpb25SZXN1bHQpOiBQYXNzIG5ldyBldmVudCBvYmplY3QgdG8g
aGFuZGxlci4KKwogMjAxMC0xMS0yMiAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5A
cmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBl
NWZlMmE3OTA1MjU1ZTlkYTU3MmU2MjFjOWU2MGY4MjRkMjY2Njg2Li43NzE1MTBiNjg0M2I4MjY5
NmM4ODc3N2Y2NWQ4NDhkM2Y3ODYwZmNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIxNTYsMTEgKzIxNTYsMTUgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3Bw
IFwKIAlXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAJV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0Q2xpZW50LmggXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmNwcCBc
CisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuaCBcCiAJV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0LmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmggXAogCVdlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dExpc3RlbmVyLmggXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3Vs
dC5jcHAgXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5oIFwKKwlXZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
UmVzdWx0TGlzdC5oIFwKIAlXZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5jcHAgXAogCVdl
YkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVyLmggXAogCVdlYkNvcmUvcGFnZS9Vc2VyQ29udGVu
dFR5cGVzLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBhZjc4MmE2YmVlYmIyY2Q1NDZmZjM4YjZkMDc4NjhjZjU1NTlhMWRk
Li5jNWJhZDYyNTQyMWFmNjZkOGY2NmI1NTZjNDVlZDJmMDJjOTZkZWFhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjUwLDYg
KzI1MCw5IEBACiAgICAgICAgICAgICAncGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwnLAogICAg
ICAgICAgICAgJ3BhZ2UvUG9zaXRpb25FcnJvci5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvU2Ny
ZWVuLmlkbCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbCcsCisgICAg
ICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwnLAorICAgICAgICAgICAgJ3BhZ2Uv
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9XZWJLaXRQb2lu
dC5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvV29ya2VyTmF2aWdhdG9yLmlkbCcsCiAgICAgICAg
ICAgICAncGx1Z2lucy9ET01NaW1lVHlwZS5pZGwnLApAQCAtMjI4OSw5ICsyMjkyLDEzIEBACiAg
ICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3Bl
ZWNoSW5wdXQuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dENsaWVudC5oJywKKyAg
ICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0RXZlbnQuY3BwJywKKyAgICAgICAgICAgICdwYWdl
L1NwZWVjaElucHV0RXZlbnQuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dExpc3Rl
bmVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuY3BwJywKICAgICAg
ICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0LmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3Bl
ZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJl
c3VsdExpc3QuaCcsCiAgICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9TdXNwZW5kYWJsZVRpbWVyLmgnLAogICAgICAgICAgICAgJ3BhZ2Uv
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
cHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCBlYzIxM2Q2MGI4NDViMzEzNzEyMTc5OTMx
ZWM2YTM4OTUyNWZiYWQ4Li5jMDViM2E0NzQ5ZmJmZmNiZWU3MTgyYTFlYTk1YjFlMjRmMDE1ZTcx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cmkKQEAgLTMxMSw2ICszMTEsOSBAQCBJRExfQklORElOR1MgKz0gXAogICAgIHBhZ2UvUGVyZm9y
bWFuY2VUaW1pbmcuaWRsIFwKICAgICBwYWdlL1Bvc2l0aW9uRXJyb3IuaWRsIFwKICAgICBwYWdl
L1NjcmVlbi5pZGwgXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwgXAorICAgIHBhZ2Uv
U3BlZWNoSW5wdXRSZXN1bHQuaWRsIFwKKyAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5p
ZGwgXAogICAgIHBhZ2UvV2ViS2l0UG9pbnQuaWRsIFwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRv
ci5pZGwgXAogICAgIHBsdWdpbnMvRE9NUGx1Z2luLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2NzE0ODkzNDAxZTgwMjBl
MjI2OWJiNTM0NzViMzZhZjllNWE5NmFkLi4wODk3ZDkwZWM5OGExZjI3NDRmNTA0ZTc5YWRiMTU1
ZGRjN2VhYzliIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTIwMTEsOCArMjAxMSwxMCBAQCBIRUFERVJTICs9IFwKICAgICBwYWdl
L1NwYXRpYWxOYXZpZ2F0aW9uLmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXQuaCBcCiAgICAgcGFn
ZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKKyAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuaCBcCiAg
ICAgcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1
bHQuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBcCiAgICAgcGFnZS9XaW5k
b3dGZWF0dXJlcy5oIFwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5oIFwKICAgICBwYWdlL1hT
U0F1ZGl0b3IuaCBcCkBAIC0zMTM0LDcgKzMxMzYsOSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfU0hBUkVEX1dPUktFUlM9MSkgewogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lOUFVUX1NQ
RUVDSD0xKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIHBhZ2UvU3BlZWNoSW5wdXQuY3Bw
IFwKKyAgICAgICAgcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmNwcCBcCiAgICAgICAgIHBhZ2UvU3Bl
ZWNoSW5wdXRSZXN1bHQuY3BwIFwKKyAgICAgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3Qu
Y3BwIFwKICAgICAgICAgcmVuZGVyaW5nL1JlbmRlcklucHV0U3BlZWNoLmNwcAogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMzMjY2YTEwZTFjOGRk
MWNjMGMxMjYwOTk5NGRhMzBkZWVmMDA1M2UuLjdlOTZmZDQ5YTI5Zjg4ZTVmNTExMDNiYjFkNGUz
ZjMxMDc0Y2E5YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTEwLDYgKzE1MTAsMTAgQEAKIAkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8qIFNw
ZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzUzNUJDOTMxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50
TW9jay5oICovOyB9OwogCQk3NTQxMzNBODEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCAq
LzsgfTsKIAkJNzU0MTMzQUExMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0
MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovOyB9
OworCQk3NTQxNUFGRDEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVBRjgxMjk1OEQ1
RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuaCAqLzsgfTsKKwkJNzU0MTVCMDAxMjk1OEQ1
RTAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVBRkIxMjk1OEQ1RTAwM0FENjY5IC8qIFNw
ZWVjaElucHV0UmVzdWx0TGlzdC5oICovOyB9OworCQk3NTQxNUMyODEyOUE5OTIwMDAzQUQ2Njkg
LyogU3BlZWNoSW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTQxNUMyNjEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVu
dC5jcHAgKi87IH07CisJCTc1NDE1QzI5MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJl
c3VsdExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU0MTVDMjcxMjlBOTkyMDAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAg
Ki87IH07CiAJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTND
RkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJ
NzU1M0NGRTkxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNzEwOEY0
NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLzsgfTsKIAkJNzU3OEY5
MEIxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5jcHAgKi87IH07CkBAIC03NjUxLDYgKzc2NTUsMTMgQEAKIAkJNzUzNUJDOTMx
MjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBTcGVlY2hJbnB1dENsaWVudE1vY2suaDsgcGF0aCA9IG1vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1
NDEzM0E3MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0MTMzQTkxMDJFMDBGNDAwMDc1RDAwIC8qIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1NDE1QUY4MTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0RXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVBRjkxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVj
aElucHV0RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaElucHV0RXZlbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUFGQTEyOTU4RDVFMDAzQUQ2
NjkgLyogU3BlZWNoSW5wdXRSZXN1bHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVj
aElucHV0UmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVBRkIx
Mjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVBRkMxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0
UmVzdWx0TGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoSW5wdXRSZXN1bHRM
aXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVDMjYxMjlBOTkyMDAw
M0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlZWNoSW5wdXRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTc1NDE1QzI3MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU1M0NGRTYxMDhGNDcz
RjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUaW1lbGluZVJlY29yZEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTc4RjkwODEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3BlZWNoSW5wdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTMzMDIsOSArMTMzMTMsMTYgQEAKIAkJCQk3NTc4RjkwODExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXQuY3BwICovLAogCQkJCTc1NzhGOTA5MTFEREYyNjkwMEQ5MzNDNSAvKiBT
cGVlY2hJbnB1dC5oICovLAogCQkJCTc1NzhGOTBBMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oICovLAorCQkJCTc1NDE1QzI2MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJ
bnB1dEV2ZW50LmNwcCAqLywKKwkJCQk3NTQxNUFGODEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNo
SW5wdXRFdmVudC5oICovLAorCQkJCTc1NDE1QUY5MTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJ
bnB1dEV2ZW50LmlkbCAqLywKIAkJCQk3NTc4RjkxRTExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRMaXN0ZW5lci5oICovLAogCQkJCTc1ODk3OEVBMTI3MDkwRDYwMDc2RDVBOSAvKiBTcGVl
Y2hJbnB1dFJlc3VsdC5jcHAgKi8sCiAJCQkJNzU4OTc4RUIxMjcwOTBENjAwNzZENUE5IC8qIFNw
ZWVjaElucHV0UmVzdWx0LmggKi8sCisJCQkJNzU0MTVBRkExMjk1OEQ1RTAwM0FENjY5IC8qIFNw
ZWVjaElucHV0UmVzdWx0LmlkbCAqLywKKwkJCQk3NTQxNUMyNzEyOUE5OTIwMDAzQUQ2NjkgLyog
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCAqLywKKwkJCQk3NTQxNUFGQjEyOTU4RDVFMDAzQUQ2
NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8sCisJCQkJNzU0MTVBRkMxMjk1OEQ1RTAw
M0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwgKi8sCiAJCQkJNjJDMTIxN0ExMUFC
OUU3NjAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwICovLAogCQkJCTYyQzEyMTdCMTFB
QjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmggKi8sCiAJCQkJMDAzRjFGRTkxMUU2
QUI0MzAwODI1OEQ5IC8qIFVzZXJDb250ZW50VHlwZXMuaCAqLywKQEAgLTIxMjkxLDYgKzIxMzA5
LDggQEAKIAkJCQlFMUFEMTQyMTEyOTVFQTZCMDBBQ0E5ODkgLyogSlNIVE1MRW1iZWRFbGVtZW50
Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFEMTQyMzEyOTVFQTdGMDBBQ0E5ODkgLyog
SlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFEMTQyNTEy
OTVFQTk1MDBBQ0E5ODkgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNzU0MTVBRkQxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTc1NDE1QjAwMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1
dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjM4NDgsNiArMjM4NjgsOCBAQAogCQkJ
CUUxQUQxMkQ2MTI5NUQwQkQwMEFDQTk4OSAvKiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbkN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTM5QjEyOTVEOTI2MDBBQ0E5ODkgLyogSlNI
VE1MTGlua0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBRDEzOUUxMjk1
RDk2MTAwQUNBOTg5IC8qIEpTSFRNTFN0eWxlRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk3NTQxNUMyODEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3NTQxNUMyOTEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1
c3RvbS5jcHAKaW5kZXggZDY3MWRlZTQyMDZlNWU4NzVjZWU3M2I4ZmU3MmFkMTYzYjZmOTVhYy4u
ZmQ4MDM2MGE3M2JlZTYyMTcxZTMyOTE2ZTA0MzZmMzVmYTI1OGQxNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRXZlbnRDdXN0b20uY3BwCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAiSlNQYWdl
VHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNQb3BTdGF0ZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiSlNQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiSlNTcGVlY2hJbnB1dEV2ZW50LmgiCiAj
aW5jbHVkZSAiSlNUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJKU1VJRXZlbnQuaCIKICNpbmNsdWRl
ICJKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmgiCkBAIC02OCw2ICs2OSw3IEBACiAjaW5jbHVkZSAi
UGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBvcFN0YXRlRXZlbnQuaCIKICNpbmNs
dWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRFdmVudC5oIgogI2lu
Y2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlVJRXZlbnQuaCIKICNpbmNsdWRlICJXZWJL
aXRBbmltYXRpb25FdmVudC5oIgpAQCAtMTkzLDYgKzE5NSwxMCBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFdmVudCogZXZl
bnQpCiAgICAgZWxzZSBpZiAoZXZlbnQtPmlzQXVkaW9Qcm9jZXNzaW5nRXZlbnQoKSkKICAgICAg
ICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0
LCBBdWRpb1Byb2Nlc3NpbmdFdmVudCwgZXZlbnQpOwogI2VuZGlmCisjaWYgRU5BQkxFKElOUFVU
X1NQRUVDSCkKKyAgICBlbHNlIGlmIChldmVudC0+aXNTcGVlY2hJbnB1dEV2ZW50KCkpCisgICAg
ICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVj
dCwgU3BlZWNoSW5wdXRFdmVudCwgZXZlbnQpOworI2VuZGlmCiAgICAgZWxzZQogICAgICAgICB3
cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEV2
ZW50LCBldmVudCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RXZlbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudEN1c3Rv
bS5jcHAKaW5kZXggYmI4ODViOTg3MDY0N2Q1Y2Q4OTE5NGIyMDFhYzI4ZWNlNmE0OTliNy4uZmY5
Yjk4YjIzMWU0ZTViMTIzYjE1ZTE1YThkNTM4NDE1NGRhNmUxNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhFdmVudEN1c3RvbS5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNs
dWRlICJWOFBvcFN0YXRlRXZlbnQuaCIKICNpbmNsdWRlICJWOFByb2dyZXNzRXZlbnQuaCIKICNp
bmNsdWRlICJWOFByb3h5LmgiCisjaW5jbHVkZSAiVjhTcGVlY2hJbnB1dEV2ZW50LmgiCiAjaW5j
bHVkZSAiVjhTdG9yYWdlRXZlbnQuaCIKICNpbmNsdWRlICJWOFRleHRFdmVudC5oIgogI2luY2x1
ZGUgIlY4VG91Y2hFdmVudC5oIgpAQCAtMTcyLDYgKzE3MywxMCBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOChFdmVudCogaW1wbCkKICAgICBpZiAoaW1wbC0+aXNBdWRpb1Byb2Nlc3NpbmdF
dmVudCgpKQogICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDxBdWRpb1Byb2Nlc3NpbmdF
dmVudCo+KGltcGwpKTsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgaWYg
KGltcGwtPmlzU3BlZWNoSW5wdXRFdmVudCgpKQorICAgICAgICByZXR1cm4gdG9WOChzdGF0aWNf
Y2FzdDxTcGVlY2hJbnB1dEV2ZW50Kj4oaW1wbCkpOworI2VuZGlmCiAgICAgaWYgKGltcGwtPmlz
Q3VzdG9tRXZlbnQoKSkKICAgICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8Q3VzdG9tRXZl
bnQqPihpbXBsKSk7CiAgICAgcmV0dXJuIFY4RXZlbnQ6OndyYXAoaW1wbCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKaW5kZXggYzhk
YTQ2MTdlY2YyMzQ1OWFlNGZhMTkwMGRkMzU0M2NiMjgzYjNkYy4uYTk0OWZkNTIzZTVlZTE5ODNm
ZDhhODEyZWIzZDI0Njk4YmVjZjI2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuY3Bw
CisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMjM2LDYgKzIzNiwxMyBAQCBib29sIEV2
ZW50Ojppc0F1ZGlvUHJvY2Vzc2luZ0V2ZW50KCkgY29uc3QKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKElOUFVUX1NQRUVDSCkKK2Jvb2wgRXZlbnQ6OmlzU3BlZWNoSW5wdXRFdmVudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIGJvb2wgRXZlbnQ6OmZyb21Vc2Vy
R2VzdHVyZSgpCiB7CiAgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvV2ViQ29yZS9k
b20vRXZlbnQuaAppbmRleCAwZDJmMmI5OTNlYTU1OTc4NGY2NTZmZmFhMGRhOWI1ZTgyNmRiNjEw
Li5mMDVkMzZjOTAwMDAxNTIyNmE2ODBjMTIxNjQwYmZmNDdhZTIyNDgzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKQEAgLTE0Miw2ICsx
NDIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Rldmlj
ZU1vdGlvbkV2ZW50KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RldmljZU9yaWVu
dGF0aW9uRXZlbnQoKSBjb25zdDsKICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc1NwZWVjaElucHV0RXZlbnQoKSBjb25zdDsKKyNlbmRpZgog
ICAgICAgICBib29sIGZyb21Vc2VyR2VzdHVyZSgpOwogICAgICAgICAKICAgICAgICAgYm9vbCBw
cm9wYWdhdGlvblN0b3BwZWQoKSBjb25zdCB7IHJldHVybiBtX3Byb3BhZ2F0aW9uU3RvcHBlZCB8
fCBtX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCmluZGV4IDk1NGFhYjI0N2Y4OGQ4Y2QyYjQ1N2M5YTAwNDFjODg4OTcwOThlMWEuLmZjYjJi
ZThkNjg2ODlmNWYxMTBjMzRlYjAyY2FlMTQ2MGMyOTM5MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKQEAgLTE5MzcsMTEgKzE5MzcsNiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6Omlz
U3BlZWNoRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OmRpc3BhdGNoV2Via2l0U3BlZWNoQ2hhbmdlRXZlbnQoKQotewotICAgIEFT
U0VSVChpc1NwZWVjaEVuYWJsZWQoKSk7Ci0gICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS53ZWJraXRzcGVlY2hjaGFuZ2VFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKLX0K
ICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggOGY2
YTQ3MTkzMDNiNGU2OGEwMDQ2NTQzMTlhY2JkMjFhZWU3ZTYyOS4uNTI0NjBjN2Q0NzRiNjZmODcz
ZjFkYTM5M2ZhZWRhNTFkZGNhNDczNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMDgs
NyArMTA4LDYgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKICAgICB2aXJ0
dWFsIGJvb2wgaXNTcGVlY2hFbmFibGVkKCkgY29uc3Q7Ci0gICAgdm9pZCBkaXNwYXRjaFdlYmtp
dFNwZWVjaENoYW5nZUV2ZW50KCk7CiAjZW5kaWYKIAogICAgIGJvb2wgY2hlY2tlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hlY2tlZDsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0RXZlbnQuY3BwIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE4MTMyMmZkNGE2NGE2NTk1OTY5ODBmODRkYWQ3ZTE1NmFiZTI5ZmUKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5jcHAKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dEV2ZW50LmgiCisKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQ
dHI8U3BlZWNoSW5wdXRFdmVudD4gU3BlZWNoSW5wdXRFdmVudDo6Y3JlYXRlKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHRz
KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoSW5wdXRFdmVudChldmVudFR5cGUs
IHJlc3VsdHMpKTsKK30KKworU3BlZWNoSW5wdXRFdmVudDo6flNwZWVjaElucHV0RXZlbnQoKSB7
Cit9CisKK1NwZWVjaElucHV0RXZlbnQ6OlNwZWVjaElucHV0RXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGNvbnN0IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmIHJlc3VsdHMpCisg
ICAgOiBFdmVudChldmVudFR5cGUsIHRydWUsIGZhbHNlKSAvLyBDYW4gYnViYmxlLCBub3QgY2Fu
Y2VsYWJsZQorICAgICwgbV9yZXN1bHRzKFNwZWVjaElucHV0UmVzdWx0TGlzdDo6Y3JlYXRlKHJl
c3VsdHMpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZl
bnQuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEzOWYz
Y2RlM2E5OTg0NmQ1YjIxNDM2YjFlYjQyM2IyMzc3OGIyYQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05F
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgU3BlZWNoSW5wdXRFdmVudF9oCisjZGVmaW5lIFNwZWVjaElucHV0RXZlbnRfaAor
CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVk
ZSAiU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaElucHV0RXZlbnQgOiBwdWJsaWMg
RXZlbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNwZWVjaElucHV0RXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3BlZWNoSW5wdXRS
ZXN1bHRBcnJheSYgcmVzdWx0cyk7CisgICAgflNwZWVjaElucHV0RXZlbnQoKTsKKworICAgIHZp
cnR1YWwgYm9vbCBpc1NwZWVjaElucHV0RXZlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisK
KyAgICBTcGVlY2hJbnB1dFJlc3VsdExpc3QqIHJlc3VsdHMoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3VsdHMuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBTcGVlY2hJbnB1dEV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5JiByZXN1
bHRzKTsKKworICAgIFJlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdExpc3Q+IG1fcmVzdWx0czsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVF
Q0gpCisKKyNlbmRpZiAvLyBTcGVlY2hJbnB1dEV2ZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jNDYxNDgzNDE1ZDVjYTg5YTU1MTEzZmRhNTdjNjA5MTRlOGZjYWIy
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gKKyAgICBdIFNwZWVjaElucHV0RXZl
bnQgOiBFdmVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTcGVlY2hJbnB1dFJlc3Vs
dExpc3QgcmVzdWx0czsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApp
bmRleCA1NjhiMWI3YjYyZjAyODE2NzZhNzE1NjgyNzY3MjU3YWYxMDkyMjNkLi43NDE1MzAxMjcy
OTQ4NTZkY2QwMmFhMTcxNWNjNTk4MWZjMmMyMTYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRMaXN0ZW5lci5oCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dExpc3Rl
bmVyLmgKQEAgLTM4LDggKzM4LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi10eXBlZGVm
IFZlY3RvcjxSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHQ+ID4gU3BlZWNoSW5wdXRSZXN1bHRBcnJh
eTsKLQogLy8gSW50ZXJmYWNlIHRvIGJlIGltcGxlbWVudGVkIGJ5IHRoZSBlbGVtZW50IHdoaWNo
IGludm9rZXMgU3BlZWNoSW5wdXQuCiBjbGFzcyBTcGVlY2hJbnB1dExpc3RlbmVyIHsKIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5jcHAgYi9XZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuY3BwCmluZGV4IGY1YjY5NzJmMDIyM2E1NTM5MWE1
YzE5NzEzMTE3MjU3YTE1NjMwMTUuLjFjMDQyYTA1NjEwMWZkMjFhZWUzZDQ1NDI0MGFjODU1MzRh
ZGQ0OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5jcHAKKysr
IGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcApAQCAtMzUsNiArMzUsMTEgQEAg
UGFzc1JlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdD4gU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIHV0dGVyYW5jZSwKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWVjaElu
cHV0UmVzdWx0KHV0dGVyYW5jZSwgY29uZmlkZW5jZSkpOwogfQogCitQYXNzUmVmUHRyPFNwZWVj
aElucHV0UmVzdWx0PiBTcGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKGNvbnN0IFNwZWVjaElucHV0
UmVzdWx0JiBzb3VyY2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hJbnB1dFJl
c3VsdChzb3VyY2UubV91dHRlcmFuY2UsIHNvdXJjZS5tX2NvbmZpZGVuY2UpKTsKK30KKwogU3Bl
ZWNoSW5wdXRSZXN1bHQ6OlNwZWVjaElucHV0UmVzdWx0KGNvbnN0IFN0cmluZyYgdXR0ZXJhbmNl
LCBkb3VibGUgY29uZmlkZW5jZSkKICAgICA6IG1fdXR0ZXJhbmNlKHV0dGVyYW5jZSkKICAgICAs
IG1fY29uZmlkZW5jZShjb25maWRlbmNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0UmVzdWx0LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaAppbmRleCBl
ZjlmZDEwMmM5NDg0ZWMyODRkOWYyZmIzODQ2OGVjYmMwMjI0M2QxLi40NTdmMDc4MzU3OWNjOWYw
ODZiNzQ1ZmYyNDFiOTFlZTQ5NTEzYjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU3BlZWNo
SW5wdXRSZXN1bHQuaAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaApAQCAt
MzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBmaWVsZHMsIGFzIHJlY2VpdmVk
IGZyb20gdGhlIGVtYmVkZGVyLgogY2xhc3MgU3BlZWNoSW5wdXRSZXN1bHQgOiBwdWJsaWMgUmVm
Q291bnRlZDxTcGVlY2hJbnB1dFJlc3VsdD4gewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWVjaElucHV0UmVzdWx0PiBjcmVhdGUoY29uc3QgU3BlZWNoSW5wdXRSZXN1bHQmIHNv
dXJjZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHQ+IGNyZWF0ZShj
b25zdCBTdHJpbmcmIHV0dGVyYW5jZSwgZG91YmxlIGNvbmZpZGVuY2UpOwogCiAgICAgZG91Ymxl
IGNvbmZpZGVuY2UoKSBjb25zdDsKQEAgLTUwLDYgKzUxLDggQEAgcHJpdmF0ZToKICAgICBkb3Vi
bGUgbV9jb25maWRlbmNlOwogfTsKIAordHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNwZWVjaElucHV0
UmVzdWx0PiA+IFNwZWVjaElucHV0UmVzdWx0QXJyYXk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVz
dWx0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNjg4ZGU0N2FkZGJlNGNlYmNkMDMzNjJkYzllNjM1NGYwYTdh
MmNkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0Lmlk
bApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5QVVRfU1BFRUNICisgICAgXSBTcGVlY2hJbnB1
dFJlc3VsdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXR0ZXJhbmNl
OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgZmxvYXQgY29uZmlkZW5jZTsKKyAgICB9Owor
Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCBi
L1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZmQx
MDhmNTA3ZTAwNjQwZTRiMDMxYWFmYTc3NjhjNDY1NTRjYTQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0UmVzdWx0TGlzdC5oIgorCisj
aWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVm
UHRyPFNwZWVjaElucHV0UmVzdWx0TGlzdD4gU3BlZWNoSW5wdXRSZXN1bHRMaXN0OjpjcmVhdGUo
Y29uc3QgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cykKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNwZWVjaElucHV0UmVzdWx0TGlzdChyZXN1bHRzKSk7Cit9CisKK1NwZWVjaElu
cHV0UmVzdWx0KiBTcGVlY2hJbnB1dFJlc3VsdExpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpCit7
CisgICAgcmV0dXJuIGluZGV4ID49IG1fcmVzdWx0cy5zaXplKCkgPyAwIDogbV9yZXN1bHRzW2lu
ZGV4XS5nZXQoKTsKK30KKworU3BlZWNoSW5wdXRSZXN1bHRMaXN0OjpTcGVlY2hJbnB1dFJlc3Vs
dExpc3QoY29uc3QgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cykKKyAgICA6IG1fcmVz
dWx0cyhyZXN1bHRzKSAvLyBUYWtlcyBhIGNvcHkgb2YgdGhlIGFycmF5IG9mIFJlZlB0cnMuCit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9T
UEVFQ0gpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmgg
Yi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjA1MDYz
MGIxMDdkOTVlNzk1NTcxMGQzYjRiMWNmNzlkNTRhYmRhZQotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBTcGVlY2hJbnB1dFJlc3VsdExpc3RfaAorI2RlZmluZSBTcGVlY2hJbnB1
dFJlc3VsdExpc3RfaAorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2luY2x1ZGUgIlNw
ZWVjaElucHV0UmVzdWx0LmgiCisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNwZWVjaElucHV0UmVzdWx0TGlzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPFNwZWVjaElucHV0UmVzdWx0TGlzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNwZWVjaElucHV0UmVzdWx0TGlzdD4gY3JlYXRlKGNvbnN0IFNwZWVjaElucHV0UmVz
dWx0QXJyYXkmIHJlc3VsdHMpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIHRoZSBJREwuCisgICAg
c2l6ZV90IGxlbmd0aCgpIHsgcmV0dXJuIG1fcmVzdWx0cy5zaXplKCk7IH0KKyAgICBTcGVlY2hJ
bnB1dFJlc3VsdCogaXRlbSh1bnNpZ25lZCBpbmRleCk7CisKK3ByaXZhdGU6CisgICAgU3BlZWNo
SW5wdXRSZXN1bHRMaXN0KGNvbnN0IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmIHJlc3VsdHMpOwor
CisgICAgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYg
Ly8gU3BlZWNoSW5wdXRSZXN1bHRMaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVl
Y2hJbnB1dFJlc3VsdExpc3QuaWRsIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlz
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWEyM2Q0ZjAyMzcwOTQwNjc1MmM1YWY3NDEwZjM4MzVjMTZkOTg4
NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3Qu
aWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRl
cmZhY2UgWworICAgICAgICBIYXNJbmRleEdldHRlciwKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5Q
VVRfU1BFRUNICisgICAgXSBTcGVlY2hJbnB1dFJlc3VsdExpc3QgeworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgICAgIFNwZWVjaElucHV0UmVz
dWx0IGl0ZW0oaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworICAgIH07CisKK30K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2su
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAKaW5k
ZXggODIwMTUyYzIyNmQ1ZjY4NjAxNzU2NjhjYmNlZWZkNDM2ZTBiZTVlNy4uMTZmMjgyNTU4NjUx
NDg3MmEwOTRhOTNiMDc0MTJiNTRjZDVkMmQyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAKQEAgLTgxLDE4ICs4MSwyMSBAQCB2b2lkIFNw
ZWVjaElucHV0Q2xpZW50TW9jazo6Y2FuY2VsUmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCkKICAg
ICB9CiB9CiAKLXZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzZXRSZWNvZ25pdGlvblJlc3Vs
dChjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKK3Zv
aWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjphZGRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJp
bmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3Vh
Z2UpCiB7CiAgICAgaWYgKGxhbmd1YWdlLmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXN1bHRGb3JF
bXB0eUxhbmd1YWdlID0gcmVzdWx0OwotICAgIGVsc2UKLSAgICAgICAgbV9yZWNvZ25pdGlvblJl
c3VsdC5zZXQobGFuZ3VhZ2UsIHJlc3VsdCk7CisgICAgICAgIG1fcmVzdWx0c0ZvckVtcHR5TGFu
Z3VhZ2UuYXBwZW5kKFNwZWVjaElucHV0UmVzdWx0OjpjcmVhdGUocmVzdWx0LCBjb25maWRlbmNl
KSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmICghbV9yZWNvZ25pdGlvblJlc3VsdHMuY29udGFp
bnMobGFuZ3VhZ2UpKQorICAgICAgICAgICAgbV9yZWNvZ25pdGlvblJlc3VsdHMuc2V0KGxhbmd1
YWdlLCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5KCkpOworICAgICAgICBtX3JlY29nbml0aW9uUmVz
dWx0cy5maW5kKGxhbmd1YWdlKS0+c2Vjb25kLmFwcGVuZChTcGVlY2hJbnB1dFJlc3VsdDo6Y3Jl
YXRlKHJlc3VsdCwgY29uZmlkZW5jZSkpOworICAgIH0KIH0KIAogdm9pZCBTcGVlY2hJbnB1dENs
aWVudE1vY2s6OmNsZWFyUmVzdWx0cygpCiB7Ci0gICAgbV9yZXN1bHRGb3JFbXB0eUxhbmd1YWdl
ID0gU3RyaW5nKCk7Ci0gICAgbV9yZWNvZ25pdGlvblJlc3VsdC5jbGVhcigpOworICAgIG1fcmVz
dWx0c0ZvckVtcHR5TGFuZ3VhZ2UuY2xlYXIoKTsKKyAgICBtX3JlY29nbml0aW9uUmVzdWx0cy5j
bGVhcigpOwogfQogCiB2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJlZChXZWJD
b3JlOjpUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1vY2s+KikKQEAgLTEwMiwxOCArMTA1LDE3IEBA
IHZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFNw
ZWVjaElucHV0Q2xpZW50TW9jaz4qKQogICAgICAgICBtX2xpc3RlbmVyLT5kaWRDb21wbGV0ZVJl
Y29yZGluZyhtX3JlcXVlc3RJZCk7CiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIFNwZWVjaElucHV0UmVzdWx0QXJyYXkgcmVzdWx0czsKICAg
ICAgICAgYm9vbCBub1Jlc3VsdHNGb3VuZCA9IGZhbHNlOwogCiAgICAgICAgIC8vIEVtcHR5IGxh
bmd1YWdlIGNhc2UgbXVzdCBiZSBoYW5kbGVkIHNlcGFyYXRlbHkgdG8gYXZvaWQgcHJvYmxlbXMg
d2l0aCBIYXNoTWFwIGFuZCBlbXB0eSBrZXlzLgogICAgICAgICBpZiAobV9sYW5ndWFnZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIGlmICghbV9yZXN1bHRGb3JFbXB0eUxhbmd1YWdlLmlzTnVs
bCgpKQotICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKFNwZWVjaElucHV0UmVzdWx0Ojpj
cmVhdGUobV9yZXN1bHRGb3JFbXB0eUxhbmd1YWdlLCAxLjApKTsKKyAgICAgICAgICAgIGlmICgh
bV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9s
aXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQobV9yZXF1ZXN0SWQsIG1fcmVzdWx0c0ZvckVt
cHR5TGFuZ3VhZ2UpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5vUmVzdWx0
c0ZvdW5kID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtX3JlY29n
bml0aW9uUmVzdWx0LmNvbnRhaW5zKG1fbGFuZ3VhZ2UpKQotICAgICAgICAgICAgICAgIHJlc3Vs
dHMuYXBwZW5kKFNwZWVjaElucHV0UmVzdWx0OjpjcmVhdGUobV9yZWNvZ25pdGlvblJlc3VsdC5n
ZXQobV9sYW5ndWFnZSksIDEuMCkpOworICAgICAgICAgICAgaWYgKG1fcmVjb2duaXRpb25SZXN1
bHRzLmNvbnRhaW5zKG1fbGFuZ3VhZ2UpKQorICAgICAgICAgICAgICAgIG1fbGlzdGVuZXItPnNl
dFJlY29nbml0aW9uUmVzdWx0KG1fcmVxdWVzdElkLCBtX3JlY29nbml0aW9uUmVzdWx0cy5nZXQo
bV9sYW5ndWFnZSkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG5vUmVzdWx0
c0ZvdW5kID0gdHJ1ZTsKICAgICAgICAgfQpAQCAtMTI0LDEwICsxMjYsMTEgQEAgdm9pZCBTcGVl
Y2hJbnB1dENsaWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8U3BlZWNoSW5wdXRD
bGllbnRNb2NrPiopCiAgICAgICAgICAgICBTdHJpbmcgZXJyb3IoImVycm9yOiBubyByZXN1bHQg
Zm91bmQgZm9yIGxhbmd1YWdlICciKTsKICAgICAgICAgICAgIGVycm9yLmFwcGVuZChtX2xhbmd1
YWdlKTsKICAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiJyIpOworICAgICAgICAgICAgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSByZXN1bHRzOwogICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoU3Bl
ZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShlcnJvciwgMS4wKSk7CisgICAgICAgICAgICBtX2xpc3Rl
bmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChtX3JlcXVlc3RJZCwgcmVzdWx0cyk7CiAgICAgICAg
IH0KIAotICAgICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChtX3JlcXVlc3RJ
ZCwgcmVzdWx0cyk7CiAgICAgICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb2duaXRpb24o
bV9yZXF1ZXN0SWQpOwogICAgICAgICBtX3JlcXVlc3RJZCA9IDA7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCmluZGV4IGMyMjE5YjQwNDVj
N2ZiMmIzMTA2ZDI5MTdmMmZmZTdiOTdjZDQ3Y2QuLjZmNzIxOTEwZDE2MTYzYWEzN2YyM2I0MzA1
NTMzZDAwYjFhYTJjYTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRD
bGllbnRNb2NrLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSAiU3BlZWNoSW5wdXRDbGllbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1
dFJlc3VsdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC00OCw3ICs0OSw3IEBAIGNsYXNz
IFNwZWVjaElucHV0Q2xpZW50TW9jayA6IHB1YmxpYyBTcGVlY2hJbnB1dENsaWVudCB7CiBwdWJs
aWM6CiAgICAgU3BlZWNoSW5wdXRDbGllbnRNb2NrKCk7CiAKLSAgICB2b2lkIHNldFJlY29nbml0
aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1
YWdlKTsKKyAgICB2b2lkIGFkZFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0
LCBkb3VibGUgY29uZmlkZW5jZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSk7CiAgICAg
dm9pZCBjbGVhclJlc3VsdHMoKTsKIAogICAgIC8vIFNwZWVjaElucHV0Q2xpZW50IG1ldGhvZHMu
CkBAIC02NSw5ICs2Niw5IEBAIHByaXZhdGU6CiAgICAgU3BlZWNoSW5wdXRMaXN0ZW5lciogbV9s
aXN0ZW5lcjsKICAgICBpbnQgbV9yZXF1ZXN0SWQ7CiAKLSAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiBtX3JlY29nbml0aW9uUmVzdWx0OworICAgIEhhc2hNYXA8U3RyaW5nLCBTcGVlY2hJbnB1
dFJlc3VsdEFycmF5PiBtX3JlY29nbml0aW9uUmVzdWx0czsKICAgICBBdG9taWNTdHJpbmcgbV9s
YW5ndWFnZTsKLSAgICBTdHJpbmcgbV9yZXN1bHRGb3JFbXB0eUxhbmd1YWdlOworICAgIFNwZWVj
aElucHV0UmVzdWx0QXJyYXkgbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwCmluZGV4IGZiYTUyM2U1YjQ5MmZkM2RjZTg2ODQ3NjU1NTA1ZmFlNGI4Nzgx
MjYuLmJhNGM3YmI4NTA2NTdhY2Y5NWNjM2QyMDZhZDM3ZjU1NjkyZDY3YTYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIgogI2luY2x1ZGUg
IlNjcm9sbGJhclRoZW1lLmgiCiAjaW5jbHVkZSAiU3BlZWNoSW5wdXQuaCIKKyNpbmNsdWRlICJT
cGVlY2hJbnB1dEV2ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDc4LDcgKzQ3
OSw3IEBAIHZvaWQgSW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29nbml0aW9u
UmVzdWx0KGludCwgY29uc3QgU3BlZWNoSW5wdXRSCiAgICAgLy8gaGVyZSwgd2UgdGFrZSBhIHRl
bXBvcmFyeSByZWZlcmVuY2UuCiAgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGhvbGRSZWYo
aW5wdXQpOwogICAgIGlucHV0LT5zZXRWYWx1ZShyZXN1bHRzLmlzRW1wdHkoKSA/ICIiIDogcmVz
dWx0c1swXS0+dXR0ZXJhbmNlKCkpOwotICAgIGlucHV0LT5kaXNwYXRjaFdlYmtpdFNwZWVjaENo
YW5nZUV2ZW50KCk7CisgICAgaW5wdXQtPmRpc3BhdGNoRXZlbnQoU3BlZWNoSW5wdXRFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRzcGVlY2hjaGFuZ2VFdmVudCwgcmVzdWx0cykpOwog
ICAgIHJlbmRlcmVyKCktPnJlcGFpbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjlkMTk5Yzlj
ZGQzZWJkMTE5NDA1ZDExNjIyYzNhMzRkYWI1NzUyMi4uOWRkMTBjN2Q3YWIxM2IwNTAwZGRiNWY3
Nzk3OThkMWUxNzE0NDlhYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEt
MTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1dCBldmVudCwg
c2VuZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0aW9uIHJlc3Vs
dHMgYW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDk3MzYKKworICAgICAgICBVcGRhdGVkIG1vY2sgb2JqZWN0J3MgbWV0aG9kIHRv
IG5ldyBzaWduYXR1cmUuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9jay5oOgorICAgICAgICAqIHNyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBs
OjphZGRNb2NrUmVjb2duaXRpb25SZXN1bHQpOgorICAgICAgICAqIHNyYy9XZWJTcGVlY2hJbnB1
dENvbnRyb2xsZXJNb2NrSW1wbC5oOgorCiAyMDEwLTExLTIyICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gUGFydGlhbGx5IHJv
bGwgb3V0IHI3MjI4Mi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU3Bl
ZWNoSW5wdXRDb250cm9sbGVyTW9jay5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrLmgKaW5kZXggMzE2NzJiYTBhYWNmMzBhYzlkMjI0NzdmZjU5
MjYwNTFkOWVlZDQ1Yi4uZTQ0MGI4OWE1NjZjZDAwMTY2ZDVmYjZjNTI0MGFjOGIxODgxNDdmYiAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xs
ZXJNb2NrLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRy
b2xsZXJNb2NrLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgICAgICBXZWJTcGVlY2hJ
bnB1dExpc3RlbmVyKiBsaXN0ZW5lcik7CiAgICAgdmlydHVhbCB+V2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyTW9jaygpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHNldE1vY2tSZWNvZ25pdGlvblJl
c3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2Vi
U3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1
YWdlKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJSZXN1bHRzKCkgPSAwOwogfTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
a0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJN
b2NrSW1wbC5jcHAKaW5kZXggOGNmNzg0ODc4MjRlYmY1MzdkZTI5YTQ4YmY4MDZjOWM1OWJlYzc4
Yy4uNDhmOGI1MDdkN2VjODkxM2IyMjZlNzllZDA0YWMyNGVlZjQ0MzEwYyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1w
bC5jcHAKQEAgLTU1LDkgKzU1LDkgQEAgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6
On5XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbCgpCiAgICAgbV93ZWJjb3JlTW9jay0+
c2V0TGlzdGVuZXIoMCk7CiB9CiAKLXZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0lt
cGw6OnNldE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwgY29u
c3QgV2ViU3RyaW5nICZsYW5ndWFnZSkKK3ZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
a0ltcGw6OmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwg
ZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyAmbGFuZ3VhZ2UpCiB7Ci0gICAgbV93
ZWJjb3JlTW9jay0+c2V0UmVjb2duaXRpb25SZXN1bHQocmVzdWx0LCBsYW5ndWFnZSk7CisgICAg
bV93ZWJjb3JlTW9jay0+YWRkUmVjb2duaXRpb25SZXN1bHQocmVzdWx0LCBjb25maWRlbmNlLCBs
YW5ndWFnZSk7CiB9CiAKIHZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OmNs
ZWFyUmVzdWx0cygpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElu
cHV0Q29udHJvbGxlck1vY2tJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVjaElu
cHV0Q29udHJvbGxlck1vY2tJbXBsLmgKaW5kZXggNzY4MDg3MzkyNjhiOWRhYmNjZDNhNWM4ODVl
NGMyNDk2MGU4ZWJlNC4uYmYwMGVkMDNmNzQyMTBiZDI2MDA5YTRjMGUxNzAyNWEwZmQ5NzVjZCAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJN
b2NrSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9s
bGVyTW9ja0ltcGwuaApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wUmVj
b3JkaW5nKGludCByZXF1ZXN0SWQpOwogCiAgICAgLy8gV2ViU3BlZWNoSW5wdXRDb250cm9sbGVy
TW9jayBtZXRob2RzLgotICAgIHZvaWQgc2V0TW9ja1JlY29nbml0aW9uUmVzdWx0KGNvbnN0IFdl
YlN0cmluZyYgcmVzdWx0LCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKTsKKyAgICB2b2lkIGFk
ZE1vY2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNv
bmZpZGVuY2UsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpOwogICAgIHZvaWQgY2xlYXJSZXN1
bHRzKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggNGEwMTZjMWYxODE0NTcxNWU5YTAxYTNkMmVmNmMw
NTEzNmRhYWIwZi4uMDYxMjQ1MDIwNWJlN2ZiZWE2MDdiZmZmNWEzZTUwZmIxOTY2OTlhMCAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDMyIEBACisyMDEwLTExLTE4ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgorCisgICAg
ICAgIEZvciBzcGVlY2ggaW5wdXQgZXZlbnQsIHNlbmQgYW4gZXZlbnQgb2JqZWN0IGNvbnRhaW5p
bmcgYWxsIHRoZSByZWNvZ25pdGlvbiByZXN1bHRzIGFuZCBtZXRhZGF0YS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzM2CisKKyAgICAgICAgVXBk
YXRlZCBEUlQgYnkgcmVuYW1pbmcgdGhlIG1vY2sgcmVzdWx0IG1ldGhvZCBvbiBhbGwgcGxhdGZv
cm1zIHRvIHRoZSBuZXcgc2lnbmF0dXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
Q2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9u
cyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJl
c3VsdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1
dFJlc3VsdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElu
cHV0UmVzdWx0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9s
bGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNo
SW5wdXRSZXN1bHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdCk6CisKIDIwMTAtMTEtMjIgIEpvw6NvIFBhdWxvIFJlY2hpIFZpdGEgIDxq
cHJ2aXRhQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDI4ZWZlY2JiZDE3YTVlZmZhMDMwOWRkMjViNDRh
ODBiNDYxNTAwMjEuLjU2MjNjNWVmNDc5YjFjZGJmZGEwNDBhY2FjOTcyNjMzNmI3Zjc5M2YgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTEwNzYsMTkgKzEwNzYsMjEgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0TW9ja0dl
b2xvY2F0aW9uRXJyb3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3QKICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1Zh
bHVlUmVmIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVmIGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdENh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICBpZiAoYXJndW1lbnRD
b3VudCA8IDIpCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAzKQogICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gcmVzdWx0KEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1sw
XSwgZXhjZXB0aW9uKSk7CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKIAotICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBsYW5ndWFnZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250
ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOworICAgIGRvdWJsZSBjb25maWRlbmNlID0g
SlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKTsKKworICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBsYW5ndWFnZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOwogICAgIEFTU0VSVCghKmV4
Y2VwdGlvbik7CiAKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQocmVzdWx0Lmdl
dCgpLCBsYW5ndWFnZS5nZXQoKSk7CisgICAgY29udHJvbGxlci0+YWRkTW9ja1NwZWVjaElucHV0
UmVzdWx0KHJlc3VsdC5nZXQoKSwgY29uZmlkZW5jZSwgbGFuZ3VhZ2UuZ2V0KCkpOwogCiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQpAQCAtMTk3Myw3ICsxOTc1
LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0
aW9ucygpCiAgICAgICAgIHsgInNldE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsIHNldE1vY2tEZXZp
Y2VPcmllbnRhdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2Nh
dGlvbkVycm9yIiwgc2V0TW9ja0dlb2xvY2F0aW9uRXJyb3JDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbiIsIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0TW9ja1NwZWVjaElucHV0UmVz
dWx0Iiwgc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAg
eyAiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TmV3V2luZG93c0NvcHlCYWNrRm9yd2FyZExp
c3QiLCBzZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldFBPU0lYTG9jYWxlIiwgc2V0UE9TSVhMb2NhbGVDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbiIsIHNldFBl
cnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGI2
MTg2MGJjNjQ2NTI1ZmM3MDdkMTQ2MjA3MDQ2NDBiNWRjYzgzYzQuLjM5MWY3ZjUwODAwMjVmOGVi
YTY0NmZhOGRjYzUxYzU3NmYwMmIxNmQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRv
dWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJv
dmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uRXJy
b3IoaW50IGNvZGUsIEpTU3RyaW5nUmVmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUg
YWNjdXJhY3kpOwotICAgIHZvaWQgc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVm
IHJlc3VsdCwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpOworICAgIHZvaWQgYWRkTW9ja1NwZWVjaElu
cHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5n
UmVmIGxhbmd1YWdlKTsKICAgICB2b2lkIHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKEpTU3RyaW5nUmVmIHBhdGgpOwogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCBm
bGFnKTsKICAgICB2b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZyk7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYWQwNDE3MGQ5NTk0YTY2N2VlYTk4NWI2MWJiNDdhZjNi
NjlhMWY1OS4uZTUxZWJiMzJmYmMxYzlhNzUzOTg1OWYxZTJkOGNhMjFiNDUxMDBjNSAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTUwLDcgKzE1MCw3IEBAIExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRo
b2QoInNldE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
TW9ja0RldmljZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9jYXRp
b25FcnJvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3Ip
OwogICAgIGJpbmRNZXRob2QoInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik7Ci0gICAgYmluZE1ldGhv
ZCgic2V0TW9ja1NwZWVjaElucHV0UmVzdWx0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRN
b2NrU3BlZWNoSW5wdXRSZXN1bHQpOworICAgIGJpbmRNZXRob2QoImFkZE1vY2tTcGVlY2hJbnB1
dFJlc3VsdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRQb3B1cEJsb2NraW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNl
dFBPU0lYTG9jYWxlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQT1NJWExvY2FsZSk7CiAg
ICAgYmluZE1ldGhvZCgic2V0U2Nyb2xsYmFyUG9saWN5IiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRTY3JvbGxiYXJQb2xpY3kpOwpAQCAtMTUzNywxMyArMTUzNywxMyBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwot
ICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMiB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkg
fHwgIWFyZ3VtZW50c1sxXS5pc1N0cmluZygpKQorICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwg
MyB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkgfHwgIWFyZ3VtZW50c1sxXS5pc051bWJlcigp
IHx8ICFhcmd1bWVudHNbMl0uaXNTdHJpbmcoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9z
aGVsbC0+d2ViVmlld0hvc3QoKS0+c3BlZWNoSW5wdXRDb250cm9sbGVyTW9jaygpLT5zZXRNb2Nr
UmVjb2duaXRpb25SZXN1bHQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSksIGNw
cFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMV0pKTsKKyAgICBtX3NoZWxsLT53ZWJWaWV3
SG9zdCgpLT5zcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKCktPmFkZE1vY2tSZWNvZ25pdGlvblJl
c3VsdChjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwgYXJndW1lbnRzWzFdLnRv
RG91YmxlKCksIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMl0pKTsKIH0KIAogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0KGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJncywgQ3BwVmFyaWFudCogcmVzdWx0KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXgg
NjJmNDczYzdlOTEwZTNkNzdjYTA2Y2I1NGI1NDkzMTBhMDM3ZDI0Yi4uNzU4MTc4MTQyN2NkNDZm
NzU2N2UxODM5M2JlNmVjYmI0ZDMwMzIxNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0zMjYs
NyArMzI2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWJvcnRNb2RhbChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBTcGVlY2ggaW5wdXQgcmVsYXRlZCBmdW5j
dGlvbnMuCi0gICAgdm9pZCBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIHZvaWQgbGF5ZXJU
cmVlQXNUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJncywgQ3BwVmFyaWFudCogcmVzdWx0
KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlv
dXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMzlmYjExNjUwNjY4MDJhODE2YTM1NGZhYWFl
MWEwYjA5ZDA5NDc4Ny4uOWMzZWRlMGU5ZGY1YWMwMGQ0OGVjYjliODViZmQzYWEwOTllYmUwNSAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0
VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC01MDAsNyArNTAwLDcgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxsb3cpCiAgICAgc2V0
R2VvbG9jYXRpb25QZXJtaXNzaW9uQ29tbW9uKGFsbG93KTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJlc3VsdCwg
SlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2Nr
U3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwg
SlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Igc3Bl
ZWNoIGlucHV0IGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM5NDg1LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IGIxOWQ2YjVl
MzBmNzViNjlkN2Y4NzQwMzBmNTc0YjY4NzZkODViNmUuLmUzZjIxNDE0MjNhYzc5YTc2NTZhMDg5
MWJmNjA3MjE2ZjQ5YWJmYTMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTM3Myw3ICszNzMsNyBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9v
bCBhbGxvdykKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gVUlEZWxlZ2F0ZV0gZGlkU2V0TW9j
a0dlb2xvY2F0aW9uUGVybWlzc2lvbl07CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIEpTU3RyaW5nUmVm
IGxhbmd1YWdlKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0
UmVzdWx0KEpTU3RyaW5nUmVmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVm
IGxhbmd1YWdlKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHNwZWVjaCBpbnB1dCBs
YXlvdXQgdGVzdHMuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zOTQ4NS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggNzEzNWExYTg0Y2NjZjc2OGRiYzAy
MzZjOWVjYmRiYTMxM2M5OTY0NS4uNjI0Y2Y5NzYyZDg2NWQ3MWYzZWQzMTRkYjVhYzIzYmM4MTg3
MDVkNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTc2OCw3ICs3NjgsNyBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsbwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbihsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSk7CiB9CiAKLXZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBRU3RyaW5n
JiByZXN1bHQsIGNvbnN0IFFTdHJpbmcmIGxhbmd1YWdlKQordm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IFFTdHJpbmcmIHJlc3VsdCwgZG91
YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFFTdHJpbmcmIGxhbmd1YWdlKQogewogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgZm9yIHNwZWVjaCBpbnB1dCBsYXlvdXQgdGVzdHMuCiAgICAgLy8gU2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ4NS4KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApp
bmRleCA1YzE3NjI0ZTllYzMyMmQ5YjM5YTYyNDU1YzkwYThmODljOGFmMzQ3Li41OTAyMjViOGFl
YjQ1OTBjMzYyMzg4MWZjNGNmYjYyYTAzZDc5OGM4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0yMTgsNyAr
MjE4LDcgQEAgcHVibGljIHNsb3RzOgogICAgIGJvb2wgaXNHZW9sb2NhdGlvblBlcm1pc3Npb25T
ZXQoKSBjb25zdCB7IHJldHVybiBtX2lzR2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0OyB9CiAgICAg
Ym9vbCBnZW9sb2NhdGlvblBlcm1pc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9u
UGVybWlzc2lvbjsgfQogCi0gICAgdm9pZCBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3Qg
UVN0cmluZyYgcmVzdWx0LCBjb25zdCBRU3RyaW5nJiBsYW5ndWFnZSk7CisgICAgdm9pZCBhZGRN
b2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgUVN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlk
ZW5jZSwgY29uc3QgUVN0cmluZyYgbGFuZ3VhZ2UpOwogCiAgICAgLy8gRW1wdHkgc3R1YiBtZXRo
b2QgdG8ga2VlcCBwYXJpdHkgd2l0aCBvYmplY3QgbW9kZWwgZXhwb3NlZCBieSBnbG9iYWwgTGF5
b3V0VGVzdENvbnRyb2xsZXIuCiAgICAgdm9pZCBhYm9ydE1vZGFsKCkge30KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCmluZGV4IDAwNDNjZTY4MjA3NmUzOGRiOTk5NjRiZmMwYzM1M2I1Y2NkNGJlOGYuLmJj
NzYxMzk5YjZlMzAzOGUyNGU1MjJhMzM0YmZjZTcxODQ3ZTlmMTQgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdl
b2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KQogICAgIHNldEdlb2xvY2F0aW9uUGVybWlz
c2lvbkNvbW1vbihhbGxvdyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1v
Y2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIEpTU3RyaW5nUmVmIGxhbmd1
YWdlKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0
KEpTU3RyaW5nUmVmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVmIGxhbmd1
YWdlKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIHNwZWVjaCBpbnB1dCBsYXlvdXQg
dGVzdHMuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTQ4NS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91
dFRlc3RDb250cm9sbGVyV3guY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5
b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggMzI2MTRjMTEzM2RkZjhhYWQ3N2VmYjBkMWQ0
YTZiMzBlNDAxMTA4Yi4uODU4N2ZlYTQ2YTgxYjg2MTVjZjQ5ZWU3YmViZTliYjMwY2FjZTU1OCAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRy
b2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVz
dENvbnRyb2xsZXJXeC5jcHAKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvdykKICAgICBzZXRHZW9s
b2NhdGlvblBlcm1pc3Npb25Db21tb24oYWxsb3cpOwogfQogCi12b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBKU1N0
cmluZ1JlZiBsYW5ndWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBKU1N0
cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBzcGVlY2gg
aW5wdXQgbGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzk0ODUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74546</attachid>
            <date>2010-11-22 06:40:00 -0800</date>
            <delta_ts>2010-11-22 07:50:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49736-20101122143957.patch</filename>
            <type>text/plain</type>
            <size>69192</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMDY1MTAzNDk2ZGQyZDViNDYwYzVhYzFhZWNhMGM1MzZkZjE5YzE0Li5hZDVmMTc5
YTI1MDdlMGM0Y2Y4ZGQ0YThmZDM2MWM3YWQzY2I3ZTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1
dCBldmVudCwgc2VuZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0
aW9uIHJlc3VsdHMgYW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MzYKKworICAgICAgICAqIGZhc3Qvc3BlZWNoL2lucHV0LW9u
c3BlZWNoY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
cGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbDogTmV3IHRlc3QgdG8gY2hlY2sg
bXVsdGlwbGUgcmVzdWx0cy4KKyAgICAgICAgKiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1
YWdlLXRhZy5odG1sOiBVcGRhdGVkIHdpdGggbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAg
ICogZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbDogRGl0dG8uCisgICAg
ICAgICogZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5o
dG1sOiBEaXR0by4KKwogMjAxMC0xMS0yMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjMzMjhkNDVlYWViZWRmNDlhZGU2MzhjNmRhZDBmMWM3OTljMTQyYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LW9uc3BlZWNo
Y2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0cyBmb3IgdGhl
IG9uc3BlZWNoY2hhbmdlIGV2ZW50IHdpdGggPGlucHV0IHR5cGU9InRleHQiIHNwZWVjaD4uCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlIGlzICJHcmVlbiBlZ2dzIGFuZCBoYW0iCitQQVNTIHdp
bmRvdy5ldmVudC5yZXN1bHRzLmxlbmd0aCBpcyAzCitQQVNTIHdpbmRvdy5ldmVudC5yZXN1bHRz
WzBdLnV0dGVyYW5jZSBpcyAiR3JlZW4gZWdncyBhbmQgaGFtIgorUEFTUyB3aW5kb3cuZXZlbnQu
cmVzdWx0c1swXS5jb25maWRlbmNlIGlzIDAuOAorUEFTUyB3aW5kb3cuZXZlbnQucmVzdWx0c1sx
XS51dHRlcmFuY2UgaXMgIkdyZWVuIHggYW5kIGhhbSIKK1BBU1Mgd2luZG93LmV2ZW50LnJlc3Vs
dHNbMV0uY29uZmlkZW5jZSBpcyAwLjUKK1BBU1Mgd2luZG93LmV2ZW50LnJlc3VsdHNbMl0udXR0
ZXJhbmNlIGlzICIzIHggYW5kIGFtIgorUEFTUyB3aW5kb3cuZXZlbnQucmVzdWx0c1syXS5jb25m
aWRlbmNlIGlzIDAuMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVj
aGNoYW5nZS1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtb25zcGVl
Y2hjaGFuZ2UtZXZlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNWFhMTQ3YzhmNTdiOWQ0MjU1MGE1NjBi
YTQxMDQzYzMwZTQxYzYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVl
Y2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Citk
ZXNjcmlwdGlvbignVGVzdHMgZm9yIHRoZSBvbnNwZWVjaGNoYW5nZSBldmVudCB3aXRoICZsdDtp
bnB1dCB0eXBlPSJ0ZXh0IiBzcGVlY2g+LicpOworCitmdW5jdGlvbiBvblNwZWVjaENoYW5nZSgp
IHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
cGVlY2hJbnB1dCIpLnZhbHVlJywgJ0dyZWVuIGVnZ3MgYW5kIGhhbScpOworICAgIHNob3VsZEV2
YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRzLmxlbmd0aCcsIDMpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnd2luZG93LmV2ZW50LnJlc3VsdHNbMF0udXR0ZXJhbmNlJywgJ0dyZWVu
IGVnZ3MgYW5kIGhhbScpOworICAgIHNob3VsZEV2YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1
bHRzWzBdLmNvbmZpZGVuY2UnLCAwLjgpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2lu
ZG93LmV2ZW50LnJlc3VsdHNbMV0udXR0ZXJhbmNlJywgJ0dyZWVuIHggYW5kIGhhbScpOworICAg
IHNob3VsZEV2YWx1YXRlVG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRzWzFdLmNvbmZpZGVuY2UnLCAw
LjUpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmV2ZW50LnJlc3VsdHNbMl0u
dXR0ZXJhbmNlJywgJzMgeCBhbmQgYW0nKTsKKyAgICBzaG91bGRFdmFsdWF0ZVRvKCd3aW5kb3cu
ZXZlbnQucmVzdWx0c1syXS5jb25maWRlbmNlJywgMC4yKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworZnVuY3Rpb24gcnVuKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnR3JlZW4gZWdncyBhbmQgaGFtJywgMC44LCAnJyk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgn
R3JlZW4geCBhbmQgaGFtJywgMC41LCAnJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnMyB4IGFuZCBhbScsIDAuMiwgJycpOworCisgICAg
ICAgIC8vIENsaWNraW5nIHRoZSBzcGVlY2ggYnV0dG9uIHNob3VsZCBmaWxsIGluIG1vY2sgc3Bl
ZWNoLXJlY29nbml6ZWQgdGV4dC4KKyAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3NwZWVjaElucHV0Jyk7CisgICAgICAgIHZhciB4ID0gaW5wdXQub2Zmc2V0TGVm
dCArIGlucHV0Lm9mZnNldFdpZHRoIC0gNDsKKyAgICAgICAgdmFyIHkgPSBpbnB1dC5vZmZzZXRU
b3AgKyBpbnB1dC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBydW47Cit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPGlucHV0IGlkPSdzcGVlY2hJbnB1dCcgeC13ZWJraXQtc3BlZWNo
IG9ud2Via2l0c3BlZWNoY2hhbmdlPSJvblNwZWVjaENoYW5nZSgpIj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtbGFuZ3Vh
Z2UtdGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1YWdl
LXRhZy5odG1sCmluZGV4IGI0NTI2NjFmYjA4NjdmMjVjZjUyOWE2NGYxZWM3OWQ1MmZiNjllOWIu
LmZkZjU4NjgzYzI0ZWFiZWNjNGY5ZjM0NjcwOGIyM2M1NWRkMDhjZDEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtbGFuZ3VhZ2UtdGFnLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1sYW5ndWFnZS10YWcuaHRtbApAQCAt
MzgsOCArMzgsOCBAQCBmdW5jdGlvbiBzcGVlY2hCdXR0b25DbGljayhlbGVtZW50SWQpIHsKIAog
ZnVuY3Rpb24gcnVuKCkgewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYg
d2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldE1v
Y2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nLCAnZW4tR0InKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCfmnIjj
ga7lhpnnnJ8nLCAnamEnKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1Nw
ZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicsIDEuMCwgJ2VuLUdCJyk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgn5pyI
44Gu5YaZ55yfJywgMS4wLCAnamEnKTsKICAgICAgICAgc3BlZWNoQnV0dG9uQ2xpY2soJ3NwZWVj
aElucHV0Tm9uZScpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVj
aC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCmluZGV4IGNlZjc3MDU2YjE3ZDFjZDQ1MWI0
OTBiN2MxZjI0NmJhNmM4OTUwZGIuLjM1MWE5NTM3MGJkNjg3OWE0MzY5MjVhZTBkNTkzYmM0NzE2
ZWMwMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3Bl
ZWNoYnV0dG9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1z
cGVlY2hidXR0b24uaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBvbldlYmtpdFNwZWVj
aENoYW5nZSgpIHsKIAogZnVuY3Rpb24gcnVuKCkgewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24n
LCAnJyk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmFkZE1vY2tTcGVlY2hJbnB1dFJl
c3VsdCgnUGljdHVyZXMgb2YgdGhlIG1vb24nLCAxLjAsICcnKTsKIAogICAgICAgICAvLyBDbGlj
a2luZyB0aGUgc3BlZWNoIGJ1dHRvbiBzaG91bGQgZmlsbCBpbiBtb2NrIHNwZWVjaC1yZWNvZ25p
emVkIHRleHQuCiAgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
cGVlY2hJbnB1dCcpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvc3BlZWNo
LWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9z
cGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5odG1sCmluZGV4IGM2
ODQ4NjM3NzA1MzM5OWIyOWQwNGZjMjk5MDdlNTVlOGFiZjA2MDguLjEyYmVhNWU0Mzg3MjZmZmIz
ZWU5NTI0NmJhYjAzNjYwYjE5ODkwNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qvc3Bl
ZWNoL3NwZWVjaC1idXR0b24taWdub3JlLWdlbmVyYXRlZC1ldmVudHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3NwZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9yZS1nZW5lcmF0ZWQtZXZlbnRz
Lmh0bWwKQEAgLTQ5LDcgKzQ5LDcgQEAgZnVuY3Rpb24gc2V0dXBEaXNwYXRjaEV2ZW50VGVzdCgp
IHsKIGZ1bmN0aW9uIHJ1bigpIHsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
ICYmIHdpbmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAvLyBSdW5uaW5nIGluIERSVCwgdGVz
dCB0aGUgZXZlbnRTZW5kZXIgY2FzZS4KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicsICcnKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJl
cyBvZiB0aGUgbW9vbicsIDEuMCwgJycpOwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnc3BlZWNoSW5wdXQnKS5vbndlYmtpdHNwZWVjaGNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3BlZWNoSW5wdXQiKS52YWx1ZScsICdQaWN0dXJlcyBvZiB0aGUgbW9vbicpOwogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5k
ZXggZjJjN2JlYzgyMzJiNmUwNTEwN2FhZDcwNjJmOWJhNDNhMTY2ODMzMi4uYzBhZTI0OTZkYzIy
YmQ2MTZhYmVlZmQzMmM2ZWYxZDJmZjQ0OTgyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzIzNCwzICszMjM0LDkg
QEAgQlVHX0FOVE9OTSA6IHN2Zy9kb20vU1ZHTnVtYmVyTGlzdC1iYXNpY3MueGh0bWwgPSBJTUFH
RQogQlVHX0FOVE9OTSA6IHN2Zy9kb20vU1ZHUG9pbnRMaXN0LWJhc2ljcy54aHRtbCA9IElNQUdF
CiBCVUdfQU5UT05NIDogc3ZnL2RvbS9TVkdTdHJpbmdMaXN0LWJhc2ljcy54aHRtbCA9IElNQUdF
CiBCVUdfQU5UT05NIDogc3ZnL2RvbS9TVkdUcmFuc2Zvcm1MaXN0LWJhc2ljcy54aHRtbCA9IElN
QUdFCisKKy8vIFJlbW92ZSB0aGVzZSBvbmNlIHRoZSBDaHJvbWl1bSBzaWRlIGhhcyBjYXVnaHQg
b24gd2l0aCBtdWx0aXBsZSBzcGVlY2ggaW5wdXQgcmVzdWx0cy4KK0JVRzQ5NzM2IDogZmFzdC9z
cGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbCA9IFRFWFQKK0JVRzQ5NzM2IDog
ZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1sYW5ndWFnZS10YWcuaHRtbCA9IFRFWFQKK0JVRzQ5NzM2
IDogZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbCA9IFRFWFQKK0JVRzQ5
NzM2IDogZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5o
dG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggM2ZiYzdiNWM0MGUwNWQyOWNlMGJiYTZmZDU1MGJhMzMxZmI2
YmJlMS4uMjE3NDhhZWQ0NDI5YzFkOWEyYTA0ZGFhMmM5MThlNjc3YWJlYTljYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0zMjksNiArMzI5LDkgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5pZGwKICAgICBwYWdlL1Bvc2l0aW9uRXJyb3IuaWRsCiAgICAgcGFnZS9TY3Jl
ZW4uaWRsCisgICAgcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbAorICAgIHBhZ2UvU3BlZWNoSW5w
dXRSZXN1bHQuaWRsCisgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsCiAgICAgcGFn
ZS9XZWJLaXRQb2ludC5pZGwKICAgICBwYWdlL1dvcmtlck5hdmlnYXRvci5pZGwKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3Yjg3MjJk
NjRjZmI5NzE2N2FiZDU0YmI1ZDY1Yjk1ZTliNGY0ZDE1Li45OTgxOGUwMWNmNWM0YWIyMDk3OTU1
ZjM5NGUzMDgwZWFjOGY2OTdhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEwLTExLTE4ICBTYXRpc2ggU2Ft
cGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15
IE9ybG93LgorCisgICAgICAgIEZvciBzcGVlY2ggaW5wdXQgZXZlbnQsIHNlbmQgYW4gZXZlbnQg
b2JqZWN0IGNvbnRhaW5pbmcgYWxsIHRoZSByZWNvZ25pdGlvbiByZXN1bHRzIGFuZCBtZXRhZGF0
YS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzM2
CisKKyAgICAgICAgQ3VycmVudGx5IHRoZSBzcGVlY2ggaW5wdXQgZXZlbnQgJ29ud2Via2l0c3Bl
ZWNoY2hhbmdlJyByZWNlaXZlcyBubyBwYXJhbWV0ZXJzLiBXZWJDb3JlIGFscmVhZHkKKyAgICAg
ICAgaGFzIHRoZSBmdWxsIGxpc3Qgb2YgcmVjb2duaXRpb24gcmVzdWx0cyBhbmQgcG9wdWxhdGVz
IG9ubHkgdGhlIHRvcCByZXN1bHQgaW50byB0aGUgaW5wdXQgZmllbGQKKyAgICAgICAgYXV0b21h
dGljYWxseS4gSW4gdGhpcyBwYXRjaCB3ZSBwYXNzIGEgU3BlZWNoSW5wdXRFdmVudCBvYmplY3Qg
dG8gdGhlIGV2ZW50IGhhbmRsZXIsIGFuZCB0aGUgSlMKKyAgICAgICAgY29kZSBjYW4gYWNjZXNz
IHRoZSBmdWxsIGxpc3Qgb2YgcmVzdWx0cyB2aWEgImV2ZW50LnJlc3VsdHMubGVuZ3RoIiwgInJl
c3VsdHNbaV0udXR0ZXJhbmNlIiBhbmQKKyAgICAgICAgInJlc3VsdHNbaV0uY29uZmlkZW5jZSIu
IEFsc28gdXBkYXRlZCBtb2NrIG9iamVjdCB3aXRoIGFwcHJvcHJpYXRlIG1ldGhvZHMgdG8gdGVz
dCBtdWx0aXBsZSByZXN1bHRzLgorCisgICAgICAgIFRlc3Q6IGZhc3Qvc3BlZWNoL2lucHV0LW9u
c3BlZWNoY2hhbmdlLWV2ZW50Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFdmVu
dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogQWRkZWQgbmV3IGV2ZW50Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9WOCk6IEFkZGVkIG5ldyBldmVudAorICAgICAgICAqIGRvbS9FdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6aXNTcGVlY2hJbnB1dEV2ZW50KToKKyAgICAgICAg
KiBkb20vRXZlbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIHBhZ2UvU3BlZWNoSW5w
dXRFdmVudC5oOiBOZXcgZmlsZSBpbXBsZW1lbnRpbmcgU3BlZWNoSW5wdXRFdmVudC5pZGwKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6On5TcGVlY2hJbnB1dEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVlY2hJbnB1dEV2ZW50Ojppc1NwZWVjaElucHV0RXZlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoSW5wdXRFdmVudDo6cmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hJbnB1dEV2ZW50OjpTcGVlY2hJbnB1dEV2ZW50KToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElu
cHV0RXZlbnQuaWRsOiBOZXcgZmlsZSBkZWZpbmluZyBTcGVlY2hJbnB1dEV2ZW50IG9iamVjdAor
ICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oOgorICAgICAgICAqIHBhZ2UvU3Bl
ZWNoSW5wdXRSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRSZXN1bHQ6
OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5oOgorICAgICAgICAq
IHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsOiBOZXcgZmlsZSBkZWZpbmluZyBhIHNpbmdsZSBT
cGVlY2hJbnB1dFJlc3VsdCBvYmplY3QKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0
TGlzdC5oOiBOZXcgZmlsZSBpbXBsZW1lbnRpbmcgU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbAor
ICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0OjpsZW5ndGgpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0OjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWVjaElucHV0UmVzdWx0TGlzdDo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0KToKKyAgICAgICAgKiBw
YWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGw6IE5ldyBmaWxlIGRlZmluaW5nIGEgbGlzdCBv
ZiBTcGVlY2hJbnB1dFJlc3VsdCBvYmplY3RzCisgICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVl
Y2hJbnB1dENsaWVudE1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGll
bnRNb2NrOjphZGRSZWNvZ25pdGlvblJlc3VsdCk6IFJlbmFtZWQgbWV0aG9kIGFuZCBhZGRlZCBv
bmUgcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrOjpj
bGVhclJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRDbGllbnRNb2NrOjp0
aW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9j
ay5oOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRGaWVsZFNwZWVjaEJ1dHRvbkVsZW1lbnQ6OnNldFJlY29n
bml0aW9uUmVzdWx0KTogUGFzcyBuZXcgZXZlbnQgb2JqZWN0IHRvIGhhbmRsZXIuCisKIDIwMTAt
MTEtMjIgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9raWEuY29tPiwgQ2hhbmcgU2h1ICA8
Y2hhbmcuc2h1QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVz
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggZTVmZTJhNzkwNTI1NWU5ZGE1NzJlNjIxYzllNjBmODI0ZDI2NjY4Ni4uYTli
ODhhOTFhNjIzMDgyZTQ5MWY5YTc0NmNmY2RlZGQ4MGNkZTBjZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00OTUsNiAr
NDk1LDEyIEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1NoYXJlZFdvcmtlckNvbnRleHQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NoYXJlZFdvcmtlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTaGFyZWRXb3Jr
ZXIuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NwZWVjaElucHV0RXZlbnQuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRSZXN1bHQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRSZXN1bHQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1N0
eWxlTWVkaWEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVNZWRpYS5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVTaGVldC5jcHAgXApAQCAtMjE1NiwxMSAr
MjE2MiwxNSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5jcHAgXAogCVdlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oIFwKIAlXZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCBcCisJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
RXZlbnQuY3BwIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5oIFwKIAlXZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXQuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaCBcCiAJ
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCBcCiAJV2ViQ29yZS9wYWdlL1NwZWVj
aElucHV0UmVzdWx0LmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmggXAor
CVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIFwKKwlXZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggXAogCVdlYkNvcmUvcGFnZS9TdXNwZW5kYWJsZVRpbWVy
LmNwcCBcCiAJV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuaCBcCiAJV2ViQ29yZS9wYWdl
L1VzZXJDb250ZW50VHlwZXMuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGFmNzgyYTZiZWViYjJjZDU0NmZmMzhiNmQwNzg2
OGNmNTU1OWExZGQuLmM1YmFkNjI1NDIxYWY2NmQ4ZjY2YjU1NmM0NWVkMmYwMmM5NmRlYWEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0yNTAsNiArMjUwLDkgQEAKICAgICAgICAgICAgICdwYWdlL1BlcmZvcm1hbmNlVGltaW5n
LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9Qb3NpdGlvbkVycm9yLmlkbCcsCiAgICAgICAgICAg
ICAncGFnZS9TY3JlZW4uaWRsJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0RXZlbnQu
aWRsJywKKyAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbCcsCisgICAgICAg
ICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsJywKICAgICAgICAgICAgICdwYWdl
L1dlYktpdFBvaW50LmlkbCcsCiAgICAgICAgICAgICAncGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaWRs
JywKICAgICAgICAgICAgICdwbHVnaW5zL0RPTU1pbWVUeXBlLmlkbCcsCkBAIC0yMjg5LDkgKzIy
OTIsMTMgQEAKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0LmNwcCcsCiAgICAgICAgICAg
ICAncGFnZS9TcGVlY2hJbnB1dC5oJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0Q2xp
ZW50LmgnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5jcHAnLAorICAgICAg
ICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5oJywKICAgICAgICAgICAgICdwYWdlL1NwZWVj
aElucHV0TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5j
cHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaCcsCisgICAgICAgICAg
ICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwJywKKyAgICAgICAgICAgICdwYWdlL1Nw
ZWVjaElucHV0UmVzdWx0TGlzdC5oJywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGlt
ZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1N1c3BlbmRhYmxlVGltZXIuaCcsCiAgICAgICAg
ICAgICAncGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IGVjMjEzZDYwYjg0NWIz
MTM3MTIxNzk5MzFlYzZhMzg5NTI1ZmJhZDguLmMwNWIzYTQ3NDlmYmZmY2JlZTcxODJhMWVhOTVi
MWUyNGYwMTVlNzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQpAQCAtMzExLDYgKzMxMSw5IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAg
cGFnZS9QZXJmb3JtYW5jZVRpbWluZy5pZGwgXAogICAgIHBhZ2UvUG9zaXRpb25FcnJvci5pZGwg
XAogICAgIHBhZ2UvU2NyZWVuLmlkbCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmlkbCBc
CisgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwgXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRS
ZXN1bHRMaXN0LmlkbCBcCiAgICAgcGFnZS9XZWJLaXRQb2ludC5pZGwgXAogICAgIHBhZ2UvV29y
a2VyTmF2aWdhdG9yLmlkbCBcCiAgICAgcGx1Z2lucy9ET01QbHVnaW4uaWRsIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDY3MTQ4
OTM0MDFlODAyMGUyMjY5YmI1MzQ3NWIzNmFmOWU1YTk2YWQuLjA4OTdkOTBlYzk4YTFmMjc0NGY1
MDRlNzlhZGIxNTVkZGM3ZWFjOWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMjAxMSw4ICsyMDExLDEwIEBAIEhFQURFUlMgKz0g
XAogICAgIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaCBcCiAgICAgcGFnZS9TcGVlY2hJbnB1dC5o
IFwKICAgICBwYWdlL1NwZWVjaElucHV0Q2xpZW50LmggXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRF
dmVudC5oIFwKICAgICBwYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCBcCiAgICAgcGFnZS9TcGVl
Y2hJbnB1dFJlc3VsdC5oIFwKKyAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIFwKICAg
ICBwYWdlL1dpbmRvd0ZlYXR1cmVzLmggXAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmggXAog
ICAgIHBhZ2UvWFNTQXVkaXRvci5oIFwKQEAgLTMxMzQsNyArMzEzNiw5IEBAIGNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9TSEFSRURfV09SS0VSUz0xKSB7CiBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfSU5QVVRfU1BFRUNIPTEpIHsKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgcGFnZS9TcGVl
Y2hJbnB1dC5jcHAgXAorICAgICAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuY3BwIFwKICAgICAg
ICAgcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5jcHAgXAorICAgICAgICBwYWdlL1NwZWVjaElucHV0
UmVzdWx0TGlzdC5jcHAgXAogICAgICAgICByZW5kZXJpbmcvUmVuZGVySW5wdXRTcGVlY2guY3Bw
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzMy
NjZhMTBlMWM4ZGQxY2MwYzEyNjA5OTk0ZGEzMGRlZWYwMDUzZS4uNDA3MzY1ZDNlYmY1ZjI4N2E4
YTdiMmYxZjcxZGZlNWFjOGI0NGFmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE1MTAsNiArMTUxMCwxNiBAQAogCQk3NTM1QkM5NTEyMDIwQ0ZGMDAz
N0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmggKi87IH07CiAJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTQxMzNBNzEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oICovOyB9OwogCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAgKi87IH07CisJCTc1NDE1QUZEMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQx
NUFGODEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5oICovOyB9OworCQk3NTQx
NUIwMDEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUFGQjEyOTU4RDVFMDAz
QUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi87IH07CisJCTc1NDE1QzI4MTI5QTk5
MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1QzI2MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVl
Y2hJbnB1dEV2ZW50LmNwcCAqLzsgfTsKKwkJNzU0MTVDMjkxMjlBOTkyMDAwM0FENjY5IC8qIFNw
ZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTQxNUMyNzEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmNwcCAqLzsgfTsKKwkJNzU0MTVENTUxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNo
SW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3NTQxNUQ0RjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dEV2ZW50LmNwcCAq
LzsgfTsKKwkJNzU0MTVENTYxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVENTAx
MjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRFdmVudC5oICovOyB9OworCQk3NTQxNUQ1
NzEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUQ1MTEyOUFCMkQyMDAzQUQ2
NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgKi87IH07CisJCTc1NDE1RDU4MTI5QUIyRDIw
MDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUQ1MjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVl
Y2hJbnB1dFJlc3VsdC5oICovOyB9OworCQk3NTQxNUQ1OTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNT
cGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzU0MTVENTMxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRS
ZXN1bHRMaXN0LmNwcCAqLzsgfTsKKwkJNzU0MTVENUExMjlBQjJEMjAwM0FENjY5IC8qIEpTU3Bl
ZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTQxNUQ1NDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3Vs
dExpc3QuaCAqLzsgfTsKIAkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oICov
OyB9OwogCQk3NTUzQ0ZFOTEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTND
RkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwICovOyB9Owog
CQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OEY5MDgxMURERjI2OTAwRDkz
M0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLzsgfTsKQEAgLTc2NTEsNiArNzY2MSwxOSBAQAogCQk3
NTM1QkM5MzEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNwZWVjaElucHV0Q2xpZW50TW9jay5oOyBwYXRo
ID0gbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVE
MDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzU0MTVBRjgxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUFGOTEyOTU4RDVFMDAzQUQ2Njkg
LyogU3BlZWNoSW5wdXRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3BlZWNoSW5w
dXRFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1QUZBMTI5NThE
NUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3BlZWNoSW5wdXRSZXN1bHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
NTQxNUFGQjEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaElucHV0UmVzdWx0TGlzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUFGQzEyOTU4RDVFMDAzQUQ2NjkgLyogU3Bl
ZWNoSW5wdXRSZXN1bHRMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hJbnB1
dFJlc3VsdExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUMyNjEy
OUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hJbnB1dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNzU0MTVDMjcxMjlBOTkyMDAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVz
dWx0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hJ
bnB1dFJlc3VsdExpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3NTQxNUQ0
RjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3BlZWNoSW5wdXRFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1RDUwMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hJ
bnB1dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1RDUxMTI5QUIy
RDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTU3BlZWNoSW5wdXRSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3NTQxNUQ1MjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1
dFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaElucHV0
UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1RDUzMTI5QUIyRDIw
MDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0UmVzdWx0TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Nw
ZWVjaElucHV0UmVzdWx0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUz
Q0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTc1NzhGOTA4MTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVlY2hJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMzMwMiw5ICsxMzMyNSwxNiBAQAogCQkJCTc1NzhGOTA4MTFEREYy
NjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgKi8sCiAJCQkJNzU3OEY5MDkxMURERjI2OTAw
RDkzM0M1IC8qIFNwZWVjaElucHV0LmggKi8sCiAJCQkJNzU3OEY5MEExMURERjI2OTAwRDkzM0M1
IC8qIFNwZWVjaElucHV0Q2xpZW50LmggKi8sCisJCQkJNzU0MTVDMjYxMjlBOTkyMDAwM0FENjY5
IC8qIFNwZWVjaElucHV0RXZlbnQuY3BwICovLAorCQkJCTc1NDE1QUY4MTI5NThENUUwMDNBRDY2
OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggKi8sCisJCQkJNzU0MTVBRjkxMjk1OEQ1RTAwM0FENjY5
IC8qIFNwZWVjaElucHV0RXZlbnQuaWRsICovLAogCQkJCTc1NzhGOTFFMTFFNEUzMjgwMEQ5MzND
NSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggKi8sCiAJCQkJNzU4OTc4RUExMjcwOTBENjAwNzZE
NUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmNwcCAqLywKIAkJCQk3NTg5NzhFQjEyNzA5MEQ2MDA3
NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1bHQuaCAqLywKKwkJCQk3NTQxNUFGQTEyOTU4RDVFMDAz
QUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHQuaWRsICovLAorCQkJCTc1NDE1QzI3MTI5QTk5MjAw
MDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwICovLAorCQkJCTc1NDE1QUZCMTI5
NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLywKKwkJCQk3NTQxNUFG
QzEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbCAqLywKIAkJCQk2
MkMxMjE3QTExQUI5RTc2MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5jcHAgKi8sCiAJCQkJ
NjJDMTIxN0IxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuaCAqLywKIAkJCQkw
MDNGMUZFOTExRTZBQjQzMDA4MjU4RDkgLyogVXNlckNvbnRlbnRUeXBlcy5oICovLApAQCAtMTU4
NTQsNiArMTU4ODQsMTIgQEAKIAkJCQk2NURGMzFFQzA5RDFDQzYwMDAwQkUzMjUgLyogSlNQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaCAqLywKIAkJCQlFNEI0MjM4NTBDQkZCNzNDMDBBRjJFQ0UgLyog
SlNQcm9ncmVzc0V2ZW50LmNwcCAqLywKIAkJCQlFNEI0MjM4NjBDQkZCNzNDMDBBRjJFQ0UgLyog
SlNQcm9ncmVzc0V2ZW50LmggKi8sCisJCQkJNzU0MTVENEYxMjlBQjJEMjAwM0FENjY5IC8qIEpT
U3BlZWNoSW5wdXRFdmVudC5jcHAgKi8sCisJCQkJNzU0MTVENTAxMjlBQjJEMjAwM0FENjY5IC8q
IEpTU3BlZWNoSW5wdXRFdmVudC5oICovLAorCQkJCTc1NDE1RDUxMTI5QUIyRDIwMDNBRDY2OSAv
KiBKU1NwZWVjaElucHV0UmVzdWx0LmNwcCAqLywKKwkJCQk3NTQxNUQ1MjEyOUFCMkQyMDAzQUQ2
NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5oICovLAorCQkJCTc1NDE1RDUzMTI5QUIyRDIwMDNB
RDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgKi8sCisJCQkJNzU0MTVENTQxMjlB
QjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggKi8sCiAJCQkJNjVERjMx
RUYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTVGV4dC5jcHAgKi8sCiAJCQkJNjVERjMxRjAwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTVGV4dC5oICovLAogCQkJKTsKQEAgLTIxMjkxLDYgKzIxMzI3LDExIEBA
CiAJCQkJRTFBRDE0MjExMjk1RUE2QjAwQUNBOTg5IC8qIEpTSFRNTEVtYmVkRWxlbWVudEN1c3Rv
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBRDE0MjMxMjk1RUE3RjAwQUNBOTg5IC8qIEpTSFRN
TElucHV0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBRDE0MjUxMjk1RUE5
NTAwQUNBOTg5IC8qIEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAor
CQkJCTc1NDE1QUZEMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk3NTQxNUIwMDEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTQxNUQ1NjEyOUFCMkQyMDAzQUQ2NjkgLyog
SlNTcGVlY2hJbnB1dEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTQxNUQ1ODEyOUFCMkQy
MDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzU0
MTVENUExMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTIzODQ4LDYgKzIzODg5LDExIEBACiAJCQkJRTFBRDEyRDYxMjk1RDBCRDAw
QUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxQUQxMzlCMTI5NUQ5MjYwMEFDQTk4OSAvKiBKU0hUTUxMaW5rRWxlbWVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTM5RTEyOTVEOTYxMDBBQ0E5ODkgLyogSlNI
VE1MU3R5bGVFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NDE1QzI4MTI5
QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTc1NDE1QzI5MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNzU0MTVENTUxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5w
dXRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTQxNUQ1NzEyOUFCMkQyMDAzQUQ2Njkg
LyogSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTQxNUQ1OTEy
OUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAppbmRleCBkNjcxZGVlNDIwNmU1
ZTg3NWNlZTczYjhmZTcyYWQxNjNiNmY5NWFjLi5mZDgwMzYwYTczYmVlNjIxNzFlMzI5MTZlMDQz
NmYzNWZhMjU4ZDE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTUx
LDYgKzUxLDcgQEAKICNpbmNsdWRlICJKU1BhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRl
ICJKU1BvcFN0YXRlRXZlbnQuaCIKICNpbmNsdWRlICJKU1Byb2dyZXNzRXZlbnQuaCIKKyNpbmNs
dWRlICJKU1NwZWVjaElucHV0RXZlbnQuaCIKICNpbmNsdWRlICJKU1RleHRFdmVudC5oIgogI2lu
Y2x1ZGUgIkpTVUlFdmVudC5oIgogI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIK
QEAgLTY4LDYgKzY5LDcgQEAKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5j
bHVkZSAiUG9wU3RhdGVFdmVudC5oIgogI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKKyNpbmNs
dWRlICJTcGVlY2hJbnB1dEV2ZW50LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiVUlFdmVudC5oIgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCkBAIC0xOTMs
NiArMTk1LDEwIEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEV2ZW50KiBldmVudCkKICAgICBlbHNlIGlmIChldmVudC0+aXNB
dWRpb1Byb2Nlc3NpbmdFdmVudCgpKQogICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpF
Q1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50LCBldmVu
dCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgIGVsc2UgaWYgKGV2ZW50
LT5pc1NwZWVjaElucHV0RXZlbnQoKSkKKyAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JK
RUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBTcGVlY2hJbnB1dEV2ZW50LCBldmVudCk7
CisjZW5kaWYKICAgICBlbHNlCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgRXZlbnQsIGV2ZW50KTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50Q3VzdG9tLmNwcAppbmRleCBiYjg4NWI5ODcwNjQ3ZDVj
ZDg5MTk0YjIwMWFjMjhlY2U2YTQ5OWI3Li5mZjliOThiMjMxZTRlNWIxMjNiMTVlMTVhOGQ1Mzg0
MTU0ZGE2ZTE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50
Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50Q3VzdG9t
LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlY4UG9wU3RhdGVFdmVudC5oIgogI2lu
Y2x1ZGUgIlY4UHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKKyNpbmNsdWRl
ICJWOFNwZWVjaElucHV0RXZlbnQuaCIKICNpbmNsdWRlICJWOFN0b3JhZ2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlY4VGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAiVjhUb3VjaEV2ZW50LmgiCkBAIC0xNzIs
NiArMTczLDEwIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KEV2ZW50KiBpbXBsKQogICAg
IGlmIChpbXBsLT5pc0F1ZGlvUHJvY2Vzc2luZ0V2ZW50KCkpCiAgICAgICAgIHJldHVybiB0b1Y4
KHN0YXRpY19jYXN0PEF1ZGlvUHJvY2Vzc2luZ0V2ZW50Kj4oaW1wbCkpOwogI2VuZGlmCisjaWYg
RU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICBpZiAoaW1wbC0+aXNTcGVlY2hJbnB1dEV2ZW50KCkp
CisgICAgICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PFNwZWVjaElucHV0RXZlbnQqPihpbXBs
KSk7CisjZW5kaWYKICAgICBpZiAoaW1wbC0+aXNDdXN0b21FdmVudCgpKQogICAgICAgICByZXR1
cm4gdG9WOChzdGF0aWNfY2FzdDxDdXN0b21FdmVudCo+KGltcGwpKTsKICAgICByZXR1cm4gVjhF
dmVudDo6d3JhcChpbXBsKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1dl
YkNvcmUvZG9tL0V2ZW50LmNwcAppbmRleCBjOGRhNDYxN2VjZjIzNDU5YWU0ZmExOTAwZGQzNTQz
Y2IyODNiM2RjLi5hOTQ5ZmQ1MjNlNWVlMTk4M2ZkOGE4MTJlYjNkMjQ2OThiZWNmMjZhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXZlbnQuY3Bw
CkBAIC0yMzYsNiArMjM2LDEzIEBAIGJvb2wgRXZlbnQ6OmlzQXVkaW9Qcm9jZXNzaW5nRXZlbnQo
KSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorYm9vbCBFdmVu
dDo6aXNTcGVlY2hJbnB1dEV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9Cisj
ZW5kaWYKKwogYm9vbCBFdmVudDo6ZnJvbVVzZXJHZXN0dXJlKCkKIHsKICAgICBpZiAoIVVzZXJH
ZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0V2ZW50LmggYi9XZWJDb3JlL2RvbS9FdmVudC5oCmluZGV4IDBkMmYyYjk5M2Vh
NTU5Nzg0ZjY1NmZmYWEwZGE5YjVlODI2ZGI2MTAuLmYwNWQzNmM5MDAwMDE1MjI2YTY4MGMxMjE2
NDBiZmY0N2FlMjI0ODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50LmgKKysrIGIvV2Vi
Q29yZS9kb20vRXZlbnQuaApAQCAtMTQyLDYgKzE0Miw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCBib29sIGlzRGV2aWNlTW90aW9uRXZlbnQoKSBjb25zdDsKICAgICAg
ICAgdmlydHVhbCBib29sIGlzRGV2aWNlT3JpZW50YXRpb25FdmVudCgpIGNvbnN0OwogI2VuZGlm
CisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKyAgICAgICAgdmlydHVhbCBib29sIGlzU3BlZWNo
SW5wdXRFdmVudCgpIGNvbnN0OworI2VuZGlmCiAgICAgICAgIGJvb2wgZnJvbVVzZXJHZXN0dXJl
KCk7CiAgICAgICAgIAogICAgICAgICBib29sIHByb3BhZ2F0aW9uU3RvcHBlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGFnYXRpb25TdG9wcGVkIHx8IG1faW1tZWRpYXRlUHJvcGFnYXRpb25TdG9w
cGVkOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggOTU0YWFiMjQ3Zjg4ZDhjZDJi
NDU3YzlhMDA0MWM4ODg5NzA5OGUxYS4uZmNiMmJlOGQ2ODY4OWY1ZjExMGMzNGViMDJjYWUxNDYw
YzI5MzkyYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTkzNywxMSArMTkzNyw2
IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNTcGVlY2hFbmFibGVkKCkgY29uc3QKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6ZGlzcGF0Y2hXZWJraXRT
cGVlY2hDaGFuZ2VFdmVudCgpCi17Ci0gICAgQVNTRVJUKGlzU3BlZWNoRW5hYmxlZCgpKTsKLSAg
ICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHNwZWVjaGNo
YW5nZUV2ZW50LCB0cnVlLCBmYWxzZSkpOwotfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA4ZjZhNDcxOTMwM2I0ZTY4YTAwNDY1NDMxOWFjYmQy
MWFlZTdlNjI5Li41MjQ2MGM3ZDQ3NGI2NmY4NzNmMWRhMzkzZmFlZGE1MWRkY2E0NzM2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTEwOCw3ICsxMDgsNiBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoSU5QVVRfU1BFRUNIKQogICAgIHZpcnR1YWwgYm9vbCBpc1NwZWVjaEVuYWJsZWQoKSBj
b25zdDsKLSAgICB2b2lkIGRpc3BhdGNoV2Via2l0U3BlZWNoQ2hhbmdlRXZlbnQoKTsKICNlbmRp
ZgogCiAgICAgYm9vbCBjaGVja2VkKCkgY29uc3QgeyByZXR1cm4gbV9jaGVja2VkOyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5jcHAgYi9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRFdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgxMzIyZmQ0YTY0YTY1OTU5Njk4MGY4
NGRhZDdlMTU2YWJlMjlmZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJ
bnB1dEV2ZW50LmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNwZWVjaElucHV0RXZlbnQuaCIKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTcGVlY2hJbnB1dEV2ZW50PiBTcGVlY2hJ
bnB1dEV2ZW50OjpjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFNw
ZWVjaElucHV0UmVzdWx0QXJyYXkmIHJlc3VsdHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTcGVlY2hJbnB1dEV2ZW50KGV2ZW50VHlwZSwgcmVzdWx0cykpOworfQorCitTcGVlY2hJbnB1
dEV2ZW50Ojp+U3BlZWNoSW5wdXRFdmVudCgpIHsKK30KKworU3BlZWNoSW5wdXRFdmVudDo6U3Bl
ZWNoSW5wdXRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cykKKyAgICA6IEV2ZW50KGV2ZW50VHlwZSwgdHJ1ZSwg
ZmFsc2UpIC8vIENhbiBidWJibGUsIG5vdCBjYW5jZWxhYmxlCisgICAgLCBtX3Jlc3VsdHMoU3Bl
ZWNoSW5wdXRSZXN1bHRMaXN0OjpjcmVhdGUocmVzdWx0cykpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElu
cHV0RXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTM5ZjNjZGUzYTk5ODQ2ZDViMjE0MzZiMWViNDIzYjIz
Nzc4YjJhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQu
aApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTcGVlY2hJbnB1dEV2ZW50X2gK
KyNkZWZpbmUgU3BlZWNoSW5wdXRFdmVudF9oCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQor
CisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCIK
KworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU3BlZWNoSW5wdXRFdmVudCA6IHB1YmxpYyBFdmVudCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U3BlZWNoSW5wdXRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHRzKTsKKyAgICB+
U3BlZWNoSW5wdXRFdmVudCgpOworCisgICAgdmlydHVhbCBib29sIGlzU3BlZWNoSW5wdXRFdmVu
dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIFNwZWVjaElucHV0UmVzdWx0TGlzdCog
cmVzdWx0cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0cy5nZXQoKTsgfQorCitwcml2YXRlOgor
ICAgIFNwZWVjaElucHV0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0
IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmIHJlc3VsdHMpOworCisgICAgUmVmUHRyPFNwZWVjaElu
cHV0UmVzdWx0TGlzdD4gbV9yZXN1bHRzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKKworI2VuZGlmIC8vIFNwZWVjaElucHV0
RXZlbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsIGIv
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NjE0ODM0MTVk
NWNhODlhNTUxMTNmZGE1N2M2MDkxNGU4ZmNhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21v
ZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOUFVU
X1NQRUVDSAorICAgIF0gU3BlZWNoSW5wdXRFdmVudCA6IEV2ZW50IHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNwZWVjaElucHV0UmVzdWx0TGlzdCByZXN1bHRzOworICAgIH07CisKK30K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmggYi9XZWJDb3Jl
L3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oCmluZGV4IDU2OGIxYjdiNjJmMDI4MTY3NmE3MTU2
ODI3NjcyNTdhZjEwOTIyM2QuLjc0MTUzMDEyNzI5NDg1NmRjZDAyYWExNzE1Y2M1OTgxZmMyYzIx
NjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgKKysrIGIv
V2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaApAQCAtMzgsOCArMzgsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTcGVlY2hJbnB1dFJl
c3VsdD4gPiBTcGVlY2hJbnB1dFJlc3VsdEFycmF5OwotCiAvLyBJbnRlcmZhY2UgdG8gYmUgaW1w
bGVtZW50ZWQgYnkgdGhlIGVsZW1lbnQgd2hpY2ggaW52b2tlcyBTcGVlY2hJbnB1dC4KIGNsYXNz
IFNwZWVjaElucHV0TGlzdGVuZXIgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L1NwZWVjaElucHV0UmVzdWx0LmNwcCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5j
cHAKaW5kZXggZjViNjk3MmYwMjIzYTU1MzkxYTVjMTk3MTMxMTcyNTdhMTU2MzAxNS4uMWMwNDJh
MDU2MTAxZmQyMWFlZTNkNDU0MjQwYWM4NTUzNGFkZDQ5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRS
ZXN1bHQuY3BwCkBAIC0zNSw2ICszNSwxMSBAQCBQYXNzUmVmUHRyPFNwZWVjaElucHV0UmVzdWx0
PiBTcGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdXR0ZXJhbmNlLAogICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoSW5wdXRSZXN1bHQodXR0ZXJhbmNlLCBjb25maWRl
bmNlKSk7CiB9CiAKK1Bhc3NSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHQ+IFNwZWVjaElucHV0UmVz
dWx0OjpjcmVhdGUoY29uc3QgU3BlZWNoSW5wdXRSZXN1bHQmIHNvdXJjZSkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNwZWVjaElucHV0UmVzdWx0KHNvdXJjZS5tX3V0dGVyYW5jZSwgc291
cmNlLm1fY29uZmlkZW5jZSkpOworfQorCiBTcGVlY2hJbnB1dFJlc3VsdDo6U3BlZWNoSW5wdXRS
ZXN1bHQoY29uc3QgU3RyaW5nJiB1dHRlcmFuY2UsIGRvdWJsZSBjb25maWRlbmNlKQogICAgIDog
bV91dHRlcmFuY2UodXR0ZXJhbmNlKQogICAgICwgbV9jb25maWRlbmNlKGNvbmZpZGVuY2UpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaCBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dFJlc3VsdC5oCmluZGV4IGVmOWZkMTAyYzk0ODRlYzI4NGQ5ZjJmYjM4NDY4
ZWNiYzAyMjQzZDEuLjQ1N2YwNzgzNTc5Y2M5ZjA4NmI3NDVmZjI0MWI5MWVlNDk1MTNiMjggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5oCisrKyBiL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5oCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIC8vIGZpZWxkcywgYXMgcmVjZWl2ZWQgZnJvbSB0aGUgZW1iZWRkZXIuCiBjbGFzcyBT
cGVlY2hJbnB1dFJlc3VsdCA6IHB1YmxpYyBSZWZDb3VudGVkPFNwZWVjaElucHV0UmVzdWx0PiB7
CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHQ+IGNyZWF0
ZShjb25zdCBTcGVlY2hJbnB1dFJlc3VsdCYgc291cmNlKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTcGVlY2hJbnB1dFJlc3VsdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXR0ZXJhbmNlLCBkb3Vi
bGUgY29uZmlkZW5jZSk7CiAKICAgICBkb3VibGUgY29uZmlkZW5jZSgpIGNvbnN0OwpAQCAtNTAs
NiArNTEsOCBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX2NvbmZpZGVuY2U7CiB9OwogCit0eXBl
ZGVmIFZlY3RvcjxSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHQ+ID4gU3BlZWNoSW5wdXRSZXN1bHRB
cnJheTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOUFVU
X1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwg
Yi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2ODhkZTQ3
YWRkYmU0Y2ViY2QwMzM2MmRjOWU2MzU0ZjBhN2EyY2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dO
RVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1J
TlBVVF9TUEVFQ0gKKyAgICBdIFNwZWVjaElucHV0UmVzdWx0IHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyB1dHRlcmFuY2U7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBmbG9hdCBjb25maWRlbmNlOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVz
dWx0TGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFmZDEwOGY1MDdlMDA2NDBlNGIwMzFhYWZhNzc2OGM0
NjU1NGNhNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3Vs
dExpc3QuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmgiCisKKyNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHRMaXN0PiBT
cGVlY2hJbnB1dFJlc3VsdExpc3Q6OmNyZWF0ZShjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5
JiByZXN1bHRzKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlZWNoSW5wdXRSZXN1bHRM
aXN0KHJlc3VsdHMpKTsKK30KKworU3BlZWNoSW5wdXRSZXN1bHQqIFNwZWVjaElucHV0UmVzdWx0
TGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkKK3sKKyAgICByZXR1cm4gaW5kZXggPj0gbV9yZXN1
bHRzLnNpemUoKSA/IDAgOiBtX3Jlc3VsdHNbaW5kZXhdLmdldCgpOworfQorCitTcGVlY2hJbnB1
dFJlc3VsdExpc3Q6OlNwZWVjaElucHV0UmVzdWx0TGlzdChjb25zdCBTcGVlY2hJbnB1dFJlc3Vs
dEFycmF5JiByZXN1bHRzKQorICAgIDogbV9yZXN1bHRzKHJlc3VsdHMpIC8vIFRha2VzIGEgY29w
eSBvZiB0aGUgYXJyYXkgb2YgUmVmUHRycy4KK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJl
c3VsdExpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDUwNjMwYjEwN2Q5NWU3OTU1NzEwZDNiNGIxY2Y3OWQ1
NGFiZGFlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0
TGlzdC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0UmVz
dWx0TGlzdF9oCisjZGVmaW5lIFNwZWVjaElucHV0UmVzdWx0TGlzdF9oCisKKyNpZiBFTkFCTEUo
SU5QVVRfU1BFRUNIKQorCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRSZXN1bHQuaCIKKworI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3BlZWNo
SW5wdXRSZXN1bHRMaXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoSW5wdXRSZXN1bHRMaXN0
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHRMaXN0
PiBjcmVhdGUoY29uc3QgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cyk7CisKKyAgICAv
LyBNZXRob2RzIGZyb20gdGhlIElETC4KKyAgICBzaXplX3QgbGVuZ3RoKCkgeyByZXR1cm4gbV9y
ZXN1bHRzLnNpemUoKTsgfQorICAgIFNwZWVjaElucHV0UmVzdWx0KiBpdGVtKHVuc2lnbmVkIGlu
ZGV4KTsKKworcHJpdmF0ZToKKyAgICBTcGVlY2hJbnB1dFJlc3VsdExpc3QoY29uc3QgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cyk7CisKKyAgICBTcGVlY2hJbnB1dFJlc3VsdEFycmF5
IG1fcmVzdWx0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTlBVVF9TUEVFQ0gpCisKKyNlbmRpZiAvLyBTcGVlY2hJbnB1dFJlc3VsdExpc3RfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwgYi9XZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTIzZDRmMDIz
NzA5NDA2NzUyYzVhZjc0MTBmMzgzNWMxNmQ5ODg1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBP
V05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIEhhc0luZGV4R2V0
dGVyLAorICAgICAgICBDb25kaXRpb25hbD1JTlBVVF9TUEVFQ0gKKyAgICBdIFNwZWVjaElucHV0
UmVzdWx0TGlzdCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxl
bmd0aDsKKyAgICAgICAgU3BlZWNoSW5wdXRSZXN1bHQgaXRlbShpbiBbSXNJbmRleF0gdW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcAppbmRleCA4MjAxNTJjMjI2ZDVmNjg2MDE3NTY2OGNi
Y2VlZmQ0MzZlMGJlNWU3Li4xNmYyODI1NTg2NTE0ODcyYTA5NGE5M2IwNzQxMmI1NGNkNWQyZDI4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNw
cApAQCAtODEsMTggKzgxLDIxIEBAIHZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpjYW5jZWxS
ZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKQogICAgIH0KIH0KIAotdm9pZCBTcGVlY2hJbnB1dENs
aWVudE1vY2s6OnNldFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25z
dCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQordm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OmFk
ZFJlY29nbml0aW9uUmVzdWx0KGNvbnN0IFN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5j
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSkKIHsKICAgICBpZiAobGFuZ3VhZ2UuaXNF
bXB0eSgpKQotICAgICAgICBtX3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2UgPSByZXN1bHQ7Ci0gICAg
ZWxzZQotICAgICAgICBtX3JlY29nbml0aW9uUmVzdWx0LnNldChsYW5ndWFnZSwgcmVzdWx0KTsK
KyAgICAgICAgbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1
bHQ6OmNyZWF0ZShyZXN1bHQsIGNvbmZpZGVuY2UpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYg
KCFtX3JlY29nbml0aW9uUmVzdWx0cy5jb250YWlucyhsYW5ndWFnZSkpCisgICAgICAgICAgICBt
X3JlY29nbml0aW9uUmVzdWx0cy5zZXQobGFuZ3VhZ2UsIFNwZWVjaElucHV0UmVzdWx0QXJyYXko
KSk7CisgICAgICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLmZpbmQobGFuZ3VhZ2UpLT5zZWNvbmQu
YXBwZW5kKFNwZWVjaElucHV0UmVzdWx0OjpjcmVhdGUocmVzdWx0LCBjb25maWRlbmNlKSk7Cisg
ICAgfQogfQogCiB2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6Y2xlYXJSZXN1bHRzKCkKIHsK
LSAgICBtX3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2UgPSBTdHJpbmcoKTsKLSAgICBtX3JlY29nbml0
aW9uUmVzdWx0LmNsZWFyKCk7CisgICAgbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZS5jbGVhcigp
OworICAgIG1fcmVjb2duaXRpb25SZXN1bHRzLmNsZWFyKCk7CiB9CiAKIHZvaWQgU3BlZWNoSW5w
dXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFNwZWVjaElucHV0Q2xpZW50
TW9jaz4qKQpAQCAtMTAyLDE4ICsxMDUsMTcgQEAgdm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6
OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2NrPiopCiAgICAg
ICAgIG1fbGlzdGVuZXItPmRpZENvbXBsZXRlUmVjb3JkaW5nKG1fcmVxdWVzdElkKTsKICAgICAg
ICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSByZXN1bHRzOwogICAgICAgICBib29sIG5vUmVzdWx0c0ZvdW5kID0g
ZmFsc2U7CiAKICAgICAgICAgLy8gRW1wdHkgbGFuZ3VhZ2UgY2FzZSBtdXN0IGJlIGhhbmRsZWQg
c2VwYXJhdGVseSB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIEhhc2hNYXAgYW5kIGVtcHR5IGtleXMu
CiAgICAgICAgIGlmIChtX2xhbmd1YWdlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKCFt
X3Jlc3VsdEZvckVtcHR5TGFuZ3VhZ2UuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0
cy5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShtX3Jlc3VsdEZvckVtcHR5TGFuZ3Vh
Z2UsIDEuMCkpOworICAgICAgICAgICAgaWYgKCFtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3Vs
dChtX3JlcXVlc3RJZCwgbV9yZXN1bHRzRm9yRW1wdHlMYW5ndWFnZSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgbm9SZXN1bHRzRm91bmQgPSB0cnVlOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgaWYgKG1fcmVjb2duaXRpb25SZXN1bHQuY29udGFpbnMobV9sYW5n
dWFnZSkpCi0gICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoU3BlZWNoSW5wdXRSZXN1bHQ6
OmNyZWF0ZShtX3JlY29nbml0aW9uUmVzdWx0LmdldChtX2xhbmd1YWdlKSwgMS4wKSk7CisgICAg
ICAgICAgICBpZiAobV9yZWNvZ25pdGlvblJlc3VsdHMuY29udGFpbnMobV9sYW5ndWFnZSkpCisg
ICAgICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQobV9yZXF1ZXN0
SWQsIG1fcmVjb2duaXRpb25SZXN1bHRzLmdldChtX2xhbmd1YWdlKSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgbm9SZXN1bHRzRm91bmQgPSB0cnVlOwogICAgICAgICB9CkBA
IC0xMjQsMTAgKzEyNiwxMSBAQCB2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6dGltZXJGaXJl
ZChXZWJDb3JlOjpUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1vY2s+KikKICAgICAgICAgICAgIFN0
cmluZyBlcnJvcigiZXJyb3I6IG5vIHJlc3VsdCBmb3VuZCBmb3IgbGFuZ3VhZ2UgJyIpOwogICAg
ICAgICAgICAgZXJyb3IuYXBwZW5kKG1fbGFuZ3VhZ2UpOwogICAgICAgICAgICAgZXJyb3IuYXBw
ZW5kKCInIik7CisgICAgICAgICAgICBTcGVlY2hJbnB1dFJlc3VsdEFycmF5IHJlc3VsdHM7CiAg
ICAgICAgICAgICByZXN1bHRzLmFwcGVuZChTcGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKGVycm9y
LCAxLjApKTsKKyAgICAgICAgICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KG1f
cmVxdWVzdElkLCByZXN1bHRzKTsKICAgICAgICAgfQogCi0gICAgICAgIG1fbGlzdGVuZXItPnNl
dFJlY29nbml0aW9uUmVzdWx0KG1fcmVxdWVzdElkLCByZXN1bHRzKTsKICAgICAgICAgbV9saXN0
ZW5lci0+ZGlkQ29tcGxldGVSZWNvZ25pdGlvbihtX3JlcXVlc3RJZCk7CiAgICAgICAgIG1fcmVx
dWVzdElkID0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3Bl
ZWNoSW5wdXRDbGllbnRNb2NrLmggYi9XZWJDb3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRD
bGllbnRNb2NrLmgKaW5kZXggYzIyMTliNDA0NWM3ZmIyYjMxMDZkMjkxN2YyZmZlN2I5N2NkNDdj
ZC4uNmY3MjE5MTBkMTYxNjNhYTM3ZjIzYjQzMDU1MzNkMDBiMWFhMmNhNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaApAQCAtMzMsNiArMzMsNyBA
QAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTcGVlY2hJbnB1dENs
aWVudC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0UmVzdWx0LmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KQEAgLTQ4LDcgKzQ5LDcgQEAgY2xhc3MgU3BlZWNoSW5wdXRDbGllbnRNb2NrIDogcHVi
bGljIFNwZWVjaElucHV0Q2xpZW50IHsKIHB1YmxpYzoKICAgICBTcGVlY2hJbnB1dENsaWVudE1v
Y2soKTsKIAotICAgIHZvaWQgc2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1
bHQsIGNvbnN0IEF0b21pY1N0cmluZyYgbGFuZ3VhZ2UpOworICAgIHZvaWQgYWRkUmVjb2duaXRp
b25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGxhbmd1YWdlKTsKICAgICB2b2lkIGNsZWFyUmVzdWx0cygpOwogCiAgICAg
Ly8gU3BlZWNoSW5wdXRDbGllbnQgbWV0aG9kcy4KQEAgLTY1LDkgKzY2LDkgQEAgcHJpdmF0ZToK
ICAgICBTcGVlY2hJbnB1dExpc3RlbmVyKiBtX2xpc3RlbmVyOwogICAgIGludCBtX3JlcXVlc3RJ
ZDsKIAotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fcmVjb2duaXRpb25SZXN1bHQ7Cisg
ICAgSGFzaE1hcDxTdHJpbmcsIFNwZWVjaElucHV0UmVzdWx0QXJyYXk+IG1fcmVjb2duaXRpb25S
ZXN1bHRzOwogICAgIEF0b21pY1N0cmluZyBtX2xhbmd1YWdlOwotICAgIFN0cmluZyBtX3Jlc3Vs
dEZvckVtcHR5TGFuZ3VhZ2U7CisgICAgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSBtX3Jlc3VsdHNG
b3JFbXB0eUxhbmd1YWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZmJhNTIzZTVi
NDkyZmQzZGNlODY4NDc2NTU1MDVmYWU0Yjg3ODEyNi4uYmE0YzdiYjg1MDY1N2FjZjk1Y2MzZDIw
NmFkMzdmNTU2OTJkNjdhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKICNpbmNsdWRl
ICJTcGVlY2hJbnB1dC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0RXZlbnQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC00NzgsNyArNDc5LDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNo
QnV0dG9uRWxlbWVudDo6c2V0UmVjb2duaXRpb25SZXN1bHQoaW50LCBjb25zdCBTcGVlY2hJbnB1
dFIKICAgICAvLyBoZXJlLCB3ZSB0YWtlIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZS4KICAgICBSZWZQ
dHI8SFRNTElucHV0RWxlbWVudD4gaG9sZFJlZihpbnB1dCk7CiAgICAgaW5wdXQtPnNldFZhbHVl
KHJlc3VsdHMuaXNFbXB0eSgpID8gIiIgOiByZXN1bHRzWzBdLT51dHRlcmFuY2UoKSk7Ci0gICAg
aW5wdXQtPmRpc3BhdGNoV2Via2l0U3BlZWNoQ2hhbmdlRXZlbnQoKTsKKyAgICBpbnB1dC0+ZGlz
cGF0Y2hFdmVudChTcGVlY2hJbnB1dEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHNw
ZWVjaGNoYW5nZUV2ZW50LCByZXN1bHRzKSk7CiAgICAgcmVuZGVyZXIoKS0+cmVwYWludCgpOwog
fQogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwppbmRleCAyOWQxOTljOWNkZDNlYmQxMTk0MDVkMTE2MjJjM2EzNGRhYjU3
NTIyLi45ZGQxMGM3ZDdhYjEzYjA1MDBkZGI1Zjc3OTc5OGQxZTE3MTQ0OWFhIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0xMS0xOCAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KKworICAg
ICAgICBGb3Igc3BlZWNoIGlucHV0IGV2ZW50LCBzZW5kIGFuIGV2ZW50IG9iamVjdCBjb250YWlu
aW5nIGFsbCB0aGUgcmVjb2duaXRpb24gcmVzdWx0cyBhbmQgbWV0YWRhdGEuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTczNgorCisgICAgICAgIFVw
ZGF0ZWQgbW9jayBvYmplY3QncyBtZXRob2QgdG8gbmV3IHNpZ25hdHVyZS4KKworICAgICAgICAq
IHB1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmg6CisgICAgICAgICogc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OmFkZE1vY2tSZWNvZ25pdGlvblJlc3VsdCk6
CisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmg6CisKIDIw
MTAtMTEtMjIgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgTm90IHJldmlld2VkLiBQYXJ0aWFsbHkgcm9sbCBvdXQgcjcyMjgyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrLmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaAppbmRl
eCAzMTY3MmJhMGFhY2YzMGFjOWQyMjQ3N2ZmNTkyNjA1MWQ5ZWVkNDViLi5lNDQwYjg5YTU2NmNk
MDAxNjZkNWZiNmM1MjQwYWM4YjE4ODE0N2ZiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaApAQCAtNDQsNyArNDQsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFdlYlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKTsKICAg
ICB2aXJ0dWFsIH5XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrKCkgeyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0TW9ja1JlY29nbml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0
LCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1YWdlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZE1v
Y2tSZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNvbmZp
ZGVuY2UsIGNvbnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBjbGVhclJlc3VsdHMoKSA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcAppbmRleCA4Y2Y3ODQ4Nzgy
NGViZjUzN2RlMjlhNDhiZjgwNmM5YzU5YmVjNzhjLi40OGY4YjUwN2Q3ZWM4OTEzYjIyNmU3OWVk
MDRhYzI0ZWVmNDQzMTBjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcApAQCAtNTUsOSArNTUsOSBAQCBXZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6fldlYlNwZWVjaElucHV0Q29udHJvbGxlck1v
Y2tJbXBsKCkKICAgICBtX3dlYmNvcmVNb2NrLT5zZXRMaXN0ZW5lcigwKTsKIH0KIAotdm9pZCBX
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6c2V0TW9ja1JlY29nbml0aW9uUmVzdWx0
KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0LCBjb25zdCBXZWJTdHJpbmcgJmxhbmd1YWdlKQordm9p
ZCBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6YWRkTW9ja1JlY29nbml0aW9uUmVz
dWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwgY29uc3QgV2Vi
U3RyaW5nICZsYW5ndWFnZSkKIHsKLSAgICBtX3dlYmNvcmVNb2NrLT5zZXRSZWNvZ25pdGlvblJl
c3VsdChyZXN1bHQsIGxhbmd1YWdlKTsKKyAgICBtX3dlYmNvcmVNb2NrLT5hZGRSZWNvZ25pdGlv
blJlc3VsdChyZXN1bHQsIGNvbmZpZGVuY2UsIGxhbmd1YWdlKTsKIH0KIAogdm9pZCBXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6Y2xlYXJSZXN1bHRzKCkKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuaCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuaAppbmRl
eCA3NjgwODczOTI2OGI5ZGFiY2NkM2E1Yzg4NWU0YzI0OTYwZThlYmU0Li5iZjAwZWQwM2Y3NDIx
MGJkMjYwMDlhNGMwZTE3MDI1YTBmZDk3NWNkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5oCkBAIC02Miw3ICs2Miw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoaW50IHJlcXVlc3RJZCk7CiAKICAg
ICAvLyBXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrIG1ldGhvZHMuCi0gICAgdm9pZCBzZXRN
b2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQsIGNvbnN0IFdlYlN0
cmluZyYgbGFuZ3VhZ2UpOworICAgIHZvaWQgYWRkTW9ja1JlY29nbml0aW9uUmVzdWx0KGNvbnN0
IFdlYlN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwgY29uc3QgV2ViU3RyaW5nJiBs
YW5ndWFnZSk7CiAgICAgdm9pZCBjbGVhclJlc3VsdHMoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA0
YTAxNmMxZjE4MTQ1NzE1ZTlhMDFhM2QyZWY2YzA1MTM2ZGFhYjBmLi4wNjEyNDUwMjA1YmU3ZmJl
YTYwN2JmZmY1YTNlNTBmYjE5NjY5OWEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMTEt
MTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1dCBldmVudCwg
c2VuZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0aW9uIHJlc3Vs
dHMgYW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDk3MzYKKworICAgICAgICBVcGRhdGVkIERSVCBieSByZW5hbWluZyB0aGUgbW9j
ayByZXN1bHQgbWV0aG9kIG9uIGFsbCBwbGF0Zm9ybXMgdG8gdGhlIG5ldyBzaWduYXR1cmUuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KToKKwogMjAxMC0xMS0y
MiAgSm/Do28gUGF1bG8gUmVjaGkgVml0YSAgPGpwcnZpdGFAcHJvZnVzaW9uLm1vYmk+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
MjhlZmVjYmJkMTdhNWVmZmEwMzA5ZGQyNWI0NGE4MGI0NjE1MDAyMS4uNTYyM2M1ZWY0NzliMWNk
YmZkYTA0MGFjYWM5NzI2MzM2YjdmNzkzZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTA3NiwxOSArMTA3NiwyMSBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNb2NrR2VvbG9jYXRpb25FcnJvckNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0TW9ja1NwZWVjaElucHV0UmVz
dWx0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3RhdGljIEpTVmFsdWVS
ZWYgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQogewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMikKKyAgICBpZiAoYXJndW1lbnRD
b3VudCA8IDMpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
IAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiByZXN1bHQoQWRvcHQsIEpTVmFsdWVUb1N0
cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKICAgICBBU1NFUlQo
ISpleGNlcHRpb24pOwogCi0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGxhbmd1YWdlKEFk
b3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9u
KSk7CisgICAgZG91YmxlIGNvbmZpZGVuY2UgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJn
dW1lbnRzWzFdLCBleGNlcHRpb24pOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGxh
bmd1YWdlKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1syXSwg
ZXhjZXB0aW9uKSk7CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKIAogICAgIExheW91dFRlc3RD
b250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIq
PihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldE1v
Y2tTcGVlY2hJbnB1dFJlc3VsdChyZXN1bHQuZ2V0KCksIGxhbmd1YWdlLmdldCgpKTsKKyAgICBj
b250cm9sbGVyLT5hZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQocmVzdWx0LmdldCgpLCBjb25maWRl
bmNlLCBsYW5ndWFnZS5nZXQoKSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7CiB9CkBAIC0xOTczLDcgKzE5NzUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0TW9ja0Rl
dmljZU9yaWVudGF0aW9uIiwgc2V0TW9ja0RldmljZU9yaWVudGF0aW9uQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCBzZXRNb2NrR2VvbG9jYXRp
b25FcnJvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uIiwgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAg
ICAgICB7ICJzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQiLCBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1
bHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQi
LCBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXROZXdXaW5kb3dzQ29weUJhY2tGb3J3YXJkTGlzdCIsIHNldE5ld1dpbmRvd3NDb3B5QmFja0Zv
cndhcmRMaXN0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UE9TSVhMb2NhbGUiLCBz
ZXRQT1NJWExvY2FsZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFBlcnNpc3RlbnRV
c2VyU3R5bGVTaGVldExvY2F0aW9uIiwgc2V0UGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRp
b25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYjYxODYwYmM2NDY1MjVmYzcwN2QxNDYyMDcwNDY0
MGI1ZGNjODNjNC4uMzkxZjdmNTA4MDAyNWY4ZWJhNjQ2ZmE4ZGNjNTFjNTc2ZjAyYjE2ZCAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1vY2tEZXZpY2VPcmllbnRh
dGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVC
ZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSk7CiAg
ICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihpbnQgY29kZSwgSlNTdHJpbmdSZWYgbWVz
c2FnZSk7CiAgICAgdm9pZCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0aXR1
ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSk7Ci0gICAgdm9pZCBzZXRNb2Nr
U3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBKU1N0cmluZ1JlZiBsYW5ndWFn
ZSk7CisgICAgdm9pZCBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0
LCBkb3VibGUgY29uZmlkZW5jZSwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpOwogICAgIHZvaWQgc2V0
UGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oSlNTdHJpbmdSZWYgcGF0aCk7CiAgICAg
dm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sIGZsYWcpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9j
a2luZ0VuYWJsZWQoYm9vbCBmbGFnKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBhZDA0
MTcwZDk1OTRhNjY3ZWVhOTg1YjYxYmI0N2FmM2I2OWExZjU5Li5lNTFlYmIzMmZiYzFjOWE3NTM5
ODU5ZjFlMmQ4Y2EyMWI0NTEwMGM1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNTAs
NyArMTUwLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRl
c3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9u
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOwogICAg
IGJpbmRNZXRob2QoInNldE1vY2tHZW9sb2NhdGlvbkVycm9yIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0dl
b2xvY2F0aW9uUG9zaXRpb24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk7CisgICAg
YmluZE1ldGhvZCgiYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0IiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOwogICAgIGJpbmRNZXRob2QoInNldFBvcHVw
QmxvY2tpbmdFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQb3B1cEJsb2NraW5n
RW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0UE9TSVhMb2NhbGUiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldFBPU0lYTG9jYWxlKTsKICAgICBiaW5kTWV0aG9kKCJzZXRTY3JvbGxiYXJQ
b2xpY3kiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeSk7CkBAIC0x
NTM3LDEzICsxNTM3LDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFib3J0TW9kYWwo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhCiAgICAgcmVzdWx0LT5z
ZXROdWxsKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJ
bnB1dFJlc3VsdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVz
dWx0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
CiB7CiAgICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAy
IHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSB8fCAhYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkp
CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAzIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmco
KSB8fCAhYXJndW1lbnRzWzFdLmlzTnVtYmVyKCkgfHwgIWFyZ3VtZW50c1syXS5pc1N0cmluZygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5zcGVlY2hJ
bnB1dENvbnRyb2xsZXJNb2NrKCktPnNldE1vY2tSZWNvZ25pdGlvblJlc3VsdChjcHBWYXJpYW50
VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKSwgY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50
c1sxXSkpOworICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPnNwZWVjaElucHV0Q29udHJvbGxl
ck1vY2soKS0+YWRkTW9ja1JlY29nbml0aW9uUmVzdWx0KGNwcFZhcmlhbnRUb1dlYlN0cmluZyhh
cmd1bWVudHNbMF0pLCBhcmd1bWVudHNbMV0udG9Eb3VibGUoKSwgY3BwVmFyaWFudFRvV2ViU3Ry
aW5nKGFyZ3VtZW50c1syXSkpOwogfQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpsYXll
clRyZWVBc1RleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmdzLCBDcHBWYXJpYW50KiByZXN1
bHQpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA2MmY0NzNjN2U5MTBlM2Q3N2NhMDZjYjU0YjU0
OTMxMGEwMzdkMjRiLi43NTgxNzgxNDI3Y2Q0NmY3NTY3ZTE4MzkzYmU2ZWNiYjRkMzAzMjE3IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTMyNiw3ICszMjYsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhYm9ydE1vZGFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAg
IC8vIFNwZWVjaCBpbnB1dCByZWxhdGVkIGZ1bmN0aW9ucy4KLSAgICB2b2lkIHNldE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOwogCiAgICAgdm9pZCBsYXllclRyZWVBc1RleHQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmdzLCBDcHBWYXJpYW50KiByZXN1bHQpOwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCAzOWZiMTE2NTA2NjgwMmE4MTZhMzU0ZmFhYWUxYTBiMDlkMDk0Nzg3Li45YzNlZGUwZTlkZjVh
YzAwZDQ4ZWNiOWI4NWJmZDNhYTA5OWViZTA1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTUw
MCw3ICs1MDAsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBl
cm1pc3Npb24oYm9vbCBhbGxvdykKICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24o
YWxsb3cpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5w
dXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBKU1N0cmluZ1JlZiBsYW5ndWFnZSkKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1Jl
ZiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBKU1N0cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBzcGVlY2ggaW5wdXQgbGF5b3V0IHRlc3RzLgogICAg
IC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0ODUuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KaW5kZXggYjE5ZDZiNWUzMGY3NWI2OWQ3Zjg3NDAzMGY1NzRiNjg3NmQ4
NWI2ZS4uZTNmMjE0MTQyM2FjNzlhNzY1NmEwODkxYmY2MDcyMTZmNDlhYmZhMyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQpAQCAtMzczLDcgKzM3Myw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbihib29sIGFsbG93KQogICAgIFtbW21haW5GcmFtZSB3
ZWJWaWV3XSBVSURlbGVnYXRlXSBkaWRTZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uXTsKIH0K
IAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KEpT
U3RyaW5nUmVmIHJlc3VsdCwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCit2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBk
b3VibGUgY29uZmlkZW5jZSwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCiB7CiAgICAgLy8gRklYTUU6
IEltcGxlbWVudCBmb3Igc3BlZWNoIGlucHV0IGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDg1LgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNw
cAppbmRleCA3MTM1YTFhODRjY2NmNzY4ZGJjMDIzNmM5ZWNiZGJhMzEzYzk5NjQ1Li42MjRjZjk3
NjJkODY1ZDcxZjNlZDMxNGRiNWFjMjNiYzgxODcwNWQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAt
NzY4LDcgKzc2OCw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvCiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGxhdGl0dWRlLCBsb25naXR1
ZGUsIGFjY3VyYWN5KTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1Nw
ZWVjaElucHV0UmVzdWx0KGNvbnN0IFFTdHJpbmcmIHJlc3VsdCwgY29uc3QgUVN0cmluZyYgbGFu
Z3VhZ2UpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1
bHQoY29uc3QgUVN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5jZSwgY29uc3QgUVN0cmlu
ZyYgbGFuZ3VhZ2UpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3Igc3BlZWNoIGlucHV0
IGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM5NDg1LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDVjMTc2MjRlOWVjMzIyZDliMzlhNjI0
NTVjOTBhOGY4OWM4YWYzNDcuLjU5MDIyNWI4YWViNDU5MGMzNjIzODgxZmM0Y2ZiNjJhMDNkNzk4
YzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKQEAgLTIxOCw3ICsyMTgsNyBAQCBwdWJsaWMgc2xvdHM6CiAgICAg
Ym9vbCBpc0dlb2xvY2F0aW9uUGVybWlzc2lvblNldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNHZW9s
b2NhdGlvblBlcm1pc3Npb25TZXQ7IH0KICAgICBib29sIGdlb2xvY2F0aW9uUGVybWlzc2lvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uOyB9CiAKLSAgICB2b2lkIHNl
dE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBRU3RyaW5nJiByZXN1bHQsIGNvbnN0IFFTdHJp
bmcmIGxhbmd1YWdlKTsKKyAgICB2b2lkIGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBR
U3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBRU3RyaW5nJiBsYW5ndWFn
ZSk7CiAKICAgICAvLyBFbXB0eSBzdHViIG1ldGhvZCB0byBrZWVwIHBhcml0eSB3aXRoIG9iamVj
dCBtb2RlbCBleHBvc2VkIGJ5IGdsb2JhbCBMYXlvdXRUZXN0Q29udHJvbGxlci4KICAgICB2b2lk
IGFib3J0TW9kYWwoKSB7fQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggMDA0M2NlNjgyMDc2ZTM4
ZGI5OTk2NGJmYzBjMzUzYjVjY2Q0YmU4Zi4uYmM3NjEzOTliNmUzMDM4ZTI0ZTUyMmEzMzRiZmNl
NzE4NDdlOWYxNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC00MTEsNyArNDExLDcgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxs
b3cpCiAgICAgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ29tbW9uKGFsbG93KTsKIH0KIAotdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5n
UmVmIHJlc3VsdCwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0LCBkb3VibGUg
Y29uZmlkZW5jZSwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCiB7CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBmb3Igc3BlZWNoIGlucHV0IGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDg1LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRl
eCAzMjYxNGMxMTMzZGRmOGFhZDc3ZWZiMGQxZDRhNmIzMGU0MDExMDhiLi44NTg3ZmVhNDZhODFi
ODYxNWNmNDllZTdiZWJlOWJiMzBjYWNlNTU4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtMzIwLDcg
KzMyMCw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlz
c2lvbihib29sIGFsbG93KQogICAgIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihhbGxv
dyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJl
c3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKQordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJl
c3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKQogewogICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgZm9yIHNwZWVjaCBpbnB1dCBsYXlvdXQgdGVzdHMuCiAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ4NS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74553</attachid>
            <date>2010-11-22 07:50:29 -0800</date>
            <delta_ts>2010-12-10 22:29:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49736-20101122155026.patch</filename>
            <type>text/plain</type>
            <size>69644</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2N2FiMDYyNjkwYmU2OWVmZWNhZTViNGM5MjQ0ZDdhMzFhMTk3YzkyLi5mZjk1Yjcx
Nzg5YmY4NTk0NDYxNDc5MTQxMDAyMjZhNGJhZDViYTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTEtMTggIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1
dCBldmVudCwgc2VuZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0
aW9uIHJlc3VsdHMgYW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDk3MzYKKworICAgICAgICAqIGZhc3Qvc3BlZWNoL2lucHV0LW9u
c3BlZWNoY2hhbmdlLWV2ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9z
cGVlY2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbDogTmV3IHRlc3QgdG8gY2hlY2sg
bXVsdGlwbGUgcmVzdWx0cy4KKyAgICAgICAgKiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1
YWdlLXRhZy5odG1sOiBVcGRhdGVkIHdpdGggbmV3IG1ldGhvZCBzaWduYXR1cmUuCisgICAgICAg
ICogZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbDogRGl0dG8uCisgICAg
ICAgICogZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5o
dG1sOiBEaXR0by4KKwogMjAxMC0xMS0yMiAgUmVuYXRhIEhvZG92YW4gIDxyZW5pQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LW9uc3BlZWNoY2hhbmdlLWV2ZW50LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LW9uc3BlZWNoY2hhbmdlLWV2ZW50
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzMyOGQ0NWVhZWJlZGY0OWFkZTYzOGM2ZGFkMGYx
Yzc5OWMxNDJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5w
dXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rl
c3RzIGZvciB0aGUgb25zcGVlY2hjaGFuZ2UgZXZlbnQgd2l0aCA8aW5wdXQgdHlwZT0idGV4dCIg
c3BlZWNoPi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInNwZWVjaElucHV0IikudmFsdWUgaXMgIkdyZWVuIGVnZ3MgYW5kIGhh
bSIKK1BBU1Mgd2luZG93LmV2ZW50LnJlc3VsdHMubGVuZ3RoIGlzIDMKK1BBU1Mgd2luZG93LmV2
ZW50LnJlc3VsdHNbMF0udXR0ZXJhbmNlIGlzICJHcmVlbiBlZ2dzIGFuZCBoYW0iCitQQVNTIHdp
bmRvdy5ldmVudC5yZXN1bHRzWzBdLmNvbmZpZGVuY2UgaXMgMC44CitQQVNTIHdpbmRvdy5ldmVu
dC5yZXN1bHRzWzFdLnV0dGVyYW5jZSBpcyAiR3JlZW4geCBhbmQgaGFtIgorUEFTUyB3aW5kb3cu
ZXZlbnQucmVzdWx0c1sxXS5jb25maWRlbmNlIGlzIDAuNQorUEFTUyB3aW5kb3cuZXZlbnQucmVz
dWx0c1syXS51dHRlcmFuY2UgaXMgIjMgeCBhbmQgYW0iCitQQVNTIHdpbmRvdy5ldmVudC5yZXN1
bHRzWzJdLmNvbmZpZGVuY2UgaXMgMC4yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lu
cHV0LW9uc3BlZWNoY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9p
bnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1YWExNDdjOGY1N2I5
ZDQyNTUwYTU2MGJhNDEwNDNjMzBlNDFjNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sCkBAIC0wLDAgKzEs
NDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KK2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3IgdGhlIG9uc3BlZWNoY2hhbmdlIGV2ZW50
IHdpdGggJmx0O2lucHV0IHR5cGU9InRleHQiIHNwZWVjaD4uJyk7CisKK2Z1bmN0aW9uIG9uU3Bl
ZWNoQ2hhbmdlKCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInNwZWVjaElucHV0IikudmFsdWUnLCAnR3JlZW4gZWdncyBhbmQgaGFtJyk7Cisg
ICAgc2hvdWxkRXZhbHVhdGVUbygnd2luZG93LmV2ZW50LnJlc3VsdHMubGVuZ3RoJywgMyk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZXZlbnQucmVzdWx0c1swXS51dHRlcmFu
Y2UnLCAnR3JlZW4gZWdncyBhbmQgaGFtJyk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygnd2luZG93
LmV2ZW50LnJlc3VsdHNbMF0uY29uZmlkZW5jZScsIDAuOCk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCd3aW5kb3cuZXZlbnQucmVzdWx0c1sxXS51dHRlcmFuY2UnLCAnR3JlZW4geCBhbmQg
aGFtJyk7CisgICAgc2hvdWxkRXZhbHVhdGVUbygnd2luZG93LmV2ZW50LnJlc3VsdHNbMV0uY29u
ZmlkZW5jZScsIDAuNSk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZXZlbnQu
cmVzdWx0c1syXS51dHRlcmFuY2UnLCAnMyB4IGFuZCBhbScpOworICAgIHNob3VsZEV2YWx1YXRl
VG8oJ3dpbmRvdy5ldmVudC5yZXN1bHRzWzJdLmNvbmZpZGVuY2UnLCAwLjIpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBydW4oKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KCdHcmVlbiBlZ2dzIGFuZCBoYW0n
LCAwLjgsICcnKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElu
cHV0UmVzdWx0KCdHcmVlbiB4IGFuZCBoYW0nLCAwLjUsICcnKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KCczIHggYW5kIGFtJywgMC4yLCAn
Jyk7CisKKyAgICAgICAgLy8gQ2xpY2tpbmcgdGhlIHNwZWVjaCBidXR0b24gc2hvdWxkIGZpbGwg
aW4gbW9jayBzcGVlY2gtcmVjb2duaXplZCB0ZXh0LgorICAgICAgICB2YXIgaW5wdXQgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnc3BlZWNoSW5wdXQnKTsKKyAgICAgICAgdmFyIHggPSBpbnB1
dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0V2lkdGggLSA0OworICAgICAgICB2YXIgeSA9IGlu
cHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30KKword2luZG93Lm9ubG9h
ZCA9IHJ1bjsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8aW5wdXQgaWQ9J3NwZWVjaElucHV0JyB4LXdl
YmtpdC1zcGVlY2ggb253ZWJraXRzcGVlY2hjaGFuZ2U9Im9uU3BlZWNoQ2hhbmdlKCkiPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQt
dGV4dC1sYW5ndWFnZS10YWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL2lucHV0LXRl
eHQtbGFuZ3VhZ2UtdGFnLmh0bWwKaW5kZXggYjQ1MjY2MWZiMDg2N2YyNWNmNTI5YTY0ZjFlYzc5
ZDUyZmI2OWU5Yi4uZmRmNTg2ODNjMjRlYWJlY2M0ZjlmMzQ2NzA4YjIzYzU1ZGQwOGNkMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1sYW5ndWFnZS10YWcu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1YWdlLXRh
Zy5odG1sCkBAIC0zOCw4ICszOCw4IEBAIGZ1bmN0aW9uIHNwZWVjaEJ1dHRvbkNsaWNrKGVsZW1l
bnRJZCkgewogCiBmdW5jdGlvbiBydW4oKSB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicsICdl
bi1HQicpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRNb2NrU3BlZWNoSW5wdXRS
ZXN1bHQoJ+aciOOBruWGmeecnycsICdqYScpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5hZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoJ1BpY3R1cmVzIG9mIHRoZSBtb29uJywgMS4wLCAn
ZW4tR0InKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0
UmVzdWx0KCfmnIjjga7lhpnnnJ8nLCAxLjAsICdqYScpOwogICAgICAgICBzcGVlY2hCdXR0b25D
bGljaygnc3BlZWNoSW5wdXROb25lJyk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2gvaW5wdXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BlZWNoL2lucHV0LXRleHQtc3BlZWNoYnV0dG9uLmh0bWwKaW5kZXggY2VmNzcwNTZi
MTdkMWNkNDUxYjQ5MGI3YzFmMjQ2YmE2Yzg5NTBkYi4uMzUxYTk1MzcwYmQ2ODc5YTQzNjkyNWFl
MGQ1OTNiYzQ3MTZlYzAxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zcGVlY2gvaW5w
dXQtdGV4dC1zcGVlY2hidXR0b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NwZWVjaC9p
bnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sCkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0aW9uIG9u
V2Via2l0U3BlZWNoQ2hhbmdlKCkgewogCiBmdW5jdGlvbiBydW4oKSB7CiAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBv
ZiB0aGUgbW9vbicsICcnKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1Nw
ZWVjaElucHV0UmVzdWx0KCdQaWN0dXJlcyBvZiB0aGUgbW9vbicsIDEuMCwgJycpOwogCiAgICAg
ICAgIC8vIENsaWNraW5nIHRoZSBzcGVlY2ggYnV0dG9uIHNob3VsZCBmaWxsIGluIG1vY2sgc3Bl
ZWNoLXJlY29nbml6ZWQgdGV4dC4KICAgICAgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3NwZWVjaElucHV0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Nw
ZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9yZS1nZW5lcmF0ZWQtZXZlbnRzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3NwZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9yZS1nZW5lcmF0ZWQtZXZlbnRzLmh0
bWwKaW5kZXggYzY4NDg2Mzc3MDUzMzk5YjI5ZDA0ZmMyOTkwN2U1NWU4YWJmMDYwOC4uMTJiZWE1
ZTQzODcyNmZmYjNlZTk1MjQ2YmFiMDM2NjBiMTk4OTA0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9zcGVlY2gvc3BlZWNoLWJ1dHRvbi1pZ25vcmUtZ2VuZXJhdGVkLWV2ZW50cy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc3BlZWNoL3NwZWVjaC1idXR0b24taWdub3JlLWdlbmVy
YXRlZC1ldmVudHMuaHRtbApAQCAtNDksNyArNDksNyBAQCBmdW5jdGlvbiBzZXR1cERpc3BhdGNo
RXZlbnRUZXN0KCkgewogZnVuY3Rpb24gcnVuKCkgewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIgJiYgd2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgIC8vIFJ1bm5pbmcg
aW4gRFJULCB0ZXN0IHRoZSBldmVudFNlbmRlciBjYXNlLgotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoJ1BpY3R1cmVzIG9mIHRoZSBtb29uJywg
JycpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRNb2NrU3BlZWNoSW5wdXRSZXN1
bHQoJ1BpY3R1cmVzIG9mIHRoZSBtb29uJywgMS4wLCAnJyk7CiAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzcGVlY2hJbnB1dCcpLm9ud2Via2l0c3BlZWNoY2hhbmdlID0gZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzcGVlY2hJbnB1dCIpLnZhbHVlJywgJ1BpY3R1cmVzIG9mIHRoZSBtb29uJyk7
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAppbmRleCAxMzg0NTRkNDVjNGM5ZWJjNzliMTdjZThhMTJkZDhjYjNmM2QyMWQzLi5h
Y2NiMGMxMTAxOWNmYTk2YjQ1YmU5ZjMzNzU4ODhlMmE0NTFkZDQwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zMjI3
LDMgKzMyMjcsOSBAQCBCVUdfQU5UT05NIDogc3ZnL2RvbS9TVkdOdW1iZXJMaXN0LWJhc2ljcy54
aHRtbCA9IElNQUdFCiBCVUdfQU5UT05NIDogc3ZnL2RvbS9TVkdQb2ludExpc3QtYmFzaWNzLnho
dG1sID0gSU1BR0UKIEJVR19BTlRPTk0gOiBzdmcvZG9tL1NWR1N0cmluZ0xpc3QtYmFzaWNzLnho
dG1sID0gSU1BR0UKIEJVR19BTlRPTk0gOiBzdmcvZG9tL1NWR1RyYW5zZm9ybUxpc3QtYmFzaWNz
LnhodG1sID0gSU1BR0UKKworLy8gUmVtb3ZlIHRoZXNlIG9uY2UgdGhlIENocm9taXVtIHNpZGUg
aGFzIGNhdWdodCBvbiB3aXRoIG11bHRpcGxlIHNwZWVjaCBpbnB1dCByZXN1bHRzLgorQlVHNDk3
MzYgOiBmYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5odG1sID0gVEVYVAor
QlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LWxhbmd1YWdlLXRhZy5odG1sID0gVEVY
VAorQlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9pbnB1dC10ZXh0LXNwZWVjaGJ1dHRvbi5odG1sID0g
VEVYVAorQlVHNDk3MzYgOiBmYXN0L3NwZWVjaC9zcGVlY2gtYnV0dG9uLWlnbm9yZS1nZW5lcmF0
ZWQtZXZlbnRzLmh0bWwgPSBURVhUCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZmJjN2I1YzQwZTA1ZDI5Y2UwYmJhNmZk
NTUwYmEzMzFmYjZiYmUxLi4yMTc0OGFlZDQ0MjljMWQ5YTJhMDRkYWEyYzkxOGU2NzdhYmVhOWNi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTMyOSw2ICszMjksOSBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBw
YWdlL1BlcmZvcm1hbmNlVGltaW5nLmlkbAogICAgIHBhZ2UvUG9zaXRpb25FcnJvci5pZGwKICAg
ICBwYWdlL1NjcmVlbi5pZGwKKyAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsCisgICAgcGFn
ZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKKyAgICBwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5p
ZGwKICAgICBwYWdlL1dlYktpdFBvaW50LmlkbAogICAgIHBhZ2UvV29ya2VyTmF2aWdhdG9yLmlk
bAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDZjYTZkNDIxMGI4OWRhNGMwY2VhNzE2ZTFkMDA1MDM1NGNlYjcyZDcuLjc2ODBjY2MxOWJh
NDdkMzc3NmY2ZGYyNWY2MGRiYmY3NmQ2M2I1YzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTAtMTEtMTgg
IFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBKZXJlbXkgT3Jsb3cuCisKKyAgICAgICAgRm9yIHNwZWVjaCBpbnB1dCBldmVudCwgc2Vu
ZCBhbiBldmVudCBvYmplY3QgY29udGFpbmluZyBhbGwgdGhlIHJlY29nbml0aW9uIHJlc3VsdHMg
YW5kIG1ldGFkYXRhLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk3MzYKKworICAgICAgICBDdXJyZW50bHkgdGhlIHNwZWVjaCBpbnB1dCBldmVudCAn
b253ZWJraXRzcGVlY2hjaGFuZ2UnIHJlY2VpdmVzIG5vIHBhcmFtZXRlcnMuIFdlYkNvcmUgYWxy
ZWFkeQorICAgICAgICBoYXMgdGhlIGZ1bGwgbGlzdCBvZiByZWNvZ25pdGlvbiByZXN1bHRzIGFu
ZCBwb3B1bGF0ZXMgb25seSB0aGUgdG9wIHJlc3VsdCBpbnRvIHRoZSBpbnB1dCBmaWVsZAorICAg
ICAgICBhdXRvbWF0aWNhbGx5LiBJbiB0aGlzIHBhdGNoIHdlIHBhc3MgYSBTcGVlY2hJbnB1dEV2
ZW50IG9iamVjdCB0byB0aGUgZXZlbnQgaGFuZGxlciwgYW5kIHRoZSBKUworICAgICAgICBjb2Rl
IGNhbiBhY2Nlc3MgdGhlIGZ1bGwgbGlzdCBvZiByZXN1bHRzIHZpYSAiZXZlbnQucmVzdWx0cy5s
ZW5ndGgiLCAicmVzdWx0c1tpXS51dHRlcmFuY2UiIGFuZAorICAgICAgICAicmVzdWx0c1tpXS5j
b25maWRlbmNlIi4gQWxzbyB1cGRhdGVkIG1vY2sgb2JqZWN0IHdpdGggYXBwcm9wcmlhdGUgbWV0
aG9kcyB0byB0ZXN0IG11bHRpcGxlIHJlc3VsdHMuCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGVl
Y2gvaW5wdXQtb25zcGVlY2hjaGFuZ2UtZXZlbnQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0V2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBBZGRlZCBu
ZXcgZXZlbnQKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhFdmVudEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KTogQWRkZWQgbmV3IGV2ZW50CisgICAgICAgICogZG9t
L0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50Ojppc1NwZWVjaElucHV0RXZlbnQp
OgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogcGFn
ZS9TcGVlY2hJbnB1dEV2ZW50Lmg6IE5ldyBmaWxlIGltcGxlbWVudGluZyBTcGVlY2hJbnB1dEV2
ZW50LmlkbAorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRFdmVudDo6flNwZWVjaElucHV0
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoSW5wdXRFdmVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6OmlzU3BlZWNoSW5wdXRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dEV2ZW50OjpyZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaElucHV0RXZlbnQ6OlNwZWVjaElucHV0RXZlbnQpOgorICAgICAgICAqIHBh
Z2UvU3BlZWNoSW5wdXRFdmVudC5pZGw6IE5ldyBmaWxlIGRlZmluaW5nIFNwZWVjaElucHV0RXZl
bnQgb2JqZWN0CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dExpc3RlbmVyLmg6CisgICAgICAg
ICogcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJ
bnB1dFJlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0UmVzdWx0Lmg6
CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGw6IE5ldyBmaWxlIGRlZmluaW5n
IGEgc2luZ2xlIFNwZWVjaElucHV0UmVzdWx0IG9iamVjdAorICAgICAgICAqIHBhZ2UvU3BlZWNo
SW5wdXRSZXN1bHRMaXN0Lmg6IE5ldyBmaWxlIGltcGxlbWVudGluZyBTcGVlY2hJbnB1dFJlc3Vs
dExpc3QuaWRsCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6Omxlbmd0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dFJlc3VsdExpc3Q6Oml0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0OjpTcGVlY2hJbnB1dFJlc3VsdExpc3QpOgor
ICAgICAgICAqIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbDogTmV3IGZpbGUgZGVmaW5p
bmcgYSBsaXN0IG9mIFNwZWVjaElucHV0UmVzdWx0IG9iamVjdHMKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hJbnB1dENsaWVudE1vY2s6OmFkZFJlY29nbml0aW9uUmVzdWx0KTogUmVuYW1lZCBtZXRob2Qg
YW5kIGFkZGVkIG9uZSBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENs
aWVudE1vY2s6OmNsZWFyUmVzdWx0cyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hJbnB1dENs
aWVudE1vY2s6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svU3BlZWNoSW5w
dXRDbGllbnRNb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVu
dDo6c2V0UmVjb2duaXRpb25SZXN1bHQpOiBQYXNzIG5ldyBldmVudCBvYmplY3QgdG8gaGFuZGxl
ci4KKwogMjAxMC0xMS0yMiAgUmVuYXRhIEhvZG92YW4gIDxyZW5pQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3OTNl
MTU1OWY2NGRjOWZkZDMxNzViOWVhOTdhMjBkOGFiOWQ0NTA2Li43NTlmYjJjYmFmNTY3NWQ5NTVj
MmVhZjhkZjhhZjgxZDliYWJhNzZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0zMDIsNiArMzAyLDkg
QEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgU2hhcmVkV29ya2VyQ29udGV4dCBcCiAgICAgU2NyaXB0
UHJvZmlsZSBcCiAgICAgU2NyaXB0UHJvZmlsZU5vZGUgXAorICAgIFNwZWVjaElucHV0RXZlbnQg
XAorICAgIFNwZWVjaElucHV0UmVzdWx0IFwKKyAgICBTcGVlY2hJbnB1dFJlc3VsdExpc3QgXAog
ICAgIFNRTEVycm9yIFwKICAgICBTUUxFeGNlcHRpb24gXAogICAgIFNRTFJlc3VsdFNldCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQppbmRleCBlNWZlMmE3OTA1MjU1ZTlkYTU3MmU2MjFjOWU2MGY4MjRkMjY2Njg2Li5hOWI4OGE5
MWE2MjMwODJlNDkxZjlhNzQ2Y2ZjZGVkZDgwY2RlMGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTQ5NSw2ICs0OTUs
MTIgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTU2hhcmVkV29ya2VyQ29udGV4dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hh
cmVkV29ya2VyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1NoYXJlZFdvcmtlci5o
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3BlZWNoSW5wdXRFdmVudC5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dEV2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTcGVlY2hJbnB1dFJlc3VsdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
U3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nw
ZWVjaElucHV0UmVzdWx0TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3R5bGVN
ZWRpYS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHlsZU1lZGlhLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHlsZVNoZWV0LmNwcCBcCkBAIC0yMTU2LDExICsyMTYy
LDE1IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0
aW9uLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmggXAogCVdlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dENsaWVudC5oIFwKKwlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVu
dC5jcHAgXAorCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmggXAogCVdlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dC5jcHAgXAogCVdlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dC5oIFwKIAlXZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5w
dXRSZXN1bHQuY3BwIFwKIAlXZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaCBcCisJV2Vi
Q29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgXAorCVdlYkNvcmUvcGFnZS9TcGVl
Y2hJbnB1dFJlc3VsdExpc3QuaCBcCiAJV2ViQ29yZS9wYWdlL1N1c3BlbmRhYmxlVGltZXIuY3Bw
IFwKIAlXZWJDb3JlL3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oIFwKIAlXZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRUeXBlcy5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYWY3ODJhNmJlZWJiMmNkNTQ2ZmYzOGI2ZDA3ODY4Y2Y1
NTU5YTFkZC4uYzViYWQ2MjU0MjFhZjY2ZDhmNjZiNTU2YzQ1ZWQyZjAyYzk2ZGVhYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTI1MCw2ICsyNTAsOSBAQAogICAgICAgICAgICAgJ3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuaWRs
JywKICAgICAgICAgICAgICdwYWdlL1Bvc2l0aW9uRXJyb3IuaWRsJywKICAgICAgICAgICAgICdw
YWdlL1NjcmVlbi5pZGwnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwn
LAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHQuaWRsJywKKyAgICAgICAgICAg
ICdwYWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5pZGwnLAogICAgICAgICAgICAgJ3BhZ2UvV2Vi
S2l0UG9pbnQuaWRsJywKICAgICAgICAgICAgICdwYWdlL1dvcmtlck5hdmlnYXRvci5pZGwnLAog
ICAgICAgICAgICAgJ3BsdWdpbnMvRE9NTWltZVR5cGUuaWRsJywKQEAgLTIyODksOSArMjI5Miwx
MyBAQAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXQuY3BwJywKICAgICAgICAgICAgICdw
YWdlL1NwZWVjaElucHV0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5wdXRDbGllbnQu
aCcsCisgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dEV2ZW50LmNwcCcsCisgICAgICAgICAg
ICAncGFnZS9TcGVlY2hJbnB1dEV2ZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3BlZWNoSW5w
dXRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdwYWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5oJywKKyAgICAgICAgICAgICdw
YWdlL1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvU3BlZWNo
SW5wdXRSZXN1bHRMaXN0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5j
cHAnLAogICAgICAgICAgICAgJ3BhZ2UvU3VzcGVuZGFibGVUaW1lci5oJywKICAgICAgICAgICAg
ICdwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggZWMyMTNkNjBiODQ1YjMxMzcx
MjE3OTkzMWVjNmEzODk1MjVmYmFkOC4uYzA1YjNhNDc0OWZiZmZjYmVlNzE4MmExZWE5NWIxZTI0
ZjAxNWU3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJpCkBAIC0zMTEsNiArMzExLDkgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBwYWdl
L1BlcmZvcm1hbmNlVGltaW5nLmlkbCBcCiAgICAgcGFnZS9Qb3NpdGlvbkVycm9yLmlkbCBcCiAg
ICAgcGFnZS9TY3JlZW4uaWRsIFwKKyAgICBwYWdlL1NwZWVjaElucHV0RXZlbnQuaWRsIFwKKyAg
ICBwYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dFJlc3Vs
dExpc3QuaWRsIFwKICAgICBwYWdlL1dlYktpdFBvaW50LmlkbCBcCiAgICAgcGFnZS9Xb3JrZXJO
YXZpZ2F0b3IuaWRsIFwKICAgICBwbHVnaW5zL0RPTVBsdWdpbi5pZGwgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNjcxNDg5MzQw
MWU4MDIwZTIyNjliYjUzNDc1YjM2YWY5ZTVhOTZhZC4uMDg5N2Q5MGVjOThhMWYyNzQ0ZjUwNGU3
OWFkYjE1NWRkYzdlYWM5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yMDExLDggKzIwMTEsMTAgQEAgSEVBREVSUyArPSBcCiAg
ICAgcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5oIFwKICAgICBwYWdlL1NwZWVjaElucHV0LmggXAog
ICAgIHBhZ2UvU3BlZWNoSW5wdXRDbGllbnQuaCBcCisgICAgcGFnZS9TcGVlY2hJbnB1dEV2ZW50
LmggXAogICAgIHBhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oIFwKICAgICBwYWdlL1NwZWVjaElu
cHV0UmVzdWx0LmggXAorICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggXAogICAgIHBh
Z2UvV2luZG93RmVhdHVyZXMuaCBcCiAgICAgcGFnZS9Xb3JrZXJOYXZpZ2F0b3IuaCBcCiAgICAg
cGFnZS9YU1NBdWRpdG9yLmggXApAQCAtMzEzNCw3ICszMTM2LDkgQEAgY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEpIHsKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9J
TlBVVF9TUEVFQ0g9MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBwYWdlL1NwZWVjaElu
cHV0LmNwcCBcCisgICAgICAgIHBhZ2UvU3BlZWNoSW5wdXRFdmVudC5jcHAgXAogICAgICAgICBw
YWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcCBcCisgICAgICAgIHBhZ2UvU3BlZWNoSW5wdXRSZXN1
bHRMaXN0LmNwcCBcCiAgICAgICAgIHJlbmRlcmluZy9SZW5kZXJJbnB1dFNwZWVjaC5jcHAKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMzI2NmEx
MGUxYzhkZDFjYzBjMTI2MDk5OTRkYTMwZGVlZjAwNTNlLi40MDczNjVkM2ViZjVmMjg3YThhN2Iy
ZjFmNzFkZmU1YWM4YjQ0YWY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTUxMCw2ICsxNTEwLDE2IEBACiAJCTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0
NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1MzVCQzkzMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1
dENsaWVudE1vY2suaCAqLzsgfTsKIAkJNzU0MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NDEzM0E3MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmggKi87IH07CiAJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1l
bGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cCAqLzsgfTsKKwkJNzU0MTVBRkQxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1QUY4
MTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmggKi87IH07CisJCTc1NDE1QjAw
MTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1QUZCMTI5NThENUUwMDNBRDY2
OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLzsgfTsKKwkJNzU0MTVDMjgxMjlBOTkyMDAw
M0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzU0MTVDMjYxMjlBOTkyMDAwM0FENjY5IC8qIFNwZWVjaElu
cHV0RXZlbnQuY3BwICovOyB9OworCQk3NTQxNUMyOTEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNo
SW5wdXRSZXN1bHRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDc1NDE1QzI3MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExp
c3QuY3BwICovOyB9OworCQk3NTQxNUQ1NTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1
dEV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc1NDE1RDRGMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwICovOyB9
OworCQk3NTQxNUQ1NjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dEV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTQxNUQ1MDEyOUFC
MkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dEV2ZW50LmggKi87IH07CisJCTc1NDE1RDU3MTI5
QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1RDUxMTI5QUIyRDIwMDNBRDY2OSAv
KiBKU1NwZWVjaElucHV0UmVzdWx0LmNwcCAqLzsgfTsKKwkJNzU0MTVENTgxMjlBQjJEMjAwM0FE
NjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc1NDE1RDUyMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElu
cHV0UmVzdWx0LmggKi87IH07CisJCTc1NDE1RDU5MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVj
aElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3NTQxNUQ1MzEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3Vs
dExpc3QuY3BwICovOyB9OworCQk3NTQxNUQ1QTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJ
bnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc1NDE1RDU0MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlz
dC5oICovOyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07
CiAJCTc1NTNDRkU5MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzU1M0NGRTcx
MDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgKi87IH07CiAJCTc1
NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc4RjkwODExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXQuY3BwICovOyB9OwpAQCAtNzY1MSw2ICs3NjYxLDE5IEBACiAJCTc1MzVC
QzkzMTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3BlZWNoSW5wdXRDbGllbnRNb2NrLmg7IHBhdGggPSBt
b2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3NTQxMzNBNzEwMkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NDEzM0E5MTAyRTAwRjQwMDA3NUQwMCAv
KiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTQxNUFGODEyOTU4RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hJbnB1dEV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1QUY5MTI5NThENUUwMDNBRDY2OSAvKiBT
cGVlY2hJbnB1dEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hJbnB1dEV2
ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVBRkExMjk1OEQ1RTAw
M0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hJbnB1dFJlc3VsdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1
QUZCMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BlZWNoSW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1QUZDMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJ
bnB1dFJlc3VsdExpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaElucHV0UmVz
dWx0TGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1QzI2MTI5QTk5
MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNwZWVjaElucHV0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3NTQxNUMyNzEyOUE5OTIwMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaElucHV0
UmVzdWx0TGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc1NDE1RDRGMTI5
QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVlY2hJbnB1dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVENTAxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5w
dXRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NwZWVjaElucHV0
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVENTExMjlBQjJEMjAw
M0FENjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTcGVlY2hJbnB1dFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTc1NDE1RDUyMTI5QUIyRDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNoSW5wdXRSZXN1
bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVENTMxMjlBQjJEMjAwM0FE
NjY5IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzU0MTVENTQxMjlBQjJEMjAwM0FENjY5IC8qIEpTU3BlZWNoSW5w
dXRSZXN1bHRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3BlZWNo
SW5wdXRSZXN1bHRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU2
MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGltZWxpbmVSZWNvcmRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU3
OEY5MDgxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWVjaElucHV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEzMzAyLDkgKzEzMzI1LDE2IEBACiAJCQkJNzU3OEY5MDgxMURERjI2OTAw
RDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCAqLywKIAkJCQk3NTc4RjkwOTExRERGMjY5MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXQuaCAqLywKIAkJCQk3NTc4RjkwQTExRERGMjY5MDBEOTMzQzUgLyog
U3BlZWNoSW5wdXRDbGllbnQuaCAqLywKKwkJCQk3NTQxNUMyNjEyOUE5OTIwMDAzQUQ2NjkgLyog
U3BlZWNoSW5wdXRFdmVudC5jcHAgKi8sCisJCQkJNzU0MTVBRjgxMjk1OEQ1RTAwM0FENjY5IC8q
IFNwZWVjaElucHV0RXZlbnQuaCAqLywKKwkJCQk3NTQxNUFGOTEyOTU4RDVFMDAzQUQ2NjkgLyog
U3BlZWNoSW5wdXRFdmVudC5pZGwgKi8sCiAJCQkJNzU3OEY5MUUxMUU0RTMyODAwRDkzM0M1IC8q
IFNwZWVjaElucHV0TGlzdGVuZXIuaCAqLywKIAkJCQk3NTg5NzhFQTEyNzA5MEQ2MDA3NkQ1QTkg
LyogU3BlZWNoSW5wdXRSZXN1bHQuY3BwICovLAogCQkJCTc1ODk3OEVCMTI3MDkwRDYwMDc2RDVB
OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5oICovLAorCQkJCTc1NDE1QUZBMTI5NThENUUwMDNBRDY2
OSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5pZGwgKi8sCisJCQkJNzU0MTVDMjcxMjlBOTkyMDAwM0FE
NjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgKi8sCisJCQkJNzU0MTVBRkIxMjk1OEQ1
RTAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5oICovLAorCQkJCTc1NDE1QUZDMTI5
NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsICovLAogCQkJCTYyQzEy
MTdBMTFBQjlFNzYwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCAqLywKIAkJCQk2MkMx
MjE3QjExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oICovLAogCQkJCTAwM0Yx
RkU5MTFFNkFCNDMwMDgyNThEOSAvKiBVc2VyQ29udGVudFR5cGVzLmggKi8sCkBAIC0xNTg1NCw2
ICsxNTg4NCwxMiBAQAogCQkJCTY1REYzMUVDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oICovLAogCQkJCUU0QjQyMzg1MENCRkI3M0MwMEFGMkVDRSAvKiBKU1By
b2dyZXNzRXZlbnQuY3BwICovLAogCQkJCUU0QjQyMzg2MENCRkI3M0MwMEFGMkVDRSAvKiBKU1By
b2dyZXNzRXZlbnQuaCAqLywKKwkJCQk3NTQxNUQ0RjEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVl
Y2hJbnB1dEV2ZW50LmNwcCAqLywKKwkJCQk3NTQxNUQ1MDEyOUFCMkQyMDAzQUQ2NjkgLyogSlNT
cGVlY2hJbnB1dEV2ZW50LmggKi8sCisJCQkJNzU0MTVENTExMjlBQjJEMjAwM0FENjY5IC8qIEpT
U3BlZWNoSW5wdXRSZXN1bHQuY3BwICovLAorCQkJCTc1NDE1RDUyMTI5QUIyRDIwMDNBRDY2OSAv
KiBKU1NwZWVjaElucHV0UmVzdWx0LmggKi8sCisJCQkJNzU0MTVENTMxMjlBQjJEMjAwM0FENjY5
IC8qIEpTU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmNwcCAqLywKKwkJCQk3NTQxNUQ1NDEyOUFCMkQy
MDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCAqLywKIAkJCQk2NURGMzFFRjA5
RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAw
QkUzMjUgLyogSlNUZXh0LmggKi8sCiAJCQkpOwpAQCAtMjEyOTEsNiArMjEzMjcsMTEgQEAKIAkJ
CQlFMUFEMTQyMTEyOTVFQTZCMDBBQ0E5ODkgLyogSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMUFEMTQyMzEyOTVFQTdGMDBBQ0E5ODkgLyogSlNIVE1MSW5w
dXRFbGVtZW50Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUFEMTQyNTEyOTVFQTk1MDBB
Q0E5ODkgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NzU0MTVBRkQxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTc1NDE1QjAwMTI5NThENUUwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExp
c3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NDE1RDU2MTI5QUIyRDIwMDNBRDY2OSAvKiBKU1Nw
ZWVjaElucHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTc1NDE1RDU4MTI5QUIyRDIwMDNB
RDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3NTQxNUQ1
QTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dFJlc3VsdExpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMjM4NDgsNiArMjM4ODksMTEgQEAKIAkJCQlFMUFEMTJENjEyOTVEMEJEMDBBQ0E5
ODkgLyogSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTFBRDEzOUIxMjk1RDkyNjAwQUNBOTg5IC8qIEpTSFRNTExpbmtFbGVtZW50Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUUxQUQxMzlFMTI5NUQ5NjEwMEFDQTk4OSAvKiBKU0hUTUxT
dHlsZUVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU0MTVDMjgxMjlBOTky
MDAwM0FENjY5IC8qIFNwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzU0
MTVDMjkxMjlBOTkyMDAwM0FENjY5IC8qIFNwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk3NTQxNUQ1NTEyOUFCMkQyMDAzQUQ2NjkgLyogSlNTcGVlY2hJbnB1dEV2
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NDE1RDU3MTI5QUIyRDIwMDNBRDY2OSAvKiBK
U1NwZWVjaElucHV0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTc1NDE1RDU5MTI5QUIy
RDIwMDNBRDY2OSAvKiBKU1NwZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCmluZGV4IGQ2NzFkZWU0MjA2ZTVlODc1
Y2VlNzNiOGZlNzJhZDE2M2I2Zjk1YWMuLmZkODAzNjBhNzNiZWU2MjE3MWUzMjkxNmUwNDM2ZjM1
ZmEyNThkMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcApAQCAtNTEsNiAr
NTEsNyBAQAogI2luY2x1ZGUgIkpTUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkpT
UG9wU3RhdGVFdmVudC5oIgogI2luY2x1ZGUgIkpTUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUg
IkpTU3BlZWNoSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIkpTVGV4dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiSlNVSUV2ZW50LmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIgpAQCAt
NjgsNiArNjksNyBAQAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRl
ICJQb3BTdGF0ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgorI2luY2x1ZGUg
IlNwZWVjaElucHV0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJV
SUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKQEAgLTE5Myw2ICsx
OTUsMTAgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgRXZlbnQqIGV2ZW50KQogICAgIGVsc2UgaWYgKGV2ZW50LT5pc0F1ZGlv
UHJvY2Vzc2luZ0V2ZW50KCkpCiAgICAgICAgIHdyYXBwZXIgPSBDUkVBVEVfRE9NX09CSkVDVF9X
UkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgQXVkaW9Qcm9jZXNzaW5nRXZlbnQsIGV2ZW50KTsK
ICNlbmRpZgorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisgICAgZWxzZSBpZiAoZXZlbnQtPmlz
U3BlZWNoSW5wdXRFdmVudCgpKQorICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1Rf
V1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFNwZWVjaElucHV0RXZlbnQsIGV2ZW50KTsKKyNl
bmRpZgogICAgIGVsc2UKICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQ
RVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBFdmVudCwgZXZlbnQpOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEV2ZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RXZlbnRDdXN0b20uY3BwCmluZGV4IGJiODg1Yjk4NzA2NDdkNWNkODkx
OTRiMjAxYWMyOGVjZTZhNDk5YjcuLmZmOWI5OGIyMzFlNGU1YjEyM2IxNWUxNWE4ZDUzODQxNTRk
YTZlMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRDdXN0
b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RXZlbnRDdXN0b20uY3Bw
CkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVjhQb3BTdGF0ZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiVjhQcm9ncmVzc0V2ZW50LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIlY4
U3BlZWNoSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIlY4U3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiVjhUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJWOFRvdWNoRXZlbnQuaCIKQEAgLTE3Miw2ICsx
NzMsMTAgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRXZlbnQqIGltcGwpCiAgICAgaWYg
KGltcGwtPmlzQXVkaW9Qcm9jZXNzaW5nRXZlbnQoKSkKICAgICAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8QXVkaW9Qcm9jZXNzaW5nRXZlbnQqPihpbXBsKSk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoSU5QVVRfU1BFRUNIKQorICAgIGlmIChpbXBsLT5pc1NwZWVjaElucHV0RXZlbnQoKSkKKyAg
ICAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8U3BlZWNoSW5wdXRFdmVudCo+KGltcGwpKTsK
KyNlbmRpZgogICAgIGlmIChpbXBsLT5pc0N1c3RvbUV2ZW50KCkpCiAgICAgICAgIHJldHVybiB0
b1Y4KHN0YXRpY19jYXN0PEN1c3RvbUV2ZW50Kj4oaW1wbCkpOwogICAgIHJldHVybiBWOEV2ZW50
Ojp3cmFwKGltcGwpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRXZlbnQuY3BwCmluZGV4IGM4ZGE0NjE3ZWNmMjM0NTlhZTRmYTE5MDBkZDM1NDNjYjI4
M2IzZGMuLmE5NDlmZDUyM2U1ZWUxOTgzZmQ4YTgxMmViM2QyNDY5OGJlY2YyNmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0V2ZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9FdmVudC5jcHAKQEAg
LTIzNiw2ICsyMzYsMTMgQEAgYm9vbCBFdmVudDo6aXNBdWRpb1Byb2Nlc3NpbmdFdmVudCgpIGNv
bnN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCitib29sIEV2ZW50Ojpp
c1NwZWVjaElucHV0RXZlbnQoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRp
ZgorCiBib29sIEV2ZW50Ojpmcm9tVXNlckdlc3R1cmUoKQogewogICAgIGlmICghVXNlckdlc3R1
cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRXZlbnQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXggMGQyZjJiOTkzZWE1NTk3
ODRmNjU2ZmZhYTBkYTliNWU4MjZkYjYxMC4uZjA1ZDM2YzkwMDAwMTUyMjZhNjgwYzEyMTY0MGJm
ZjQ3YWUyMjQ4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9XZWJDb3Jl
L2RvbS9FdmVudC5oCkBAIC0xNDIsNiArMTQyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNEZXZpY2VNb3Rpb25FdmVudCgpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIGJvb2wgaXNEZXZpY2VPcmllbnRhdGlvbkV2ZW50KCkgY29uc3Q7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTcGVlY2hJbnB1
dEV2ZW50KCkgY29uc3Q7CisjZW5kaWYKICAgICAgICAgYm9vbCBmcm9tVXNlckdlc3R1cmUoKTsK
ICAgICAgICAgCiAgICAgICAgIGJvb2wgcHJvcGFnYXRpb25TdG9wcGVkKCkgY29uc3QgeyByZXR1
cm4gbV9wcm9wYWdhdGlvblN0b3BwZWQgfHwgbV9pbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ7
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA5NTRhYWIyNDdmODhkOGNkMmI0NTdj
OWEwMDQxYzg4ODk3MDk4ZTFhLi5mY2IyYmU4ZDY4Njg5ZjVmMTEwYzM0ZWIwMmNhZTE0NjBjMjkz
OTJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xOTM3LDExICsxOTM3LDYgQEAg
Ym9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc1NwZWVjaEVuYWJsZWQoKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaXNwYXRjaFdlYmtpdFNwZWVj
aENoYW5nZUV2ZW50KCkKLXsKLSAgICBBU1NFUlQoaXNTcGVlY2hFbmFibGVkKCkpOwotICAgIGRp
c3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0c3BlZWNoY2hhbmdl
RXZlbnQsIHRydWUsIGZhbHNlKSk7Ci19CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCmluZGV4IDhmNmE0NzE5MzAzYjRlNjhhMDA0NjU0MzE5YWNiZDIxYWVl
N2U2MjkuLjUyNDYwYzdkNDc0YjY2Zjg3M2YxZGEzOTNmYWVkYTUxZGRjYTQ3MzYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaApAQCAtMTA4LDcgKzEwOCw2IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJM
RShJTlBVVF9TUEVFQ0gpCiAgICAgdmlydHVhbCBib29sIGlzU3BlZWNoRW5hYmxlZCgpIGNvbnN0
OwotICAgIHZvaWQgZGlzcGF0Y2hXZWJraXRTcGVlY2hDaGFuZ2VFdmVudCgpOwogI2VuZGlmCiAK
ICAgICBib29sIGNoZWNrZWQoKSBjb25zdCB7IHJldHVybiBtX2NoZWNrZWQ7IH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmNwcCBiL1dlYkNvcmUvcGFnZS9TcGVl
Y2hJbnB1dEV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODEzMjJmZDRhNjRhNjU5NTk2OTgwZjg0ZGFk
N2UxNTZhYmUyOWZlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0
RXZlbnQuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
U3BlZWNoSW5wdXRFdmVudC5oIgorCisjaWYgRU5BQkxFKElOUFVUX1NQRUVDSCkKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFNwZWVjaElucHV0RXZlbnQ+IFNwZWVjaElucHV0
RXZlbnQ6OmNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3BlZWNo
SW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cykKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNw
ZWVjaElucHV0RXZlbnQoZXZlbnRUeXBlLCByZXN1bHRzKSk7Cit9CisKK1NwZWVjaElucHV0RXZl
bnQ6On5TcGVlY2hJbnB1dEV2ZW50KCkgeworfQorCitTcGVlY2hJbnB1dEV2ZW50OjpTcGVlY2hJ
bnB1dEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTcGVlY2hJbnB1
dFJlc3VsdEFycmF5JiByZXN1bHRzKQorICAgIDogRXZlbnQoZXZlbnRUeXBlLCB0cnVlLCBmYWxz
ZSkgLy8gQ2FuIGJ1YmJsZSwgbm90IGNhbmNlbGFibGUKKyAgICAsIG1fcmVzdWx0cyhTcGVlY2hJ
bnB1dFJlc3VsdExpc3Q6OmNyZWF0ZShyZXN1bHRzKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOUFVUX1NQRUVDSCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dEV2ZW50LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRF
dmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZhMzlmM2NkZTNhOTk4NDZkNWIyMTQzNmIxZWI0MjNiMjM3Nzhi
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5oCkBA
IC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNwZWVjaElucHV0RXZlbnRfaAorI2Rl
ZmluZSBTcGVlY2hJbnB1dEV2ZW50X2gKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKKyNp
bmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIlNwZWVjaElucHV0UmVzdWx0TGlzdC5oIgorCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBT
cGVlY2hJbnB1dEV2ZW50IDogcHVibGljIEV2ZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTcGVlY2hJbnB1dEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIGNvbnN0IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmIHJlc3VsdHMpOworICAgIH5TcGVl
Y2hJbnB1dEV2ZW50KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNTcGVlY2hJbnB1dEV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCisgICAgU3BlZWNoSW5wdXRSZXN1bHRMaXN0KiByZXN1
bHRzKCkgY29uc3QgeyByZXR1cm4gbV9yZXN1bHRzLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAg
U3BlZWNoSW5wdXRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3Bl
ZWNoSW5wdXRSZXN1bHRBcnJheSYgcmVzdWx0cyk7CisKKyAgICBSZWZQdHI8U3BlZWNoSW5wdXRS
ZXN1bHRMaXN0PiBtX3Jlc3VsdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQorCisjZW5kaWYgLy8gU3BlZWNoSW5wdXRFdmVu
dF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwgYi9XZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRFdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ2MTQ4MzQxNWQ1Y2E4
OWE1NTExM2ZkYTU3YzYwOTE0ZThmY2FiMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dEV2ZW50LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxl
IGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5QVVRfU1BF
RUNICisgICAgXSBTcGVlY2hJbnB1dEV2ZW50IDogRXZlbnQgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU3BlZWNoSW5wdXRSZXN1bHRMaXN0IHJlc3VsdHM7CisgICAgfTsKKworfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaCBiL1dlYkNvcmUvcGFn
ZS9TcGVlY2hJbnB1dExpc3RlbmVyLmgKaW5kZXggNTY4YjFiN2I2MmYwMjgxNjc2YTcxNTY4Mjc2
NzI1N2FmMTA5MjIzZC4uNzQxNTMwMTI3Mjk0ODU2ZGNkMDJhYTE3MTVjYzU5ODFmYzJjMjE2MyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0TGlzdGVuZXIuaAorKysgYi9XZWJD
b3JlL3BhZ2UvU3BlZWNoSW5wdXRMaXN0ZW5lci5oCkBAIC0zOCw4ICszOCw2IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNwZWVjaElucHV0UmVzdWx0
PiA+IFNwZWVjaElucHV0UmVzdWx0QXJyYXk7Ci0KIC8vIEludGVyZmFjZSB0byBiZSBpbXBsZW1l
bnRlZCBieSB0aGUgZWxlbWVudCB3aGljaCBpbnZva2VzIFNwZWVjaElucHV0LgogY2xhc3MgU3Bl
ZWNoSW5wdXRMaXN0ZW5lciB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3Bl
ZWNoSW5wdXRSZXN1bHQuY3BwIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmNwcApp
bmRleCBmNWI2OTcyZjAyMjNhNTUzOTFhNWMxOTcxMzExNzI1N2ExNTYzMDE1Li4xYzA0MmEwNTYx
MDFmZDIxYWVlM2Q0NTQyNDBhYzg1NTM0YWRkNDk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
U3BlZWNoSW5wdXRSZXN1bHQuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3Vs
dC5jcHAKQEAgLTM1LDYgKzM1LDExIEBAIFBhc3NSZWZQdHI8U3BlZWNoSW5wdXRSZXN1bHQ+IFNw
ZWVjaElucHV0UmVzdWx0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiB1dHRlcmFuY2UsCiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hJbnB1dFJlc3VsdCh1dHRlcmFuY2UsIGNvbmZpZGVuY2Up
KTsKIH0KIAorUGFzc1JlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdD4gU3BlZWNoSW5wdXRSZXN1bHQ6
OmNyZWF0ZShjb25zdCBTcGVlY2hJbnB1dFJlc3VsdCYgc291cmNlKQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3BlZWNoSW5wdXRSZXN1bHQoc291cmNlLm1fdXR0ZXJhbmNlLCBzb3VyY2Uu
bV9jb25maWRlbmNlKSk7Cit9CisKIFNwZWVjaElucHV0UmVzdWx0OjpTcGVlY2hJbnB1dFJlc3Vs
dChjb25zdCBTdHJpbmcmIHV0dGVyYW5jZSwgZG91YmxlIGNvbmZpZGVuY2UpCiAgICAgOiBtX3V0
dGVyYW5jZSh1dHRlcmFuY2UpCiAgICAgLCBtX2NvbmZpZGVuY2UoY29uZmlkZW5jZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5oIGIvV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0UmVzdWx0LmgKaW5kZXggZWY5ZmQxMDJjOTQ4NGVjMjg0ZDlmMmZiMzg0NjhlY2Jj
MDIyNDNkMS4uNDU3ZjA3ODM1NzljYzlmMDg2Yjc0NWZmMjQxYjkxZWU0OTUxM2IyOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmgKKysrIGIvV2ViQ29yZS9wYWdl
L1NwZWVjaElucHV0UmVzdWx0LmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gZmllbGRzLCBhcyByZWNlaXZlZCBmcm9tIHRoZSBlbWJlZGRlci4KIGNsYXNzIFNwZWVj
aElucHV0UmVzdWx0IDogcHVibGljIFJlZkNvdW50ZWQ8U3BlZWNoSW5wdXRSZXN1bHQ+IHsKIHB1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdD4gY3JlYXRlKGNv
bnN0IFNwZWVjaElucHV0UmVzdWx0JiBzb3VyY2UpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNw
ZWVjaElucHV0UmVzdWx0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiB1dHRlcmFuY2UsIGRvdWJsZSBj
b25maWRlbmNlKTsKIAogICAgIGRvdWJsZSBjb25maWRlbmNlKCkgY29uc3Q7CkBAIC01MCw2ICs1
MSw4IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fY29uZmlkZW5jZTsKIH07CiAKK3R5cGVkZWYg
VmVjdG9yPFJlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdD4gPiBTcGVlY2hJbnB1dFJlc3VsdEFycmF5
OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BF
RUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0LmlkbCBiL1dl
YkNvcmUvcGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjY4OGRlNDdhZGRi
ZTRjZWJjZDAzMzYyZGM5ZTYzNTRmMGE3YTJjZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dFJlc3VsdC5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21v
ZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUlOUFVU
X1NQRUVDSAorICAgIF0gU3BlZWNoSW5wdXRSZXN1bHQgeworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHV0dGVyYW5jZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZs
b2F0IGNvbmZpZGVuY2U7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1Nw
ZWVjaElucHV0UmVzdWx0TGlzdC5jcHAgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRM
aXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MWZkMTA4ZjUwN2UwMDY0MGU0YjAzMWFhZmE3NzY4YzQ2NTU0
Y2E0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0TGlz
dC5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVl
Y2hJbnB1dFJlc3VsdExpc3QuaCIKKworI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdExpc3Q+IFNwZWVj
aElucHV0UmVzdWx0TGlzdDo6Y3JlYXRlKGNvbnN0IFNwZWVjaElucHV0UmVzdWx0QXJyYXkmIHJl
c3VsdHMpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTcGVlY2hJbnB1dFJlc3VsdExpc3Qo
cmVzdWx0cykpOworfQorCitTcGVlY2hJbnB1dFJlc3VsdCogU3BlZWNoSW5wdXRSZXN1bHRMaXN0
OjppdGVtKHVuc2lnbmVkIGluZGV4KQoreworICAgIHJldHVybiBpbmRleCA+PSBtX3Jlc3VsdHMu
c2l6ZSgpID8gMCA6IG1fcmVzdWx0c1tpbmRleF0uZ2V0KCk7Cit9CisKK1NwZWVjaElucHV0UmVz
dWx0TGlzdDo6U3BlZWNoSW5wdXRSZXN1bHRMaXN0KGNvbnN0IFNwZWVjaElucHV0UmVzdWx0QXJy
YXkmIHJlc3VsdHMpCisgICAgOiBtX3Jlc3VsdHMocmVzdWx0cykgLy8gVGFrZXMgYSBjb3B5IG9m
IHRoZSBhcnJheSBvZiBSZWZQdHJzLgoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L1NwZWVjaElucHV0UmVzdWx0TGlzdC5oIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0UmVzdWx0
TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIwNTA2MzBiMTA3ZDk1ZTc5NTU3MTBkM2I0YjFjZjc5ZDU0YWJk
YWUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0
LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3BlZWNoSW5wdXRSZXN1bHRM
aXN0X2gKKyNkZWZpbmUgU3BlZWNoSW5wdXRSZXN1bHRMaXN0X2gKKworI2lmIEVOQUJMRShJTlBV
VF9TUEVFQ0gpCisKKyNpbmNsdWRlICJTcGVlY2hJbnB1dFJlc3VsdC5oIgorCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTcGVlY2hJbnB1
dFJlc3VsdExpc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVlY2hJbnB1dFJlc3VsdExpc3Q+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVlY2hJbnB1dFJlc3VsdExpc3Q+IGNy
ZWF0ZShjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHRzKTsKKworICAgIC8vIE1l
dGhvZHMgZnJvbSB0aGUgSURMLgorICAgIHNpemVfdCBsZW5ndGgoKSB7IHJldHVybiBtX3Jlc3Vs
dHMuc2l6ZSgpOyB9CisgICAgU3BlZWNoSW5wdXRSZXN1bHQqIGl0ZW0odW5zaWduZWQgaW5kZXgp
OworCitwcml2YXRlOgorICAgIFNwZWVjaElucHV0UmVzdWx0TGlzdChjb25zdCBTcGVlY2hJbnB1
dFJlc3VsdEFycmF5JiByZXN1bHRzKTsKKworICAgIFNwZWVjaElucHV0UmVzdWx0QXJyYXkgbV9y
ZXN1bHRzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOUFVUX1NQRUVDSCkKKworI2VuZGlmIC8vIFNwZWVjaElucHV0UmVzdWx0TGlzdF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbCBiL1dlYkNvcmUv
cGFnZS9TcGVlY2hJbnB1dFJlc3VsdExpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhMjNkNGYwMjM3MDk0
MDY3NTJjNWFmNzQxMGYzODM1YzE2ZDk4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3Bh
Z2UvU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmlkbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgSGFzSW5kZXhHZXR0ZXIs
CisgICAgICAgIENvbmRpdGlvbmFsPUlOUFVUX1NQRUVDSAorICAgIF0gU3BlZWNoSW5wdXRSZXN1
bHRMaXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3Ro
OworICAgICAgICBTcGVlY2hJbnB1dFJlc3VsdCBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25lZCBs
b25nIGluZGV4KTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVl
Y2hJbnB1dENsaWVudE1vY2suY3BwCmluZGV4IDgyMDE1MmMyMjZkNWY2ODYwMTc1NjY4Y2JjZWVm
ZDQzNmUwYmU1ZTcuLjE2ZjI4MjU1ODY1MTQ4NzJhMDk0YTkzYjA3NDEyYjU0Y2Q1ZDJkMjggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwCkBA
IC04MSwxOCArODEsMjEgQEAgdm9pZCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OmNhbmNlbFJlY29n
bml0aW9uKGludCByZXF1ZXN0SWQpCiAgICAgfQogfQogCi12b2lkIFNwZWVjaElucHV0Q2xpZW50
TW9jazo6c2V0UmVjb2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IEF0
b21pY1N0cmluZyYgbGFuZ3VhZ2UpCit2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6YWRkUmVj
b2duaXRpb25SZXN1bHQoY29uc3QgU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBj
b25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlKQogewogICAgIGlmIChsYW5ndWFnZS5pc0VtcHR5
KCkpCi0gICAgICAgIG1fcmVzdWx0Rm9yRW1wdHlMYW5ndWFnZSA9IHJlc3VsdDsKLSAgICBlbHNl
Ci0gICAgICAgIG1fcmVjb2duaXRpb25SZXN1bHQuc2V0KGxhbmd1YWdlLCByZXN1bHQpOworICAg
ICAgICBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlLmFwcGVuZChTcGVlY2hJbnB1dFJlc3VsdDo6
Y3JlYXRlKHJlc3VsdCwgY29uZmlkZW5jZSkpOworICAgIGVsc2UgeworICAgICAgICBpZiAoIW1f
cmVjb2duaXRpb25SZXN1bHRzLmNvbnRhaW5zKGxhbmd1YWdlKSkKKyAgICAgICAgICAgIG1fcmVj
b2duaXRpb25SZXN1bHRzLnNldChsYW5ndWFnZSwgU3BlZWNoSW5wdXRSZXN1bHRBcnJheSgpKTsK
KyAgICAgICAgbV9yZWNvZ25pdGlvblJlc3VsdHMuZmluZChsYW5ndWFnZSktPnNlY29uZC5hcHBl
bmQoU3BlZWNoSW5wdXRSZXN1bHQ6OmNyZWF0ZShyZXN1bHQsIGNvbmZpZGVuY2UpKTsKKyAgICB9
CiB9CiAKIHZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpjbGVhclJlc3VsdHMoKQogewotICAg
IG1fcmVzdWx0Rm9yRW1wdHlMYW5ndWFnZSA9IFN0cmluZygpOwotICAgIG1fcmVjb2duaXRpb25S
ZXN1bHQuY2xlYXIoKTsKKyAgICBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlLmNsZWFyKCk7Cisg
ICAgbV9yZWNvZ25pdGlvblJlc3VsdHMuY2xlYXIoKTsKIH0KIAogdm9pZCBTcGVlY2hJbnB1dENs
aWVudE1vY2s6OnRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8U3BlZWNoSW5wdXRDbGllbnRNb2Nr
PiopCkBAIC0xMDIsMTggKzEwNSwxNyBAQCB2b2lkIFNwZWVjaElucHV0Q2xpZW50TW9jazo6dGlt
ZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxTcGVlY2hJbnB1dENsaWVudE1vY2s+KikKICAgICAgICAg
bV9saXN0ZW5lci0+ZGlkQ29tcGxldGVSZWNvcmRpbmcobV9yZXF1ZXN0SWQpOwogICAgICAgICBt
X3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICB9IGVsc2UgewotICAgICAgICBTcGVlY2hJbnB1
dFJlc3VsdEFycmF5IHJlc3VsdHM7CiAgICAgICAgIGJvb2wgbm9SZXN1bHRzRm91bmQgPSBmYWxz
ZTsKIAogICAgICAgICAvLyBFbXB0eSBsYW5ndWFnZSBjYXNlIG11c3QgYmUgaGFuZGxlZCBzZXBh
cmF0ZWx5IHRvIGF2b2lkIHByb2JsZW1zIHdpdGggSGFzaE1hcCBhbmQgZW1wdHkga2V5cy4KICAg
ICAgICAgaWYgKG1fbGFuZ3VhZ2UuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIW1fcmVz
dWx0Rm9yRW1wdHlMYW5ndWFnZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICByZXN1bHRzLmFw
cGVuZChTcGVlY2hJbnB1dFJlc3VsdDo6Y3JlYXRlKG1fcmVzdWx0Rm9yRW1wdHlMYW5ndWFnZSwg
MS4wKSk7CisgICAgICAgICAgICBpZiAoIW1fcmVzdWx0c0ZvckVtcHR5TGFuZ3VhZ2UuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgIG1fbGlzdGVuZXItPnNldFJlY29nbml0aW9uUmVzdWx0KG1f
cmVxdWVzdElkLCBtX3Jlc3VsdHNGb3JFbXB0eUxhbmd1YWdlKTsKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobV9yZWNvZ25pdGlvblJlc3VsdC5jb250YWlucyhtX2xhbmd1YWdl
KSkKLSAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChTcGVlY2hJbnB1dFJlc3VsdDo6Y3Jl
YXRlKG1fcmVjb2duaXRpb25SZXN1bHQuZ2V0KG1fbGFuZ3VhZ2UpLCAxLjApKTsKKyAgICAgICAg
ICAgIGlmIChtX3JlY29nbml0aW9uUmVzdWx0cy5jb250YWlucyhtX2xhbmd1YWdlKSkKKyAgICAg
ICAgICAgICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChtX3JlcXVlc3RJZCwg
bV9yZWNvZ25pdGlvblJlc3VsdHMuZ2V0KG1fbGFuZ3VhZ2UpKTsKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBub1Jlc3VsdHNGb3VuZCA9IHRydWU7CiAgICAgICAgIH0KQEAgLTEy
NCwxMCArMTI2LDExIEBAIHZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjp0aW1lckZpcmVkKFdl
YkNvcmU6OlRpbWVyPFNwZWVjaElucHV0Q2xpZW50TW9jaz4qKQogICAgICAgICAgICAgU3RyaW5n
IGVycm9yKCJlcnJvcjogbm8gcmVzdWx0IGZvdW5kIGZvciBsYW5ndWFnZSAnIik7CiAgICAgICAg
ICAgICBlcnJvci5hcHBlbmQobV9sYW5ndWFnZSk7CiAgICAgICAgICAgICBlcnJvci5hcHBlbmQo
IiciKTsKKyAgICAgICAgICAgIFNwZWVjaElucHV0UmVzdWx0QXJyYXkgcmVzdWx0czsKICAgICAg
ICAgICAgIHJlc3VsdHMuYXBwZW5kKFNwZWVjaElucHV0UmVzdWx0OjpjcmVhdGUoZXJyb3IsIDEu
MCkpOworICAgICAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVjb2duaXRpb25SZXN1bHQobV9yZXF1
ZXN0SWQsIHJlc3VsdHMpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9saXN0ZW5lci0+c2V0UmVj
b2duaXRpb25SZXN1bHQobV9yZXF1ZXN0SWQsIHJlc3VsdHMpOwogICAgICAgICBtX2xpc3RlbmVy
LT5kaWRDb21wbGV0ZVJlY29nbml0aW9uKG1fcmVxdWVzdElkKTsKICAgICAgICAgbV9yZXF1ZXN0
SWQgPSAwOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJ
bnB1dENsaWVudE1vY2suaCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVu
dE1vY2suaAppbmRleCBjMjIxOWI0MDQ1YzdmYjJiMzEwNmQyOTE3ZjJmZmU3Yjk3Y2Q0N2NkLi42
ZjcyMTkxMGQxNjE2M2FhMzdmMjNiNDMwNTUzM2QwMGIxYWEyY2E1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCkBAIC0zMyw2ICszMyw3IEBACiAK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNwZWVjaElucHV0Q2xpZW50
LmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRSZXN1bHQuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgpAQCAtNDgsNyArNDksNyBAQCBjbGFzcyBTcGVlY2hJbnB1dENsaWVudE1vY2sgOiBwdWJsaWMg
U3BlZWNoSW5wdXRDbGllbnQgewogcHVibGljOgogICAgIFNwZWVjaElucHV0Q2xpZW50TW9jaygp
OwogCi0gICAgdm9pZCBzZXRSZWNvZ25pdGlvblJlc3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBsYW5ndWFnZSk7CisgICAgdm9pZCBhZGRSZWNvZ25pdGlvblJl
c3VsdChjb25zdCBTdHJpbmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbGFuZ3VhZ2UpOwogICAgIHZvaWQgY2xlYXJSZXN1bHRzKCk7CiAKICAgICAvLyBT
cGVlY2hJbnB1dENsaWVudCBtZXRob2RzLgpAQCAtNjUsOSArNjYsOSBAQCBwcml2YXRlOgogICAg
IFNwZWVjaElucHV0TGlzdGVuZXIqIG1fbGlzdGVuZXI7CiAgICAgaW50IG1fcmVxdWVzdElkOwog
Ci0gICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9yZWNvZ25pdGlvblJlc3VsdDsKKyAgICBI
YXNoTWFwPFN0cmluZywgU3BlZWNoSW5wdXRSZXN1bHRBcnJheT4gbV9yZWNvZ25pdGlvblJlc3Vs
dHM7CiAgICAgQXRvbWljU3RyaW5nIG1fbGFuZ3VhZ2U7Ci0gICAgU3RyaW5nIG1fcmVzdWx0Rm9y
RW1wdHlMYW5ndWFnZTsKKyAgICBTcGVlY2hJbnB1dFJlc3VsdEFycmF5IG1fcmVzdWx0c0ZvckVt
cHR5TGFuZ3VhZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCBmYmE1MjNlNWI0OTJm
ZDNkY2U4Njg0NzY1NTUwNWZhZTRiODc4MTI2Li5iYTRjN2JiODUwNjU3YWNmOTVjYzNkMjA2YWQz
N2Y1NTY5MmQ2N2E2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElu
bmVyRWxlbWVudHMuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250cm9sSW5uZXJF
bGVtZW50cy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgogI2luY2x1ZGUgIlNw
ZWVjaElucHV0LmgiCisjaW5jbHVkZSAiU3BlZWNoSW5wdXRFdmVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ3OCw3ICs0NzksNyBAQCB2b2lkIElucHV0RmllbGRTcGVlY2hCdXR0
b25FbGVtZW50OjpzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQsIGNvbnN0IFNwZWVjaElucHV0Ugog
ICAgIC8vIGhlcmUsIHdlIHRha2UgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLgogICAgIFJlZlB0cjxI
VE1MSW5wdXRFbGVtZW50PiBob2xkUmVmKGlucHV0KTsKICAgICBpbnB1dC0+c2V0VmFsdWUocmVz
dWx0cy5pc0VtcHR5KCkgPyAiIiA6IHJlc3VsdHNbMF0tPnV0dGVyYW5jZSgpKTsKLSAgICBpbnB1
dC0+ZGlzcGF0Y2hXZWJraXRTcGVlY2hDaGFuZ2VFdmVudCgpOworICAgIGlucHV0LT5kaXNwYXRj
aEV2ZW50KFNwZWVjaElucHV0RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0c3BlZWNo
Y2hhbmdlRXZlbnQsIHJlc3VsdHMpKTsKICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDI5ZDE5OWM5Y2RkM2ViZDExOTQwNWQxMTYyMmMzYTM0ZGFiNTc1MjIu
LjlkZDEwYzdkN2FiMTNiMDUwMGRkYjVmNzc5Nzk4ZDFlMTcxNDQ5YWEgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEwLTExLTE4ICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgorCisgICAgICAg
IEZvciBzcGVlY2ggaW5wdXQgZXZlbnQsIHNlbmQgYW4gZXZlbnQgb2JqZWN0IGNvbnRhaW5pbmcg
YWxsIHRoZSByZWNvZ25pdGlvbiByZXN1bHRzIGFuZCBtZXRhZGF0YS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NzM2CisKKyAgICAgICAgVXBkYXRl
ZCBtb2NrIG9iamVjdCdzIG1ldGhvZCB0byBuZXcgc2lnbmF0dXJlLgorCisgICAgICAgICogcHVi
bGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaDoKKyAgICAgICAgKiBzcmMvV2ViU3Bl
ZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVl
Y2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6YWRkTW9ja1JlY29nbml0aW9uUmVzdWx0KToKKyAg
ICAgICAgKiBzcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuaDoKKwogMjAxMC0x
MS0yMiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBO
b3QgcmV2aWV3ZWQuIFBhcnRpYWxseSByb2xsIG91dCByNzIyODIuCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2suaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jay5oCmluZGV4IDMx
NjcyYmEwYWFjZjMwYWM5ZDIyNDc3ZmY1OTI2MDUxZDllZWQ0NWIuLmU0NDBiODlhNTY2Y2QwMDE2
NmQ1ZmI2YzUyNDBhYzhiMTg4MTQ3ZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jay5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9jay5oCkBAIC00NCw3ICs0NCw3IEBAIHB1
YmxpYzoKICAgICAgICAgV2ViU3BlZWNoSW5wdXRMaXN0ZW5lciogbGlzdGVuZXIpOwogICAgIHZp
cnR1YWwgfldlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2soKSB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2ViU3RyaW5nJiByZXN1bHQsIGNv
bnN0IFdlYlN0cmluZyYgbGFuZ3VhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkTW9ja1Jl
Y29nbml0aW9uUmVzdWx0KGNvbnN0IFdlYlN0cmluZyYgcmVzdWx0LCBkb3VibGUgY29uZmlkZW5j
ZSwgY29uc3QgV2ViU3RyaW5nJiBsYW5ndWFnZSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNs
ZWFyUmVzdWx0cygpID0gMDsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuY3BwCmluZGV4IDhjZjc4NDg3ODI0ZWJm
NTM3ZGUyOWE0OGJmODA2YzljNTliZWM3OGMuLjQ4ZjhiNTA3ZDdlYzg5MTNiMjI2ZTc5ZWQwNGFj
MjRlZWY0NDMxMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyTW9ja0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3Bl
ZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuY3BwCkBAIC01NSw5ICs1NSw5IEBAIFdlYlNwZWVj
aElucHV0Q29udHJvbGxlck1vY2tJbXBsOjp+V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0lt
cGwoKQogICAgIG1fd2ViY29yZU1vY2stPnNldExpc3RlbmVyKDApOwogfQogCi12b2lkIFdlYlNw
ZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjpzZXRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29u
c3QgV2ViU3RyaW5nJiByZXN1bHQsIGNvbnN0IFdlYlN0cmluZyAmbGFuZ3VhZ2UpCit2b2lkIFdl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjphZGRNb2NrUmVjb2duaXRpb25SZXN1bHQo
Y29uc3QgV2ViU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBXZWJTdHJp
bmcgJmxhbmd1YWdlKQogewotICAgIG1fd2ViY29yZU1vY2stPnNldFJlY29nbml0aW9uUmVzdWx0
KHJlc3VsdCwgbGFuZ3VhZ2UpOworICAgIG1fd2ViY29yZU1vY2stPmFkZFJlY29nbml0aW9uUmVz
dWx0KHJlc3VsdCwgY29uZmlkZW5jZSwgbGFuZ3VhZ2UpOwogfQogCiB2b2lkIFdlYlNwZWVjaElu
cHV0Q29udHJvbGxlck1vY2tJbXBsOjpjbGVhclJlc3VsdHMoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5oIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5oCmluZGV4IDc2
ODA4NzM5MjY4YjlkYWJjY2QzYTVjODg1ZTRjMjQ5NjBlOGViZTQuLmJmMDBlZDAzZjc0MjEwYmQy
NjAwOWE0YzBlMTcwMjVhMGZkOTc1Y2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc3RvcFJlY29yZGluZyhpbnQgcmVxdWVzdElkKTsKIAogICAgIC8v
IFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2sgbWV0aG9kcy4KLSAgICB2b2lkIHNldE1vY2tS
ZWNvZ25pdGlvblJlc3VsdChjb25zdCBXZWJTdHJpbmcmIHJlc3VsdCwgY29uc3QgV2ViU3RyaW5n
JiBsYW5ndWFnZSk7CisgICAgdm9pZCBhZGRNb2NrUmVjb2duaXRpb25SZXN1bHQoY29uc3QgV2Vi
U3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBXZWJTdHJpbmcmIGxhbmd1
YWdlKTsKICAgICB2b2lkIGNsZWFyUmVzdWx0cygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRhMDE2
YzFmMTgxNDU3MTVlOWEwMWEzZDJlZjZjMDUxMzZkYWFiMGYuLjA2MTI0NTAyMDViZTdmYmVhNjA3
YmZmZjVhM2U1MGZiMTk2Njk5YTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZwor
KysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMS0xOCAg
U2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEplcmVteSBPcmxvdy4KKworICAgICAgICBGb3Igc3BlZWNoIGlucHV0IGV2ZW50LCBzZW5k
IGFuIGV2ZW50IG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgcmVjb2duaXRpb24gcmVzdWx0cyBh
bmQgbWV0YWRhdGEuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00OTczNgorCisgICAgICAgIFVwZGF0ZWQgRFJUIGJ5IHJlbmFtaW5nIHRoZSBtb2NrIHJl
c3VsdCBtZXRob2Qgb24gYWxsIHBsYXRmb3JtcyB0byB0aGUgbmV3IHNpZ25hdHVyZS4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdENhbGxiYWNrKToKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjph
ZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQpOgorCiAyMDEwLTExLTIyICBK
b8OjbyBQYXVsbyBSZWNoaSBWaXRhICA8anBydml0YUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAyOGVm
ZWNiYmQxN2E1ZWZmYTAzMDlkZDI1YjQ0YTgwYjQ2MTUwMDIxLi41NjIzYzVlZjQ3OWIxY2RiZmRh
MDQwYWNhYzk3MjYzMzZiN2Y3OTNmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMDc2LDE5ICsxMDc2LDIxIEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiBh
ZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCiB7Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAyKQorICAgIGlmIChhcmd1bWVudENvdW50
IDwgMykKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCiAg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHJlc3VsdChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwogICAgIEFTU0VSVCghKmV4
Y2VwdGlvbik7CiAKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gbGFuZ3VhZ2UoQWRvcHQs
IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pKTsK
KyAgICBkb3VibGUgY29uZmlkZW5jZSA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVu
dHNbMV0sIGV4Y2VwdGlvbik7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gbGFuZ3Vh
Z2UoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNl
cHRpb24pKTsKICAgICBBU1NFUlQoISpleGNlcHRpb24pOwogCiAgICAgTGF5b3V0VGVzdENvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpT
T2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0TW9ja1Nw
ZWVjaElucHV0UmVzdWx0KHJlc3VsdC5nZXQoKSwgbGFuZ3VhZ2UuZ2V0KCkpOworICAgIGNvbnRy
b2xsZXItPmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChyZXN1bHQuZ2V0KCksIGNvbmZpZGVuY2Us
IGxhbmd1YWdlLmdldCgpKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKIH0KQEAgLTE5NzMsNyArMTk3NSw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRl
c3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRNb2NrRGV2aWNl
T3JpZW50YXRpb24iLCBzZXRNb2NrRGV2aWNlT3JpZW50YXRpb25DYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRNb2NrR2VvbG9jYXRpb25FcnJvciIsIHNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRp
b24iLCBzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAg
IHsgInNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsIHNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsIGFk
ZE1vY2tTcGVlY2hJbnB1dFJlc3VsdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE5l
d1dpbmRvd3NDb3B5QmFja0ZvcndhcmRMaXN0Iiwgc2V0TmV3V2luZG93c0NvcHlCYWNrRm9yd2Fy
ZExpc3RDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQT1NJWExvY2FsZSIsIHNldFBP
U0lYTG9jYWxlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UGVyc2lzdGVudFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24iLCBzZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbkNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAppbmRleCBiNjE4NjBiYzY0NjUyNWZjNzA3ZDE0NjIwNzA0NjQwYjVk
Y2M4M2M0Li4zOTFmN2Y1MDgwMDI1ZjhlYmE2NDZmYThkY2M1MWM1NzZmMDJiMTZkIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAg
LTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0RldmljZU9yaWVudGF0aW9u
KGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEs
IGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKTsKICAgICB2
b2lkIHNldE1vY2tHZW9sb2NhdGlvbkVycm9yKGludCBjb2RlLCBKU1N0cmluZ1JlZiBtZXNzYWdl
KTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRvdWJsZSBsYXRpdHVkZSwg
ZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KTsKLSAgICB2b2lkIHNldE1vY2tTcGVl
Y2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKTsK
KyAgICB2b2lkIGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIGRv
dWJsZSBjb25maWRlbmNlLCBKU1N0cmluZ1JlZiBsYW5ndWFnZSk7CiAgICAgdm9pZCBzZXRQZXJz
aXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0cmluZ1JlZiBwYXRoKTsKICAgICB2b2lk
IHNldFBsdWdpbnNFbmFibGVkKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5n
RW5hYmxlZChib29sIGZsYWcpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGFkMDQxNzBk
OTU5NGE2NjdlZWE5ODViNjFiYjQ3YWYzYjY5YTFmNTkuLmU1MWViYjMyZmJjMWM5YTc1Mzk4NTlm
MWUyZDhjYTIxYjQ1MTAwYzUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1MCw3ICsx
NTAsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNo
ZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CiAgICAgYmlu
ZE1ldGhvZCgic2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24pOwotICAgIGJpbmRNZXRob2QoInNldE1vY2tTcGVlY2hJbnB1dFJlc3VsdCIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0KTsKKyAgICBiaW5k
TWV0aG9kKCJhZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdCk7CiAgICAgYmluZE1ldGhvZCgic2V0UG9wdXBCbG9j
a2luZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFi
bGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRQT1NJWExvY2FsZSIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0UE9TSVhMb2NhbGUpOwogICAgIGJpbmRNZXRob2QoInNldFNjcm9sbGJhclBvbGlj
eSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2Nyb2xsYmFyUG9saWN5KTsKQEAgLTE1Mzcs
MTMgKzE1MzcsMTMgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWJvcnRNb2RhbChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWEKICAgICByZXN1bHQtPnNldE51
bGwoKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0
UmVzdWx0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsK
ICAgICByZXN1bHQtPnNldE51bGwoKTsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwg
IWFyZ3VtZW50c1swXS5pc1N0cmluZygpIHx8ICFhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkKKyAg
ICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDMgfHwgIWFyZ3VtZW50c1swXS5pc1N0cmluZygpIHx8
ICFhcmd1bWVudHNbMV0uaXNOdW1iZXIoKSB8fCAhYXJndW1lbnRzWzJdLmlzU3RyaW5nKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0KCktPnNwZWVjaElucHV0
Q29udHJvbGxlck1vY2soKS0+c2V0TW9ja1JlY29nbml0aW9uUmVzdWx0KGNwcFZhcmlhbnRUb1dl
YlN0cmluZyhhcmd1bWVudHNbMF0pLCBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzFd
KSk7CisgICAgbV9zaGVsbC0+d2ViVmlld0hvc3QoKS0+c3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
aygpLT5hZGRNb2NrUmVjb2duaXRpb25SZXN1bHQoY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3Vt
ZW50c1swXSksIGFyZ3VtZW50c1sxXS50b0RvdWJsZSgpLCBjcHBWYXJpYW50VG9XZWJTdHJpbmco
YXJndW1lbnRzWzJdKSk7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxheWVyVHJl
ZUFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3MsIENwcFZhcmlhbnQqIHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDYyZjQ3M2M3ZTkxMGUzZDc3Y2EwNmNiNTRiNTQ5MzEw
YTAzN2QyNGIuLjc1ODE3ODE0MjdjZDQ2Zjc1NjdlMTgzOTNiZTZlY2JiNGQzMDMyMTcgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtMzI2LDcgKzMyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFi
b3J0TW9kYWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgLy8g
U3BlZWNoIGlucHV0IHJlbGF0ZWQgZnVuY3Rpb25zLgotICAgIHZvaWQgc2V0TW9ja1NwZWVjaElu
cHV0UmVzdWx0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IGFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CiAKICAgICB2b2lkIGxheWVyVHJlZUFzVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3MsIENwcFZhcmlhbnQqIHJlc3VsdCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDM5
ZmIxMTY1MDY2ODAyYTgxNmEzNTRmYWFhZTFhMGIwOWQwOTQ3ODcuLjljM2VkZTBlOWRmNWFjMDBk
NDhlY2I5Yjg1YmZkM2FhMDk5ZWJlMDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNTAwLDcg
KzUwMCw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlz
c2lvbihib29sIGFsbG93KQogICAgIHNldEdlb2xvY2F0aW9uUGVybWlzc2lvbkNvbW1vbihhbGxv
dyk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tTcGVlY2hJbnB1dFJl
c3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKQordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KEpTU3RyaW5nUmVmIHJl
c3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIEpTU3RyaW5nUmVmIGxhbmd1YWdlKQogewogICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgZm9yIHNwZWVjaCBpbnB1dCBsYXlvdXQgdGVzdHMuCiAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ4NS4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQppbmRleCBiMTlkNmI1ZTMwZjc1YjY5ZDdmODc0MDMwZjU3NGI2ODc2ZDg1YjZl
Li5lM2YyMTQxNDIzYWM3OWE3NjU2YTA4OTFiZjYwNzIxNmY0OWFiZmEzIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0K
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tCkBAIC0zNzMsNyArMzczLDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
R2VvbG9jYXRpb25QZXJtaXNzaW9uKGJvb2wgYWxsb3cpCiAgICAgW1tbbWFpbkZyYW1lIHdlYlZp
ZXddIFVJRGVsZWdhdGVdIGRpZFNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb25dOwogfQogCi12
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJp
bmdSZWYgcmVzdWx0LCBKU1N0cmluZ1JlZiBsYW5ndWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIGRvdWJs
ZSBjb25maWRlbmNlLCBKU1N0cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IGZvciBzcGVlY2ggaW5wdXQgbGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0ODUuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmlu
ZGV4IDcxMzVhMWE4NGNjY2Y3NjhkYmMwMjM2YzllY2JkYmEzMTNjOTk2NDUuLjYyNGNmOTc2MmQ4
NjVkNzFmM2VkMzE0ZGI1YWMyM2JjODE4NzA1ZDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03Njgs
NyArNzY4LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja0dlb2xvY2F0aW9u
UG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG8KICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24obGF0aXR1ZGUsIGxvbmdpdHVkZSwg
YWNjdXJhY3kpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNo
SW5wdXRSZXN1bHQoY29uc3QgUVN0cmluZyYgcmVzdWx0LCBjb25zdCBRU3RyaW5nJiBsYW5ndWFn
ZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChj
b25zdCBRU3RyaW5nJiByZXN1bHQsIGRvdWJsZSBjb25maWRlbmNlLCBjb25zdCBRU3RyaW5nJiBs
YW5ndWFnZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBzcGVlY2ggaW5wdXQgbGF5
b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzk0ODUuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggNWMxNzYyNGU5ZWMzMjJkOWIzOWE2MjQ1NWM5
MGE4Zjg5YzhhZjM0Ny4uNTkwMjI1YjhhZWI0NTkwYzM2MjM4ODFmYzRjZmI2MmEwM2Q3OThjOCAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaApAQCAtMjE4LDcgKzIxOCw3IEBAIHB1YmxpYyBzbG90czoKICAgICBib29s
IGlzR2VvbG9jYXRpb25QZXJtaXNzaW9uU2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc0dlb2xvY2F0
aW9uUGVybWlzc2lvblNldDsgfQogICAgIGJvb2wgZ2VvbG9jYXRpb25QZXJtaXNzaW9uKCkgY29u
c3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb247IH0KIAotICAgIHZvaWQgc2V0TW9j
a1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IFFTdHJpbmcmIHJlc3VsdCwgY29uc3QgUVN0cmluZyYg
bGFuZ3VhZ2UpOworICAgIHZvaWQgYWRkTW9ja1NwZWVjaElucHV0UmVzdWx0KGNvbnN0IFFTdHJp
bmcmIHJlc3VsdCwgZG91YmxlIGNvbmZpZGVuY2UsIGNvbnN0IFFTdHJpbmcmIGxhbmd1YWdlKTsK
IAogICAgIC8vIEVtcHR5IHN0dWIgbWV0aG9kIHRvIGtlZXAgcGFyaXR5IHdpdGggb2JqZWN0IG1v
ZGVsIGV4cG9zZWQgYnkgZ2xvYmFsIExheW91dFRlc3RDb250cm9sbGVyLgogICAgIHZvaWQgYWJv
cnRNb2RhbCgpIHt9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
TGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCAwMDQzY2U2ODIwNzZlMzhkYjk5
OTY0YmZjMGMzNTNiNWNjZDRiZThmLi5iYzc2MTM5OWI2ZTMwMzhlMjRlNTIyYTMzNGJmY2U3MTg0
N2U5ZjE0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTQxMSw3ICs0MTEsNyBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24oYm9vbCBhbGxvdykK
ICAgICBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25Db21tb24oYWxsb3cpOwogfQogCi12b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYg
cmVzdWx0LCBKU1N0cmluZ1JlZiBsYW5ndWFnZSkKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFkZE1vY2tTcGVlY2hJbnB1dFJlc3VsdChKU1N0cmluZ1JlZiByZXN1bHQsIGRvdWJsZSBjb25m
aWRlbmNlLCBKU1N0cmluZ1JlZiBsYW5ndWFnZSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGZvciBzcGVlY2ggaW5wdXQgbGF5b3V0IHRlc3RzLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk0ODUuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IDMy
NjE0YzExMzNkZGY4YWFkNzdlZmIwZDFkNGE2YjMwZTQwMTEwOGIuLjg1ODdmZWE0NmE4MWI4NjE1
Y2Y0OWVlN2JlYmU5YmIzMGNhY2U1NTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC0zMjAsNyArMzIw
LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9u
KGJvb2wgYWxsb3cpCiAgICAgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ29tbW9uKGFsbG93KTsK
IH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0TW9ja1NwZWVjaElucHV0UmVzdWx0
KEpTU3RyaW5nUmVmIHJlc3VsdCwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjphZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQoSlNTdHJpbmdSZWYgcmVzdWx0
LCBkb3VibGUgY29uZmlkZW5jZSwgSlNTdHJpbmdSZWYgbGFuZ3VhZ2UpCiB7CiAgICAgLy8gRklY
TUU6IEltcGxlbWVudCBmb3Igc3BlZWNoIGlucHV0IGxheW91dCB0ZXN0cy4KICAgICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NDg1Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>