<?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>40581</bug_id>
          
          <creation_ts>2010-06-14 11:57:11 -0700</creation_ts>
          <short_desc>Autogenerate most of the JS constructors</short_desc>
          <delta_ts>2010-06-15 04:38:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>alex</cc>
    
    <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>237965</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-14 11:57:11 -0700</bug_when>
    <thetext>Autogenerate most of the JS constructors now that we can do a custom construct function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237982</commentid>
    <comment_count>1</comment_count>
      <attachid>58686</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-14 12:28:44 -0700</bug_when>
    <thetext>Created attachment 58686
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237988</commentid>
    <comment_count>2</comment_count>
      <attachid>58686</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-14 12:33:25 -0700</bug_when>
    <thetext>Comment on attachment 58686
patch

Sam, you are my WebKit Hacker of the Week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237990</commentid>
    <comment_count>3</comment_count>
      <attachid>58686</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-14 12:35:42 -0700</bug_when>
    <thetext>Comment on attachment 58686
patch

You fixed bug 35140!

&gt; Fixes a bug where the new XSLTConstructor().toString() had a

And EventSource!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237994</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-06-14 12:46:34 -0700</bug_when>
    <thetext>Landed in r61136.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237996</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-14 12:53:20 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61136 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, Qt Linux ARMv7 Release, and Chromium Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238023</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-06-14 13:46:26 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; http://trac.webkit.org/changeset/61136 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, Qt Linux ARMv7 Release, and Chromium Linux Release

Rebaseline for Qt port landed in http://trac.webkit.org/changeset/61142.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238205</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-14 19:46:59 -0700</bug_when>
    <thetext>I think this caused global-constructors.html to fail for Gtk:
--- /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/js/global-constructors-expected.txt	2010-06-14 18:55:20.000000000 -0700
+++ /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/js/global-constructors-actual.txt	2010-06-14 18:55:20.000000000 -0700
@@ -44,6 +44,7 @@
 PASS EntityReference.toString() is &apos;[object EntityReferenceConstructor]&apos;
 PASS Event.toString() is &apos;[object EventConstructor]&apos;
 PASS EventException.toString() is &apos;[object EventExceptionConstructor]&apos;
+PASS EventSource.toString() is &apos;[object EventSourceConstructor]&apos;
 PASS File.toString() is &apos;[object FileConstructor]&apos;
 PASS FileList.toString() is &apos;[object FileListConstructor]&apos;
 PASS FormData.toString() is &apos;[object FormDataConstructor]&apos;
@@ -298,6 +299,7 @@
 PASS XPathEvaluator.toString() is &apos;[object XPathEvaluatorConstructor]&apos;
 PASS XPathException.toString() is &apos;[object XPathExceptionConstructor]&apos;
 PASS XPathResult.toString() is &apos;[object XPathResultConstructor]&apos;
+PASS XSLTProcessor.toString() is &apos;[object XSLTProcessorConstructor]&apos;
 PASS successfullyParsed is true
 
 TEST COMPLETE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238329</commentid>
    <comment_count>8</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-06-15 04:38:47 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; I think this caused global-constructors.html to fail for Gtk:
&gt; --- /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/js/global-constructors-expected.txt    2010-06-14 18:55:20.000000000 -0700
&gt; +++ /var/lib/buildbot/build/gtk-linux-32-release/build/layout-test-results/fast/js/global-constructors-actual.txt    2010-06-14 18:55:20.000000000 -0700
&gt; @@ -44,6 +44,7 @@
&gt;  PASS EntityReference.toString() is &apos;[object EntityReferenceConstructor]&apos;
&gt;  PASS Event.toString() is &apos;[object EventConstructor]&apos;
&gt;  PASS EventException.toString() is &apos;[object EventExceptionConstructor]&apos;
&gt; +PASS EventSource.toString() is &apos;[object EventSourceConstructor]&apos;
&gt;  PASS File.toString() is &apos;[object FileConstructor]&apos;
&gt;  PASS FileList.toString() is &apos;[object FileListConstructor]&apos;
&gt;  PASS FormData.toString() is &apos;[object FormDataConstructor]&apos;
&gt; @@ -298,6 +299,7 @@
&gt;  PASS XPathEvaluator.toString() is &apos;[object XPathEvaluatorConstructor]&apos;
&gt;  PASS XPathException.toString() is &apos;[object XPathExceptionConstructor]&apos;
&gt;  PASS XPathResult.toString() is &apos;[object XPathResultConstructor]&apos;
&gt; +PASS XSLTProcessor.toString() is &apos;[object XSLTProcessorConstructor]&apos;
&gt;  PASS successfullyParsed is true
&gt; 
&gt;  TEST COMPLETE

It seems we have a different expected for that test in gtk (not sure why) and it needs that modification. I&apos;m going to upload a patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58686</attachid>
            <date>2010-06-14 12:28:44 -0700</date>
            <delta_ts>2010-06-14 12:35:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>jsconstruct.diff</filename>
            <type>text/plain</type>
            <size>268751</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MTEzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTA5IEBACisyMDEwLTA2LTE0ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZv
ciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA1ODEKKyAgICAgICAg
QXV0by1nZW5lcmF0ZSBtb3N0IG9mIHRoZSBKUyBjb25zdHJ1Y3RvcnMKKworICAgICAgICAtIEF1
dG8tZ2VuZXJhdGVzIGFsbCB0aGUgSlMgY29uc3RydWN0b3JzIHRoYXQgZG9uJ3QgaGF2ZSBjdXN0
b20KKyAgICAgICAgICBuYW1lcyAoZWcsIE5vdCBJbWFnZSgpLCBBdWRpbygpIG9yIE9wdGlvbigp
KQorICAgICAgICAtIEZpeGVzIGEgYnVnIHdoZXJlIHRoZSBuZXcgWFNMVENvbnN0cnVjdG9yKCku
dG9TdHJpbmcoKSBoYWQgYQorICAgICAgICAgIHR5cGUgKFtvYmplY3QgWFNMVFByb2Nlc3NvckNv
bnNydWN0b3JdIC0+IFtvYmplY3QgWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yXSkKKworICAgICAg
ICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDdXN0b20uY3BwOiBDb3BpZWQgZnJv
bSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQXJyYXlC
dWZmZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXcpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRT
b3VyY2VDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNF
dmVudFNvdXJjZUNvbnN0cnVjdG9yLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMv
SlNFdmVudFNvdXJjZUN1c3RvbS5jcHA6IENvcGllZCBmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRT
b3VyY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNFdmVudFNvdXJjZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTRmxvYXQzMkFycmF5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDb25zdHJ1Y3Rvci5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q29uc3RydWN0b3IuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNJbnQxNkFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50
MTZBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q29uc3RydWN0b3Iu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUNvbnN0cnVj
dG9yLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW50MzJBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1
Y3RKU0ludDMyQXJyYXkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50OEFycmF5Q29uc3Ry
dWN0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW50OEFycmF5Q29u
c3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ludDhBcnJheUN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0ludDhBcnJheUNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3RKU0ludDhBcnJheSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3Nh
Z2VDaGFubmVsQ29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNNZXNzYWdlQ2hhbm5lbCk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTU2hhcmVkV29y
a2VyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q29uc3RydWN0b3IuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDb25zdHJ1Y3Rv
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpjb25zdHJ1
Y3RKU1VpbnQxNkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q29u
c3RydWN0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDMyQXJy
YXlDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVWludDMy
QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNVaW50MzJBcnJheUNvbnN0cnVj
dG9yOjpjb25zdHJ1Y3RKU1VpbnQzMkFycmF5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1Vp
bnQ4QXJyYXlDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMv
SlNVaW50OEFycmF5Q29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNVaW50OEFycmF5
Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTVWludDhBcnJheSk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
YmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcDogQ29waWVkIGZy
b20gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcC4K
KyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTV2ViS2l0Q1NTTWF0cml4KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50
Q29uc3RydWN0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0
UG9pbnRDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
S2l0UG9pbnRDdXN0b20uY3BwOiBDb3BpZWQgZnJvbSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpKU1dlYktpdFBvaW50
Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTV2ViS2l0UG9pbnQpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTV2ViU29ja2V0Q29uc3RydWN0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTV2ViU29ja2V0Q29uc3RydWN0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYlNv
Y2tldENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1dlYlNvY2tldCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNX
b3JrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXb3JrZXJDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNXb3JrZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3Nv
ckNvbnN0cnVjdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hTTFRQ
cm9jZXNzb3JDb25zdHJ1Y3Rvci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
WFNMVFByb2Nlc3NvckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNYU0xUUHJvY2Vzc29yKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NT
TWF0cml4LmlkbDoKKyAgICAgICAgKiBkb20vTWVzc2FnZUNoYW5uZWwuaWRsOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9GbG9h
dDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFzL0ludDE2QXJyYXkuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0ludDhBcnJheS5pZGw6CisgICAgICAgICogaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9VaW50OEFycmF5LmlkbDoKKyAgICAgICAgKiBwYWdlL0V2ZW50U291cmNlLmlkbDoKKyAg
ICAgICAgKiBwYWdlL1dlYktpdFBvaW50LmlkbDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNv
Y2tldC5pZGw6CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXIuaWRsOgorICAgICAgICAq
IHdvcmtlcnMvV29ya2VyLmlkbDoKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvci5pZGw6CisK
IDIwMTAtMDYtMTQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJbmRleDogV2ViQ29yZS9BbmRyb2lkLmpzY2Jp
bmRpbmdzLm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawko
cmV2aXNpb24gNjExMDApCisrKyBXZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsJKHdvcmtp
bmcgY29weSkKQEAgLTEyMSw3ICsxMjEsNiBAQCBMT0NBTF9TUkNfRklMRVMgKz0gXAogCWJpbmRp
bmdzL2pzL0pTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0xvY2F0aW9u
Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCi0J
YmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGluZ3Mv
anMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXApA
QCAtMTQ0LDIzICsxNDMsMjAgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9K
U1NWR01hdHJpeEN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0N1c3RvbS5j
cHAgXAogCWJpbmRpbmdzL2pzL0pTU1ZHUGF0aFNlZ0xpc3RDdXN0b20uY3BwIFwKLQliaW5kaW5n
cy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGluZ3MvanMvSlNTaGFy
ZWRXb3JrZXJDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwIFwK
IAliaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1N0
eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcCBc
CiAJYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBcCi0JYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAgXAotCWJpbmRpbmdzL2pzL0pTV2ViS2l0UG9p
bnRDb25zdHJ1Y3Rvci5jcHAgXAotCWJpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3Bw
IFwKKwliaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgXAorCWJpbmRpbmdz
L2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRl
eHRCYXNlLmNwcCBcCiAJYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCBcCiAJ
YmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBcCiAJYmluZGluZ3Mv
anMvSlNXb3JrZXJDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAg
XAotCWJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGlu
Z3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvU2NoZWR1bGVk
QWN0aW9uLmNwcCBcCiAJYmluZGluZ3MvanMvU2NyaXB0QXJyYXkuY3BwIFwKSW5kZXg6IFdlYkNv
cmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAko
cmV2aXNpb24gNjExMDApCisrKyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC01ODIsNyArNTgyLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pz
L0pTRWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU0V2
ZW50U291cmNlQ29uc3RydWN0b3IuY3BwCisgICAgYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0dlb2xvY2F0aW9uQ3Vz
dG9tLmNwcApAQCAtNjExLDcgKzYxMSw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5k
aW5ncy9qcy9KU0xhenlFdmVudExpc3RlbmVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTG9jYXRp
b25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcAot
ICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
Y3BwCkBAIC02MjksNyArNjI4LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1BvcFN0
YXRlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNTY3JpcHRQcm9maWxlTm9kZUN1
c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTU1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1NRTFRy
YW5zYWN0aW9uQ3VzdG9tLmNwcApAQCAtNjM5LDE2ICs2MzcsMTQgQEAgU0VUKFdlYkNvcmVfU09V
UkNFUwogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1
c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNw
cAotICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKLSAgICBiaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTTWF0cml4Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJD
b250ZXh0RXJyb3JIYW5kbGVyLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9K
U1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9j
ZXNzb3JDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvU2NoZWR1bGVkQWN0aW9uLmNwcAogICAg
IGJpbmRpbmdzL2pzL1NjcmlwdEFycmF5LmNwcApJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA2MTEwMCkK
KysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQzNSw4ICs0MzUs
NyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1
c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCi0JV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5oIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZl
bnRTb3VyY2VDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQu
Y3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V4Y2VwdGlvbkJhc2UuY3BwIFwKQEAgLTQ3Nyw4ICs0NzYsNiBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5o
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgXAogCVdl
YkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggXAotCVdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcCBcCi0JV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaCBcCiAJV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
UG9ydEN1c3RvbS5jcHAgXApAQCAtNTA2LDE2ICs1MDMsMTIgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKIAlX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGluZ3Mv
anMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktp
dENTU01hdHJpeENvbnN0cnVjdG9yLmggXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQ
b2ludENvbnN0cnVjdG9yLmNwcCBcCi0JV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50
Q29uc3RydWN0b3IuaCBcCisJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1
c3RvbS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAg
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmNwcCBc
CiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBcCiAJ
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBcCiAJV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBcCi0JV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAgXAotCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCBcCiAJV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0phdmFTY3JpcHRDYWxsRnJhbWUuY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0phdmFTY3Jp
cHRDYWxsRnJhbWUuaCBcCkBAIC0yODMxLDggKzI4MjQsNiBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9
IFwKIAogd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVkaWNh
dGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJDb25zdHJ1Y3Rvci5jcHAgXAotCVdlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1
Y3Rvci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwIFwK
IAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaCBcCiAJV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwKQEAgLTI4NzgsOCArMjg2OSw2
IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1ERU5BQkxFX1NIQVJFRF9XT1JLRVJTPTEKIAog
d2ViY29yZV9zb3VyY2VzICs9IFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2Vy
Q29uc3RydWN0b3IuY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2VyQ29u
c3RydWN0b3IuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5j
cHAgXAogCVdlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAg
XAogCVdlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oIFwKQEAg
LTM3MzAsOCArMzcxOSw2IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1ERU5BQkxFX1dFQl9T
T0NLRVRTPTEKIAogd2ViY29yZV9zb3VyY2VzICs9IFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViU29ja2V0Q29uc3RydWN0b3IuY3BwIFwKLQlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29j
a2V0Q29uc3RydWN0b3IuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3Rv
bS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2Uu
Y3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtRXJyb3JCYXNlLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDYxMTAwKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTU0OCw2ICs1NDgsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
RXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVu
ZXIuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCcsCisg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU0V2ZW50VGFyZ2V0LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRXhj
ZXB0aW9uQmFzZS5jcHAnLApAQCAtNTg4LDggKzU4OSw2IEBACiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNMb2NhdGlvbkN1c3RvbS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01h
aW5UaHJlYWRFeGVjU3RhdGUuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01haW5U
aHJlYWRFeGVjU3RhdGUuaCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hh
bm5lbENvbnN0cnVjdG9yLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2Fn
ZUNoYW5uZWxDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VF
dmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRD
dXN0b20uY3BwJywKQEAgLTYxNCw4ICs2MTMsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U1JHQkNvbG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNSR0JDb2xvci5oJywK
LSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmNwcCcs
Ci0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5oJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTU2NyaXB0UHJvZmlsZU5vZGVDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwJywK
QEAgLTYzNSwxNSArNjMyLDkgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1NWR1BPRFR5
cGVXcmFwcGVyLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwJywK
LSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmgn
LAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAn
LAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oJywK
LSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYlNvY2tldENvbnN0cnVjdG9yLmNwcCcsCi0g
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDb25zdXJ1Y3Rvci5oJywKKyAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAnLAorICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnN0cnVjdG9yLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29y
a2VyQ29udGV4dEJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dvcmtlckNv
bnRleHRCYXNlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1
c3RvbS5jcHAnLApAQCAtNjUyLDggKzY0Myw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNXb3JrZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1hNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdFVwbG9hZEN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTWFNMVFBy
b2Nlc3NvckNvbnN0cnVjdG9yLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYU0xU
UHJvY2Vzc29yQ29uc3RydWN0b3IuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNYU0xU
UHJvY2Vzc29yQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSmF2YVNjcmlw
dENhbGxGcmFtZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0phdmFTY3JpcHRDYWxs
RnJhbWUuaCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDYxMTAwKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwko
d29ya2luZyBjb3B5KQpAQCAtMjk4LDcgKzI5OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGJpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlci5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRWxlbWVudEN1c3Rv
bS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIFwKLSAgICBiaW5kaW5n
cy9qcy9KU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwIFwKKyAgICBiaW5kaW5ncy9qcy9KU0V2
ZW50U291cmNlQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNFdmVudFRhcmdldC5jcHAg
XAogICAgIGJpbmRpbmdzL2pzL0pTRXhjZXB0aW9uQmFzZS5jcHAgXAogICAgIGJpbmRpbmdzL2pz
L0pTR2VvbG9jYXRpb25DdXN0b20uY3BwIFwKQEAgLTMzNywxMyArMzM3LDEyIEBAIFNPVVJDRVMg
Kz0gXAogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKICAgICBi
aW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1RyZWVXYWxr
ZXJDdXN0b20uY3BwIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVj
dG9yLmNwcCBcCi0gICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBc
CisgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIFwKKyAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAgXAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RV
cGxvYWRDdXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkN1c3RvbS5jcHAgXAog
ICAgIGJpbmRpbmdzL2pzL0pTUGx1Z2luQXJyYXlDdXN0b20uY3BwIFwKLSAgICBiaW5kaW5ncy9q
cy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU01l
c3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBcCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwIFwKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCkBA
IC0xMDU5LDcgKzEwNTgsNiBAQCBIRUFERVJTICs9IFwKICAgICBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5oIFwKICAgICBiaW5k
aW5ncy9qcy9KU0V2ZW50TGlzdGVuZXIuaCBcCi0gICAgYmluZGluZ3MvanMvSlNFdmVudFNvdXJj
ZUNvbnN0cnVjdG9yLmggXAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuaCBcCiAgICAg
YmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmggXAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTEFw
cGxldEVsZW1lbnRDdXN0b20uaCBcCkBAIC0xMDcwLDE5ICsxMDY4LDEzIEBAIEhFQURFUlMgKz0g
XAogICAgIGJpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU0xhenlFdmVudExpc3RlbmVyLmggXAogICAgIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0
b20uaCBcCi0gICAgYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmggXAog
ICAgIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5oIFwKICAgICBiaW5kaW5ncy9qcy9KU05vZGVG
aWx0ZXJDb25kaXRpb24uaCBcCiAgICAgYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5o
IFwKICAgICBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaCBcCi0gICAgYmlu
ZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9qcy9K
U1N0b3JhZ2VDdXN0b20uaCBcCi0gICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25z
dHJ1Y3Rvci5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuaCBc
Ci0gICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmggXAogICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4
dEVycm9ySGFuZGxlci5oIFwKLSAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1
Y3Rvci5oIFwKICAgICBiaW5kaW5ncy9qcy9KYXZhU2NyaXB0Q2FsbEZyYW1lLmggXAogICAgIGJp
bmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5oIFwKICAgICBiaW5kaW5ncy9qcy9TY3JpcHRBcnJh
eS5oIFwKQEAgLTI0NDksNyArMjQ0MSw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JQ09O
REFUQUJBU0U9MSkKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XT1JLRVJTPTEpIHsKICAgICBT
T1VSQ0VTICs9IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0
Q3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAgXAogICAgICAg
ICBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGlu
Z3MvanMvSlNXb3JrZXJDdXN0b20uY3BwIFwKQEAgLTI0NzAsNyArMjQ2MSw2IEBAIGNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9XT1JLRVJTPTEpIHsKIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1NIQVJFRF9XT1JLRVJTPTEpIHsKICAgICBTT1VSQ0VTICs9IFwKLSAgICAgICAgYmluZGluZ3Mv
anMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgXAogICAgICAgICB3b3JrZXJzL0RlZmF1bHRTaGFyZWRX
b3JrZXJSZXBvc2l0b3J5LmNwcCBcCiAgICAgICAgIHdvcmtlcnMvU2hhcmVkV29ya2VyLmNwcCBc
CkBAIC0yNTQ0LDcgKzI1MzQsNiBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFNMVD0xKSB7
CiAgICAgdG9iZXwhdG9iZTogUVQgKz0geG1scGF0dGVybnMKIAogICAgIFNPVVJDRVMgKz0gXAot
ICAgICAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIFwKICAgICAgICAgZG9t
L1RyYW5zZm9ybVNvdXJjZVF0LmNwcCBcCiAgICAgICAgIHhtbC9YU0xTdHlsZVNoZWV0UXQuY3Bw
IFwKQEAgLTI4ODMsOCArMjg3Miw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09D
S0VUUz0xKSAKICAgICAgICAgcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2Uu
Y3BwIFwKICAgICAgICAgcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNw
cCBcCiAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvcXQvU29ja2V0U3RyZWFtSGFuZGxlUXQuY3Bw
IFwKLSAgICAgICAgYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwIFwKLSAgICAgICAg
YmluZGluZ3MvanMvSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5jcHAKKyAgICAgICAgYmluZGluZ3Mv
anMvSlNXZWJTb2NrZXRDdXN0b20uY3BwCiAKICAgICBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
V09SS0VSUz0xKSB7CiAgICAgICAgIEhFQURFUlMgKz0gXApAQCAtMjg5OCwxNSArMjg4Niw3IEBA
IGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09DS0VUUz0xKSAKIGNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV8zRF9DQU5WQVM9MSkgewogdG9iZXwhdG9iZTogUVQgKz0gb3BlbmdsCiBIRUFE
RVJTICs9IFwKLQliaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCBcCiAJYmlu
ZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaCBcCi0JYmluZGluZ3MvanMvSlNJbnQ4
QXJyYXlDb25zdHJ1Y3Rvci5oIFwKLQliaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUNvbnN0cnVj
dG9yLmggXAotCWJpbmRpbmdzL2pzL0pTSW50MzJBcnJheUNvbnN0cnVjdG9yLmggXAotCWJpbmRp
bmdzL2pzL0pTSW50MTZBcnJheUNvbnN0cnVjdG9yLmggXAotCWJpbmRpbmdzL2pzL0pTVWludDhB
cnJheUNvbnN0cnVjdG9yLmggXAotCWJpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDb25zdHJ1Y3Rv
ci5oIFwKLQliaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q29uc3RydWN0b3IuaCBcCiAJaHRtbC9j
YW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCBcCiAJaHRtbC9jYW52YXMvQ2FudmFzT2Jq
ZWN0LmggXAogCWh0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oIFwKQEAgLTI5MzIsMjIgKzI5
MTIsMTQgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaCAKIAogU09VUkNFUyArPSBcCi0JYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLmNwcCBcCiAJYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwIFwK
LQliaW5kaW5ncy9qcy9KU0ludDhBcnJheUNvbnN0cnVjdG9yLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNJbnQ4QXJyYXlDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUNvbnN0
cnVjdG9yLmNwcCBcCiAJYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwIFwKLQli
aW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL2pzL0pT
SW50MzJBcnJheUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcCBcCi0JYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q29uc3RydWN0b3IuY3Bw
IFwKIAliaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9K
U1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAogCWJpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1
c3RvbS5jcHAgXAotCWJpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgXAog
CWJpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3BwIFwKLQliaW5kaW5ncy9qcy9KU1Vp
bnQxNkFycmF5Q29uc3RydWN0b3IuY3BwIFwKIAliaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q3Vz
dG9tLmNwcCBcCiAJaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwIFwKICAg
ICBodG1sL2NhbnZhcy9DYW52YXNPYmplY3QuY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNjExMDApCisrKyBXZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTUwMCw3ICszOTUwMCw3IEBA
CiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwIg0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0V2ZW50U291cmNlQ3VzdG9tLmNwcCINCiAJCQkJCT4N
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAg
LTM5NTUyLDEwICszOTU1Miw2IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNF
dmVudFNvdXJjZUNvbnN0cnVjdG9yLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZp
bGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNFdmVudFRhcmdldC5jcHAi
DQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00MDU2NCw3ICs0MDU2MCw3
IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
SURCQW55LmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJLaXRD
U1NNYXRyaXhDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQog
CQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDA2MTYsMTEgKzQwNjEyLDcgQEAKIAkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVs
YXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTSURCQW55LmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0J
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNJREJBbnlDdXN0b20uY3BwIg0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCIN
CiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KQEAgLTQwNjcyLDcgKzQwNjY0LDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2Uu
Y3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCQW55LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQwNzI0LDExICs0
MDcxNiwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJEYXRhYmFzZS5oIg0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTSURCQW55LmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxi
aW5kaW5nc1xqc1xKU0lEQkFueUN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00MDc4MCwxMSArNDA3NzIs
NyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxl
DQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJEYXRhYmFzZUVycm9yLmgiDQotCQkJCQk+DQotCQkJCTwv
RmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRhdGFiYXNlLmNwcCINCiAJCQkJCT4NCiAJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQwODM2
LDExICs0MDgyNCwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+
DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIg0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2UuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0K
IAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCINCisJ
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0lEQkRhdGFiYXNlRXJyb3IuY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDA4OTIsMTEg
KzQwODgwLDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJ
CQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkRhdGFiYXNlUmVxdWVzdC5oIg0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTSURCRGF0YWJhc2VFcnJvci5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQog
CQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJFcnJvckV2ZW50LmNwcCINCisJCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0lEQkRhdGFiYXNlRXhjZXB0aW9uLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQwOTQ4LDExICs0
MDkzNiwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJFcnJvckV2ZW50LmgiDQorCQkJCQlSZWxhdGl2
ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJFdmVudC5jcHAiDQorCQkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNJREJEYXRhYmFzZVJlcXVlc3QuY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDEwMDQsMTEgKzQwOTkyLDExIEBA
CiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0J
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0lEQkV2ZW50LmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJEYXRhYmFz
ZVJlcXVlc3QuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVs
YXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTSURCSW5kZXhSZXF1ZXN0LmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQkVycm9y
RXZlbnQuY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiDQpAQCAtNDEwNjAsMTEgKzQxMDQ4LDExIEBACiAJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0
aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0lEQkluZGV4UmVxdWVzdC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRXJyb3JFdmVudC5oIg0K
IAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJP
YmplY3RTdG9yZVJlcXVlc3QuY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1
dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRXZlbnQuY3BwIg0K
IAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiDQpAQCAtNDExMTYsMTEgKzQxMTA0LDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQk9iamVjdFN0
b3JlUmVxdWVzdC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCRXZlbnQuaCINCiAJCQkJCT4NCiAJ
CQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1
dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCUmVxdWVzdC5jcHAi
DQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJJbmRleFJlcXVlc3QuY3BwIg0KIAkJCQkJPg0KIAkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDExNzIs
MTEgKzQxMTYwLDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4N
CiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQlJlcXVlc3QuaCINCisJCQkJCVJlbGF0
aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0lEQkluZGV4UmVxdWVzdC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxG
aWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJTdWNjZXNzRXZlbnQuY3BwIg0KKwkJCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQxMjI4LDExICs0MTIx
NiwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxG
aWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJTdWNjZXNzRXZlbnQuaCINCisJCQkJCVJlbGF0aXZl
UGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNl
c1xKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1hZ2VDb25zdHJ1
Y3Rvci5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNJREJSZXF1ZXN0LmNwcCINCiAJCQkJCT4NCiAJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQx
Mjg0LDExICs0MTI3MiwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0Zp
bGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1h
Z2VDb25zdHJ1Y3Rvci5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSURCUmVxdWVzdC5oIg0KIAkJCQkJ
Pg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQlN1Y2Nl
c3NFdmVudC5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00MTM0MCw3ICs0MTMyOCwxMSBAQAogCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNJbmRleGVkRGF0YWJhc2VyZXF1ZXN0LmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQlN1Y2Nl
c3NFdmVudC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAiDQogCQkJCQk+
DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBA
IC00MTM5MiwxMSArNDEzODQsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJ
PC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0ltYWdlQ29uc3Ry
dWN0b3IuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAiDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCIN
CiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KQEAgLTQxNDQ4LDcgKzQxNDQwLDcgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5n
c1xqc1xKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNJbmRleGVkRGF0YWJhc2VyZXF1ZXN0LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQxNTAwLDcgKzQxNDkyLDEx
IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUN
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNKYXZhU2NyaXB0Q2FsbEZyYW1l
Q3VzdG9tLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIN
CisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAiDQogCQkJCQk+DQog
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00
MTU1Miw3ICs0MTU0OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmls
ZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNMYXp5
RXZlbnRMaXN0ZW5lci5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQxNjA0LDExICs0MTYw
MCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZp
bGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNMYXp5RXZlbnRMaXN0ZW5l
ci5oIg0KLQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTTG9jYXRpb25DdXN0b20uY3BwIg0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0b20uY3BwIg0KIAkJ
CQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
DQpAQCAtNDE2NjAsNyArNDE2NTIsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTTGF6eUV2ZW50TGlzdGVuZXIuY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDE3MTIsMTEgKzQxNzA0
LDExIEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZp
bGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTGF6eUV2ZW50TGlz
dGVuZXIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwIg0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0xvY2F0aW9uQ3VzdG9tLmNwcCIN
CiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KQEAgLTQxNzY4LDExICs0MTc2MCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmgiDQotCQkJCQk+DQotCQkJCTwvRmls
ZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNZXNz
YWdlQ2hhbm5lbEN1c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00MTgyNCw3ICs0MTgxMiwxMSBA
QAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQot
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cYmluZGluZ3NcanNcSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAiDQogCQkJCQk+
DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBA
IC00MTg3Niw3ICs0MTg2OCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNN
ZXNzYWdlUG9ydEN1c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpz
XEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQxOTI4LDExICs0MTkyMCw3IEBA
CiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0J
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNZXNzYWdlUG9ydEN1c3RvbS5oIg0K
LQkJCQkJPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTTWltZVR5cGVBcnJheUN1c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTTWVzc2FnZVBvcnRDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDE5
ODQsNyArNDE5NzIsMTEgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxl
Pg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05hbWVk
Tm9kZU1hcEN1c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
TWVzc2FnZVBvcnRDdXN0b20uaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01pbWVUeXBlQXJyYXlDdXN0b20u
Y3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiDQpAQCAtNDIwMzYsNyArNDIwMjgsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTTmF2aWdhdG9yQ3VzdG9tLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDIwODgsNyAr
NDIwODAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJ
CTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUN1c3RvbS5j
cHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTmF2aWdhdG9yQ3VzdG9t
LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIg0KQEAgLTQyMTQwLDExICs0MjEzMiw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNOb2RlQ3VzdG9tLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJ
PEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlQ3Vz
dG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIg0KQEAgLTQyMTk2LDExICs0MjE4NCwxMSBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5oIg0KKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVDdXN0b20uaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxl
Pg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVG
aWx0ZXJDdXN0b20uY3BwIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQogCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDIyNTIsNyArNDIyNDAsMTEgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAiDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckNvbmRpdGlvbi5o
Ig0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUZpbHRlckN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00MjMwNCw3
ICs0MjI5Niw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwvRmlsZT4NCiAJ
CQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlTGlzdEN1
c3RvbS5jcHAiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTm9kZUl0ZXJh
dG9yQ3VzdG9tLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAgLTQyMzU2LDcgKzQyMzQ4LDcgQEAKIAkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU09wdGlvbkNvbnN0cnVjdG9yLmNwcCINCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNOb2RlTGlzdEN1c3RvbS5jcHAiDQogCQkJCQk+DQog
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00
MjQwOCwxMSArNDI0MDAsNyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0Zp
bGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTT3B0
aW9uQ29uc3RydWN0b3IuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1BsdWdpbkFycmF5Q3VzdG9tLmNwcCIN
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNPcHRpb25Db25zdHJ1Y3Rvci5j
cHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiINCkBAIC00MjQ2NCw3ICs0MjQ1MiwxMSBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGpzXEpTUGx1Z2luQ3VzdG9tLmNwcCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcanNcSlNPcHRpb25Db25zdHJ1Y3Rvci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQor
CQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luQXJy
YXlDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiDQpAQCAtNDI1MTYsNyArNDI1MDgsNyBAQAogCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAiDQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luQ3VzdG9tLmNwcCINCiAJCQkJCT4N
CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KQEAg
LTQyNTY4LDE1ICs0MjU2MCw3IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTwv
RmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZp
bGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQb3BTdGF0ZUV2ZW50Q3Vz
dG9tLmNwcCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1NjcmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcCINCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIg0KQEAgLTQyNjI4LDcgKzQyNjEyLDE1IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAiDQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGpzXEpTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNTY3JpcHRQ
cm9maWxlTm9kZUN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CiAJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC00MjY4MCwxMCArNDI2NzIsNiBAQAogCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaCIN
Ci0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAiDQogCQkJCQk+DQogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00MzQyNCwxNzQgKzQzNDEyLDYgQEAKIAkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCINCi0J
CQkJCT4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
Ig0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9v
bA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0i
UmVsZWFzZXxXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+
DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkv
Pg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
LQkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4N
Ci0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+
DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQot
CQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8L0ZpbGU+
DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3IuaCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8Rmls
ZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU1dlYktpdFBvaW50Q29uc3Ry
dWN0b3IuY3BwIg0KLQkJCQkJPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJ
Pg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJ
Lz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQotCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJ
CQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmgiDQotCQkJCQk+DQotCQkJCTwvRmlsZT4N
Ci0JCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNXZWJTb2Nr
ZXRDb25zdHJ1Y3Rvci5jcHAiDQotCQkJCQk+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0J
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
Ci0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiIN
Ci0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wN
Ci0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJ
CT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJ
CS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQotCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xqc1xKU1dlYlNvY2tldENvbnN0cnVjdG9yLmgiDQotCQkJCQk+DQotCQkJCTwv
RmlsZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNX
ZWJTb2NrZXRDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpA
QCAtNDM2NDQsNjIgKzQzNDY0LDYgQEAKIAkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQkJ
PC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U1dvcmtlckNvbnN0cnVjdG9yLmNwcCINCi0JCQkJCT4NCi0JCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KLQkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdp
bjMyIg0KLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8
VG9vbA0KLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQot
CQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQot
CQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
LQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0K
LQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0K
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJCQk8L0ZpbGU+DQotCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTV29ya2VyQ29uc3RydWN0b3IuaCINCi0JCQkJCT4NCi0JCQkJ
PC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U1dvcmtlckNvbnRleHRCYXNlLmNwcCINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KQEAgLTQzOTY4LDYyICs0MzczMiw2IEBACiAJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQog
CQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwIg0KLQkJCQkJPg0KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQot
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJCT4NCi0JCQkJCQk8VG9vbA0KLQkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJCS8+DQotCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJTmFtZT0iRGVidWdf
SW50ZXJuYWx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJ
Pg0KLQkJCQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJ
Lz4NCi0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
Ci0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCi0JCQkJCQk+DQotCQkJCQkJPFRvb2wNCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCQkJCQkvPg0KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQotCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJCQkJCTxUb29sDQotCQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0JCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQotCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiDQotCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJPg0KLQkJ
CQkJCTxUb29sDQotCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJLz4NCi0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCi0JCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3Iu
aCINCi0JCQkJCT4NCi0JCQkJPC9GaWxlPg0KLQkJCQk8RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIg0KIAkJCQkJPg0KIAkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDYxMTAwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc2Miw4ICs3NjIsNiBAQAog
CQk0MTEwNDY0MTBGQTIyMkE2MDBCQTQzNkEgLyogU2NyaXB0RXZlbnRMaXN0ZW5lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDQ2M0YwRkEyMjJB
NjAwQkE0MzZBIC8qIFNjcmlwdEV2ZW50TGlzdGVuZXIuaCAqLzsgfTsKIAkJNDExMDQ2NDIwRkEy
MjJBNjAwQkE0MzZBIC8qIFNjcmlwdEV2ZW50TGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDQ2NDAwRkEyMjJBNjAwQkE0MzZBIC8q
IFNjcmlwdEV2ZW50TGlzdGVuZXIuY3BwICovOyB9OwogCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0
RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAq
LzsgfTsKLQkJNDE1QjdDNTgwRkY1OThFNjAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3Ry
dWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE1QjdDNTUwRkY1OThFNjAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3Bw
ICovOyB9OwotCQk0MTVCN0M2MzBGRjVBNzY3MDA2NzcwRjcgLyogSlNTaGFyZWRXb3JrZXJDb25z
dHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE1QjdDNjIwRkY1QTc2NzAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaCAq
LzsgfTsKIAkJNDE2MkE0NTAxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2
MkE0NEQxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwICovOyB9
OwogCQk0MTYyQTQ1MTEwMTE0NUFFMDBERkYzRUQgLyogRGVkaWNhdGVkV29ya2VyQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2MkE0NEUx
MDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuaCAqLzsgfTsKIAkJNDE2
MkE0NTQxMDExNDVFMzAwREZGM0VEIC8qIEpTRGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyQTQ1
MzEwMTE0NUUzMDBERkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcCAq
LzsgfTsKQEAgLTg1MCw4ICs4NDgsNiBAQAogCQk0OTQ4NEZDRDEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzU3R5bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk0ODRGQkYxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCAqLzsgfTsK
IAkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZDMDEwMkNGMjNDMDAxODdE
RDMgLyogQ2FudmFzU3R5bGUuaCAqLzsgfTsKIAkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8q
IFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTRCRDc5MzBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCAqLzsgfTsKLQkJ
NDk0QkQ3OTkwRjU1QzkwRTAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTRCRDc5NzBG
NTVDOTBFMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCAqLzsgfTsKLQkJ
NDk0QkQ3OUEwRjU1QzkwRTAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk0QkQ3OTgwRjU1
QzkwRTAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oICovOyB9OwogCQk0OTRC
RDc5RDBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTRCRDc5QjBGNTVDOTRDMDA3NDc4Mjgg
LyogSlNXZWJLaXRQb2ludC5jcHAgKi87IH07CiAJCTQ5NEJENzlFMEY1NUM5NEMwMDc0NzgyOCAv
KiBKU1dlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTRCRDc5QzBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5oICovOyB9
OwogCQk0OTgzOTEzRjBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXguY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4MzkxM0QwRjFF
NzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCAqLzsgfTsKQEAgLTg2MSw4ICs4
NTcsNiBAQAogCQk0OTgzOTE1MjBGMUU3NkI0MDBDMjM3ODIgLyogRE9NV2ViS2l0Q1NTTWF0cml4
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5ODM5MTRGMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJLaXRDU1NNYXRyaXhJbnRlcm5hbC5o
ICovOyB9OwogCQk0OTgzOTE1ODBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODM5MTU1
MEYxRTc3NjkwMEMyMzc4MiAvKiBXZWJLaXRDU1NNYXRyaXguY3BwICovOyB9OwogCQk0OTgzOTE1
OTBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTgzOTE1NjBGMUU3NzY5MDBDMjM3ODIgLyog
V2ViS2l0Q1NTTWF0cml4LmggKi87IH07Ci0JCTQ5ODM5MTYzMEYxRThFRTEwMEMyMzc4MiAvKiBK
U1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODM5MTYxMEYxRThFRTEwMEMyMzc4MiAvKiBKU1dlYktp
dENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCAqLzsgfTsKLQkJNDk4MzkxNjQwRjFFOEVFMTAwQzIz
NzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODM5MTYyMEYxRThFRTEwMEMyMzc4MiAvKiBK
U1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmggKi87IH07CiAJCTQ5QzdCOTkzMTA0MkQyRDMw
MDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOTgwMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVm
ZmVyLmNwcCAqLzsgfTsKIAkJNDlDN0I5OTQxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZm
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdC
OTgxMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggKi87IH07CiAJCTQ5QzdCOTk1
MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU0ludDhBcnJheS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3Qjk4MjEwNDJEMkQzMDAwOUQ0NDcgLyogSlNJ
bnQ4QXJyYXkuY3BwICovOyB9OwpAQCAtOTY3LDIyICs5NjEsNiBAQAogCQk0OUVFQ0Y3QzEwNTA4
RDlDMDAwOTlGQUIgLyogSlNVaW50OEFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRjc1MTA1MDhEOUMwMDA5OUZBQiAvKiBK
U1VpbnQ4QXJyYXlDdXN0b20uY3BwICovOyB9OwogCQk0OUVFQ0Y3RDEwNTA4RDlDMDAwOTlGQUIg
LyogSlNVaW50MzJBcnJheUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0Y3NjEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50MzJBcnJh
eUN1c3RvbS5jcHAgKi87IH07CiAJCTQ5RUVDRjdFMTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQx
NkFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5RUVDRjc3MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQxNkFycmF5Q3VzdG9tLmNw
cCAqLzsgfTsKLQkJNDlFRUNGQUIxMDUwOTM4MjAwMDk5RkFCIC8qIEpTQXJyYXlCdWZmZXJDb25z
dHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OUVFQ0Y5OTEwNTA5MzgyMDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNw
cCAqLzsgfTsKLQkJNDlFRUNGQUMxMDUwOTM4MjAwMDk5RkFCIC8qIEpTQXJyYXlCdWZmZXJDb25z
dHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlFRUNGOUExMDUwOTM4MjAwMDk5RkFCIC8qIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oICov
OyB9OwotCQk0OUVFQ0ZBRDEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVF
Q0Y5QjEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvci5jcHAgKi87IH07
Ci0JCTQ5RUVDRkFFMTA1MDkzODIwMDA5OUZBQiAvKiBKU0ludDhBcnJheUNvbnN0cnVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0Y5QzEw
NTA5MzgyMDAwOTlGQUIgLyogSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvci5oICovOyB9OwotCQk0OUVF
Q0ZBRjEwNTA5MzgyMDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0Y5RDEwNTA5
MzgyMDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgKi87IH07Ci0JCTQ5
RUVDRkIwMTA1MDkzODIwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0Y5RTEwNTA5
MzgyMDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5oICovOyB9OwotCQk0OUVF
Q0ZCMTEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQzMkFycmF5Q29uc3RydWN0b3IuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNGOUYxMDUwOTM4
MjAwMDk5RkFCIC8qIEpTSW50MzJBcnJheUNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKLQkJNDlFRUNG
QjIxMDUwOTM4MjAwMDk5RkFCIC8qIEpTSW50MzJBcnJheUNvbnN0cnVjdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0ZBMDEwNTA5MzgyMDAw
OTlGQUIgLyogSlNJbnQzMkFycmF5Q29uc3RydWN0b3IuaCAqLzsgfTsKLQkJNDlFRUNGQjUxMDUw
OTM4MjAwMDk5RkFCIC8qIEpTSW50MTZBcnJheUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRkEzMTA1MDkzODIwMDA5OUZB
QiAvKiBKU0ludDE2QXJyYXlDb25zdHJ1Y3Rvci5jcHAgKi87IH07Ci0JCTQ5RUVDRkI2MTA1MDkz
ODIwMDA5OUZBQiAvKiBKU0ludDE2QXJyYXlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlFRUNGQTQxMDUwOTM4MjAwMDk5RkFCIC8q
IEpTSW50MTZBcnJheUNvbnN0cnVjdG9yLmggKi87IH07Ci0JCTQ5RUVDRkI3MTA1MDkzODIwMDA5
OUZBQiAvKiBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0ZBNTEwNTA5MzgyMDAwOTlGQUIgLyogSlNV
aW50OEFycmF5Q29uc3RydWN0b3IuY3BwICovOyB9OwotCQk0OUVFQ0ZCODEwNTA5MzgyMDAwOTlG
QUIgLyogSlNVaW50OEFycmF5Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRkE2MTA1MDkzODIwMDA5OUZBQiAvKiBKU1VpbnQ4
QXJyYXlDb25zdHJ1Y3Rvci5oICovOyB9OwotCQk0OUVFQ0ZCOTEwNTA5MzgyMDAwOTlGQUIgLyog
SlNVaW50MzJBcnJheUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RUVDRkE3MTA1MDkzODIwMDA5OUZBQiAvKiBKU1VpbnQzMkFy
cmF5Q29uc3RydWN0b3IuY3BwICovOyB9OwotCQk0OUVFQ0ZCQTEwNTA5MzgyMDAwOTlGQUIgLyog
SlNVaW50MzJBcnJheUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OUVFQ0ZBODEwNTA5MzgyMDAwOTlGQUIgLyogSlNVaW50MzJBcnJh
eUNvbnN0cnVjdG9yLmggKi87IH07Ci0JCTQ5RUVDRkJCMTA1MDkzODIwMDA5OUZBQiAvKiBKU1Vp
bnQxNkFycmF5Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDlFRUNGQTkxMDUwOTM4MjAwMDk5RkFCIC8qIEpTVWludDE2QXJyYXlD
b25zdHJ1Y3Rvci5jcHAgKi87IH07Ci0JCTQ5RUVDRkJDMTA1MDkzODIwMDA5OUZBQiAvKiBKU1Vp
bnQxNkFycmF5Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5RUVDRkFBMTA1MDkzODIwMDA5OUZBQiAvKiBKU1VpbnQxNkFycmF5Q29u
c3RydWN0b3IuaCAqLzsgfTsKIAkJNDlFRUQxNDIxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OUVFRDEzQzEwNTE5Njk0MDAwOTlGQUIgLyogSlNDYW52YXNSZW5kZXJpbmdD
b250ZXh0LmNwcCAqLzsgfTsKIAkJNDlFRUQxNDMxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDlFRUQxM0QxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5oICovOyB9OwogCQk0OUVFRDE0NDEwNTE5Njk0MDAwOTlGQUIgLyogSlNDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDlFRUQxM0UxMDUxOTY5NDAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcCAqLzsgfTsKQEAgLTExMDYsOCArMTA4NCw2IEBACiAJCTUxODlGMERFMTBCNDZC
MEUwMEYzQzczOSAvKiBQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODlGMEREMTBCNDZCMEUwMEYzQzczOSAvKiBQb3BTdGF0
ZUV2ZW50LmNwcCAqLzsgfTsKIAkJNTE4QTM0QzExMDI2QzgzMTAwMUI2ODk2IC8qIFdlYlNvY2tl
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThB
MzRCRTEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0LmNwcCAqLzsgfTsKIAkJNTE4QTM0QzIx
MDI2QzgzMTAwMUI2ODk2IC8qIFdlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QTM0QkYxMDI2QzgzMTAwMUI2ODk2IC8qIFdlYlNvY2tl
dC5oICovOyB9OwotCQk1MThBMzRDNzEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDb25z
dHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MThBMzRDNDEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5jcHAg
Ki87IH07Ci0JCTUxOEEzNEM4MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldENvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MThB
MzRDNTEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oICovOyB9Owog
CQk1MThBMzRDOTEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4QTM0QzYxMDI2QzhD
OTAwMUI2ODk2IC8qIEpTV2ViU29ja2V0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJNTE5NjExNkEwQ0FD
NTY1NzAwMTBBODBDIC8qIERhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxOTYxMTVFMENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5j
cHAgKi87IH07CiAJCTUxOTYxMTZCMENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE5NjExNUYwQ0FDNTY1
NzAwMTBBODBDIC8qIERhdGFiYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTQzNDUsNiArNDMyMSwxMCBAQAogCQlCQzIzRUU5MjBEQUVEMkJD
MDA5RkRDOTEgLyogQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyM0VFOTEwREFFRDJCQzAwOUZEQzkxIC8qIENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCQzIzRjBEQjBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjNG
MERBMERBRkY0QTQwMDlGREM5MSAvKiBHZW5lcmF0ZWRJbWFnZS5oICovOyB9OwogCQlCQzI0NDFD
NDBFOEI2NUQwMDA1NTMyMEYgLyogU2Nyb2xsVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI0NDFDMzBFOEI2NUQwMDA1NTMyMEYgLyogU2Ny
b2xsVmlldy5jcHAgKi87IH07CisJCUJDMjc1Qjc5MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktp
dFBvaW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMjc1Qjc4MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNw
cCAqLzsgfTsKKwkJQkMyNzVCN0QxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMjc1QjdDMTFDNUQyMzUwMEM5MjA2QyAvKiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAg
Ki87IH07CisJCUJDMjc1QjgxMTFDNUQyQjQwMEM5MjA2QyAvKiBKU0V2ZW50U291cmNlQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjc1
QjgwMTFDNUQyQjQwMEM5MjA2QyAvKiBKU0V2ZW50U291cmNlQ3VzdG9tLmNwcCAqLzsgfTsKKwkJ
QkMyNzVDQjMxMUM1RTg1QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZmZXJDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNzVDQjIxMUM1RTg1
QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZmZXJDdXN0b20uY3BwICovOyB9OwogCQlCQzJDQzhERjBG
MzI4ODEwMDBBOURGMjYgLyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJDQzhERTBGMzI4ODEwMDBBOURGMjYg
LyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMyRUQ1NTUwQzZCOUJEMzAwOTIwQkZGIC8qIEpTRWxlbWVu
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzJFRDU1NDBDNkI5QkQzMDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsK
IAkJQkMyRUQ2NTAwQzZCQzQ4QzAwOTIwQkZGIC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRUQ2
NEYwQzZCQzQ4QzAwOTIwQkZGIC8qIEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwICovOyB9
OwpAQCAtNDcxOCw4ICs0Njk4LDYgQEAKIAkJQkNFNzg5ODYxMTIwRTdBNjAwNjBFQ0U1IC8qIEJp
ZGlSdW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTc4OTg1MTEyMEU3QTYwMDYwRUNFNSAvKiBCaWRpUnVuLmggKi87IH07CiAJCUJDRTc4OThCMTEy
MEU4MDIwMDYwRUNFNSAvKiBCaWRpUnVuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTc4OThBMTEyMEU4MDIwMDYwRUNFNSAvKiBCaWRpUnVuLmNw
cCAqLzsgfTsKIAkJQkNFN0IxOTMwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U3QjE5
MjBENEU4Njk2MDA3NUE1MzkgLyogSlNIaXN0b3J5Q3VzdG9tLmNwcCAqLzsgfTsKLQkJQkNFOTlF
QzMwRENBNjI0MTAwMTgyNjgzIC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTk5RUMxMERDQTYy
NDEwMDE4MjY4MyAvKiBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAgKi87IH07Ci0JCUJD
RTk5RUM0MERDQTYyNDEwMDE4MjY4MyAvKiBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFOTlFQzIwRENB
NjI0MTAwMTgyNjgzIC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmggKi87IH07CiAJCUJD
RUE0NzhGMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQTQ3N0Mw
OTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgKi87IH07
CiAJCUJDRUE0NzkwMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUE0
NzdEMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0VBNDg1MjA5
N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUE0ODEzMDk3RDkzMDIwMDk0QzlF
NCAvKiBSZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwICovOyB9OwpAQCAtNDg5NywxMiArNDg3NSw4
IEBACiAJCUUwRkVGMzcyQjI3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMEZFRjM3MUIyN0M1M0VB
QzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwICovOyB9OwogCQlFMEZFRjM3MkIzN0M1M0VBQzFD
MUZCRUUgLyogSlNFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTBGRUYzNzFCMzdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2Uu
aCAqLzsgfTsKIAkJRTBGRUYzNzJCNDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTBGRUYzNzFC
NDdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuY3BwICovOyB9OwotCQlFMEZFRjM3MkI2
N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMEZFRjM3MUI2N0M1M0VBQzFDMUZC
RUUgLyogSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmggKi87IH07Ci0JCUUwRkVGMzcyQjc3QzUz
RUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTBGRUYzNzFCNzdDNTNFQUMxQzFGQkVF
IC8qIEpTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAgKi87IH07CiAJCUUxMDc0MDBEMEU3N0JE
QzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMDc0MDBCMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01l
c3NhZ2VDaGFubmVsLmNwcCAqLzsgfTsKIAkJRTEwNzQwMEUwRTc3QkRDMDAwMzNBRjI0IC8qIEpT
TWVzc2FnZUNoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxMDc0MDBDMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmggKi87
IH07Ci0JCUUxMDc0MzI0MEU3ODM1ODMwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsQ29uc3Ry
dWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTEwNzQzMjMwRTc4MzU4MzAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5j
cHAgKi87IH07Ci0JCUUxMDc0MzI3MEU3ODM1QTUwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxMDc0MzI2MEU3ODM1QTUwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0
b3IuaCAqLzsgfTsKIAkJRTEwQjkzN0MwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAq
LzsgfTsKIAkJRTEwQjkzQzMwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
MEI5M0MyMEI3M0MyOTEwMDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi87
IH07CiAJCUUxMEI5QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5QjZB
MEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKQEAgLTQ5
NzMsOCArNDk0Nyw2IEBACiAJCUUxQzRERTZFMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01P
YmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi87IH07CiAJ
CUUxQzhCRTVEMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM4QkU1QzBFOEJEMTVBMDA2NENCN0Qg
LyogSlNXb3JrZXIuY3BwICovOyB9OwogCQlFMUNBNUNCQzBFOENEQ0FGMDBFOEVGOTAgLyogSlNX
b3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFDQTVDQkIwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCAqLzsg
fTsKLQkJRTFDQTVDRDMwRThDREU4MDAwRThFRjkwIC8qIEpTV29ya2VyQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQ0E1Q0QyMEU4
Q0RFODAwMEU4RUY5MCAvKiBKU1dvcmtlckNvbnN0cnVjdG9yLmggKi87IH07Ci0JCUUxQ0E1Q0Q2
MEU4Q0RFRTkwMEU4RUY5MCAvKiBKU1dvcmtlckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQ0E1Q0Q1MEU4Q0RFRTkwMEU4RUY5
MCAvKiBKU1dvcmtlckNvbnN0cnVjdG9yLmNwcCAqLzsgfTsKIAkJRTFDQUE1QzYwRThCRDIzNjAw
QTczRUNBIC8qIEpTV29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUNBQTVDNTBFOEJEMjM2MDBBNzNFQ0EgLyogSlNXb3JrZXIuaCAqLzsgfTsK
IAkJRTFFMUJGMDAxMTVGRjZGQjAwNkY1MkNBIC8qIFdpbmRvd3NLZXlib2FyZENvZGVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUUxQkVGRjExNUZG
NkZCMDA2RjUyQ0EgLyogV2luZG93c0tleWJvYXJkQ29kZXMuaCAqLzsgfTsKIAkJRTFFNkVFQTQw
QjYyOERBODAwNUYyRjcwIC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNkVFQTMwQjYyOERBODAwNUYyRjcw
IC8qIEpTSFRNTFNlbGVjdEVsZW1lbnQuY3BwICovOyB9OwpAQCAtNjM0Nyw4ICs2MzE5LDYgQEAK
IAkJNDExMDQ2M0YwRkEyMjJBNjAwQkE0MzZBIC8qIFNjcmlwdEV2ZW50TGlzdGVuZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RXZlbnRMaXN0ZW5lci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEwNDY0MDBGQTIyMkE2MDBCQTQzNkEgLyogU2Ny
aXB0RXZlbnRMaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTY3JpcHRFdmVudExpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDE1QjdDNTUwRkY1OThFNjAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2Vy
Q29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNT
aGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQxNUI3QzYyMEZGNUE3NjcwMDY3NzBGNyAvKiBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hhcmVkV29ya2VyQ29uc3RydWN0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2MkE0NEQxMDExNDVBRTAwREZG
M0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHA7IHBhdGggPSB3b3JrZXJz
L0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTYyQTQ0RTEwMTE0NUFFMDBERkYzRUQgLyogRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Lmg7
IHBhdGggPSB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE2MkE0NEYxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtl
ckNvbnRleHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IERlZGljYXRlZFdvcmtlckNvbnRl
eHQuaWRsOyBwYXRoID0gd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY0NTYsOCArNjQyNiw2IEBACiAJCTQ5NDg0RkMwMTAy
Q0YyM0MwMDE4N0REMyAvKiBDYW52YXNTdHlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBDYW52YXNTdHlsZS5oOyBwYXRoID0gY2FudmFzL0NhbnZhc1N0eWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5NEJENzkzMEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJL
aXRQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRQb2ludC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTRCRDc5NDBGNTVDOEVFMDA3NDc4Mjgg
LyogV2ViS2l0UG9pbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFBvaW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDk0QkQ3OTcwRjU1QzkwRTAwNzQ3ODI4
IC8qIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk0OTRCRDc5ODBGNTVDOTBFMDA3NDc4MjggLyogSlNXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0
UG9pbnRDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTRCRDc5
QjBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFBvaW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDk0QkQ3OUMwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRQb2ludC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OTgzOTEzRDBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJL
aXRDU1NNYXRyaXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNX
ZWJLaXRDU1NNYXRyaXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ2OCw4
ICs2NDM2LDYgQEAKIAkJNDk4MzkxNTUwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJp
eC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NNYXRy
aXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTgzOTE1NjBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdENTU01hdHJpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTgz
OTE1NzBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJLaXRDU1NNYXRyaXguaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk0OTgzOTE2MTBGMUU4RUUxMDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1
Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDk4
MzkxNjIwRjFFOEVFMTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1
Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3Qjk4MDEwNDJEMkQzMDAw
OUQ0NDcgLyogSlNXZWJHTEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1dlYkdMQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDlDN0I5ODExMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xCdWZmZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTEJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0OUM3Qjk4MjEwNDJEMkQzMDAwOUQ0NDcgLyogSlNJbnQ4QXJyYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJbnQ4QXJyYXkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjU5MSwyMiArNjU1Nyw2IEBACiAJCTQ5RUVDRjc1
MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQ4QXJyYXlDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVaW50OEFycmF5Q3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlFRUNGNzYxMDUwOEQ5QzAwMDk5RkFCIC8qIEpTVWludDMy
QXJyYXlDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNV
aW50MzJBcnJheUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVD
Rjc3MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQxNkFycmF5Q3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVWludDE2QXJyYXlDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0Y5OTEwNTA5MzgyMDAwOTlGQUIgLyogSlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTQ5RUVDRjlBMTA1MDkzODIwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcnJheUJ1ZmZlckNv
bnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVDRjlCMTA1MDkz
ODIwMDA5OUZBQiAvKiBKU0ludDhBcnJheUNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW50OEFycmF5Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0Y5QzEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQ4
QXJyYXlDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lu
dDhBcnJheUNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5RUVD
RjlEMTA1MDkzODIwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRmxvYXQzMkFycmF5Q29uc3RydWN0
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0Y5RTEwNTA5MzgyMDAw
OTlGQUIgLyogSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTQ5RUVDRjlGMTA1MDkzODIwMDA5OUZBQiAvKiBKU0ludDMyQXJyYXlD
b25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lu
dDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5
RUVDRkEwMTA1MDkzODIwMDA5OUZBQiAvKiBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OUVFQ0ZBMzEwNTA5MzgyMDAwOTlGQUIgLyog
SlNJbnQxNkFycmF5Q29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNJbnQxNkFycmF5Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk0OUVFQ0ZBNDEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQxNkFycmF5Q29uc3Ry
dWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbnQxNkFycmF5Q29u
c3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNGQTUxMDUwOTM4
MjAwMDk5RkFCIC8qIEpTVWludDhBcnJheUNvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVWludDhBcnJheUNvbnN0cnVjdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNGQTYxMDUwOTM4MjAwMDk5RkFCIC8qIEpTVWlu
dDhBcnJheUNvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
VWludDhBcnJheUNvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5
RUVDRkE3MTA1MDkzODIwMDA5OUZBQiAvKiBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVaW50MzJBcnJheUNvbnN0cnVj
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDlFRUNGQTgxMDUwOTM4MjAw
MDk5RkFCIC8qIEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNDlFRUNGQTkxMDUwOTM4MjAwMDk5RkFCIC8qIEpTVWludDE2QXJyYXlD
b25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Vp
bnQxNkFycmF5Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
OUVFQ0ZBQTEwNTA5MzgyMDAwOTlGQUIgLyogSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUVFRDEzQzEwNTE5Njk0MDAwOTlGQUIg
LyogSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5RUVEMTNEMTA1MTk2OTQwMDA5OUZBQiAvKiBKU0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RUVEMTNF
MTA1MTk2OTQwMDA5OUZBQiAvKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NzQ5LDggKzY2OTksNiBAQAog
CQk1MThBMzRCRTEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxOEEzNEJGMTAyNkM4MzEwMDFCNjg5NiAvKiBXZWJTb2NrZXQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU29ja2V0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxOEEzNEMwMTAyNkM4MzEwMDFCNjg5NiAvKiBXZWJTb2NrZXQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNvY2tldC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTUxOEEzNEM0MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldENvbnN0
cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViU29j
a2V0Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MThBMzRD
NTEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYlNvY2tldENvbnN0cnVjdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxOEEzNEM2MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNv
Y2tldEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dl
YlNvY2tldEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxOTYxMTVF
MENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEYXRhYmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxOTYxMTVGMENBQzU2NTcwMDEwQTgwQyAvKiBEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtOTg1NCw2ICs5ODAyLDEwIEBACiAJCUJDMjNFRTkxMERBRUQyQkMwMDlGREM5MSAvKiBDU1NJ
bWFnZUdlbmVyYXRvclZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U0ltYWdlR2VuZXJhdG9yVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMy
M0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyYXRlZEltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMjQ0MUMzMEU4QjY1RDAwMDU1MzIwRiAvKiBTY3JvbGxWaWV3LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbFZpZXcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzI3NUI3ODExQzVEMUMzMDBDOTIwNkMgLyogSlNXZWJL
aXRQb2ludEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1dlYktpdFBvaW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMy
NzVCN0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMyNzVCODAxMUM1RDJCNDAwQzky
MDZDIC8qIEpTRXZlbnRTb3VyY2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNFdmVudFNvdXJjZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDMjc1Q0IyMTFDNUU4NUMwMEM5MjA2QyAvKiBKU0FycmF5QnVmZmVyQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXJyYXlCdWZmZXJD
dXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzJDQzhERTBGMzI4ODEw
MDBBOURGMjYgLyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlck9iamVjdENoaWxkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzJFRDU1NDBDNkI5QkQzMDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxlbWVudEN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkVENjRGMEM2QkM0OEMwMDkyMEJG
RiAvKiBKU0hUTUxJRnJhbWVFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTElGcmFtZUVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTAyNTAsOCArMTAyMDIsNiBAQAogCQlCQ0U3ODk4NTExMjBF
N0E2MDA2MEVDRTUgLyogQmlkaVJ1bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCaWRpUnVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTc4OThBMTEyMEU4
MDIwMDYwRUNFNSAvKiBCaWRpUnVuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEJpZGlSdW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0U3QjE5
MjBENEU4Njk2MDA3NUE1MzkgLyogSlNIaXN0b3J5Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSGlzdG9yeUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUJDRTk5RUMxMERDQTYyNDEwMDE4MjY4MyAvKiBKU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDRTk5RUMyMERDQTYyNDEwMDE4MjY4MyAvKiBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VBNDc3QzA5N0NBQUM4
MDA5NEM5RTQgLyogQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VBNDc3RDA5N0NBQUM4MDA5NEM5RTQg
LyogQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNFQTQ3N0UwOTdDQUFDODAwOTRDOUU0IC8qIENTU0dyYW1tYXIueSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLnlhY2M7IHBhdGggPSBDU1NHcmFtbWFyLnk7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDQ0OSwxMiArMTAzOTksOCBAQAogCQlFMEZFRjM3MUIy
N0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRXZlbnRTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMEZFRjM3MUIzN0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0V2ZW50U291cmNlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUwRkVGMzcxQjQ3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRTb3VyY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMEZFRjM3MUI2N0M1M0VBQzFDMUZC
RUUgLyogSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFMEZFRjM3MUI3N0M1M0VBQzFDMUZCRUUgLyogSlNFdmVudFNvdXJjZUNvbnN0
cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRT
b3VyY2VDb25zdHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMDc0
MDBCMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVzc2FnZUNoYW5uZWwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTA3NDAwQzBFNzdCREMwMDAzM0FGMjQgLyogSlNNZXNzYWdl
Q2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lc3NhZ2VDaGFu
bmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMDc0MzIzMEU3ODM1ODMwMDMz
QUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEwNzQzMjYwRTc4MzVBNTAwMzNBRjI0IC8qIEpT
TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTEwQjkzN0IwQjczQzAwQTAwM0VEODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5M0MyMEI3M0MyOTEw
MDNFRDg5MCAvKiBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMEI5QjZBMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVY
UGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZl
WFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDUyNyw4
ICsxMDQ3Myw2IEBACiAJCUUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmpl
Y3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWN0aXZlRE9NT2Jq
ZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDOEJFNUMwRThCRDE1QTAw
NjRDQjdEIC8qIEpTV29ya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQTVDQkIw
RThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTFDQTVDRDIwRThDREU4MDAwRThFRjkwIC8qIEpTV29ya2VyQ29uc3RydWN0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXb3JrZXJDb25zdHJ1Y3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUNBNUNENTBFOENERUU5MDBFOEVG
OTAgLyogSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dvcmtlckNvbnN0cnVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFDQUE1QzUwRThCRDIzNjAwQTczRUNBIC8qIEpTV29ya2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxRTFCRUZGMTE1RkY2RkIwMDZGNTJDQSAvKiBXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUU2RUVBMzBCNjI4REE4MDA1RjJG
NzAgLyogSlNIVE1MU2VsZWN0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0hUTUxTZWxlY3RFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwNTQxLDE0ICsxMDQ4NSwxNCBAQAogCQlFMUYxRTgyRTBDM0MyQkI5MDA2REIz
OTEgLyogWFNMVEV4dGVuc2lvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFNMVEV4dGVuc2lvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjU3QTIw
RjAxMjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQwNkYzRkExMTk4MzA0RDAwOUQ1OUQ2
IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IERvY1R5cGVTdHJpbmdzLmNwcDsgcGF0aCA9IERvY1R5cGVTdHJpbmdzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9y
RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb2xvckRhdGEu
Y3BwOyBwYXRoID0gQ29sb3JEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RTQwNkY0MDIxMTk4MzI5QTAwOUQ1OUQ2IC8qIEhUTUxFbnRpdHlOYW1lcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIVE1MRW50aXR5TmFtZXMuY3BwOyBwYXRoID0g
SFRNTEVudGl0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQxRUEw
MzgxMTk4MzZEQjAwNzEwQkM1IC8qIENTU1Byb3BlcnR5TmFtZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTUHJvcGVydHlOYW1lcy5jcHA7IHBhdGggPSBDU1NQ
cm9wZXJ0eU5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTQxRUEwMzkx
MTk4Mzc0OTAwNzEwQkM1IC8qIENTU1ZhbHVlS2V5d29yZHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ1NTVmFsdWVLZXl3b3Jkcy5jcHA7IHBhdGggPSBDU1NWYWx1
ZUtleXdvcmRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQwNkYzRkExMTk4
MzA0RDAwOUQ1OUQ2IC8qIERvY1R5cGVTdHJpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERvY1R5cGVTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTQwNkYzRkIxMTk4MzA3RDAwOUQ1OUQ2IC8qIENvbG9yRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckRhdGEuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFNDA2RjQwMjExOTgzMjlBMDA5RDU5RDYgLyogSFRNTEVudGl0
eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbnRp
dHlOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTBDMEQ5QTA1
ODcwMDMzQ0U5NyAvKiBFbGVtZW50VGltZUNvbnRyb2wuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEVsZW1lbnRUaW1lQ29udHJvbC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0MTVGMTY4MEQ5QTE2NUQwMDMzQ0U5NyAvKiBET01FbGVtZW50VGltZUNvbnRyb2wuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRWxlbWVudFRpbWVDb250cm9sLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MTVGMTgzMEQ5QTFBODMwMDMzQ0U5NyAvKiBF
bGVtZW50VGltZUNvbnRyb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxl
bWVudFRpbWVDb250cm9sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0MUVBMDM4
MTE5ODM2REIwMDcxMEJDNSAvKiBDU1NQcm9wZXJ0eU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNDFFQTAzOTExOTgzNzQ5MDA3MTBCQzUgLyogQ1NTVmFsdWVLZXl3
b3Jkcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NWYWx1ZUtl
eXdvcmRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ0MEEyRDQxMTkxQTUw
QjAwMDgyMEIwIC8qIFNWR0ZFTGlnaHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHRkVMaWdodGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0NDBBMkQ2MTE5MUE1MjMwMDA4MjBCMCAvKiBTVkdGRUxpZ2h0aW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZFTGlnaHRpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQ0NjEzOEYwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1l
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEF1ZGlvRWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTM3NSw4ICsxNTMxOSw2
IEBACiAJCQkJOEY5MzREODMxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oICovLAogCQkJCTkzQjcwRDRGMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwICovLAogCQkJCTkzQjcwRDUwMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1BsdWdp
bkVsZW1lbnRGdW5jdGlvbnMuaCAqLywKLQkJCQk0MTVCN0M1NTBGRjU5OEU2MDA2NzcwRjcgLyog
SlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgKi8sCi0JCQkJNDE1QjdDNjIwRkY1QTc2NzAw
Njc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaCAqLywKIAkJCQkxNENEOEQ4MTEw
NkI1MjkwMDBBNDZEMjMgLyogSlNTaGFyZWRXb3JrZXJDdXN0b20uY3BwICovLAogCQkJCUIyMTEy
N0E1MEIzMTg2NzcwMDA5QkU1MyAvKiBKU1NWR1BPRFR5cGVXcmFwcGVyLmggKi8sCiAJCQkJRTFD
MzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyQ29udGV4dEJhc2UuY3BwICovLApAQCAt
MTU0NzgsNiArMTU0MjAsNyBAQAogCQlCQzRFREVGNzBDMDhGNDE0MDA3RURENDkgLyogQ3VzdG9t
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzI3NUNC
MjExQzVFODVDMDBDOTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgKi8sCiAJCQkJNDky
MjczQTIxMDgzQjNCMTAwRUU1Qzg0IC8qIEpTQXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmNwcCAqLywK
IAkJCQk4NjI0M0QwMDExQkMzMUY3MDBDQzAwNkEgLyogSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIu
aCAqLywKIAkJCQlCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAq
LywKQEAgLTE1NTAzLDYgKzE1NDQ2LDcgQEAKIAkJCQk2NTJGQkJCQjBERTI3Q0I2MDAwMUQzODYg
LyogSlNET01XaW5kb3dDdXN0b20uaCAqLywKIAkJCQlCQzJFRDU1NDBDNkI5QkQzMDA5MjBCRkYg
LyogSlNFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGQUY0RDBDMzE3RTY5MDBGQTgxRjYg
LyogSlNFdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJQkMyNzVCODAxMUM1RDJCNDAwQzkyMDZDIC8q
IEpTRXZlbnRTb3VyY2VDdXN0b20uY3BwICovLAogCQkJCTQ5RUVDRjcyMTA1MDhEOUMwMDA5OUZB
QiAvKiBKU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgKi8sCiAJCQkJRkU4MEQ3QTYwRTlDMUVEMjAw
MEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb25DdXN0b20uY3BwICovLAogCQkJCUJDRTdCMTkyMEQ0RTg2
OTYwMDc1QTUzOSAvKiBKU0hpc3RvcnlDdXN0b20uY3BwICovLApAQCAtMTU1NjcsNiArMTU1MTEs
OCBAQAogCQkJCTQ5RUVDRjc2MTA1MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQzMkFycmF5Q3VzdG9t
LmNwcCAqLywKIAkJCQk0OUVFQ0Y3NTEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50OEFycmF5Q3Vz
dG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlGQUIgLyogSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwICovLAorCQkJCUJDMjc1QjdDMTFDNUQyMzUwMEM5MjA2QyAv
KiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgKi8sCisJCQkJQkMyNzVCNzgxMUM1RDFDMzAw
QzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwICovLAogCQkJCTUxOEEzNEM2MTAyNkM4
QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldEN1c3RvbS5jcHAgKi8sCiAJCQkJRTE4MjU4QUIwRUYz
Q0Q3MDAwOTMzMjQyIC8qIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFDQTVD
QkIwRThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCAqLywKQEAgLTE1ODM0LDQ0
ICsxNTc4MCwxMiBAQAogCQlCQ0NFNThCNDEwNjFFOTI1MDA4RkIzNUEgLyogQ29uc3RydWN0b3Jz
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0OUVFQ0Y5
OTEwNTA5MzgyMDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCAqLywKLQkJ
CQk0OUVFQ0Y5QTEwNTA5MzgyMDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgg
Ki8sCiAJCQkJRTRFRUZGQzYwRDM0NTUwQzAwNDY5QTU4IC8qIEpTQXVkaW9Db25zdHJ1Y3Rvci5j
cHAgKi8sCiAJCQkJRTRFRUZGQzcwRDM0NTUwQzAwNDY5QTU4IC8qIEpTQXVkaW9Db25zdHJ1Y3Rv
ci5oICovLAotCQkJCUUwRkVGMzcxQjc3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNlQ29u
c3RydWN0b3IuY3BwICovLAotCQkJCUUwRkVGMzcxQjY3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50
U291cmNlQ29uc3RydWN0b3IuaCAqLywKLQkJCQk0OUVFQ0Y5RDEwNTA5MzgyMDAwOTlGQUIgLyog
SlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgKi8sCi0JCQkJNDlFRUNGOUUxMDUwOTM4MjAw
MDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3IuaCAqLywKIAkJCQlCQzZDNDlGMTBE
N0RCQTA1MDBGRkE1NTggLyogSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCAqLywKIAkJCQlCQzZDNDlG
MjBEN0RCQTA1MDBGRkE1NTggLyogSlNJbWFnZUNvbnN0cnVjdG9yLmggKi8sCi0JCQkJNDlFRUNG
QTMxMDUwOTM4MjAwMDk5RkFCIC8qIEpTSW50MTZBcnJheUNvbnN0cnVjdG9yLmNwcCAqLywKLQkJ
CQk0OUVFQ0ZBNDEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQxNkFycmF5Q29uc3RydWN0b3IuaCAq
LywKLQkJCQk0OUVFQ0Y5RjEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQzMkFycmF5Q29uc3RydWN0
b3IuY3BwICovLAotCQkJCTQ5RUVDRkEwMTA1MDkzODIwMDA5OUZBQiAvKiBKU0ludDMyQXJyYXlD
b25zdHJ1Y3Rvci5oICovLAotCQkJCTQ5RUVDRjlCMTA1MDkzODIwMDA5OUZBQiAvKiBKU0ludDhB
cnJheUNvbnN0cnVjdG9yLmNwcCAqLywKLQkJCQk0OUVFQ0Y5QzEwNTA5MzgyMDAwOTlGQUIgLyog
SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvci5oICovLAotCQkJCUUxMDc0MzIzMEU3ODM1ODMwMDMzQUYy
NCAvKiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwICovLAotCQkJCUUxMDc0MzI2MEU3
ODM1QTUwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaCAqLywKIAkJCQlB
ODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgKi8sCiAJ
CQkJQTgyNkU4QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCAqLywK
LQkJCQk0MTVCN0M1NTBGRjU5OEU2MDA2NzcwRjcgLyogSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rv
ci5jcHAgKi8sCi0JCQkJNDE1QjdDNjIwRkY1QTc2NzAwNjc3MEY3IC8qIEpTU2hhcmVkV29ya2Vy
Q29uc3RydWN0b3IuaCAqLywKLQkJCQk0OUVFQ0ZBOTEwNTA5MzgyMDAwOTlGQUIgLyogSlNVaW50
MTZBcnJheUNvbnN0cnVjdG9yLmNwcCAqLywKLQkJCQk0OUVFQ0ZBQTEwNTA5MzgyMDAwOTlGQUIg
LyogSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yLmggKi8sCi0JCQkJNDlFRUNGQTcxMDUwOTM4MjAw
MDk5RkFCIC8qIEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgKi8sCi0JCQkJNDlFRUNGQTgx
MDUwOTM4MjAwMDk5RkFCIC8qIEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvci5oICovLAotCQkJCTQ5
RUVDRkE1MTA1MDkzODIwMDA5OUZBQiAvKiBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvci5jcHAgKi8s
Ci0JCQkJNDlFRUNGQTYxMDUwOTM4MjAwMDk5RkFCIC8qIEpTVWludDhBcnJheUNvbnN0cnVjdG9y
LmggKi8sCi0JCQkJNDk4MzkxNjEwRjFFOEVFMTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4
Q29uc3RydWN0b3IuY3BwICovLAotCQkJCTQ5ODM5MTYyMEYxRThFRTEwMEMyMzc4MiAvKiBKU1dl
YktpdENTU01hdHJpeENvbnN0cnVjdG9yLmggKi8sCi0JCQkJNDk0QkQ3OTcwRjU1QzkwRTAwNzQ3
ODI4IC8qIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAgKi8sCi0JCQkJNDk0QkQ3OTgwRjU1
QzkwRTAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oICovLAotCQkJCTUxOEEz
NEM0MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldENvbnN0cnVjdG9yLmNwcCAqLywKLQkJ
CQk1MThBMzRDNTEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oICov
LAotCQkJCUUxQ0E1Q0Q1MEU4Q0RFRTkwMEU4RUY5MCAvKiBKU1dvcmtlckNvbnN0cnVjdG9yLmNw
cCAqLywKLQkJCQlFMUNBNUNEMjBFOENERTgwMDBFOEVGOTAgLyogSlNXb3JrZXJDb25zdHJ1Y3Rv
ci5oICovLAotCQkJCUJDRTk5RUMxMERDQTYyNDEwMDE4MjY4MyAvKiBKU1hTTFRQcm9jZXNzb3JD
b25zdHJ1Y3Rvci5jcHAgKi8sCi0JCQkJQkNFOTlFQzIwRENBNjI0MTAwMTgyNjgzIC8qIEpTWFNM
VFByb2Nlc3NvckNvbnN0cnVjdG9yLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IENvbnN0cnVjdG9y
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xODE5OCw3ICsxODExMiw2IEBACiAJ
CQkJOTMzMDlERjQwOTlFNjQ5MjAwNTZFNTgxIC8qIEpvaW5UZXh0Tm9kZXNDb21tYW5kLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MThGODgwNTBGRjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdv
cmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNGMDExMDUwNzBDNDAwMDk5RkFCIC8qIEpT
QXJyYXlCdWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDRkFDMTA1MDkzODIwMDA5OUZB
QiAvKiBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RUVD
RjFDMTA1MDcyRjMwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyVmlldy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODYyNDNEMDExMUJDMzFGNzAwQ0MwMDZBIC8qIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzFEQjA5RDFDMTIzMDAwQkUzMjUgLyogSlNBdHRy
LmggaW4gSGVhZGVycyAqLywKQEAgLTE4Mjc0LDcgKzE4MTg3LDYgQEAKIAkJCQlCQzYwRDlDMDBE
MkEyNjlBMDBCOTkxOEYgLyogSlNFdmVudEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNCNzBENkEwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTBGRUYzNzJCMzdDNTNFQUMxQzFGQkVFIC8qIEpTRXZlbnRTb3VyY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUUwRkVGMzcyQjY3QzUzRUFDMUMxRkJFRSAvKiBKU0V2ZW50U291cmNl
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjA5MDFGMEU5MUI4RUMwMDBDNjhC
NSAvKiBKU0V2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzE0QUNFQzEwODkyMDg2
MDAwRjBFNTYgLyogSlNFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAwRjAx
NTBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTE4MjgyLDcg
KzE4MTk0LDYgQEAKIAkJCQlCQzAwRjAxNzBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxlTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkU5NEY0M0MxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJl
YWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNGMDMxMDUwNzBDNDAwMDk5RkFCIC8qIEpT
RmxvYXQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0OUVFQ0ZCMDEwNTA5MzgyMDAwOTlG
QUIgLyogSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkU4
MERBNjQwRTlDNDcwMzAwMEQ2Rjc1IC8qIEpTR2VvbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFODBEQTY2MEU5QzQ3MDMwMDBENkY3NSAvKiBKU0dlb3Bvc2l0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzk0RDE0RjBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmggaW4gSGVh
ZGVycyAqLywKQEAgLTE4Mzc3LDExICsxODI4OCw4IEBACiAJCQkJNDFGMDYwQ0UwRjVFRUIyQjAw
QTA3RUFDIC8qIEpTSW5zcGVjdG9yQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3
MUYxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0OUVFQ0YwNzEwNTA3MEM0MDAwOTlGQUIgLyogSlNJbnQxNkFycmF5LmggaW4g
SGVhZGVycyAqLywKLQkJCQk0OUVFQ0ZCNjEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQxNkFycmF5
Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RUVDRjA1MTA1MDcwQzQwMDA5OUZB
QiAvKiBKU0ludDMyQXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5RUVDRkIyMTA1MDkzODIw
MDA5OUZBQiAvKiBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlDN0I5OTYxMDQyRDJEMzAwMDlENDQ3IC8qIEpTSW50OEFycmF5LmggaW4gSGVhZGVycyAqLywK
LQkJCQk0OUVFQ0ZBRTEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUM1RkFFRDIwRENGRDkwMTAwRDU4Rjc4IC8qIEpTSmF2YVNj
cmlwdENhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg2NjI5RDMwOURBMkI0ODAwOTYz
M0E1IC8qIEpTS2V5Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RjQ1NDMwRjdD
M0I1RjAwRDdDMUZCIC8qIEpTTGF6eUV2ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLApAQCAt
MTgzOTAsNyArMTgyOTgsNiBAQAogCQkJCUJDM0MzOUI3MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01l
ZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUZGRTNFQTYxMUI1QTQzOTAwMzc4NzRFIC8q
IEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEwNzQwMEUwRTc3QkRDMDAwMzNB
RjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxMDc0MzI3MEU3
ODM1QTUwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc1NzkzRUM5MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFBREVEREEwRTc2QkQ5MzAwNEExQTVFIC8qIEpTTWVzc2FnZVBv
cnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjU4NEM3MTA0NjUyQ0IwMDlDQUE2NCAvKiBKU01l
c3NhZ2VQb3J0Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKQEAgLTE4NDI2LDcgKzE4MzMzLDYgQEAK
IAkJCQk5RkEzN0VGQjExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5RkEzN0VGRDExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxl
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMDdBN0YwRkY5MzVDQTAwOTVFRENFIC8qIEpT
U2hhcmVkV29ya2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTVCN0M2MzBGRjVBNzY3MDA2Nzcw
RjcgLyogSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFE
MTY5MDYxMDIzOEI2NjAwOUJDODI3IC8qIEpTU2hhcmVkV29ya2VyQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM4MjQzMjkwRDBDRThBMjAwNDYwQzhGIC8qIEpTU1FMRXJyb3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRTgyRkVEMENBQjA3RUUwMDIyMzdBRSAvKiBKU1NRTFJlc3VsdFNl
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODU4NywxMSArMTg0OTMsOCBAQAogCQkJCTFBNzUwRDVE
MEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
NjYyOUNGMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5RUVDRjBEMTA1MDcwQzQwMDA5OUZBQiAvKiBKU1VpbnQxNkFycmF5LmggaW4gSGVhZGVycyAq
LywKLQkJCQk0OUVFQ0ZCQzEwNTA5MzgyMDAwOTlGQUIgLyogSlNVaW50MTZBcnJheUNvbnN0cnVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVFQ0YwQjEwNTA3MEM0MDAwOTlGQUIgLyogSlNV
aW50MzJBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDlFRUNGQkExMDUwOTM4MjAwMDk5RkFC
IC8qIEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFRUNG
MDkxMDUwNzBDNDAwMDk5RkFCIC8qIEpTVWludDhBcnJheS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDlFRUNGQjgxMDUwOTM4MjAwMDk5RkFCIC8qIEpTVWludDhBcnJheUNvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNUM3NzA5MzEwMEQzQ0E4MDA1QkEyNjcgLyogSlNWYWxpZGl0eVN0
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0QyMEY2MzEwN0Y0MDY5MDBBODAzOTIgLyogSlNX
ZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOTk0MTA0MkQyRDMwMDA5
RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE4NjA3LDE2ICsxODUx
MCwxMiBAQAogCQkJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZy
YW1lUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2RkUwNzQwRTZDQ0JFRTAwQkY2MDg4IC8q
IEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk4MzkxNDAw
RjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0OTgzOTE2NDBGMUU4RUUxMDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJENzlFMEY1NUM5
NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0OTRCRDc5
QTBGNTVDOTBFMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUMwRkY0MDBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAvKiBK
U1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE4QTM0QzgxMDI2QzhDOTAwMUI2ODk2
IC8qIEpTV2ViU29ja2V0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMjA2
MDlEMUNDNjAwMDBCRTMyNSAvKiBKU1doZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
Q0FBNUM2MEU4QkQyMzYwMEE3M0VDQSAvKiBKU1dvcmtlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTFDQTVDRDMwRThDREU4MDAwRThFRjkwIC8qIEpTV29ya2VyQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxODI1NjkwMEVGMkIwMkQwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtl
ckNvbnRleHRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0Q0NjE0OTExNjFENTMyMDBDQTBE
MDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE4
NjMzLDcgKzE4NTMyLDYgQEAKIAkJCQkxQTc2MkM3ODBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0
aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNzYyQzdBMEEwNzRGMjYwMDk4OUY1
QiAvKiBKU1hQYXRoUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VGRTFFQjBEQ0E1RjY0
MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQ0U5OUVD
NDBEQ0E2MjQxMDAxODI2ODMgLyogSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1MDMxQjQ0MEE0NEVGQzcwMEY5OTJFMCAvKiBLZXlib2FyZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTEzQjNENzExNEIxNjY2MDAxQzQyOUIgLyogS2V5RXZlbnRD
b2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU5RTNDMUUxMTU4MEY1MTAwNzI5MjhFIC8qIEtl
eUV2ZW50Q29kZXNJUGhvbmUuaCBpbiBIZWFkZXJzICovLApAQCAtMjA1MTcsNyArMjA0MTUsNiBA
QAogCQkJCTkzMzA5REYzMDk5RTY0OTIwMDU2RTU4MSAvKiBKb2luVGV4dE5vZGVzQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0MThGODgwNDBGRjk1N0FFMDA4MEYwNDUgLyogSlNBYnN0
cmFjdFdvcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0YwMDEwNTA3MEM0MDAwOTlG
QUIgLyogSlNBcnJheUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUVFQ0ZBQjEwNTA5
MzgyMDAwOTlGQUIgLyogSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQ5RUVDRjFCMTA1MDcyRjMwMDA5OUZBQiAvKiBKU0FycmF5QnVmZmVyVmlldy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0OTIyNzNBMzEwODNCM0IxMDBFRTVDODQgLyogSlNBcnJheUJ1
ZmZlclZpZXdDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMxREEwOUQxQzEyMzAw
MEJFMzI1IC8qIEpTQXR0ci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIwNjE2LDcgKzIwNTEzLDYg
QEAKIAkJCQlCQzYwRDlCRjBEMkEyNjlBMDBCOTkxOEYgLyogSlNFdmVudEV4Y2VwdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5M0I3MEQ2OTA5RUIwQzdDMDA5RDg0NjggLyogSlNFdmVudExp
c3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjQ3QzUzRUFDMUMxRkJFRSAv
KiBKU0V2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUwRkVGMzcyQjc3QzUzRUFD
MUMxRkJFRSAvKiBKU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkM2MDkwMjAwRTkxQjhFQzAwMEM2OEI1IC8qIEpTRXZlbnRUYXJnZXQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzMxNEFDRUIxMDg5MjA4NjAwMEYwRTU2IC8qIEpTRXhjZXB0aW9uQmFzZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAwRjAxNDBFMEExODk1MDBGRDA0RTMgLyogSlNGaWxl
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjA2MjQsNyArMjA1MjAsNiBAQAogCQkJCUJDMDBGMDE2
MEUwQTE4OTUwMEZEMDRFMyAvKiBKU0ZpbGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJF
OTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDlFRUNGMDIxMDUwNzBDNDAwMDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTQ5RUVDRkFGMTA1MDkzODIwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJh
eUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RUVDRjc5MTA1MDhEOUMwMDA5
OUZBQiAvKiBKU0Zsb2F0MzJBcnJheUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRTgw
REE2MzBFOUM0NzAzMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRTgwRDdBQjBFOUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTIwNzQxLDEzICsyMDYzNiwxMCBAQAogCQkJCTdBMEU3NzFFMTBD
MDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTc0RUNCRDEwMTgzOURBMDBCRjkzOUUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhv
c3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFRUNGMDYxMDUwNzBDNDAwMDk5RkFC
IC8qIEpTSW50MTZBcnJheS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUVFQ0ZCNTEwNTA5Mzgy
MDAwOTlGQUIgLyogSlNJbnQxNkFycmF5Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDlFRUNGN0IxMDUwOEQ5QzAwMDk5RkFCIC8qIEpTSW50MTZBcnJheUN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OUVFQ0YwNDEwNTA3MEM0MDAwOTlGQUIgLyogSlNJbnQzMkFycmF5
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5RUVDRkIxMTA1MDkzODIwMDA5OUZBQiAvKiBKU0lu
dDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0Y3QTEwNTA4
RDlDMDAwOTlGQUIgLyogSlNJbnQzMkFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5QzdCOTk1MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU0ludDhBcnJheS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk0OUVFQ0ZBRDEwNTA5MzgyMDAwOTlGQUIgLyogSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFQ0Y3ODEwNTA4RDlDMDAwOTlGQUIgLyogSlNJ
bnQ4QXJyYXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM1RkFFRDEwRENGRDkwMTAw
RDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
QzVGQUVFNzBEQ0ZEQTY4MDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjA3NjAsNyArMjA2NTIsNiBAQAogCQkJCUJDM0MzOUI2MEMw
RDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RkZF
M0VBNTExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUUxMDc0MDBEMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFubmVsLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUUxMDc0MzI0MEU3ODM1ODMwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFu
bmVsQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBNUY5OUIwRTdFQUEyNTAw
QUY4NUVBIC8qIEpTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NzU3OTNFQzgwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMEI3RTcyMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIwODA5LDcgKzIwNzAwLDYgQEAKIAkJCQk5RkEzN0VG
QzExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5RkEzN0VFNzExNzJGQ0YwMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZUN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUQwN0E3RTBGRjkzNUNBMDA5NUVEQ0UgLyog
SlNTaGFyZWRXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE1QjdDNTgwRkY1OThFNjAw
Njc3MEY3IC8qIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDFEMTY5MDUxMDIzOEI2NjAwOUJDODI3IC8qIEpTU2hhcmVkV29ya2VyQ29udGV4dC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNENEOEQ4MjEwNkI1MjkwMDBBNDZEMjMgLyogSlNTaGFyZWRX
b3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE0Qzc2MzcwQ0U5MjI1RTAwN0VG
M0NEIC8qIEpTU1FMRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMDk4MiwxMyArMjA4NzIs
MTAgQEAKIAkJCQk1MTZCQjc5NDBDRTkxRTY4MDA1MTJGNzkgLyogSlNUcmVlV2Fsa2VyQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4NjYyOUQwMDlEQTJCNDgwMDk2MzNBNSAvKiBKU1VJ
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFRUNGMEMxMDUwNzBDNDAwMDk5RkFCIC8q
IEpTVWludDE2QXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDlFRUNGQkIxMDUwOTM4MjAw
MDk5RkFCIC8qIEpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0OUVFQ0Y3RTEwNTA4RDlDMDAwOTlGQUIgLyogSlNVaW50MTZBcnJheUN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OUVFQ0YwQTEwNTA3MEM0MDAwOTlGQUIgLyogSlNVaW50MzJBcnJh
eS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0OUVFQ0ZCOTEwNTA5MzgyMDAwOTlGQUIgLyogSlNV
aW50MzJBcnJheUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RUVDRjdEMTA1
MDhEOUMwMDA5OUZBQiAvKiBKU1VpbnQzMkFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ5RUVDRjA4MTA1MDcwQzQwMDA5OUZBQiAvKiBKU1VpbnQ4QXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDlFRUNGQjcxMDUwOTM4MjAwMDk5RkFCIC8qIEpTVWludDhBcnJheUNvbnN0
cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RUVDRjdDMTA1MDhEOUMwMDA5OUZBQiAv
KiBKU1VpbnQ4QXJyYXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTVDNzcwOTQxMDBE
M0NBODAwNUJBMjY3IC8qIEpTVmFsaWRpdHlTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0QyMEY2MjEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yMTAwNiwxNyArMjA4OTMsMTMgQEAKIAkJCQkzMTZGRTA3MTBFNkNDQkVFMDBC
RjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTEzRjBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRD
U1NNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDk4MzkxNjMwRjFFOEVFMTAwQzIzNzgy
IC8qIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzE2MTFFNUEwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkQ3OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0
UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDk0QkQ3OTkwRjU1QzkwRTAwNzQ3ODI4IC8q
IEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUMwRkYz
RjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNURBNUUwRkMxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTUxOEEzNEM3MTAyNkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tl
dENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxOEEzNEM5MTAyNkM4QzkwMDFC
Njg5NiAvKiBKU1dlYlNvY2tldEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NURGMzIw
NTA5RDFDQzYwMDAwQkUzMjUgLyogSlNXaGVlbEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxQzhCRTVEMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlFMUNBNUNENjBFOENERUU5MDBFOEVGOTAgLyogSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMTgyNTY4RjBFRjJCMDJEMDA5MzMyNDIgLyogSlNXb3JrZXJD
b250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAv
KiBKU1dvcmtlckNvbnRleHRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxODI1OEFDMEVG
M0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yMTAzNyw3ICsyMDkyMCw2IEBACiAJCQkJMUE3NjJDNzcwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNzYyQzc5MEEwNzRG
MjYwMDk4OUY1QiAvKiBKU1hQYXRoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZF
MUVBMERDQTVGNjQwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQkNFOTlFQzMwRENBNjI0MTAwMTgyNjgzIC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVj
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUZFMUU1MERDQTVGMzMwMDczOTIxOSAvKiBK
U1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNDMwQTQ0
RUZDNzAwRjk5MkUwIC8qIEtleWJvYXJkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTUx
M0IzRDgxMTRCMTY2QTAwMUM0MjlCIC8qIEtleUV2ZW50Q29jb2EubW0gaW4gU291cmNlcyAqLywK
QEAgLTIxNzc5LDYgKzIxNjYxLDEwIEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8q
IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQkMyNzVCN0QxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2ViS2l0
Q1NTTWF0cml4Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDMjc1QjgxMTFDNUQyQjQw
MEM5MjA2QyAvKiBKU0V2ZW50U291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJD
Mjc1Q0IzMTFDNUU4NUMwMEM5MjA2QyAvKiBKU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckNv
bnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRSgzRF9DQU5WQVMp
Ci0KLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKLQotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkpTQXJyYXlC
dWZmZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwot
Ci1jb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwotCi1KU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3I6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU0Fy
cmF5QnVmZmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVj
dFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVjdChleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpzZWxmKGV4ZWMs
IGdsb2JhbE9iamVjdCksIE5vbmUpOwotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVz
KCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAyKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51
bSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdENh
bnZhc0FycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU0FycmF5QnVmZmVyQ29u
c3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0KLSAgICB1bnNpZ25lZCBpbnQgc2l6ZSA9IDA7Ci0g
ICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA9PSAxKSB7Ci0gICAgICAgIHNpemUgPSAodW5z
aWduZWQgaW50KWV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7Ci0gICAgICAgIGlmIChp
c25hbihzaXplKSkKLSAgICAgICAgICAgIHNpemUgPSAwOwotICAgIH0KLSAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUoc2l6ZSwgMSk7Ci0gICAgaWYg
KCFidWZmZXIuZ2V0KCkpewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAg
fQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0
cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgYnVmZmVyLmdldCgpKSkpOwotfQotCi1KU0M6OkNvbnN0
cnVjdFR5cGUgSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQzo6
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdENhbnZhc0FycmF5QnVmZmVyOwotICAgIHJldHVybiBDb25z
dHJ1Y3RUeXBlSG9zdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
RU5BQkxFKDNEX0NBTlZBUykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5
QnVmZmVyQ29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwNCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3JfaAotI2Rl
ZmluZSBKU0FycmF5QnVmZmVyQ29uc3RydWN0b3JfaAotCi0jaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCi0jaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIK
LSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0jaW5jbHVkZSAiQXJyYXlCdWZmZXIuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgQXJyYXlCdWZmZXJWaWV3OwotCi0gICAg
Ly8gVGVtcGxhdGUgZnVuY3Rpb24gdXNlZCBieSBDYW52YXNYWFhBcnJheUNvbnN0cnVjdG9ycwot
ICAgIHRlbXBsYXRlPGNsYXNzIEMsIHR5cGVuYW1lIFQ+Ci0gICAgUGFzc1JlZlB0cjxBcnJheUJ1
ZmZlclZpZXc+IGNvbnN0cnVjdChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSlNDOjpBcmdM
aXN0JiBhcmdzKQotICAgIHsKLSAgICAgICAgLy8gVGhlcmUgYXJlIDMgY29uc3RydWN0b3JzOgot
ICAgICAgICAvLwotICAgICAgICAvLyAgMSkgKGluIGludCBzaXplKQotICAgICAgICAvLyAgMikg
KGluIEFycmF5QnVmZmVyIGJ1ZmZlciwgW09wdGlvbmFsXSBpbiBpbnQgb2Zmc2V0LCBbT3B0aW9u
YWxdIGluIHVuc2lnbmVkIGludCBsZW5ndGgpCi0gICAgICAgIC8vICAzKSAoaW4gc2VxdWVuY2U8
VD4pIC0gVGhpcyBlbmRzIHVwIGJlaW5nIGEgSlMgImFycmF5LWxpa2UiIG9iamVjdAotICAgICAg
ICAvLwotICAgICAgICBSZWZQdHI8Qz4gYXJyYXlPYmplY3Q7Ci0gICAgICAgIAotICAgICAgICAv
LyBGb3IgdGhlIDAgYXJncyBjYXNlLCBqdXN0IGNyZWF0ZSBhbiBvYmplY3Qgd2l0aG91dCBhIGJ1
ZmZlciAKLSAgICAgICAgaWYgKGFyZ3Muc2l6ZSgpIDwgMSkKLSAgICAgICAgICAgIHJldHVybiBD
OjpjcmVhdGUoMCwgMCwgMCk7Ci0gICAgICAgIAotICAgICAgICBpZiAoYXJncy5zaXplKCkgPiAx
ICYmICFhcmdzLmF0KDApLmlzT2JqZWN0KCkpCi0gICAgICAgICAgICAvLyBJbnZhbGlkIGZpcnN0
IGFyZ3VtZW50Ci0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICBpZiAoYXJncy5hdCgw
KS5pc09iamVjdCgpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9
IHRvQXJyYXlCdWZmZXIoYXJncy5hdCgwKSk7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyKSB7Ci0g
ICAgICAgICAgICAgICAgdW5zaWduZWQgb2Zmc2V0ID0gKGFyZ3Muc2l6ZSgpID4gMSkgPyBhcmdz
LmF0KDEpLnRvVUludDMyKGV4ZWMpIDogMDsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
bGVuZ3RoID0gKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAvIHNpemVvZihUKTsKLSAg
ICAgICAgICAgICAgICBpZiAoYXJncy5zaXplKCkgPiAyKQotICAgICAgICAgICAgICAgICAgICBs
ZW5ndGggPSBhcmdzLmF0KDIpLnRvVUludDMyKGV4ZWMpOwotICAgICAgICAgICAgICAgIHJldHVy
biBDOjpjcmVhdGUoYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIEpTQzo6SlNPYmplY3QqIGFycmF5ID0gYXNPYmplY3QoYXJn
cy5hdCgwKSk7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsZW5ndGggPSBhcnJheS0+Z2V0KGV4ZWMs
IEpTQzo6SWRlbnRpZmllcihleGVjLCAibGVuZ3RoIikpLnRvVUludDMyKGV4ZWMpOwotICAgICAg
ICAgICAgdm9pZCogdGVtcFZhbHVlczsKLSAgICAgICAgICAgIGlmICghdHJ5RmFzdENhbGxvYyhs
ZW5ndGgsIHNpemVvZihUKSkuZ2V0VmFsdWUodGVtcFZhbHVlcykpIHsKLSAgICAgICAgICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZUVycm9yKGV4ZWMsICJFcnJvciIpKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgT3duRmFzdE1hbGxvY1B0cjxUPiB2YWx1ZXMoc3RhdGljX2Nhc3Q8VCo+KHRlbXBWYWx1ZXMp
KTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgICAgIEpTQzo6SlNWYWx1ZSB2ID0gYXJyYXktPmdldChleGVjLCBpKTsKLSAg
ICAgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIHZhbHVlcy5nZXQoKVtpXSA9IHN0YXRpY19j
YXN0PFQ+KHYudG9OdW1iZXIoZXhlYykpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0g
ICAgICAgICAgICByZXR1cm4gQzo6Y3JlYXRlKHZhbHVlcy5nZXQoKSwgbGVuZ3RoKTsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9IGFyZ3MuYXQoMCkudG9VSW50
MzIoZXhlYyk7Ci0gICAgICAgIHJldHVybiBDOjpjcmVhdGUoc2l6ZSk7Ci0gICAgfQotCi0gICAg
Y2xhc3MgSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2aXJ0dWFsIEpT
Qzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwot
ICAgICAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7
IHJldHVybiAmc19pbmZvOyB9Ci0gICAgfTsKLQotfQotCi0jZW5kaWYgLy8gSlNBcnJheUJ1ZmZl
ckNvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVy
Q3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCShmcm9tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNB
cnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcDo2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRSgzRF9DQU5WQVMpCisK
KyNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKKworI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkpTQXJyYXlCdWZm
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitj
b25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBcnJh
eUJ1ZmZlckNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OworCitKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3I6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU0FycmF5
QnVmZmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQoreworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0
eU5hbWVzKCkucHJvdG90eXBlLCBKU0FycmF5QnVmZmVyUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGds
b2JhbE9iamVjdCksIE5vbmUpOworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcihleGVjLCAyKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7
Cit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdENhbnZh
c0FycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IqPihleGVjLT5jYWxsZWUoKSk7CisKKyAgICB1bnNpZ25lZCBpbnQgc2l6ZSA9IDA7CisgICAg
aWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA9PSAxKSB7CisgICAgICAgIHNpemUgPSAodW5zaWdu
ZWQgaW50KWV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CisgICAgICAgIGlmIChpc25h
bihzaXplKSkKKyAgICAgICAgICAgIHNpemUgPSAwOworICAgIH0KKyAgICBSZWZQdHI8QXJyYXlC
dWZmZXI+IGJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUoc2l6ZSwgMSk7CisgICAgaWYgKCFi
dWZmZXIuZ2V0KCkpeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9F
UlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgfQor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVj
dG9yLT5nbG9iYWxPYmplY3QoKSwgYnVmZmVyLmdldCgpKSkpOworfQorCitKU0M6OkNvbnN0cnVj
dFR5cGUgSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29u
c3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3sKKyAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNvbnN0cnVjdENhbnZhc0FycmF5QnVmZmVyOworICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlSG9zdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKDNEX0NBTlZBUykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlckN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVy
Q3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXJy
YXlCdWZmZXJDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyNiArMjcsMTYgQEAKIAog
I2lmIEVOQUJMRSgzRF9DQU5WQVMpCiAKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAKLSNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgot
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCi1jb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJBcnJheUJ1ZmZlckNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwotCi1K
U0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01Db25z
dHJ1Y3Rvck9iamVjdChKU0FycmF5QnVmZmVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1
dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0FycmF5QnVmZmVyUHJv
dG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwotICAgIHB1dERpcmVjdChl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAyKSwgUmVhZE9ubHl8
RG9udERlbGV0ZXxEb250RW51bSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdENhbnZhc0FycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpjb25zdHJ1
Y3RKU0FycmF5QnVmZmVyKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU0FycmF5QnVmZmVyQ29u
c3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CiAKQEAgLTY0LDEyICs1NCw2IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGJ1ZmZl
ci5nZXQoKSkpKTsKIH0KIAotSlNDOjpDb25zdHJ1Y3RUeXBlIEpTQXJyYXlCdWZmZXJDb25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEp
Ci17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RDYW52YXNB
cnJheUJ1ZmZlcjsKLSAgICByZXR1cm4gQ29uc3RydWN0VHlwZUhvc3Q7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0FycmF5QnVmZmVyVmlld0hlbHBlci5oCShyZXZpc2lvbiA2
MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNBcnJheUJ1ZmZlclZpZXdIZWxwZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsOSBAQAogI2lmbmRlZiBKU0FycmF5QnVmZmVyVmll
d0hlbHBlcl9oCiAjZGVmaW5lIEpTQXJyYXlCdWZmZXJWaWV3SGVscGVyX2gKIAorI2luY2x1ZGUg
IkFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRl
ICJKU0FycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSA8
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg+CiAjaW5jbHVkZSA8cnVudGltZS9BcmdMaXN0Lmg+CkBA
IC04MSw2ICs4Myw2MCBAQCBKU0M6OkpTVmFsdWUgc2V0V2ViR0xBcnJheUhlbHBlcihKU0M6OkV4
CiAgICAgcmV0dXJuIEpTQzo6dGhyb3dTeW50YXhFcnJvcihleGVjKTsKIH0KIAorLy8gVGVtcGxh
dGUgZnVuY3Rpb24gdXNlZCBieSBYWFhBcnJheUNvbnN0cnVjdG9ycwordGVtcGxhdGU8Y2xhc3Mg
QywgdHlwZW5hbWUgVD4KK1Bhc3NSZWZQdHI8QXJyYXlCdWZmZXJWaWV3PiBjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclZpZXcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgLy8gVGhlcmUgYXJlIDMg
Y29uc3RydWN0b3JzOgorICAgIC8vCisgICAgLy8gIDEpIChpbiBpbnQgc2l6ZSkKKyAgICAvLyAg
MikgKGluIEFycmF5QnVmZmVyIGJ1ZmZlciwgW09wdGlvbmFsXSBpbiBpbnQgb2Zmc2V0LCBbT3B0
aW9uYWxdIGluIHVuc2lnbmVkIGludCBsZW5ndGgpCisgICAgLy8gIDMpIChpbiBzZXF1ZW5jZTxU
PikgLSBUaGlzIGVuZHMgdXAgYmVpbmcgYSBKUyAiYXJyYXktbGlrZSIgb2JqZWN0CisgICAgLy8K
KyAgICBSZWZQdHI8Qz4gYXJyYXlPYmplY3Q7CisgICAgCisgICAgLy8gRm9yIHRoZSAwIGFyZ3Mg
Y2FzZSwganVzdCBjcmVhdGUgYW4gb2JqZWN0IHdpdGhvdXQgYSBidWZmZXIgCisgICAgaWYgKGV4
ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisgICAgICAgIHJldHVybiBDOjpjcmVhdGUoMCwgMCwg
MCk7CisgICAgCisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEgJiYgIWV4ZWMtPmFy
Z3VtZW50KDApLmlzT2JqZWN0KCkpIHsKKyAgICAgICAgLy8gSW52YWxpZCBmaXJzdCBhcmd1bWVu
dAorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoZXhlYy0+YXJndW1lbnQoMCku
aXNPYmplY3QoKSkgeworICAgICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGJ1ZmZlciA9IHRvQXJy
YXlCdWZmZXIoZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICBpZiAoYnVmZmVyKSB7CisgICAg
ICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSkgPyBl
eGVjLT5hcmd1bWVudCgxKS50b1VJbnQzMihleGVjKSA6IDA7CisgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgbGVuZ3RoID0gKGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpIC0gb2Zmc2V0KSAvIHNpemVvZihU
KTsKKyAgICAgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAyKQorICAgICAgICAg
ICAgICAgIGxlbmd0aCA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvVUludDMyKGV4ZWMpOworICAgICAg
ICAgICAgcmV0dXJuIEM6OmNyZWF0ZShidWZmZXIsIG9mZnNldCwgbGVuZ3RoKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgSlNDOjpKU09iamVjdCogYXJyYXkgPSBhc09iamVjdChleGVj
LT5hcmd1bWVudCgwKSk7CisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGFycmF5LT5nZXQoZXhl
YywgSlNDOjpJZGVudGlmaWVyKGV4ZWMsICJsZW5ndGgiKSkudG9VSW50MzIoZXhlYyk7CisgICAg
ICAgIHZvaWQqIHRlbXBWYWx1ZXM7CisgICAgICAgIGlmICghdHJ5RmFzdENhbGxvYyhsZW5ndGgs
IHNpemVvZihUKSkuZ2V0VmFsdWUodGVtcFZhbHVlcykpIHsKKyAgICAgICAgICAgIEpTQzo6dGhy
b3dFcnJvcihleGVjLCBjcmVhdGVFcnJvcihleGVjLCAiRXJyb3IiKSk7CisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgT3duRmFzdE1hbGxvY1B0cjxU
PiB2YWx1ZXMoc3RhdGljX2Nhc3Q8VCo+KHRlbXBWYWx1ZXMpKTsKKyAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBKU0M6OkpTVmFsdWUg
diA9IGFycmF5LT5nZXQoZXhlYywgaSk7CisgICAgICAgICAgICBpZiAoZXhlYy0+aGFkRXhjZXB0
aW9uKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB2YWx1ZXMuZ2V0
KClbaV0gPSBzdGF0aWNfY2FzdDxUPih2LnRvTnVtYmVyKGV4ZWMpKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgcmV0dXJuIEM6OmNyZWF0ZSh2YWx1ZXMuZ2V0KCksIGxlbmd0aCk7Cisg
ICAgfQorICAgIAorICAgIHVuc2lnbmVkIHNpemUgPSBleGVjLT5hcmd1bWVudCgwKS50b1VJbnQz
MihleGVjKTsKKyAgICByZXR1cm4gQzo6Y3JlYXRlKHNpemUpOwogfQogCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKICNlbmRpZiAvLyBKU0FycmF5QnVmZmVyVmlld0hlbHBlcl9oCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCShyZXZpc2lvbiA2MTEw
MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTgsNyArNTgsNyBAQAogI2luY2x1ZGUgIkpTRWxlbWVudEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmNw
cCIKLSNpbmNsdWRlICJKU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwIgorI2luY2x1ZGUgIkpT
RXZlbnRTb3VyY2VDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuY3BwIgogI2lu
Y2x1ZGUgIkpTRXhjZXB0aW9uQmFzZS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MQWxsQ29sbGVjdGlv
bkN1c3RvbS5jcHAiCkBAIC04Niw3ICs4Niw2IEBACiAjaW5jbHVkZSAiSlNMYXp5RXZlbnRMaXN0
ZW5lci5jcHAiCiAjaW5jbHVkZSAiSlNMb2NhdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmNwcCIKLSNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVsQ29uc3Ry
dWN0b3IuY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCIKQEAgLTExMSwyNSArMTEwLDE5IEBACiAjaW5jbHVkZSAiSlNTVkdQYXRoU2VnQ3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU1NjcmlwdFByb2ZpbGVOb2RlQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU1NoYXJlZFdvcmtl
ckNvbnN0cnVjdG9yLmNwcCIKICNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNTdG9yYWdlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1N0eWxlU2hlZXRDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTVGV4dEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCIKLSNp
bmNsdWRlICJKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcCIKLSNpbmNsdWRlICJKU1dl
YktpdFBvaW50Q29uc3RydWN0b3IuY3BwIgotI2luY2x1ZGUgIkpTV2ViU29ja2V0Q29uc3RydWN0
b3IuY3BwIgogI2luY2x1ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU1dv
cmtlckNvbnN0cnVjdG9yLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRCYXNlLmNwcCIK
ICNpbmNsdWRlICJKU1dvcmtlckNvbnRleHRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNXb3JrZXJDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTWE1MSHR0
cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTWFNMVFByb2Nlc3NvckNvbnN0
cnVjdG9yLmNwcCIKICNpbmNsdWRlICJKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkphdmFTY3JpcHRDYWxsRnJhbWUuY3BwIgogI2luY2x1ZGUgIk1lbW9yeUluZm8uY3BwIgpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlzaW9u
IDYxMTAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDE4ICs0MywxOCBAQAogI2luY2x1ZGUgIkpTRE9NV2luZG93U2hl
bGwuaCIKICNpbmNsdWRlICJKU0V2ZW50LmgiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgi
Ci0jaW5jbHVkZSAiSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNFdmVu
dFNvdXJjZS5oIgogI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJKU0hp
c3RvcnkuaCIKICNpbmNsdWRlICJKU0ltYWdlQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0xv
Y2F0aW9uLmgiCi0jaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmgiCisjaW5j
bHVkZSAiSlNNZXNzYWdlQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnQuaCIKICNp
bmNsdWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNPcHRpb25Db25zdHJ1
Y3Rvci5oIgogCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQotI2luY2x1ZGUgIkpTU2hhcmVk
V29ya2VyQ29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJKU1NoYXJlZFdvcmtlci5oIgogI2VuZGlm
CiAKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKQpAQCAtNjcsMTQgKzY3LDE0IEBACiAjaW5jbHVkZSAi
SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNGbG9hdDMyQXJyYXlDb25z
dHJ1Y3Rvci5oIgogI2VuZGlmCi0jaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rv
ci5oIgotI2luY2x1ZGUgIkpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpT
V2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiSlNXZWJLaXRQb2ludC5oIgogI2lmIEVOQUJM
RShXRUJfU09DS0VUUykKLSNpbmNsdWRlICJKU1dlYlNvY2tldENvbnN0cnVjdG9yLmgiCisjaW5j
bHVkZSAiSlNXZWJTb2NrZXQuaCIKICNlbmRpZgotI2luY2x1ZGUgIkpTV29ya2VyQ29uc3RydWN0
b3IuaCIKKyNpbmNsdWRlICJKU1dvcmtlci5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3Qu
aCIKLSNpbmNsdWRlICJKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpT
WFNMVFByb2Nlc3Nvci5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0V2ZW50U291cmNlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNjEwOTkp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsOTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBF
cmljc3NvbiBBQgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgot
ICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpZiBFTkFCTEUoRVZFTlRTT1VSQ0UpCi0KLSNpbmNsdWRlICJKU0V2ZW50U291cmNlQ29u
c3RydWN0b3IuaCIKLQotI2luY2x1ZGUgIkV2ZW50U291cmNlLmgiCi0jaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgotI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2UuaCIKLSNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi11c2luZyBu
YW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUFTU0VSVF9DTEFTU19GSVRT
X0lOX0NFTEwoSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yKTsKLQotY29uc3QgQ2xhc3NJbmZvIEpT
RXZlbnRTb3VyY2VDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRXZlbnRTb3VyY2VDb250cnVjdG9y
IiwgMCwgMCwgMCB9OwotCi1KU0V2ZW50U291cmNlQ29uc3RydWN0b3I6OkpTRXZlbnRTb3VyY2VD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU0V2ZW50U291cmNlQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFs
T2JqZWN0KQotewotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
LCBKU0V2ZW50U291cmNlUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUp
OwotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihl
eGVjLCAxKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7Ci19Ci0KLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEV2ZW50U291cmNlKEV4ZWNTdGF0ZSog
ZXhlYykKLXsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3Vn
aCBhcmd1bWVudHMiKSk7Ci0KLSAgICBVU3RyaW5nIHVybCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRv
U3RyaW5nKGV4ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotCi0gICAgSlNFdmVudFNvdXJjZUNvbnN0
cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gIHN0YXRpY19jYXN0PEpTRXZlbnRTb3VyY2VDb25zdHJ1
Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIGlmICgh
Y29udGV4dCkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVu
Y2VFcnJvcihleGVjLCAiRXZlbnRTb3VyY2UgY29uc3RydWN0b3IgYXNzb2NpYXRlZCBkb2N1bWVu
dCBpcyB1bmF2YWlsYWJsZSIpKTsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJl
ZlB0cjxFdmVudFNvdXJjZT4gZXZlbnRTb3VyY2UgPSBFdmVudFNvdXJjZTo6Y3JlYXRlKHVzdHJp
bmdUb1N0cmluZyh1cmwpLCBjb250ZXh0LCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0gICAgICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0
KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGV2ZW50U291cmNlLnJl
bGVhc2UoKSkpKTsKLX0KLQotQ29uc3RydWN0VHlwZSBKU0V2ZW50U291cmNlQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEV2ZW50U291cmNlOwotICAg
IHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKEVWRU5UU09VUkNFKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0V2ZW50U291cmNlQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA2MTA5OSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBFcmljc3NvbiBB
QgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVp
dGhlciB0aGUgbmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEpTRXZlbnRTb3VyY2VDb25zdHJ1
Y3Rvcl9oCi0jZGVmaW5lIEpTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvcl9oCi0KLSNpZiBFTkFCTEUo
RVZFTlRTT1VSQ0UpCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi0gICAgY2xhc3MgSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yIDogcHVibGljIERP
TUNvbnN0cnVjdG9yT2JqZWN0IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEpTRXZlbnRTb3VyY2VD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICB2aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29u
c3RydWN0RGF0YSYpOwotICAgICAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFz
c0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9Ci0gICAgfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEVWRU5UU09VUkNFKQotCi0jZW5kaWYgLy8g
SlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNF
dmVudFNvdXJjZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V2ZW50U291cmNlQ3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCShmcm9tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmNwcDo2MTA5OSkKKysrIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBFcmljc3NvbiBBQgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBFcmljc3NvbiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAg
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoRVZF
TlRTT1VSQ0UpCisKKyNpbmNsdWRlICJKU0V2ZW50U291cmNlQ29uc3RydWN0b3IuaCIKKworI2lu
Y2x1ZGUgIkV2ZW50U291cmNlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIkpTRXZlbnRTb3VyY2UuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0FTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNFdmVudFNv
dXJjZUNvbnN0cnVjdG9yKTsKKworY29uc3QgQ2xhc3NJbmZvIEpTRXZlbnRTb3VyY2VDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiRXZlbnRTb3VyY2VDb250cnVjdG9yIiwgMCwgMCwgMCB9OworCitK
U0V2ZW50U291cmNlQ29uc3RydWN0b3I6OkpTRXZlbnRTb3VyY2VDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisgICAgOiBET01Db25z
dHJ1Y3Rvck9iamVjdChKU0V2ZW50U291cmNlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShn
bG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQoreworICAgIHB1
dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0V2ZW50U291cmNlUHJv
dG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOworICAgIHB1dERpcmVjdChl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAxKSwgUmVhZE9ubHl8
RG9udERlbGV0ZXxEb250RW51bSk7Cit9CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEV2ZW50U291cmNlKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihl
eGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7CisK
KyAgICBVU3RyaW5nIHVybCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpOworICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKCkpOworCisgICAgSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVj
dG9yID0gIHN0YXRpY19jYXN0PEpTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxl
ZSgpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0ganNDb25zdHJ1Y3Rv
ci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiRXZl
bnRTb3VyY2UgY29uc3RydWN0b3IgYXNzb2NpYXRlZCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZSIp
KTsKKworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIFJlZlB0cjxFdmVudFNvdXJjZT4g
ZXZlbnRTb3VyY2UgPSBFdmVudFNvdXJjZTo6Y3JlYXRlKHVzdHJpbmdUb1N0cmluZyh1cmwpLCBj
b250ZXh0LCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVj
LCBlYyk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25z
dHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGV2ZW50U291cmNlLnJlbGVhc2UoKSkpKTsKK30KKwor
Q29uc3RydWN0VHlwZSBKU0V2ZW50U291cmNlQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEo
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3sKKyAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdEV2ZW50U291cmNlOworICAgIHJldHVybiBDb25zdHJ1Y3RU
eXBlSG9zdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEVWRU5UU09VUkNFKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50U291cmNlQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VD
dXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVu
dFNvdXJjZUN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEVyaWNzc29uIEFCCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA5IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsMTEgKzMzLDEwIEBACiAKICNpZiBF
TkFCTEUoRVZFTlRTT1VSQ0UpCiAKLSNpbmNsdWRlICJKU0V2ZW50U291cmNlQ29uc3RydWN0b3Iu
aCIKKyNpbmNsdWRlICJKU0V2ZW50U291cmNlLmgiCiAKICNpbmNsdWRlICJFdmVudFNvdXJjZS5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJKU0V2ZW50U291cmNlLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
RXJyb3IuaD4KIApAQCAtNDUsMTggKzQ0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1BU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTRXZlbnRTb3Vy
Y2VDb25zdHJ1Y3Rvcik7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU0V2ZW50U291cmNlQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkV2ZW50U291cmNlQ29udHJ1Y3RvciIsIDAsIDAsIDAgfTsKLQotSlNF
dmVudFNvdXJjZUNvbnN0cnVjdG9yOjpKU0V2ZW50U291cmNlQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3Ry
dWN0b3JPYmplY3QoSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXRE
aXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNFdmVudFNvdXJjZVByb3Rv
dHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsKLSAgICBwdXREaXJlY3QoZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgMSksIFJlYWRPbmx5fERv
bnREZWxldGV8RG9udEVudW0pOwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RFdmVudFNvdXJjZShFeGVjU3RhdGUqIGV4ZWMpCitFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTRXZlbnRTb3VyY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNFdmVu
dFNvdXJjZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwpAQCAtODAsMTIgKzY4LDYgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29ucwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3Qo
KSwgZXZlbnRTb3VyY2UucmVsZWFzZSgpKSkpOwogfQogCi1Db25zdHJ1Y3RUeXBlIEpTRXZlbnRT
b3VyY2VDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0
RXZlbnRTb3VyY2U7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRVZFTlRTT1VSQ0UpCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRmxvYXQzMkFycmF5Q29uc3RydWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAJ
KHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Zsb2F0MzJBcnJheUNv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLQotI2luY2x1ZGUg
IkpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3IuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgotI2lu
Y2x1ZGUgIkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTRmxvYXQzMkFy
cmF5LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU0Zsb2F0MzJBcnJh
eUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGbG9hdDMyQXJyYXlDb25zdHJ1Y3RvciIsICZKU0Fy
cmF5QnVmZmVyVmlldzo6c19pbmZvLCAwLCAwIH07Ci0KLUpTRmxvYXQzMkFycmF5Q29uc3RydWN0
b3I6OkpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNGbG9h
dDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0
UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTRmxvYXQzMkFycmF5UHJvdG90eXBlOjpzZWxmKGV4ZWMs
IGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7Ci19Ci0KLUpTT2JqZWN0KiBK
U0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBuZXcgKGV4ZWMp
IEpTRmxvYXQzMkFycmF5UHJvdG90eXBlKGdsb2JhbE9iamVjdCwgSlNGbG9hdDMyQXJyYXlQcm90
b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7
Ci19Ci0KLWJvb2wgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU0Zsb2F0MzJB
cnJheUNvbnN0cnVjdG9yLCBET01PYmplY3Q+KGV4ZWMsIEpTRmxvYXQzMkFycmF5UHJvdG90eXBl
OjpzX2luZm8uc3RhdGljUHJvcEhhc2hUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsK
LX0KLQotYm9vbCBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKLXsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFs
dWVEZXNjcmlwdG9yPEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3IsIERPTU9iamVjdD4oZXhlYywg
SlNGbG9hdDMyQXJyYXlQcm90b3R5cGU6OnNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlz
LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RDYW52YXNGbG9hdEFycmF5KEV4ZWNTdGF0ZSogZXhlYykK
LXsKLSAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rv
cioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3Iq
PihleGVjLT5jYWxsZWUoKSk7Ci0gICAgUmVmUHRyPEZsb2F0MzJBcnJheT4gYXJyYXkgPSBzdGF0
aWNfY2FzdDxGbG9hdDMyQXJyYXkqPihjb25zdHJ1Y3Q8RmxvYXQzMkFycmF5LCBmbG9hdD4oZXhl
YywgYXJncykuZ2V0KCkpOwotICAgIGlmICghYXJyYXkuZ2V0KCkpIHsKLSAgICAgICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIH0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFz
T2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGFycmF5Lmdl
dCgpKSkpOwotfQotCi1KU0M6OkNvbnN0cnVjdFR5cGUgSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rv
cjo6Z2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17
Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RDYW52YXNGbG9h
dEFycmF5OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA2
MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDb25zdHJ1Y3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTRmxv
YXQzMkFycmF5Q29uc3RydWN0b3JfaAotI2RlZmluZSBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9y
X2gKLQotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgSlNGbG9hdDMyQXJyYXlDb25zdHJ1
Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7Ci0gICAgICAgIHR5cGVkZWYgRE9N
Q29uc3RydWN0b3JPYmplY3QgQmFzZTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIEpTRmxvYXQzMkFy
cmF5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAg
ICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
QW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
dmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVj
dERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZv
KCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKLSAgICB9OwotCi19Ci0KLSNlbmRp
ZiAvLyBKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNGbG9hdDMyQXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw2ICs1MSwxNyBAQCBKU0M6OkpTVmFsdWUgSlNGbG9hdDMyQXJyYXk6OnNldChKU0M6OkV4
CiAgICAgcmV0dXJuIHNldFdlYkdMQXJyYXlIZWxwZXIoZXhlYywgaW1wbCgpLCB0b0Zsb2F0MzJB
cnJheSk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNGbG9hdDMyQXJyYXlD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNGbG9hdDMyQXJyYXkoRXhlY1N0YXRlKiBleGVjKQorewor
ICAgIEpTRmxvYXQzMkFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2Fz
dDxKU0Zsb2F0MzJBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIFJlZlB0
cjxGbG9hdDMyQXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8RmxvYXQzMkFycmF5Kj4oY29uc3Ry
dWN0QXJyYXlCdWZmZXJWaWV3PEZsb2F0MzJBcnJheSwgZmxvYXQ+KGV4ZWMpLmdldCgpKTsKKyAg
ICBpZiAoIWFycmF5LmdldCgpKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRF
WF9TSVpFX0VSUik7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsK
KyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpz
Q29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBhcnJheS5nZXQoKSkpKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDhBcnJheUNvbnN0cnVjdG9yLmNwcAkocmV2aXNp
b24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50OEFycmF5Q29uc3RydWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQotCi0jaW5jbHVkZSAiSlNJbnQ4QXJy
YXlDb25zdHJ1Y3Rvci5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJJbnQ4
QXJyYXkuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCi0jaW5jbHVkZSAiSlNBcnJheUJ1
ZmZlckNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSlNJbnQ4QXJyYXkuaCIKLSNpbmNsdWRlIDxy
dW50aW1lL0Vycm9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNl
IEpTQzsKLQotY29uc3QgQ2xhc3NJbmZvIEpTSW50OEFycmF5Q29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkludDhBcnJheUNvbnN0cnVjdG9yIiwgJkpTQXJyYXlCdWZmZXJWaWV3OjpzX2luZm8sIDAs
IDAgfTsKLQotSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcjo6SlNJbnQ4QXJyYXlDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBE
T01Db25zdHJ1Y3Rvck9iamVjdChKU0ludDhBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKLXsKLSAg
ICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNJbnQ4QXJyYXlQ
cm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
KTsKLX0KLQotSlNPYmplY3QqIEpTSW50OEFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVByb3RvdHlw
ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0gICAg
cmV0dXJuIG5ldyAoZXhlYykgSlNJbnQ4QXJyYXlQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU0lu
dDhBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJv
dG90eXBlKCkpKTsKLX0KLQotYm9vbCBKU0ludDhBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
SW50OEFycmF5Q29uc3RydWN0b3IsIERPTU9iamVjdD4oZXhlYywgSlNJbnQ4QXJyYXlQcm90b3R5
cGU6OnNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwotfQotCi1ib29sIEpTSW50OEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQotewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1
ZURlc2NyaXB0b3I8SlNJbnQ4QXJyYXlDb25zdHJ1Y3RvciwgRE9NT2JqZWN0PihleGVjLCBKU0lu
dDhBcnJheVByb3RvdHlwZTo6c19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXMsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvcik7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdENhbnZhc0J5dGVBcnJheShFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAg
QXJnTGlzdCBhcmdzKGV4ZWMpOwotICAgIEpTSW50OEFycmF5Q29uc3RydWN0b3IqIGpzQ29uc3Ry
dWN0b3IgPSBzdGF0aWNfY2FzdDxKU0ludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVl
KCkpOwotICAgIFJlZlB0cjxJbnQ4QXJyYXk+IGFycmF5ID0gc3RhdGljX2Nhc3Q8SW50OEFycmF5
Kj4oY29uc3RydWN0PEludDhBcnJheSwgc2lnbmVkIGNoYXI+KGV4ZWMsIGFyZ3MpLmdldCgpKTsK
LSAgICBpZiAoIWFycmF5LmdldCgpKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJ
TkRFWF9TSVpFX0VSUik7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgp
KTsKLSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMs
IGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBhcnJheS5nZXQoKSkpKTsKLX0KLQotSlND
OjpDb25zdHJ1Y3RUeXBlIEpTSW50OEFycmF5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEo
SlNDOjpDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEu
bmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0Q2FudmFzQnl0ZUFycmF5OwotICAgIHJldHVybiBD
b25zdHJ1Y3RUeXBlSG9zdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKDNEX0NBTlZBUykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJy
YXlDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4
QXJyYXlDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTSW50OEFycmF5Q29uc3RydWN0b3JfaAotI2RlZmluZSBK
U0ludDhBcnJheUNvbnN0cnVjdG9yX2gKLQotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2lu
Y2x1ZGUgIkpTRG9jdW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3Mg
SlNJbnQ4QXJyYXlDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7Ci0g
ICAgICAgIHR5cGVkZWYgRE9NQ29uc3RydWN0b3JPYmplY3QgQmFzZTsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIEpTSW50OEFycmF5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCopOwotICAgICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
LSAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLQotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAgICAgfQotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNz
SW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKLSAgICB9
OwotCi19Ci0KLSNlbmRpZiAvLyBKU0ludDhBcnJheUNvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQ4QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiSlNJbnQ4QXJyYXkuaCIKIAogI2luY2x1ZGUg
IkludDhBcnJheS5oIgotCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogCiB1c2luZyBuYW1l
c3BhY2UgSlNDOwpAQCAtNTMsNiArNTIsMTcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50OEFycmF5Ojpz
ZXQoSlNDOjpFeGVjUwogICAgIHJldHVybiBzZXRXZWJHTEFycmF5SGVscGVyKGV4ZWMsIGltcGwo
KSwgdG9JbnQ4QXJyYXkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTSW50
OEFycmF5Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTSW50OEFycmF5KEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBKU0ludDhBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nh
c3Q8SlNJbnQ4QXJyYXlDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBSZWZQdHI8
SW50OEFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDhBcnJheSo+KGNvbnN0cnVjdEFycmF5
QnVmZmVyVmlldzxJbnQ4QXJyYXksIHNpZ25lZCBjaGFyPihleGVjKS5nZXQoKSk7CisgICAgaWYg
KCFhcnJheS5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAg
fQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0
cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgYXJyYXkuZ2V0KCkpKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
NjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUNvbnN0cnVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLQotI2luY2x1ZGUgIkpTSW50MTZBcnJh
eUNvbnN0cnVjdG9yLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkludDE2
QXJyYXkuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyVmlldy5oIgotI2luY2x1ZGUgIkpTQXJy
YXlCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaCIKLSNpbmNs
dWRlICJKU0ludDE2QXJyYXkuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotY29uc3QgQ2xhc3NJbmZv
IEpTSW50MTZBcnJheUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJJbnQxNkFycmF5Q29uc3RydWN0
b3IiLCAmSlNBcnJheUJ1ZmZlclZpZXc6OnNfaW5mbywgMCwgMCB9OwotCi1KU0ludDE2QXJyYXlD
b25zdHJ1Y3Rvcjo6SlNJbnQxNkFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3Qo
SlNJbnQxNkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVjdChleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0ludDE2QXJyYXlQcm90b3R5cGU6OnNlbGYoZXhl
YywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKLX0KLQotSlNPYmplY3Qq
IEpTSW50MTZBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBuZXcgKGV4ZWMp
IEpTSW50MTZBcnJheVByb3RvdHlwZShnbG9iYWxPYmplY3QsIEpTSW50MTZBcnJheVByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpKTsKLX0K
LQotYm9vbCBKU0ludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU0ludDE2QXJyYXlDb25z
dHJ1Y3RvciwgRE9NT2JqZWN0PihleGVjLCBKU0ludDE2QXJyYXlQcm90b3R5cGU6OnNfaW5mby5z
dGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1ib29s
IEpTSW50MTZBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvcikKLXsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9y
PEpTSW50MTZBcnJheUNvbnN0cnVjdG9yLCBET01PYmplY3Q+KGV4ZWMsIEpTSW50MTZBcnJheVBy
b3RvdHlwZTo6c19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwg
ZGVzY3JpcHRvcik7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdENhbnZhc1Nob3J0QXJyYXkoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEFyZ0xpc3Qg
YXJncyhleGVjKTsKLSAgICBKU0ludDE2QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9
IHN0YXRpY19jYXN0PEpTSW50MTZBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwot
ICAgIFJlZlB0cjxJbnQxNkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDE2QXJyYXkqPihj
b25zdHJ1Y3Q8SW50MTZBcnJheSwgc2hvcnQ+KGV4ZWMsIGFyZ3MpLmdldCgpKTsKLSAgICBpZiAo
IWFycmF5LmdldCgpKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpF
X0VSUik7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICB9
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3Ry
dWN0b3ItPmdsb2JhbE9iamVjdCgpLCBhcnJheS5nZXQoKSkpKTsKLX0KLQotSlNDOjpDb25zdHJ1
Y3RUeXBlIEpTSW50MTZBcnJheUNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29u
c3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25zdHJ1Y3REYXRhLm5hdGl2ZS5m
dW5jdGlvbiA9IGNvbnN0cnVjdENhbnZhc1Nob3J0QXJyYXk7Ci0gICAgcmV0dXJuIENvbnN0cnVj
dFR5cGVIb3N0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoM0RfQ0FOVkFTKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDb25z
dHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5
Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
SW50MTZBcnJheUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgSlNJbnQxNkFycmF5Q29uc3RydWN0b3JfaAotI2RlZmluZSBKU0lu
dDE2QXJyYXlDb25zdHJ1Y3Rvcl9oCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNs
dWRlICJKU0RvY3VtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNzIEpT
SW50MTZBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKLSAg
ICAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwotICAgIHB1YmxpYzoKLSAg
ICAgICAgSlNJbnQxNkFycmF5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2Jh
bE9iamVjdCopOwotICAgICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsK
LSAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLQotICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAgICAgfQotCi0gICAgcHJp
dmF0ZToKLSAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0
YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNz
SW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKLSAgICB9
OwotCi19Ci0KLSNlbmRpZiAvLyBKU0ludDE2QXJyYXlDb25zdHJ1Y3Rvcl9oCkluZGV4OiBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW50MTZBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0ludDE2QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQxNkFycmF5Q3VzdG9tLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTEsNiArNTEsMTcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50MTZBcnJheTo6c2V0KEpT
Qzo6RXhlYwogICAgIHJldHVybiBzZXRXZWJHTEFycmF5SGVscGVyKGV4ZWMsIGltcGwoKSwgdG9J
bnQxNkFycmF5KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0ludDE2QXJy
YXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQxNkFycmF5KEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICBKU0ludDE2QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0
PEpTSW50MTZBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIFJlZlB0cjxJ
bnQxNkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDE2QXJyYXkqPihjb25zdHJ1Y3RBcnJh
eUJ1ZmZlclZpZXc8SW50MTZBcnJheSwgc2hvcnQ+KGV4ZWMpLmdldCgpKTsKKyAgICBpZiAoIWFy
cmF5LmdldCgpKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBJTkRFWF9TSVpFX0VS
Uik7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0
b3ItPmdsb2JhbE9iamVjdCgpLCBhcnJheS5nZXQoKSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKDNEX0NBTlZBUykKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbnQzMkFycmF5Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA2MTA5
OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpZiBFTkFCTEUoM0RfQ0FOVkFTKQotCi0jaW5jbHVkZSAiSlNJbnQzMkFycmF5Q29u
c3RydWN0b3IuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSW50MzJBcnJh
eS5oIgotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVy
Q29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJKU0ludDMyQXJyYXkuaCIKLSNpbmNsdWRlIDxydW50
aW1lL0Vycm9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEpT
QzsKLQotY29uc3QgQ2xhc3NJbmZvIEpTSW50MzJBcnJheUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
ICJJbnQzMkFycmF5Q29uc3RydWN0b3IiLCAmSlNBcnJheUJ1ZmZlclZpZXc6OnNfaW5mbywgMCwg
MCB9OwotCi1KU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6SlNJbnQzMkFycmF5Q29uc3RydWN0b3Io
RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDog
RE9NQ29uc3RydWN0b3JPYmplY3QoSlNJbnQzMkFycmF5Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewot
ICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0ludDMyQXJy
YXlQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5KTsKLX0KLQotSlNPYmplY3QqIEpTSW50MzJBcnJheUNvbnN0cnVjdG9yOjpjcmVhdGVQcm90
b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewot
ICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTSW50MzJBcnJheVByb3RvdHlwZShnbG9iYWxPYmplY3Qs
IEpTSW50MzJBcnJheVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2Jq
ZWN0UHJvdG90eXBlKCkpKTsKLX0KLQotYm9vbCBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0
T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDxKU0ludDMyQXJyYXlDb25zdHJ1Y3RvciwgRE9NT2JqZWN0PihleGVjLCBKU0ludDMyQXJy
YXlQcm90b3R5cGU6OnNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwotfQotCi1ib29sIEpTSW50MzJBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKLXsKLSAgICByZXR1cm4gZ2V0
U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTSW50MzJBcnJheUNvbnN0cnVjdG9yLCBET01PYmplY3Q+
KGV4ZWMsIEpTSW50MzJBcnJheVByb3RvdHlwZTo6c19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUs
IHRoaXMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdENhbnZhc0ludEFycmF5KEV4ZWNTdGF0ZSogZXhl
YykKLXsKLSAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7Ci0gICAgSlNJbnQzMkFycmF5Q29uc3RydWN0
b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcio+
KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBSZWZQdHI8SW50MzJBcnJheT4gYXJyYXkgPSBzdGF0aWNf
Y2FzdDxJbnQzMkFycmF5Kj4oY29uc3RydWN0PEludDMyQXJyYXksIGludD4oZXhlYywgYXJncyku
Z2V0KCkpOwotICAgIGlmICghYXJyYXkuZ2V0KCkpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIElOREVYX1NJWkVfRVJSKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKCkpOwotICAgIH0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRv
SlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGFycmF5LmdldCgpKSkpOwot
fQotCi1KU0M6OkNvbnN0cnVjdFR5cGUgSlNJbnQzMkFycmF5Q29uc3RydWN0b3I6OmdldENvbnN0
cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0Q2FudmFzSW50QXJyYXk7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ludDMyQXJyYXlDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbnQzMkFycmF5Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNJbnQzMkFycmF5Q29uc3RydWN0b3Jf
aAotI2RlZmluZSBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcl9oCi0KLSNpbmNsdWRlICJKU0RPTUJp
bmRpbmcuaCIKLSNpbmNsdWRlICJKU0RvY3VtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotICAgIGNsYXNzIEpTSW50MzJBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVj
dG9yT2JqZWN0IHsKLSAgICAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwot
ICAgIHB1YmxpYzoKLSAgICAgICAgSlNJbnQzMkFycmF5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bzsKLQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAg
ICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBj
b25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsg
fQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKLSAgICB9OwotCi19Ci0KLSNlbmRpZiAvLyBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rv
cl9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW50MzJBcnJheUN1c3RvbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ludDMyQXJyYXlDdXN0b20uY3BwCShy
ZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbnQzMkFycmF5Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTcgQEAgSlNDOjpKU1ZhbHVlIEpTSW50
MzJBcnJheTo6c2V0KEpTQzo6RXhlYwogICAgIHJldHVybiBzZXRXZWJHTEFycmF5SGVscGVyKGV4
ZWMsIGltcGwoKSwgdG9JbnQzMkFycmF5KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU0ludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNJbnQzMkFycmF5KEV4ZWNT
dGF0ZSogZXhlYykKK3sKKyAgICBKU0ludDMyQXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3Rv
ciA9IHN0YXRpY19jYXN0PEpTSW50MzJBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkp
OworICAgIFJlZlB0cjxJbnQzMkFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PEludDMyQXJyYXkq
Pihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8SW50MzJBcnJheSwgaW50PihleGVjKS5nZXQoKSk7
CisgICAgaWYgKCFhcnJheS5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywg
SU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUo
KSk7CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVj
LCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgYXJyYXkuZ2V0KCkpKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0
b3IuY3BwCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaCIKLQotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotI2luY2x1ZGUgIkpT
TWVzc2FnZUNoYW5uZWwuaCIKLSNpbmNsdWRlICJNZXNzYWdlQ2hhbm5lbC5oIgotI2luY2x1ZGUg
PHJ1bnRpbWUvRXJyb3IuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jb25zdCBDbGFzc0luZm8gSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwotCi1KU01l
c3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OkpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01D
b25zdHJ1Y3Rvck9iamVjdChKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewot
ICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU01lc3NhZ2VD
aGFubmVsUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwotfQotCi1K
U01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6On5KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3Io
KQotewotfQotCi1Db25zdHJ1Y3RUeXBlIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0OwotICAgIHJldHVybiBDb25zdHJ1
Y3RUeXBlSG9zdDsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3I6OmNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBqc0NvbnN0cnVjdG9yLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9y
KGV4ZWMsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGV4ZWMsICJNZXNzYWdlQ2hhbm5lbCBjb25zdHJ1
Y3RvciBhc3NvY2lhdGVkIGRvY3VtZW50IGlzIHVuYXZhaWxhYmxlIikpOwotCi0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2Jh
bE9iamVjdCgpLCBNZXNzYWdlQ2hhbm5lbDo6Y3JlYXRlKGNvbnRleHQpKSkpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yX2gKLSNkZWZpbmUgSlNN
ZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yX2gKLQotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBKU01lc3NhZ2VDaGFubmVsQ29uc3Ry
dWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqKTsKLSAgICAgICAgdmlydHVhbCB+SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9y
KCk7Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNv
bnN0IHsgcmV0dXJuICZzX2luZm87IH0KLSAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJ
bmZvIHNfaW5mbzsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0hhc0luc3RhbmNl
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgICAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdChKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICB2
aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6Q29uc3RydWN0
RGF0YSYpOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEpT
TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcl9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkpTTWVzc2FnZUNoYW5uZWwuaCIKIAogI2luY2x1
ZGUgIk1lc3NhZ2VDaGFubmVsLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCkBAIC00Myw0ICs0NCwxNCBAQCB2b2lkIEpTTWVzc2FnZUNoYW5u
ZWw6Om1hcmtDaGlsZHJlbihNYXJrCiAgICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtT
dGFjaywgKkhlYXA6OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgcG9ydCk7CiB9CiAKK0VuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpjb25z
dHJ1Y3RKU01lc3NhZ2VDaGFubmVsKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKKyAgICBpZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywg
Y3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhlYywgIk1lc3NhZ2VDaGFubmVsIGNvbnN0cnVjdG9yIGFz
c29jaWF0ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKSk7CisKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0
KCksIE1lc3NhZ2VDaGFubmVsOjpjcmVhdGUoY29udGV4dCkpKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdv
cmtlckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMp
Ci0KLSNpbmNsdWRlICJKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmgiCi0KLSNpbmNsdWRlICJK
U0RPTVdpbmRvd0N1c3RvbS5oIgotI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyLmgiCi0jaW5jbHVk
ZSAiU2hhcmVkV29ya2VyLmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi11c2luZyBu
YW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IENsYXNzSW5mbyBK
U1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJTaGFyZWRXb3JrZXJDb25zdHJ1
Y3RvciIsIDAsIDAsIDAgfTsKLQotSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvcjo6SlNTaGFyZWRX
b3JrZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1NoYXJlZFdvcmtlckNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSks
IGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgSlNTaGFyZWRXb3JrZXJQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0
KSwgTm9uZSk7Ci0gICAgLy8gSG9zdCBmdW5jdGlvbnMgaGF2ZSBhIGxlbmd0aCBwcm9wZXJ0eSBk
ZXNjcmliaW5nIHRoZSBudW1iZXIgb2YgZXhwZWN0ZWQgYXJndW1lbnRzLgotICAgIHB1dERpcmVj
dChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAyKSwgUmVhZE9u
bHl8RG9udERlbGV0ZXxEb250RW51bSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFNoYXJlZFdvcmtlcihFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAg
SlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpT
U2hhcmVkV29ya2VyQ29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0KLSAgICBpZiAoZXhl
Yy0+YXJndW1lbnRDb3VudCgpIDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVj
LCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7Ci0KLSAg
ICBVU3RyaW5nIHNjcmlwdFVSTCA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpOwot
ICAgIFVTdHJpbmcgbmFtZTsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID4gMSkKLSAg
ICAgICAgbmFtZSA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpOwotCi0gICAgaWYg
KGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VmFsdWUoKSk7Ci0KLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byB1c2UgYm90aCB0aGUgZHluYW1p
YyBzY29wZSBhbmQgdGhlIGxleGljYWwgc2NvcGUgKGR5bmFtaWMgc2NvcGUgZm9yIHJlc29sdmlu
ZyB0aGUgd29ya2VyIFVSTCkKLSAgICBET01XaW5kb3cqIHdpbmRvdyA9IGFzSlNET01XaW5kb3co
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpOwotICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwotICAgIFJlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmtlciA9IFNoYXJlZFdvcmtlcjo6
Y3JlYXRlKHVzdHJpbmdUb1N0cmluZyhzY3JpcHRVUkwpLCB1c3RyaW5nVG9TdHJpbmcobmFtZSks
IHdpbmRvdy0+ZG9jdW1lbnQoKSwgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25z
dHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIHdvcmtlci5yZWxlYXNlKCkpKSk7Ci19Ci0KLUNvbnN0
cnVjdFR5cGUgSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25z
dHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1
bmN0aW9uID0gY29uc3RydWN0U2hhcmVkV29ya2VyOwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBl
SG9zdDsKLX0KLQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
U0hBUkVEX1dPUktFUlMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29ya2Vy
Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVk
V29ya2VyQ29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1NiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2lmbmRlZiBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yX2gKLSNkZWZpbmUgSlNTaGFy
ZWRXb3JrZXJDb25zdHJ1Y3Rvcl9oCi0KLSNpZiBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCi0KLSNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xh
c3MgSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVj
dCB7Ci0gICAgcHVibGljOgotICAgICAgICBKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLQotICAgICAgICBzdGF0aWMgY29uc3Qg
SlNDOjpDbGFzc0luZm8gc19pbmZvOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBK
U0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsK
LQotICAgICAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25z
dCB7IHJldHVybiAmc19pbmZvOyB9Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQotCi0jZW5kaWYgLy8gSlNTaGFyZWRX
b3JrZXJDb25zdHJ1Y3Rvcl9oCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVkV29y
a2VyQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU2hhcmVk
V29ya2VyQ3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTU2hhcmVkV29ya2VyQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsOSBA
QAogI2luY2x1ZGUgIkpTU2hhcmVkV29ya2VyLmgiCiAKICNpbmNsdWRlICJKU0RPTUdsb2JhbE9i
amVjdC5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiU2hhcmVk
V29ya2VyLmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCkBAIC00OSw2ICs1MSwzMCBAQCB2b2lkIEpTU2hhcmVkV29ya2VyOjptYXJrQ2hpbGRy
ZW4oTWFya1N0CiAgICAgICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFjaywgKkhlYXA6
OmhlYXAodGhpcyktPmdsb2JhbERhdGEoKSwgcG9ydCk7CiB9CiAKK0VuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNTaGFyZWRX
b3JrZXIoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3Iq
IGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yKj4o
ZXhlYy0+Y2FsbGVlKCkpOworCisgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDEpCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywg
Ik5vdCBlbm91Z2ggYXJndW1lbnRzIikpOworCisgICAgVVN0cmluZyBzY3JpcHRVUkwgPSBleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKTsKKyAgICBVU3RyaW5nIG5hbWU7CisgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+IDEpCisgICAgICAgIG5hbWUgPSBleGVjLT5hcmd1bWVu
dCgxKS50b1N0cmluZyhleGVjKTsKKworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworCisgICAgLy8gRklYTUU6
IFdlIG5lZWQgdG8gdXNlIGJvdGggdGhlIGR5bmFtaWMgc2NvcGUgYW5kIHRoZSBsZXhpY2FsIHNj
b3BlIChkeW5hbWljIHNjb3BlIGZvciByZXNvbHZpbmcgdGhlIHdvcmtlciBVUkwpCisgICAgRE9N
V2luZG93KiB3aW5kb3cgPSBhc0pTRE9NV2luZG93KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSktPmltcGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBSZWZQdHI8U2hhcmVk
V29ya2VyPiB3b3JrZXIgPSBTaGFyZWRXb3JrZXI6OmNyZWF0ZSh1c3RyaW5nVG9TdHJpbmcoc2Ny
aXB0VVJMKSwgdXN0cmluZ1RvU3RyaW5nKG5hbWUpLCB3aW5kb3ctPmRvY3VtZW50KCksIGVjKTsK
KyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworCisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCB3
b3JrZXIucmVsZWFzZSgpKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0hBUkVEX1dPUktFUlMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
VWludDhBcnJheUNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDhBcnJheUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYg
RU5BQkxFKDNEX0NBTlZBUykKLQotI2luY2x1ZGUgIkpTVWludDhBcnJheUNvbnN0cnVjdG9yLmgi
Ci0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNp
bmNsdWRlICJVaW50OEFycmF5LmgiCi0jaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgotI2luY2x1
ZGUgIkpTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5oIgotI2luY2x1ZGUgIkpTVWludDhBcnJheS5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11
c2luZyBuYW1lc3BhY2UgSlNDOwotCi1jb25zdCBDbGFzc0luZm8gSlNVaW50OEFycmF5Q29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlVpbnQ4QXJyYXlDb25zdHJ1Y3RvciIsICZKU0FycmF5QnVmZmVy
Vmlldzo6c19pbmZvLCAwLCAwIH07Ci0KLUpTVWludDhBcnJheUNvbnN0cnVjdG9yOjpKU1VpbnQ4
QXJyYXlDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1VpbnQ4QXJyYXlDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBn
bG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUsIEpTVWludDhBcnJheVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpOwotfQotCi1KU09iamVjdCogSlNVaW50OEFycmF5Q29uc3Ry
dWN0b3I6OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgSlNVaW50OEFycmF5UHJvdG90
eXBlKGdsb2JhbE9iamVjdCwgSlNVaW50OEFycmF5UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUo
Z2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwotfQotCi1ib29sIEpTVWludDhBcnJh
eUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVWludDhBcnJheUNvbnN0cnVjdG9yLCBET01PYmplY3Q+
KGV4ZWMsIEpTVWludDhBcnJheVByb3RvdHlwZTo6c19pbmZvLnN0YXRpY1Byb3BIYXNoVGFibGUs
IHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLWJvb2wgSlNVaW50OEFycmF5Q29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQot
ewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNVaW50OEFycmF5Q29uc3Ry
dWN0b3IsIERPTU9iamVjdD4oZXhlYywgSlNVaW50OEFycmF5UHJvdG90eXBlOjpzX2luZm8uc3Rh
dGljUHJvcEhhc2hUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTsKLX0KLQot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0Q2FudmFzVW5zaWdu
ZWRCeXRlQXJyYXkoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEFyZ0xpc3QgYXJncyhleGVjKTsK
LSAgICBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0
PEpTVWludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0cjxV
aW50OEFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVpbnQ4QXJyYXkqPihjb25zdHJ1Y3Q8VWlu
dDhBcnJheSwgdW5zaWduZWQgY2hhcj4oZXhlYywgYXJncykuZ2V0KCkpOwotICAgIGlmICghYXJy
YXkuZ2V0KCkpIHsKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElOREVYX1NJWkVfRVJS
KTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOwotICAgIH0KLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rv
ci0+Z2xvYmFsT2JqZWN0KCksIGFycmF5LmdldCgpKSkpOwotfQotCi1KU0M6OkNvbnN0cnVjdFR5
cGUgSlNVaW50OEFycmF5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1
Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0
aW9uID0gY29uc3RydWN0Q2FudmFzVW5zaWduZWRCeXRlQXJyYXk7Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGVIb3N0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoM0RfQ0FOVkFTKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlD
b25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFy
cmF5Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVWludDhBcnJheUNvbnN0cnVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpZm5kZWYgSlNVaW50OEFycmF5Q29uc3RydWN0b3JfaAotI2RlZmluZSBK
U1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcl9oCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNp
bmNsdWRlICJKU0RvY3VtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIGNsYXNz
IEpTVWludDhBcnJheUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsK
LSAgICAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwotICAgIHB1YmxpYzoK
LSAgICAgICAgSlNVaW50OEFycmF5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUds
b2JhbE9iamVjdCopOwotICAgICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90
eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgICAgICB2aXJ0
dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLQotICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlKEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0
cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAgICAgfQotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0
RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBjb25zdCBKU0M6OkNs
YXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotICAgIHByb3Rl
Y3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlND
OjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKLSAg
ICB9OwotCi19Ci0KLSNlbmRpZiAvLyBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3Rvcl9oCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDhBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQ4QXJyYXlDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5
OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50OEFycmF5Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNiArNTEsMTcgQEAgSlNDOjpKU1ZhbHVlIEpTVWludDhBcnJheTo6c2V0
KEpTQzo6RXhlYwogICAgIHJldHVybiBzZXRXZWJHTEFycmF5SGVscGVyKGV4ZWMsIGltcGwoKSwg
dG9VaW50OEFycmF5KTsKIH0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1VpbnQ4
QXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50OEFycmF5KEV4ZWNTdGF0ZSogZXhlYykK
K3sKKyAgICBKU1VpbnQ4QXJyYXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19j
YXN0PEpTVWludDhBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOworICAgIFJlZlB0
cjxVaW50OEFycmF5PiBhcnJheSA9IHN0YXRpY19jYXN0PFVpbnQ4QXJyYXkqPihjb25zdHJ1Y3RB
cnJheUJ1ZmZlclZpZXc8VWludDhBcnJheSwgdW5zaWduZWQgY2hhcj4oZXhlYykuZ2V0KCkpOwor
ICAgIGlmICghYXJyYXkuZ2V0KCkpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIElO
REVYX1NJWkVfRVJSKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkp
OworICAgIH0KKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywg
anNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGFycmF5LmdldCgpKSkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKQpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q29uc3RydWN0b3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRSgzRF9DQU5WQVMpCi0KLSNpbmNsdWRlICJK
U1VpbnQxNkFycmF5Q29uc3RydWN0b3IuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5j
bHVkZSAiVWludDE2QXJyYXkuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCi0jaW5jbHVk
ZSAiSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSlNVaW50MTZBcnJheS5o
IgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11
c2luZyBuYW1lc3BhY2UgSlNDOwotCi1jb25zdCBDbGFzc0luZm8gSlNVaW50MTZBcnJheUNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJVaW50MTZBcnJheUNvbnN0cnVjdG9yIiwgJkpTQXJyYXlCdWZm
ZXJWaWV3OjpzX2luZm8sIDAsIDAgfTsKLQotSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yOjpKU1Vp
bnQxNkFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNVaW50MTZBcnJheUNv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUo
KSksIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgSlNVaW50MTZBcnJheVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmpl
Y3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwotfQotCi1KU09iamVjdCogSlNVaW50MTZBcnJh
eUNvbnN0cnVjdG9yOjpjcmVhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTVWludDE2QXJy
YXlQcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBKU1VpbnQxNkFycmF5UHJvdG90eXBlOjpjcmVhdGVT
dHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpOwotfQotCi1ib29sIEpT
VWludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17
Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1VpbnQxNkFycmF5Q29uc3RydWN0b3Is
IERPTU9iamVjdD4oZXhlYywgSlNVaW50MTZBcnJheVByb3RvdHlwZTo6c19pbmZvLnN0YXRpY1By
b3BIYXNoVGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLWJvb2wgSlNVaW50
MTZBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYg
ZGVzY3JpcHRvcikKLXsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPEpTVWlu
dDE2QXJyYXlDb25zdHJ1Y3RvciwgRE9NT2JqZWN0PihleGVjLCBKU1VpbnQxNkFycmF5UHJvdG90
eXBlOjpzX2luZm8uc3RhdGljUHJvcEhhc2hUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBkZXNj
cmlwdG9yKTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3Ry
dWN0Q2FudmFzVW5zaWduZWRTaG9ydEFycmF5KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBBcmdM
aXN0IGFyZ3MoZXhlYyk7Ci0gICAgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVj
dG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50MTZBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVl
KCkpOwotICAgIFJlZlB0cjxVaW50MTZBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxVaW50MTZB
cnJheSo+KGNvbnN0cnVjdDxVaW50MTZBcnJheSwgdW5zaWduZWQgc2hvcnQ+KGV4ZWMsIGFyZ3Mp
LmdldCgpKTsKLSAgICBpZiAoIWFycmF5LmdldCgpKSB7Ci0gICAgICAgIHNldERPTUV4Y2VwdGlv
bihleGVjLCBJTkRFWF9TSVpFX0VSUik7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNWYWx1ZSgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc09iamVjdCh0
b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBhcnJheS5nZXQoKSkpKTsK
LX0KLQotSlNDOjpDb25zdHJ1Y3RUeXBlIEpTVWludDE2QXJyYXlDb25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RDYW52YXNVbnNpZ25lZFNob3J0
QXJyYXk7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoM0RfQ0FOVkFTKQpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1VpbnQxNkFycmF5Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVWludDE2QXJyYXlDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiA2MTA5
OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNVaW50MTZB
cnJheUNvbnN0cnVjdG9yX2gKLSNkZWZpbmUgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yX2gKLQot
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgSlNVaW50MTZBcnJheUNvbnN0cnVjdG9yIDog
cHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKLSAgICAgICAgdHlwZWRlZiBET01Db25zdHJ1
Y3Rvck9iamVjdCBCYXNlOwotICAgIHB1YmxpYzoKLSAgICAgICAgSlNVaW50MTZBcnJheUNvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKLSAgICAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKLSAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87Ci0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNDOjpT
dHJ1Y3R1cmU+IGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255bW91
c1Nsb3RDb3VudCk7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwg
SlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7
Ci0gICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0
IHsgcmV0dXJuICZzX2luZm87IH0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7Ci0gICAgfTsKLQotfQotCi0jZW5kaWYgLy8gSlNV
aW50MTZBcnJheUNvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50
MTZBcnJheUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Vp
bnQxNkFycmF5Q3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVWludDE2QXJyYXlDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwx
NyBAQCBKU0M6OkpTVmFsdWUgSlNVaW50MTZBcnJheTo6c2V0KEpTQzo6RXhlCiAgICAgcmV0dXJu
IHNldFdlYkdMQXJyYXlIZWxwZXIoZXhlYywgaW1wbCgpLCB0b1VpbnQxNkFycmF5KTsKIH0KIAor
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1VpbnQxNkFycmF5Q29uc3RydWN0b3I6OmNv
bnN0cnVjdEpTVWludDE2QXJyYXkoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTVWludDE2QXJy
YXlDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTVWludDE2QXJyYXlD
b25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKKyAgICBSZWZQdHI8VWludDE2QXJyYXk+IGFy
cmF5ID0gc3RhdGljX2Nhc3Q8VWludDE2QXJyYXkqPihjb25zdHJ1Y3RBcnJheUJ1ZmZlclZpZXc8
VWludDE2QXJyYXksIHVuc2lnbmVkIHNob3J0PihleGVjKS5nZXQoKSk7CisgICAgaWYgKCFhcnJh
eS5nZXQoKSkgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIp
OworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgfQorICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9y
LT5nbG9iYWxPYmplY3QoKSwgYXJyYXkuZ2V0KCkpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRSgzRF9DQU5WQVMpCkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVWludDMyQXJyYXlDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA2MTA5
OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUNvbnN0cnVjdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLQotI2luY2x1ZGUgIkpTVWludDMyQXJyYXlD
b25zdHJ1Y3Rvci5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJVaW50MzJB
cnJheS5oIgotI2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyQ29uc3RydWN0b3IuaCIKLSNpbmNsdWRlICJKU1VpbnQzMkFycmF5LmgiCi0jaW5jbHVkZSA8
cnVudGltZS9FcnJvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVzaW5nIG5hbWVzcGFj
ZSBKU0M7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIlVpbnQzMkFycmF5Q29uc3RydWN0b3IiLCAmSlNBcnJheUJ1ZmZlclZpZXc6OnNfaW5m
bywgMCwgMCB9OwotCi1KU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6OkpTVWludDMyQXJyYXlDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Ci0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2Jq
ZWN0KQotewotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBK
U1VpbnQzMkFycmF5UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIERvbnREZWxl
dGUgfCBSZWFkT25seSk7Ci19Ci0KLUpTT2JqZWN0KiBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6
OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCi17Ci0gICAgcmV0dXJuIG5ldyAoZXhlYykgSlNVaW50MzJBcnJheVByb3RvdHlwZShn
bG9iYWxPYmplY3QsIEpTVWludDMyQXJyYXlQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShnbG9i
YWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSk7Ci19Ci0KLWJvb2wgSlNVaW50MzJBcnJheUNv
bnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PEpTVWludDMyQXJyYXlDb25zdHJ1Y3RvciwgRE9NT2JqZWN0Pihl
eGVjLCBKU1VpbnQzMkFycmF5UHJvdG90eXBlOjpzX2luZm8uc3RhdGljUHJvcEhhc2hUYWJsZSwg
dGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBKU1VpbnQzMkFycmF5Q29uc3Ry
dWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQot
ewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNVaW50MzJBcnJheUNvbnN0
cnVjdG9yLCBET01PYmplY3Q+KGV4ZWMsIEpTVWludDMyQXJyYXlQcm90b3R5cGU6OnNfaW5mby5z
dGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwotfQot
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RDYW52YXNVbnNp
Z25lZEludEFycmF5KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBBcmdMaXN0IGFyZ3MoZXhlYyk7
Ci0gICAgSlNVaW50MzJBcnJheUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nh
c3Q8SlNVaW50MzJBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFJlZlB0
cjxVaW50MzJBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxVaW50MzJBcnJheSo+KGNvbnN0cnVj
dDxVaW50MzJBcnJheSwgdW5zaWduZWQgaW50PihleGVjLCBhcmdzKS5nZXQoKSk7Ci0gICAgaWYg
KCFhcnJheS5nZXQoKSkgewotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0la
RV9FUlIpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7Ci0gICAg
fQotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0
cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgYXJyYXkuZ2V0KCkpKSk7Ci19Ci0KLUpTQzo6Q29uc3Ry
dWN0VHlwZSBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDOjpD
b25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY29uc3RydWN0Q2FudmFzVW5zaWduZWRJbnRBcnJheTsKLSAgICByZXR1cm4g
Q29uc3RydWN0VHlwZUhvc3Q7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRSgzRF9DQU5WQVMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMy
QXJyYXlDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNV
aW50MzJBcnJheUNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1VpbnQzMkFycmF5Q29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3JfaAot
I2RlZmluZSBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3JfaAotCi0jaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCi0jaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LSAgICBjbGFzcyBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0
b3JPYmplY3QgewotICAgICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7Ci0g
ICAgcHVibGljOgotICAgICAgICBKU1VpbnQzMkFycmF5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwotICAgICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCog
Y3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwot
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5m
bzsKLQotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6
Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50KTsKLSAgICAg
ICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUg
Z2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBj
b25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsg
fQotICAgIHByb3RlY3RlZDoKLSAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKLSAgICB9OwotCi19Ci0KLSNlbmRpZiAvLyBKU1VpbnQzMkFycmF5Q29uc3RydWN0
b3JfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1VpbnQzMkFycmF5Q3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVWludDMyQXJyYXlDdXN0b20uY3Bw
CShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNVaW50MzJBcnJheUN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDE3IEBAIEpTQzo6SlNWYWx1ZSBK
U1VpbnQzMkFycmF5OjpzZXQoSlNDOjpFeGUKICAgICByZXR1cm4gc2V0V2ViR0xBcnJheUhlbHBl
cihleGVjLCBpbXBsKCksIHRvVWludDMyQXJyYXkpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTVWludDMyQXJyYXlDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNVaW50MzJBcnJh
eShFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNVaW50MzJBcnJheUNvbnN0cnVjdG9yKiBqc0Nv
bnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNVaW50MzJBcnJheUNvbnN0cnVjdG9yKj4oZXhlYy0+
Y2FsbGVlKCkpOworICAgIFJlZlB0cjxVaW50MzJBcnJheT4gYXJyYXkgPSBzdGF0aWNfY2FzdDxV
aW50MzJBcnJheSo+KGNvbnN0cnVjdEFycmF5QnVmZmVyVmlldzxVaW50MzJBcnJheSwgdW5zaWdu
ZWQgaW50PihleGVjKS5nZXQoKSk7CisgICAgaWYgKCFhcnJheS5nZXQoKSkgeworICAgICAgICBz
ZXRET01FeGNlcHRpb24oZXhlYywgSU5ERVhfU0laRV9FUlIpOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgfQorICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgYXJy
YXkuZ2V0KCkpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRSgzRF9DQU5WQVMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0
cml4Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1dlYktpdENTU01h
dHJpeENvbnN0cnVjdG9yLmgiCi0KLSNpbmNsdWRlICJXZWJLaXRDU1NNYXRyaXguaCIKLSNpbmNs
dWRlICJKU1dlYktpdENTU01hdHJpeC5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1dlYktpdENTU01hdHJpeENvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvciIsIDAsIDAsIDAg
fTsKLQotSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRDU1NNYXRyaXhDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
Ci0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2Jh
bE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlw
ZSwgSlNXZWJLaXRDU1NNYXRyaXhQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwg
Tm9uZSk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVt
YmVyKGV4ZWMsIDEpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKLX0KLQotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2ViS2l0Q1NTTWF0cml4KEV4
ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yKiBqc0Nv
bnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcio+KGV4
ZWMtPmNhbGxlZSgpKTsKLSAgICBTdHJpbmcgczsKLSAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3Vu
dCgpID49IDEpCi0gICAgICAgIHMgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCku
dG9TdHJpbmcoZXhlYykpOwotICAgIAotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFJl
ZlB0cjxXZWJLaXRDU1NNYXRyaXg+IG1hdHJpeCA9IFdlYktpdENTU01hdHJpeDo6Y3JlYXRlKHMs
IGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5n
bG9iYWxPYmplY3QoKSwgV2ViS2l0Q1NTTWF0cml4LCBtYXRyaXguZ2V0KCkpKTsKLX0KLQotQ29u
c3RydWN0VHlwZSBKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRh
KENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRp
dmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3RXZWJLaXRDU1NNYXRyaXg7Ci0gICAgcmV0dXJuIENvbnN0
cnVjdFR5cGVIb3N0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaAkocmV2
aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29u
c3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNXZWJLaXRDU1NNYXRy
aXhDb25zdHJ1Y3Rvcl9oCi0jZGVmaW5lIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3JfaAot
Ci0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNEb2N1bWVudC5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3Ig
OiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewotcHVibGljOgotICAgIEpTV2ViS2l0Q1NT
TWF0cml4Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwot
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Ci0KLXByaXZhdGU6Ci0gICAg
dmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVj
dERhdGEmKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBj
b25zdCB7IHJldHVybiAmc19pbmZvOyB9Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBKU1dlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRD
U1NNYXRyaXhDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkJKGZyb20gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcDo2MTA5OSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0
cml4Q29uc3RydWN0b3IuaCIKKworI2luY2x1ZGUgIldlYktpdENTU01hdHJpeC5oIgorI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY29uc3QgQ2xhc3NJbmZvIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIldlYktpdENTU01hdHJpeENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9
OworCitKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpKU1dlYktpdENTU01hdHJpeENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
KyAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFs
T2JqZWN0KQoreworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
LCBKU1dlYktpdENTU01hdHJpeFByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBO
b25lKTsKKyAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1i
ZXIoZXhlYywgMSksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOworfQorCitzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWJLaXRDU1NNYXRyaXgoRXhl
Y1N0YXRlKiBleGVjKQoreworICAgIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IqIGpzQ29u
c3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yKj4oZXhl
Yy0+Y2FsbGVlKCkpOworICAgIFN0cmluZyBzOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPj0gMSkKKyAgICAgICAgcyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVudCgwKS50
b1N0cmluZyhleGVjKSk7CisgICAgCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgUmVm
UHRyPFdlYktpdENTU01hdHJpeD4gbWF0cml4ID0gV2ViS2l0Q1NTTWF0cml4OjpjcmVhdGUocywg
ZWMpOworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShDUkVBVEVfRE9NX09CSkVDVF9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmds
b2JhbE9iamVjdCgpLCBXZWJLaXRDU1NNYXRyaXgsIG1hdHJpeC5nZXQoKSkpOworfQorCitDb25z
dHJ1Y3RUeXBlIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEo
Q29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKK3sKKyAgICBjb25zdHJ1Y3REYXRhLm5hdGl2
ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFdlYktpdENTU01hdHJpeDsKKyAgICByZXR1cm4gQ29uc3Ry
dWN0VHlwZUhvc3Q7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCShyZXZpc2lvbiA2
MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNCwyNSArMjQsMTUgQEAKICAqLwogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5oIgorI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCiAKICNpbmNsdWRlICJXZWJLaXRDU1NNYXRyaXguaCIK
LSNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5oIgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IENsYXNzSW5mbyBKU1dlYktpdENTU01hdHJp
eENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvciIsIDAs
IDAsIDAgfTsKLQotSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRDU1NNYXRy
aXhDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1dlYktpdENTU01hdHJpeENvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSks
IGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgSlNXZWJLaXRDU1NNYXRyaXhQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2Jq
ZWN0KSwgTm9uZSk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgs
IGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKLX0KLQot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2ViS2l0Q1NTTWF0
cml4KEV4ZWNTdGF0ZSogZXhlYykKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNXZWJL
aXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNXZWJLaXRDU1NNYXRyaXgoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IqIGpzQ29uc3Ry
dWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yKj4oZXhlYy0+
Y2FsbGVlKCkpOwogICAgIFN0cmluZyBzOwpAQCAtNTUsMTAgKzQ1LDQgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29ucwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Q1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmpl
Y3QoKSwgV2ViS2l0Q1NTTWF0cml4LCBtYXRyaXguZ2V0KCkpKTsKIH0KIAotQ29uc3RydWN0VHlw
ZSBKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmIGNvbnN0cnVjdERhdGEpCi17Ci0gICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjb25zdHJ1Y3RXZWJLaXRDU1NNYXRyaXg7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGVI
b3N0OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA2MTA5OSkK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oIgotCi0jaW5jbHVkZSAiRG9j
dW1lbnQuaCIKLSNpbmNsdWRlICJXZWJLaXRQb2ludC5oIgotI2luY2x1ZGUgIkpTV2ViS2l0UG9p
bnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1j
b25zdCBDbGFzc0luZm8gSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJL
aXRQb2ludENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwotCi1KU1dlYktpdFBvaW50Q29uc3RydWN0
b3I6OkpTV2ViS2l0UG9pbnRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1dlYktp
dFBvaW50Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFBy
b3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0
eU5hbWVzKCkucHJvdG90eXBlLCBKU1dlYktpdFBvaW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGds
b2JhbE9iamVjdCksIE5vbmUpOwotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcihleGVjLCAyKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7
Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYktp
dFBvaW50KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1dlYktpdFBvaW50Q29uc3RydWN0b3Iq
IGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dlYktpdFBvaW50Q29uc3RydWN0b3IqPihl
eGVjLT5jYWxsZWUoKSk7Ci0KLSAgICBmbG9hdCB4ID0gMDsKLSAgICBmbG9hdCB5ID0gMDsKLSAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDIpIHsKLSAgICAgICAgeCA9IChmbG9hdCll
eGVjLT5hcmd1bWVudCgwKS50b051bWJlcihleGVjKTsKLSAgICAgICAgeSA9IChmbG9hdClleGVj
LT5hcmd1bWVudCgxKS50b051bWJlcihleGVjKTsKLSAgICAgICAgaWYgKGlzbmFuKHgpKQotICAg
ICAgICAgICAgeCA9IDA7Ci0gICAgICAgIGlmIChpc25hbih5KSkKLSAgICAgICAgICAgIHkgPSAw
OwotICAgIH0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywg
anNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFdlYktpdFBvaW50OjpjcmVhdGUoeCwgeSkp
KSk7Ci19Ci0KLUpTQzo6Q29uc3RydWN0VHlwZSBKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAg
IGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2ViS2l0UG9pbnQ7Ci0g
ICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwotfQotCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0
b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9p
bnRDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaWZuZGVmIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcl9oCi0jZGVmaW5lIEpTV2ViS2l0UG9p
bnRDb25zdHJ1Y3Rvcl9oCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJK
U0RvY3VtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNXZWJLaXRQb2lu
dENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKLXB1YmxpYzoKLSAg
ICBKU1dlYktpdFBvaW50Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCopOwotICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Ci0KLXByaXZh
dGU6Ci0gICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6
OkNvbnN0cnVjdERhdGEmKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBjbGFz
c0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBK
U1dlYktpdFBvaW50Q29uc3RydWN0b3JfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YktpdFBvaW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViS2l0UG9pbnRDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkJKGZyb20gV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwOjYxMDk5KQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTV2Vi
S2l0UG9pbnRDb25zdHJ1Y3Rvci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRQb2ludC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0UG9pbnQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitjb25zdCBDbGFzc0luZm8gSlNX
ZWJLaXRQb2ludENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJLaXRQb2ludENvbnN0cnVjdG9y
IiwgMCwgMCwgMCB9OworCitKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OkpTV2ViS2l0UG9pbnRD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFs
T2JqZWN0KQoreworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
LCBKU1dlYktpdFBvaW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUp
OworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihl
eGVjLCAyKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7Cit9CisKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYktpdFBvaW50KEV4ZWNTdGF0ZSog
ZXhlYykKK3sKKyAgICBKU1dlYktpdFBvaW50Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBz
dGF0aWNfY2FzdDxKU1dlYktpdFBvaW50Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisK
KyAgICBmbG9hdCB4ID0gMDsKKyAgICBmbG9hdCB5ID0gMDsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID49IDIpIHsKKyAgICAgICAgeCA9IChmbG9hdClleGVjLT5hcmd1bWVudCgwKS50
b051bWJlcihleGVjKTsKKyAgICAgICAgeSA9IChmbG9hdClleGVjLT5hcmd1bWVudCgxKS50b051
bWJlcihleGVjKTsKKyAgICAgICAgaWYgKGlzbmFuKHgpKQorICAgICAgICAgICAgeCA9IDA7Cisg
ICAgICAgIGlmIChpc25hbih5KSkKKyAgICAgICAgICAgIHkgPSAwOworICAgIH0KKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIFdlYktpdFBvaW50OjpjcmVhdGUoeCwgeSkpKSk7Cit9CisKK0pTQzo6Q29u
c3RydWN0VHlwZSBKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlND
OjpDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQoreworICAgIGNvbnN0cnVjdERhdGEubmF0
aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V2ViS2l0UG9pbnQ7CisgICAgcmV0dXJuIENvbnN0cnVj
dFR5cGVIb3N0OworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNCwzNCArMjQsMjMgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgot
I2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludC5oIgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7CisjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKIAogdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAotY29uc3QgQ2xhc3NJbmZvIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiV2ViS2l0UG9pbnRDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKLQotSlNXZWJL
aXRQb2ludENvbnN0cnVjdG9yOjpKU1dlYktpdFBvaW50Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NQ29uc3RydWN0
b3JPYmplY3QoSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJl
Y3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNXZWJLaXRQb2ludFByb3RvdHlw
ZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBOb25lKTsKLSAgICBwdXREaXJlY3QoZXhlYy0+
cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgMiksIFJlYWRPbmx5fERvbnRE
ZWxldGV8RG9udEVudW0pOwotfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWJLaXRQb2ludChFeGVjU3RhdGUqIGV4
ZWMpCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0SlNXZWJLaXRQb2ludChFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNXZWJL
aXRQb2ludENvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNXZWJLaXRQ
b2ludENvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkpOwogCiAgICAgZmxvYXQgeCA9IDA7CiAg
ICAgZmxvYXQgeSA9IDA7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7Ci0g
ICAgICAgIHggPSAoZmxvYXQpZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIoZXhlYyk7Ci0gICAg
ICAgIHkgPSAoZmxvYXQpZXhlYy0+YXJndW1lbnQoMSkudG9OdW1iZXIoZXhlYyk7CisgICAgICAg
IHggPSBzdGF0aWNfY2FzdDxmbG9hdD4oZXhlYy0+YXJndW1lbnQoMCkudG9OdW1iZXIoZXhlYykp
OworICAgICAgICB5ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGV4ZWMtPmFyZ3VtZW50KDEpLnRvTnVt
YmVyKGV4ZWMpKTsKICAgICAgICAgaWYgKGlzbmFuKHgpKQogICAgICAgICAgICAgeCA9IDA7CiAg
ICAgICAgIGlmIChpc25hbih5KSkKQEAgLTYwLDExICs0OSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2Jq
ZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIFdlYktpdFBvaW50
OjpjcmVhdGUoeCwgeSkpKSk7CiB9CiAKLUpTQzo6Q29uc3RydWN0VHlwZSBKU1dlYktpdFBvaW50
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0
V2ViS2l0UG9pbnQ7Ci0gICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwotfQotCi0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJTb2NrZXRD
b25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNv
Y2tldENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV2ViU29ja2V0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotCi0j
aW5jbHVkZSAiSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oIgotCi0jaW5jbHVkZSAiSlNXZWJTb2Nr
ZXQuaCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiV2Vi
U29ja2V0LmgiCi0jaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi11c2luZyBuYW1lc3BhY2Ug
SlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwo
SlNXZWJTb2NrZXRDb25zdHJ1Y3Rvcik7Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1dlYlNvY2tldENv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJTb2NrZXRDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsK
LQotSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvcjo6SlNXZWJTb2NrZXRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01Db25z
dHJ1Y3Rvck9iamVjdChKU1dlYlNvY2tldENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xv
YmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXRE
aXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNXZWJTb2NrZXRQcm90b3R5
cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7Ci0gICAgcHV0RGlyZWN0KGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seSB8IERv
bnREZWxldGUgfCBEb250RW51bSk7Ci19Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdFdlYlNvY2tldChFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNXZWJT
b2NrZXRDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0YXRpY19jYXN0PEpTV2ViU29ja2V0
Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCA9IGpzQ29uc3RydWN0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAg
ICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRl
UmVmZXJlbmNlRXJyb3IoZXhlYywgIldlYlNvY2tldCBjb25zdHJ1Y3RvciBhc3NvY2lhdGVkIGRv
Y3VtZW50IGlzIHVuYXZhaWxhYmxlIikpOwotCi0gICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50
KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3Io
ZXhlYywgIk5vdCBlbm91Z2ggYXJndW1lbnRzIikpOwotCi0gICAgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcgPSB1c3RyaW5nVG9TdHJpbmcoZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykp
OwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAid3JvbmcgVVJMIikpOwotICAgIGNv
bnN0IEtVUkwmIHVybCA9IGNvbnRleHQtPmNvbXBsZXRlVVJMKHVybFN0cmluZyk7Ci0gICAgUmVm
UHRyPFdlYlNvY2tldD4gd2ViU29ja2V0ID0gV2ViU29ja2V0OjpjcmVhdGUoY29udGV4dCk7Ci0g
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8
IDIpCi0gICAgICAgIHdlYlNvY2tldC0+Y29ubmVjdCh1cmwsIGVjKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgY29uc3QgU3RyaW5nJiBwcm90b2NvbCA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1
bWVudCgxKS50b1N0cmluZyhleGVjKSk7Ci0gICAgICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24o
KSkKLSAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICAg
ICAgd2ViU29ja2V0LT5jb25uZWN0KHVybCwgcHJvdG9jb2wsIGVjKTsKLSAgICB9Ci0gICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFU
RV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCks
IFdlYlNvY2tldCwgd2ViU29ja2V0LmdldCgpKSk7Ci19Ci0KLUNvbnN0cnVjdFR5cGUgSlNXZWJT
b2NrZXRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1
Y3REYXRhKQotewotICAgIGNvbnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0
V2ViU29ja2V0OwotICAgIHJldHVybiBDb25zdHJ1Y3RUeXBlSG9zdDsKLX0KLQotfSAgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
U29ja2V0Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViU29ja2V0Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViU29ja2V0Q29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvcl9oCi0jZGVmaW5lIEpTV2ViU29j
a2V0Q29uc3RydWN0b3JfaAotCi0jaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQotCi0jaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNXZWJTb2Nr
ZXRDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7Ci0gIHB1YmxpYzoK
LSAgICBKU1dlYlNvY2tldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqKTsKLSAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotCi0gIHBy
aXZhdGU6Ci0gICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICB2aXJ0dWFsIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKiBj
bGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VCX1NPQ0tFVFMpCi0KLSNlbmRpZiAvLyBK
U1dlYlNvY2tldENvbnN0cnVjdG9yX2gKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJT
b2NrZXRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJT
b2NrZXRDdXN0b20uY3BwCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJTb2NrZXRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTksNiArNTksMzQg
QEAgSlNWYWx1ZSBKU1dlYlNvY2tldDo6c2VuZChFeGVjU3RhdGUqIGV4ZQogICAgIHJldHVybiBy
ZXQ7CiB9CiAKLX0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTV2ViU29ja2V0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTV2ViU29ja2V0KEV4ZWNT
dGF0ZSogZXhlYykKK3sKKyAgICBKU1dlYlNvY2tldENvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9y
ID0gc3RhdGljX2Nhc3Q8SlNXZWJTb2NrZXRDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiV2ViU29ja2V0
IGNvbnN0cnVjdG9yIGFzc29jaWF0ZWQgZG9jdW1lbnQgaXMgdW5hdmFpbGFibGUiKSk7CisKKyAg
ICBpZiAoIWV4ZWMtPmFyZ3VtZW50Q291bnQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiTm90IGVub3VnaCBhcmd1bWVudHMiKSk7
CisKKyAgICBjb25zdCBTdHJpbmcmIHVybFN0cmluZyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5h
cmd1bWVudCgwKS50b1N0cmluZyhleGVjKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4
ZWMsICJ3cm9uZyBVUkwiKSk7CisgICAgY29uc3QgS1VSTCYgdXJsID0gY29udGV4dC0+Y29tcGxl
dGVVUkwodXJsU3RyaW5nKTsKKyAgICBSZWZQdHI8V2ViU29ja2V0PiB3ZWJTb2NrZXQgPSBXZWJT
b2NrZXQ6OmNyZWF0ZShjb250ZXh0KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBp
ZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMikKKyAgICAgICAgd2ViU29ja2V0LT5jb25uZWN0
KHVybCwgZWMpOworICAgIGVsc2UgeworICAgICAgICBjb25zdCBTdHJpbmcmIHByb3RvY29sID0g
dXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDEpLnRvU3RyaW5nKGV4ZWMpKTsKKyAgICAg
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICB3ZWJTb2NrZXQtPmNvbm5lY3QodXJsLCBwcm90
b2NvbCwgZWMpOworICAgIH0KKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBqc0Nv
bnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgV2ViU29ja2V0LCB3ZWJTb2NrZXQuZ2V0KCkpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoV09SS0VSUykKLQotI2luY2x1ZGUgIkpTV29ya2VyQ29uc3RydWN0b3IuaCIKLQotI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUg
IkpTRE9NV2luZG93Q3VzdG9tLmgiCi0jaW5jbHVkZSAiSlNXb3JrZXIuaCIKLSNpbmNsdWRlICJX
b3JrZXIuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBK
U0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY29uc3QgQ2xhc3NJbmZvIEpTV29ya2VyQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIldvcmtlckNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwotCi1K
U1dvcmtlckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTUNvbnN0cnVjdG9yT2Jq
ZWN0KEpTV29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9i
amVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVjdChleGVjLT5w
cm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1dvcmtlclByb3RvdHlwZTo6c2VsZihleGVjLCBn
bG9iYWxPYmplY3QpLCBOb25lKTsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
Lmxlbmd0aCwganNOdW1iZXIoZXhlYywgMSksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0p
OwotfQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXb3Jr
ZXIoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTV29ya2VyQ29uc3RydWN0b3IqIGpzQ29uc3Ry
dWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dvcmtlckNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkp
OwotCi0gICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIk5vdCBlbm91Z2ggYXJndW1l
bnRzIikpOwotCi0gICAgVVN0cmluZyBzY3JpcHRVUkwgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0
cmluZyhleGVjKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLQotICAgIC8vIFNlZSBzZWN0aW9uIDQuOC4y
IHN0ZXAgMTQgb2YgV2ViV29ya2VycyBmb3Igd2h5IHRoaXMgaXMgdGhlIGxleGljYWxHbG9iYWxP
YmplY3QuIAotICAgIERPTVdpbmRvdyogd2luZG93ID0gYXNKU0RPTVdpbmRvdyhleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCkpLT5pbXBsKCk7Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBSZWZQdHI8V29ya2VyPiB3b3JrZXIgPSBXb3JrZXI6OmNyZWF0ZSh1c3RyaW5nVG9TdHJp
bmcoc2NyaXB0VVJMKSwgd2luZG93LT5kb2N1bWVudCgpLCBlYyk7Ci0gICAgaWYgKGVjKSB7Ci0g
ICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzT2JqZWN0KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIHdvcmtl
ci5yZWxlYXNlKCkpKSk7Ci19Ci0KLUNvbnN0cnVjdFR5cGUgSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6
Z2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJiBjb25zdHJ1Y3REYXRhKQotewotICAgIGNv
bnN0cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0V29ya2VyOwotICAgIHJldHVy
biBDb25zdHJ1Y3RUeXBlSG9zdDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKFdPUktFUlMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2lmbmRlZiBKU1dvcmtlckNvbnN0cnVjdG9yX2gKLSNkZWZpbmUgSlNXb3JrZXJDb25z
dHJ1Y3Rvcl9oCi0KLSNpZiBFTkFCTEUoV09SS0VSUykKLQotI2luY2x1ZGUgIkpTRE9NQmluZGlu
Zy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSAgICBjbGFzcyBKU1dvcmtlckNvbnN0cnVj
dG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IEpTV29ya2VyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCop
OwotCi0gICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Ci0KLSAgICBw
cml2YXRlOgotICAgICAgICB2aXJ0dWFsIEpTQzo6Q29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3RE
YXRhKEpTQzo6Q29uc3RydWN0RGF0YSYpOwotCi0gICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpD
bGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KLSAgICB9Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKLQot
I2VuZGlmIC8vIEpTV29ya2VyQ29uc3RydWN0b3JfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjExMDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM5LDEwICszOSwxMCBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUg
IkpTRE9NR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCi0jaW5j
bHVkZSAiSlNFdmVudFNvdXJjZUNvbnN0cnVjdG9yLmgiCi0jaW5jbHVkZSAiSlNNZXNzYWdlQ2hh
bm5lbENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiSlNFdmVudFNvdXJjZS5oIgorI2luY2x1ZGUg
IkpTTWVzc2FnZUNoYW5uZWwuaCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCi0jaW5jbHVk
ZSAiSlNXZWJTb2NrZXRDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIkpTV2ViU29ja2V0LmgiCiAj
aW5jbHVkZSAiSlNXb3JrZXJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkpTV29ya2VyTmF2aWdhdG9y
LmgiCiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdC5oIgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dvcmtlckN1c3RvbS5jcHAJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAK
ICNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnRD
dXN0b20uaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3Rv
bS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IApAQCAtNDIsNiArNDQsMzAgQEAgSlNDOjpKU1ZhbHVlIEpTV29ya2VyOjpwb3N0TWVzc2FnZShK
U0M6OgogICAgIHJldHVybiBoYW5kbGVQb3N0TWVzc2FnZShleGVjLCBpbXBsKCkpOwogfQogCitF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTV29ya2VyQ29uc3RydWN0b3I6OmNvbnN0cnVj
dEpTV29ya2VyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1dvcmtlckNvbnN0cnVjdG9yKiBq
c0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNXb3JrZXJDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNh
bGxlZSgpKTsKKworICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKQorICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJOb3QgZW5vdWdo
IGFyZ3VtZW50cyIpKTsKKworICAgIFVTdHJpbmcgc2NyaXB0VVJMID0gZXhlYy0+YXJndW1lbnQo
MCkudG9TdHJpbmcoZXhlYyk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisKKyAgICAvLyBTZWUgc2VjdGlv
biA0LjguMiBzdGVwIDE0IG9mIFdlYldvcmtlcnMgZm9yIHdoeSB0aGlzIGlzIHRoZSBsZXhpY2Fs
R2xvYmFsT2JqZWN0LiAKKyAgICBET01XaW5kb3cqIHdpbmRvdyA9IGFzSlNET01XaW5kb3coZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKS0+aW1wbCgpOworCisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CisgICAgUmVmUHRyPFdvcmtlcj4gd29ya2VyID0gV29ya2VyOjpjcmVhdGUodXN0cmlu
Z1RvU3RyaW5nKHNjcmlwdFVSTCksIHdpbmRvdy0+ZG9jdW1lbnQoKSwgZWMpOworICAgIGlmIChl
YykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc09iamVjdCh0b0pTKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgp
LCB3b3JrZXIucmVsZWFzZSgpKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoV09SS0VSUykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xU
UHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA2MTA5OSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShYU0xUKQotCi0jaW5jbHVkZSAiSlNYU0xUUHJv
Y2Vzc29yQ29uc3RydWN0b3IuaCIKLQotI2luY2x1ZGUgIkpTWFNMVFByb2Nlc3Nvci5oIgotI2lu
Y2x1ZGUgIlhTTFRQcm9jZXNzb3IuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLXVzaW5n
IG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotQVNTRVJUX0NMQVNTX0ZJ
VFNfSU5fQ0VMTChKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcik7Ci0KLWNvbnN0IENsYXNzSW5m
byBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiWFNMVFByb2Nlc3NvckNv
bnNydWN0b3IiLCAwLCAwLCAwIH07Ci0KLUpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yOjpKU1hT
TFRQcm9jZXNzb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90
eXBlKCkpLCBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5wcm90b3R5cGUsIEpTWFNMVFByb2Nlc3NvclByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9i
YWxPYmplY3QpLCBOb25lKTsKLX0KLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0WFNMVFByb2Nlc3NvcihFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgSlNYU0xU
UHJvY2Vzc29yQ29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1hTTFRQ
cm9jZXNzb3JDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywganNDb25zdHJ1Y3Rvci0+
Z2xvYmFsT2JqZWN0KCksIFhTTFRQcm9jZXNzb3IsIFhTTFRQcm9jZXNzb3I6OmNyZWF0ZSgpLmdl
dCgpKSk7Ci19Ci0KLUNvbnN0cnVjdFR5cGUgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSkKLXsKLSAgICBjb25z
dHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNvbnN0cnVjdFhTTFRQcm9jZXNzb3I7Ci0gICAg
cmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoWFNMVCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xU
UHJvY2Vzc29yQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEpTWFNMVFByb2Nlc3Nv
ckNvbnN0cnVjdG9yX2gKLSNkZWZpbmUgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3JfaAotCi0j
aWYgRU5BQkxFKFhTTFQpCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0gICAgY2xhc3MgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IgOiBwdWJs
aWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewotICAgIHB1YmxpYzoKLSAgICAgICAgSlNYU0xUUHJv
Y2Vzc29yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwot
ICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgdmlydHVhbCBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShK
U0M6OkNvbnN0cnVjdERhdGEmKTsKLSAgICAgICAgdmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5m
byogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQotICAgIH07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShYU0xUKQotCi0jZW5kaWYgLy8g
SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3JfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNiw2ICsxMTYsMTIgQEAgSlNWYWx1ZSBKU1hTTFRQcm9jZXNzb3I6OnJlbW92ZVBhcmFtZXRl
cgogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1hTTFRQcm9jZXNz
b3IoRXhlY1N0YXRlKiBleGVjKQoreworICAgIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKiBq
c0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IqPihl
eGVjLT5jYWxsZWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShDUkVBVEVfRE9NX09C
SkVDVF9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBYU0xUUHJv
Y2Vzc29yLCBYU0xUUHJvY2Vzc29yOjpjcmVhdGUoKS5nZXQoKSkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoWFNMVCkKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNjExMDApCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkp
CkBAIC0yNzY2LDYgKzI3NjYsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24K
ICAgICBteSAkY2FuQ29uc3RydWN0ID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q2FuQmVDb25zdHJ1Y3RlZCJ9OwogICAgIG15ICRjdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiA9ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uIn07
CiAgICAgbXkgJGNhbGxXaXRoID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fs
bFdpdGgifTsKKyAgICBteSAkbnVtYmVyT2Zjb25zdHJ1Y3RQYXJhbWV0ZXJzID0gJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JQYXJhbWV0ZXJzIn07CiAKICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNsYXNzTmFt
ZX06OnNfaW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3JcIiwgMCwgJiR7
Y29uc3RydWN0b3JDbGFzc05hbWV9VGFibGUsIDAgfTtcblxuIik7CiAKQEAgLTI3NzMsNiArMjc3
NCw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KCR7Y29uc3RydWN0b3JDbGFzc05h
bWV9OjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGds
b2JhbE9iamVjdClcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBw
dXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgJHtu
dW1iZXJPZmNvbnN0cnVjdFBhcmFtZXRlcnN9KSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9u
dEVudW0pO1xuIikgaWYgJG51bWJlck9mY29uc3RydWN0UGFyYW1ldGVyczsKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJ9XG5cbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAk
e2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKSW5kZXg6IFdlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJD
b3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiwxMiBA
QAogbW9kdWxlIGNzcyB7CiAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCA/OgotICAg
IGludGVyZmFjZSBbQ3VzdG9tQ29uc3RydWN0b3JdIFdlYktpdENTU01hdHJpeCB7CisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3Ry
dWN0RnVuY3Rpb24sCisgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0xLAorICAgICAgICBW
OEN1c3RvbUNvbnN0cnVjdG9yCisgICAgXSBXZWJLaXRDU1NNYXRyaXggewogCiAgICAgICAgIC8v
IFRoZXNlIGF0dHJpYnV0ZXMgYXJlIHNpbXBsZSBhbGlhc2VzIGZvciBjZXJ0YWluIGVsZW1lbnRz
IG9mIHRoZSA0eDQgbWF0cml4CiAgICAgICAgIGF0dHJpYnV0ZSBkb3VibGUgYTsgLy8gYWxpYXMg
Zm9yIG0xMQpJbmRleDogV2ViQ29yZS9kb20vTWVzc2FnZUNoYW5uZWwuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL01lc3NhZ2VDaGFubmVsLmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBX
ZWJDb3JlL2RvbS9NZXNzYWdlQ2hhbm5lbC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDcgKzI2LDEz
IEBACiAKIG1vZHVsZSBldmVudHMgewogCi0gICAgaW50ZXJmYWNlIFtDdXN0b21Db25zdHJ1Y3Rv
ciwgQ3VzdG9tTWFya0Z1bmN0aW9uLCBOb1N0YXRpY1RhYmxlc10gTWVzc2FnZUNoYW5uZWwgewor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdEZ1bmN0aW9uLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLAorICAgICAg
ICBDdXN0b21NYXJrRnVuY3Rpb24sCisgICAgICAgIE5vU3RhdGljVGFibGVzCisgICAgXSBNZXNz
YWdlQ2hhbm5lbCB7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE1lc3NhZ2VQb3J0IHBv
cnQxOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTWVzc2FnZVBvcnQgcG9ydDI7CkluZGV4
OiBXZWJDb3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJD
b3JlL2h0bWwvY2FudmFzL0FycmF5QnVmZmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsNyArMjQs
MTQgQEAKICAqLwogCiBtb2R1bGUgaHRtbCB7Ci0gICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD0z
RF9DQU5WQVMsIEN1c3RvbUNvbnN0cnVjdG9yXSBBcnJheUJ1ZmZlciB7CisKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDb25kaXRpb25hbD0zRF9DQU5WQVMsCisgICAgICAgIENhbkJlQ29uc3Ry
dWN0ZWQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAorICAgICAgICBWOEN1c3Rv
bUNvbnN0cnVjdG9yCisgICAgXSBBcnJheUJ1ZmZlciB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBpbnQgYnl0ZUxlbmd0aDsKICAgICB9OworCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvY2Fu
dmFzL0Zsb2F0MzJBcnJheS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9G
bG9hdDMyQXJyYXkuaWRsCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMv
RmxvYXQzMkFycmF5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgQ29tcHV0ZXIsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjcsMTAgKzI3LDEyIEBACiBt
b2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9M0RfQ0FO
VkFTLAorICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RG
dW5jdGlvbiwKKyAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgSGFzTnVtZXJp
Y0luZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2Vu
ZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAg
ICBDdXN0b21Ub0pTCiAgICAgXSBGbG9hdDMyQXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQllURVNfUEVSX0VMRU1FTlQgPSA0OwpJbmRleDogV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbnQ4QXJyYXkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9jYW52YXMvSW50OEFycmF5LmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2h0bWwv
Y2FudmFzL0ludDhBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDEwICsyNywxMiBAQAogbW9kdWxlIGh0bWwgewogICAg
IGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPTNEX0NBTlZBUywKKyAgICAgICAgQ2Fu
QmVDb25zdHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAg
IFY4Q3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAg
ICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVy
dGVyLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwogICAg
IF0gSW50OEFycmF5IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQg
aW50IEJZVEVTX1BFUl9FTEVNRU5UID0gMTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvSW50
MTZBcnJheS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9JbnQxNkFycmF5
LmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL2h0bWwvY2FudmFzL0ludDE2QXJyYXku
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBDb21wdXRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMCArMjYsMTIgQEAK
IG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD0zRF9D
QU5WQVMsCisgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVj
dEZ1bmN0aW9uLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBIYXNOdW1l
cmljSW5kZXhHZXR0ZXIsCiAgICAgICAgIEhhc0N1c3RvbUluZGV4U2V0dGVyLAogICAgICAgICBH
ZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKLSAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAg
ICAgIEN1c3RvbVRvSlMKICAgICBdIEludDE2QXJyYXkgOiBBcnJheUJ1ZmZlclZpZXcgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgQllURVNfUEVSX0VMRU1FTlQgPSAyOwpJbmRleDogV2Vi
Q29yZS9odG1sL2NhbnZhcy9JbnQzMkFycmF5LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvY2FudmFzL0ludDMyQXJyYXkuaWRsCShyZXZpc2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvaHRt
bC9jYW52YXMvSW50MzJBcnJheS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDEwICsyNywxMiBAQAogbW9kdWxlIGh0bWwgewog
ICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPTNEX0NBTlZBUywKKyAgICAgICAg
Q2FuQmVDb25zdHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAg
ICAgIFY4Q3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwK
ICAgICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29u
dmVydGVyLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgQ3VzdG9tVG9KUwog
ICAgIF0gSW50MzJBcnJheSA6IEFycmF5QnVmZmVyVmlldyB7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBCWVRFU19QRVJfRUxFTUVOVCA9IDQ7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFz
L1VpbnQ4QXJyYXkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvVWludDhB
cnJheS5pZGwJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50OEFy
cmF5LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMjcsMTAgKzI3LDEyIEBACiBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9M0RfQ0FOVkFTLAorICAgICAgICBDYW5CZUNvbnN0cnVjdGVk
LAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKKyAgICAgICAgVjhDdXN0b21Db25z
dHJ1Y3RvciwKICAgICAgICAgSGFzTnVtZXJpY0luZGV4R2V0dGVyLAogICAgICAgICBIYXNDdXN0
b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCi0gICAgICAg
IEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDdXN0b21Ub0pTCiAgICAgXSBVaW50OEFycmF5
IDogQXJyYXlCdWZmZXJWaWV3IHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IEJZVEVTX1BF
Ul9FTEVNRU5UID0gMTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCShyZXZp
c2lvbiA2MTA5OSkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yNyw3
ICsyNyw5IEBACiBtb2R1bGUgaHRtbCB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9M0RfQ0FOVkFTLAotICAgICAgICBDdXN0b21Db25zdHJ1Y3RvciwKKyAgICAgICAgQ2Fu
QmVDb25zdHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAg
IFY4Q3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIEhhc051bWVyaWNJbmRleEdldHRlciwKICAg
ICAgICAgSGFzQ3VzdG9tSW5kZXhTZXR0ZXIsCiAgICAgICAgIEdlbmVyYXRlTmF0aXZlQ29udmVy
dGVyLApJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwJKHJldmlzaW9uIDYxMDk5
KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9VaW50MzJBcnJheS5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI3LDcgKzI3LDkgQEAK
IG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD0zRF9D
QU5WQVMsCi0gICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLAorICAgICAgICBDYW5CZUNvbnN0cnVj
dGVkLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlvbiwKKyAgICAgICAgVjhDdXN0b21D
b25zdHJ1Y3RvciwKICAgICAgICAgSGFzTnVtZXJpY0luZGV4R2V0dGVyLAogICAgICAgICBIYXND
dXN0b21JbmRleFNldHRlciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCkluZGV4
OiBXZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9FdmVudFNvdXJjZS5pZGwJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS9wYWdlL0V2ZW50
U291cmNlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgRXJpY3Nzb24gQUIKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMywxMCBAQCBtb2R1bGUgd2luZG93IHsK
IAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUVWRU5UU09VUkNFLAotICAg
ICAgICBDdXN0b21Db25zdHJ1Y3RvciwKKyAgICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKKyAgICAg
ICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAgIENvbnN0cnVjdG9yUGFyYW1ldGVy
cz0xLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBFdmVudFRhcmdldCwK
ICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIEV2ZW50U291cmNlIHsKSW5kZXg6IFdlYkNv
cmUvcGFnZS9XZWJLaXRQb2ludC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1dlYktp
dFBvaW50LmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL3BhZ2UvV2ViS2l0UG9pbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yNSw3ICsyNSwxMiBAQAogCiBtb2R1bGUgd2luZG93IHsKIAot
ICAgIGludGVyZmFjZSBbQ3VzdG9tQ29uc3RydWN0b3JdIFdlYktpdFBvaW50IHsKKyAgICBpbnRl
cmZhY2UgWworICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAorICAgICAgICBDdXN0b21Db25zdHJ1
Y3RGdW5jdGlvbiwKKyAgICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTIsCisgICAgICAgIFY4
Q3VzdG9tQ29uc3RydWN0b3IKKyAgICBdIFdlYktpdFBvaW50IHsKICAgICAgICAgYXR0cmlidXRl
IGZsb2F0IHg7CiAgICAgICAgIGF0dHJpYnV0ZSBmbG9hdCB5OwogICAgIH07CkluZGV4OiBXZWJD
b3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJDb3JlL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzIsNyArMzMsMTAgQEAgbW9kdWxlIHdl
YnNvY2tldHMgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCX1NP
Q0tFVFMsCi0gICAgICAgIEN1c3RvbUNvbnN0cnVjdG9yLCAgICAKKyAgICAgICAgQ2FuQmVDb25z
dHJ1Y3RlZCwKKyAgICAgICAgQ3VzdG9tQ29uc3RydWN0RnVuY3Rpb24sCisgICAgICAgIENvbnN0
cnVjdG9yUGFyYW1ldGVycz0xLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAg
ICBFdmVudFRhcmdldCwKICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIFdlYlNvY2tldCB7
CkluZGV4OiBXZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbAkocmV2aXNpb24gNjEwOTkpCisrKyBXZWJD
b3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMiw3ICszMywxMCBA
QCBtb2R1bGUgdGhyZWFkcyB7CiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25h
bD1TSEFSRURfV09SS0VSUywKLSAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCisgICAgICAgIENh
bkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAorICAgICAg
ICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MiwKKyAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwK
ICAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZl
cnRlciwKICAgICAgICAgR2VuZXJhdGVUb0pTCkluZGV4OiBXZWJDb3JlL3dvcmtlcnMvV29ya2Vy
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAkocmV2aXNpb24g
NjEwOTkpCisrKyBXZWJDb3JlL3dvcmtlcnMvV29ya2VyLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgs
NyArMjgsMTAgQEAgbW9kdWxlIHRocmVhZHMgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9V09SS0VSUywKLSAgICAgICAgQ3VzdG9tQ29uc3RydWN0b3IsCisgICAgICAg
IENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEN1c3RvbUNvbnN0cnVjdEZ1bmN0aW9uLAorICAg
ICAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM9MSwKKyAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3Rv
ciwKICAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIEdlbmVyYXRlVG9K
UwogICAgIF0gV29ya2VyIDogQWJzdHJhY3RXb3JrZXIgewpJbmRleDogV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3Nvci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5p
ZGwJKHJldmlzaW9uIDYxMDk5KQorKysgV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM0LDcgKzM0LDkgQEAgbW9kdWxlIHhtbCB7CiAKICAgICBpbnRlcmZhY2Ug
WwogICAgICAgICBDb25kaXRpb25hbD1YU0xULAotICAgICAgICBDdXN0b21Db25zdHJ1Y3Rvcgor
ICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RGdW5jdGlv
bgorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yCiAgICAgXSBYU0xUUHJvY2Vzc29yIHsKICAg
ICAgICAgCiAgICAgICAgIFtDdXN0b21dIHZvaWQgaW1wb3J0U3R5bGVzaGVldChpbiBOb2RlIHN0
eWxlc2hlZXQpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjExMzIpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNi0xNCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwNTgxCisgICAgICAgIEF1dG8tZ2VuZXJhdGUgbW9zdCBvZiB0aGUgSlMgY29uc3Ry
dWN0b3JzCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWxvb2t1cC1wcmVjZWRl
bmNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVj
dHMtcHJvdG90eXBlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvanMvZ2xvYmFsLWNv
bnN0cnVjdG9ycy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMDYtMTQgIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vY29uc3RydWN0ZWQtb2JqZWN0cy1wcm90b3R5cGVz
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9jb25zdHJ1
Y3RlZC1vYmplY3RzLXByb3RvdHlwZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2MTEyOSkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAgUEFTUyAobmV3IGlubmVy
LlhNTFNlcmlhbGl6ZXIoKSkuaXNJbm5lcgogUEFTUyAobmV3IGlubmVyLlhNTFNlcmlhbGl6ZXIo
KSkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIChuZXcgaW5uZXIuWFBhdGhFdmFs
dWF0b3IoKSkuaXNJbm5lciBpcyB0cnVlCiBQQVNTIChuZXcgaW5uZXIuWFBhdGhFdmFsdWF0b3Io
KSkuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNTIChuZXcgaW5uZXIuWFNMVFByb2Nl
c3NvcigpKS5pc0lubmVyIGlzIHRydWUKK1BBU1MgKG5ldyBpbm5lci5YU0xUUHJvY2Vzc29yKCkp
LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5
cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA2
MTEyOSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsNiBAQCBQQVNTIERPTVdpbmRv
dyBmcm9tIGlubmVyCiBQQVNTIERPTVdpbmRvd1Byb3RvdHlwZSBmcm9tIGlubmVyLmRvY3VtZW50
LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5fX3Byb3RvX18KIFBB
U1MgRG9jdW1lbnRQcm90b3R5cGUgZnJvbSBpbm5lci5kb2N1bWVudC5mb3Jtcy50ZXN0Rm9ybS4w
Lm93bmVyRG9jdW1lbnQuX19wcm90b19fLl9fcHJvdG9fXwogUEFTUyBFbGVtZW50UHJvdG90eXBl
IGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5fX3Byb3RvX18uX19wcm90b19f
Ll9fcHJvdG9fXwotUEFTUyBFdmVudFNvdXJjZUNvbnRydWN0b3IgZnJvbSBpbm5lci5kb2N1bWVu
dC5mb3Jtcy50ZXN0Rm9ybS4wLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuRXZlbnRTb3VyY2UK
IEZBSUwgRnVuY3Rpb24gZnJvbSBpbm5lci5kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZS5jb25z
dHJ1Y3RvcgogUEFTUyBIVE1MQW5jaG9yRWxlbWVudCBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1z
LnRlc3RGb3JtLjAucGFyZW50Tm9kZS5maXJzdEVsZW1lbnRDaGlsZAogUEFTUyBIVE1MQW5jaG9y
RWxlbWVudENvbnN0cnVjdG9yIGZyb20gaW5uZXIuZG9jdW1lbnQuZm9ybXMudGVzdEZvcm0uMC5w
YXJlbnROb2RlLmZpcnN0RWxlbWVudENoaWxkLmNvbnN0cnVjdG9yCkBAIC0yMDgsNyArMjA3LDYg
QEAgUEFTUyBXZWJLaXRDU1NLZXlmcmFtZVJ1bGVQcm90b3R5cGUgZnJvbQogUEFTUyBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlIGZyb20gaW5uZXIuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImR1bW15
U3R5bGUiKS5zaGVldC5jc3NSdWxlcy42CiBQQVNTIFdlYktpdENTU0tleWZyYW1lc1J1bGVDb25z
dHJ1Y3RvciBmcm9tIGlubmVyLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkdW1teVN0eWxlIiku
c2hlZXQuY3NzUnVsZXMuNi5jb25zdHJ1Y3RvcgogUEFTUyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
UHJvdG90eXBlIGZyb20gaW5uZXIuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImR1bW15U3R5bGUi
KS5zaGVldC5jc3NSdWxlcy42Ll9fcHJvdG9fXwotUEFTUyBYU0xUUHJvY2Vzc29yQ29uc3J1Y3Rv
ciBmcm9tIGlubmVyLmRvY3VtZW50LmZvcm1zLnRlc3RGb3JtLjAub3duZXJEb2N1bWVudC5kZWZh
dWx0Vmlldy5YU0xUUHJvY2Vzc29yCiBOZXZlciBmb3VuZCBBdWRpbwogTmV2ZXIgZm91bmQgQmxv
YgogTmV2ZXIgZm91bmQgQ0RBVEFTZWN0aW9uCkBAIC0yMjYsNiArMjI0LDcgQEAgTmV2ZXIgZm91
bmQgRG9jdW1lbnRUeXBlCiBOZXZlciBmb3VuZCBFbGVtZW50CiBOZXZlciBmb3VuZCBFbnRpdHkK
IE5ldmVyIGZvdW5kIEVudGl0eVJlZmVyZW5jZQorTmV2ZXIgZm91bmQgRXZlbnRTb3VyY2UKIE5l
dmVyIGZvdW5kIEZpbGUKIE5ldmVyIGZvdW5kIEZpbGVMaXN0CiBOZXZlciBmb3VuZCBGb3JtRGF0
YQpAQCAtNDI2LDYgKzQyNSw3IEBAIE5ldmVyIGZvdW5kIFhNTEh0dHBSZXF1ZXN0VXBsb2FkCiBO
ZXZlciBmb3VuZCBYTUxTZXJpYWxpemVyCiBOZXZlciBmb3VuZCBYUGF0aEV2YWx1YXRvcgogTmV2
ZXIgZm91bmQgWFBhdGhSZXN1bHQKK05ldmVyIGZvdW5kIFhTTFRQcm9jZXNzb3IKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAt
cHJlY2VkZW5jZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYxMTI5KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTMyNCw4ICszMjQsOCBAQCBQQVNTIHdpblsnWFBhdGhFeGNlcHRpb24n
XSA9PSAnW29iamVjdCBYCiBQQVNTIHdpblsnWFBhdGhFeGNlcHRpb24nXSA9PSAnW29iamVjdCBY
UGF0aEV4Y2VwdGlvbkNvbnN0cnVjdG9yXScgaXMgdHJ1ZQogUEFTUyB3aW5bJ1hQYXRoUmVzdWx0
J10gPT0gJ1tvYmplY3QgWFBhdGhSZXN1bHRDb25zdHJ1Y3Rvcl0nIGlzIHRydWUKIFBBU1Mgd2lu
WydYUGF0aFJlc3VsdCddID09ICdbb2JqZWN0IFhQYXRoUmVzdWx0Q29uc3RydWN0b3JdJyBpcyB0
cnVlCi1QQVNTIHdpblsnWFNMVFByb2Nlc3NvciddID09ICdbb2JqZWN0IFhTTFRQcm9jZXNzb3JD
b25zcnVjdG9yXScgaXMgdHJ1ZQotUEFTUyB3aW5bJ1hTTFRQcm9jZXNzb3InXSA9PSAnW29iamVj
dCBYU0xUUHJvY2Vzc29yQ29uc3J1Y3Rvcl0nIGlzIHRydWUKK1BBU1Mgd2luWydYU0xUUHJvY2Vz
c29yJ10gPT0gJ1tvYmplY3QgWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yXScgaXMgdHJ1ZQorUEFT
UyB3aW5bJ1hTTFRQcm9jZXNzb3InXSA9PSAnW29iamVjdCBYU0xUUHJvY2Vzc29yQ29uc3RydWN0
b3JdJyBpcyB0cnVlCiBQQVNTIHdpblsnb25sb2FkJ10gaXMgbnVsbAogUEFTUyB3aW5bJ29ubG9h
ZCddIGlzIG51bGwKIFBBU1Mgd2luWydmcmFtZXMnXSA9PSAnW29iamVjdCBET01XaW5kb3ddJyBp
cyB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYxMTI5KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtODk4LDcgKzg5OCwxMCBAQCB3aW5kb3cuRXZlbnRFeGNlcHRpb24g
W29iamVjdCBFdmVudEV4Y2VwCiB3aW5kb3cuRXZlbnRFeGNlcHRpb24uVU5TUEVDSUZJRURfRVZF
TlRfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5FdmVudEV4Y2VwdGlvbi5wcm90b3R5cGUgW29i
amVjdCBFdmVudEV4Y2VwdGlvblByb3RvdHlwZV0KIHdpbmRvdy5FdmVudEV4Y2VwdGlvbi5wcm90
b3R5cGUuVU5TUEVDSUZJRURfRVZFTlRfVFlQRV9FUlIgW251bWJlcl0KLXdpbmRvdy5FdmVudFNv
dXJjZSBbb2JqZWN0IEV2ZW50U291cmNlQ29udHJ1Y3Rvcl0KK3dpbmRvdy5FdmVudFNvdXJjZSBb
b2JqZWN0IEV2ZW50U291cmNlQ29uc3RydWN0b3JdCit3aW5kb3cuRXZlbnRTb3VyY2UuQ0xPU0VE
IFtudW1iZXJdCit3aW5kb3cuRXZlbnRTb3VyY2UuQ09OTkVDVElORyBbbnVtYmVyXQord2luZG93
LkV2ZW50U291cmNlLk9QRU4gW251bWJlcl0KIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUg
W29iamVjdCBFdmVudFNvdXJjZVByb3RvdHlwZV0KIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5
cGUuQ0xPU0VEIFtudW1iZXJdCiB3aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLkNPTk5FQ1RJ
TkcgW251bWJlcl0KQEAgLTE5MDgsNiArMTkxMSw5IEBAIHdpbmRvdy5XZWJLaXRQb2ludC5wcm90
b3R5cGUgW29iamVjdCBXZWIKIHdpbmRvdy5XZWJLaXRUcmFuc2l0aW9uRXZlbnQgW29iamVjdCBX
ZWJLaXRUcmFuc2l0aW9uRXZlbnRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5XZWJLaXRUcmFuc2l0aW9u
RXZlbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FdmVudC5wcm90b3R5cGVd
CiB3aW5kb3cuV2ViU29ja2V0IFtvYmplY3QgV2ViU29ja2V0Q29uc3RydWN0b3JdCit3aW5kb3cu
V2ViU29ja2V0LkNMT1NFRCBbbnVtYmVyXQord2luZG93LldlYlNvY2tldC5DT05ORUNUSU5HIFtu
dW1iZXJdCit3aW5kb3cuV2ViU29ja2V0Lk9QRU4gW251bWJlcl0KIHdpbmRvdy5XZWJTb2NrZXQu
cHJvdG90eXBlIFtvYmplY3QgV2ViU29ja2V0UHJvdG90eXBlXQogd2luZG93LldlYlNvY2tldC5w
cm90b3R5cGUuQ0xPU0VEIFtudW1iZXJdCiB3aW5kb3cuV2ViU29ja2V0LnByb3RvdHlwZS5DT05O
RUNUSU5HIFtudW1iZXJdCkBAIC0xOTk4LDcgKzIwMDQsNyBAQCB3aW5kb3cuWFBhdGhSZXN1bHQu
cHJvdG90eXBlLlVOT1JERVJFRF9OCiB3aW5kb3cuWFBhdGhSZXN1bHQucHJvdG90eXBlLlVOT1JE
RVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgW251bWJlcl0KIHdpbmRvdy5YUGF0aFJlc3VsdC5wcm90
b3R5cGUuaXRlcmF0ZU5leHQgW2Z1bmN0aW9uXQogd2luZG93LlhQYXRoUmVzdWx0LnByb3RvdHlw
ZS5zbmFwc2hvdEl0ZW0gW2Z1bmN0aW9uXQotd2luZG93LlhTTFRQcm9jZXNzb3IgW29iamVjdCBY
U0xUUHJvY2Vzc29yQ29uc3J1Y3Rvcl0KK3dpbmRvdy5YU0xUUHJvY2Vzc29yIFtvYmplY3QgWFNM
VFByb2Nlc3NvckNvbnN0cnVjdG9yXQogd2luZG93LlhTTFRQcm9jZXNzb3IucHJvdG90eXBlIFtv
YmplY3QgWFNMVFByb2Nlc3NvclByb3RvdHlwZV0KIHdpbmRvdy5YU0xUUHJvY2Vzc29yLnByb3Rv
dHlwZS5jbGVhclBhcmFtZXRlcnMgW2Z1bmN0aW9uXQogd2luZG93LlhTTFRQcm9jZXNzb3IucHJv
dG90eXBlLmdldFBhcmFtZXRlciBbZnVuY3Rpb25dCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDYx
MTI5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBQQVNTIEVudGl0eS50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IEVudGl0CiBQQVNTIEVudGl0eVJlZmVyZW5jZS50b1N0cmluZygpIGlz
ICdbb2JqZWN0IEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yXScKIFBBU1MgRXZlbnQudG9TdHJp
bmcoKSBpcyAnW29iamVjdCBFdmVudENvbnN0cnVjdG9yXScKIFBBU1MgRXZlbnRFeGNlcHRpb24u
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBFdmVudEV4Y2VwdGlvbkNvbnN0cnVjdG9yXScKK1BBU1Mg
RXZlbnRTb3VyY2UudG9TdHJpbmcoKSBpcyAnW29iamVjdCBFdmVudFNvdXJjZUNvbnN0cnVjdG9y
XScKIFBBU1MgRmlsZS50b1N0cmluZygpIGlzICdbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl0nCiBQ
QVNTIEZpbGVMaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRmlsZUxpc3RDb25zdHJ1Y3Rvcl0n
CiBQQVNTIEZvcm1EYXRhLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRm9ybURhdGFDb25zdHJ1Y3Rv
cl0nCkBAIC0zMDAsNiArMzAxLDcgQEAgUEFTUyBYTUxTZXJpYWxpemVyLnRvU3RyaW5nKCkgaXMg
J1tvYmplYwogUEFTUyBYUGF0aEV2YWx1YXRvci50b1N0cmluZygpIGlzICdbb2JqZWN0IFhQYXRo
RXZhbHVhdG9yQ29uc3RydWN0b3JdJwogUEFTUyBYUGF0aEV4Y2VwdGlvbi50b1N0cmluZygpIGlz
ICdbb2JqZWN0IFhQYXRoRXhjZXB0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBYUGF0aFJlc3VsdC50
b1N0cmluZygpIGlzICdbb2JqZWN0IFhQYXRoUmVzdWx0Q29uc3RydWN0b3JdJworUEFTUyBYU0xU
UHJvY2Vzc29yLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9y
XScKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQo=
</data>
<flag name="review"
          id="45093"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>