<?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>129269</bug_id>
          
          <creation_ts>2014-02-24 13:01:14 -0800</creation_ts>
          <short_desc>Prune dead code for Web Inspector canvas instrumentation.</short_desc>
          <delta_ts>2014-02-24 15:20:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>berto</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>984021</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-24 13:01:14 -0800</bug_when>
    <thetext>Prune dead code for Web Inspector canvas instrumentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984024</commentid>
    <comment_count>1</comment_count>
      <attachid>225087</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-24 13:05:46 -0800</bug_when>
    <thetext>Created attachment 225087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984090</commentid>
    <comment_count>2</comment_count>
      <attachid>225087</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 15:20:00 -0800</bug_when>
    <thetext>Comment on attachment 225087
Patch

Clearing flags on attachment: 225087

Committed r164614: &lt;http://trac.webkit.org/changeset/164614&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984091</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 15:20:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225087</attachid>
            <date>2014-02-24 13:05:46 -0800</date>
            <delta_ts>2014-02-24 15:20:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129269.diff</filename>
            <type>text/plain</type>
            <size>72485</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjdhNWE4ZS4uZjIxOGVmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE1NTgsMTAgKzE1NTgsOCBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5z
cGVjdG9yL0NvbW1hbmRMaW5lQVBJTW9kdWxlLmNwcAogICAgIGluc3BlY3Rvci9ET01FZGl0b3Iu
Y3BwCiAgICAgaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKLSAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
Ci0gICAgaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JDbGllbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckNvdW50ZXJzLmNwcApAQCAtMzAyNywxNyArMzAyNSw2
IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RF
UklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaCkK
IAogCi0jIEdlbmVyYXRlIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmgKLWFkZF9j
dXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9
L0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmggJHtERVJJVkVEX1NPVVJDRVNfV0VC
Q09SRV9ESVJ9L0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLm1pbi5qcwotICAgIE1B
SU5fREVQRU5ERU5DWSBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2Uu
anMKLSAgICBERVBFTkRTICR7V2ViQ29yZV9JTlNQRUNUT1JfU0NSSVBUU19ESVJ9L3h4ZC5wbCAk
e1dlYkNvcmVfSU5TUEVDVE9SX1NDUklQVFNfRElSfS9qc21pbi5weQotICAgIENPTU1BTkQgJHtQ
WVRIT05fRVhFQ1VUQUJMRX0gJHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0vanNtaW4u
cHkgPCAke1dFQkNPUkVfRElSfS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVT
b3VyY2UuanMgPiAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGVTb3VyY2UubWluLmpzCi0gICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0g
JHtXZWJDb3JlX0lOU1BFQ1RPUl9TQ1JJUFRTX0RJUn0veHhkLnBsIEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlU291cmNlX2pzICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9JbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5taW4uanMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09S
RV9ESVJ9L0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmgKLSAgICBWRVJCQVRJTSkK
LWxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuaCkKLQotCiBNQUtFX0hBU0hfVE9P
TFMoJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vQ29sb3JEYXRhKQogbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9Db2xvckRhdGEuY3BwKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzNmYzVmNC4uYjE3N2YwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDE0LTAyLTI0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAg
ICAgICBQcnVuZSBkZWFkIGNvZGUgZm9yIFdlYiBJbnNwZWN0b3IgY2FudmFzIGluc3RydW1lbnRh
dGlvbi4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyOTI2OT4KKworICAgICAgICBU
aGlzIHdhcyBsZWZ0b3ZlciBjb2RlIGZyb20gQ2hyb21pdW0ncyBpbnNwZWN0b3IuIEl0J3Mgbm90
IHVzZWQgYnkKKyAgICAgICAgdG9kYXkncyBXZWJLaXQgaW5zcGVjdG9yLgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmg6IFJlbW92
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb24uaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEJlZ2luRnJhbWUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudEltcGwpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2Fk
SW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3RydW1lbnRpbmdBZ2VudHM6Okluc3RydW1lbnRpbmdBZ2VudHMpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zdHJ1bWVudGluZ0FnZW50czo6cmVzZXQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmg6CisKIDIwMTQtMDItMjQgIFJlbmF0YSBIb2RvdmFu
ICA8cmhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KICAgICAgICAgCiAgICAg
ICAgIEdldCByaWQgb2YgdGhlIHVudXNlZCAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVw
YWludCByZWxhdGVkIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
YzM5ZDQwOS4uMGM0M2M4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMTM5
LDEzICsxMTM5LDYgQEAgQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuaCA6IENvbW1hbmRMaW5l
QVBJTW9kdWxlU291cmNlLmpzCiAJcGVybCAkKEluc3BlY3RvclNjcmlwdHMpL3h4ZC5wbCBDb21t
YW5kTGluZUFQSU1vZHVsZVNvdXJjZV9qcyAuL0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLm1p
bi5qcyBDb21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oCiAJcm0gLWYgLi9Db21tYW5kTGluZUFQ
SU1vZHVsZVNvdXJjZS5taW4uanMKIAotYWxsIDogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVT
b3VyY2UuaAotCi1JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5oIDogSW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanMKLQlweXRob24gJChJbnNwZWN0b3JTY3JpcHRzKS9q
c21pbi5weSA8JChXZWJDb3JlKS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVT
b3VyY2UuanMgPiAuL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLm1pbi5qcwotCXBl
cmwgJChJbnNwZWN0b3JTY3JpcHRzKS94eGQucGwgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVT
b3VyY2VfanMgLi9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5taW4uanMgSW5qZWN0
ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuaAotCXJtIC1mIC4vSW5qZWN0ZWRTY3JpcHRDYW52
YXNNb2R1bGVTb3VyY2UubWluLmpzCi0KIC1pbmNsdWRlICQoSlNfRE9NX0hFQURFUlM6Lmg9LmRl
cCkKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
OGVkMWNjMy4uYTAwYjk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTM3OSwxMCArMzc5LDYg
QEAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5oOiAk
KFdlYkNvcmUpL2luc3BlY3Rvci9Db21tYW4KIAkkKEFNX1ZfR0VOKSQoUFlUSE9OKSAkKElOU1BF
Q1RPUl9TQ1JJUFRTX0RJUikvanNtaW4ucHkgPCQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvbW1hbmRM
aW5lQVBJTW9kdWxlU291cmNlLmpzID4gJChHRU5TT1VSQ0VTX1dFQkNPUkUpL0NvbW1hbmRMaW5l
QVBJTW9kdWxlU291cmNlLm1pbi5qcwogCSQoQU1fVl9HRU4pJChQRVJMKSAkKElOU1BFQ1RPUl9T
Q1JJUFRTX0RJUikveHhkLnBsIENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlX2pzICQoR0VOU09V
UkNFU19XRUJDT1JFKS9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5taW4uanMgJChHRU5TT1VS
Q0VTX1dFQkNPUkUpL0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmgKIAotRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5oOiAkKFdlYkNvcmUp
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5qcwotCSQoQU1fVl9H
RU4pJChQWVRIT04pICQoSU5TUEVDVE9SX1NDUklQVFNfRElSKS9qc21pbi5weSA8JChXZWJDb3Jl
KS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanMgPiAkKEdFTlNP
VVJDRVNfV0VCQ09SRSkvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UubWluLmpzCi0J
JChBTV9WX0dFTikkKFBFUkwpICQoSU5TUEVDVE9SX1NDUklQVFNfRElSKS94eGQucGwgSW5qZWN0
ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2VfanMgJChHRU5TT1VSQ0VTX1dFQkNPUkUpL0luamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLm1pbi5qcyAkKEdFTlNPVVJDRVNfV0VCQ09SRSkv
SW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuaAotCiBpZiBFTkFCTEVfV0VCX0FVRElP
CiAjIEluc3RhbGxpbmcgSFJURiBkYXRhYmFzZSB3YXYgZmlsZXMKIGF1ZGlvZGlyID0gJHtkYXRh
ZGlyfS93ZWJraXRndGstQFdFQktJVEdUS19BUElfVkVSU0lPTkAvcmVzb3VyY2VzL2F1ZGlvLwpA
QCAtNzAxLDcgKzY5Nyw2IEBAIEVYVFJBX0RJU1QgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL2NyZWF0ZS1odG1sLWVudGl0eS10YWJsZSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTEVudGl0eU5hbWVzLmluIFwKIAlTb3VyY2UvV2ViQ29yZS9pY3UvTElDRU5TRSBc
Ci0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291
cmNlLmpzIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheVBhZ2Uu
aHRtbCBcCiAJU291cmNlL1dlYkNvcmUvTElDRU5TRS1BUFBMRSBcCiAJU291cmNlL1dlYkNvcmUv
TElDRU5TRS1MR1BMLTIgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTdhNjBj
YS4uZTU1ZTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMCw3ICsyMCw2
IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9I
VE1MRW50aXR5VGFibGUuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmggXAotCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5UGFnZS5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0luc3BlY3RvcldlYkJhY2tlbmREaXNwYXRjaGVycy5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSW5zcGVjdG9yV2ViQmFja2VuZERpc3BhdGNoZXJzLmggXApAQCAtMzc1
NiwxNSArMzc1NSwxMCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9ET01FZGl0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNo
U3VwcG9ydC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQu
aCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBcCi0J
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0luc3RydW1lbnRhdGlvbi5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IGFkNWYxNDUu
LmFjYTQyYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagpAQCAtMTc0NjcsMTQgKzE3NDY3LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWls
ZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUu
Y3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWls
ZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24p
fCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JBbGxJbk9uZS5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTc0OTEsMTQgKzE3NDgzLDYgQEAKICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRl
ZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1By
b2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+
Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yQ2FudmFzQWdl
bnQuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwk
KFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9t
QnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0
aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JDbGllbnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzIn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25k
aXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0xNzkxOSw3ICsxNzkwMyw2IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hp
dGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSFRNTEVsZW1lbnRGYWN0b3J5
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SFRNTEVsZW1lbnRUeXBlSGVscGVycy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEhUTUxOYW1lcy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUp
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
U291cmNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJbnNwZWN0b3JXZWJCYWNrZW5kRGlzcGF0Y2hlcnMu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xJ
bnNwZWN0b3JXZWJGcm9udGVuZERpc3BhdGNoZXJzLmgiIC8+CkBAIC0yMDc2MSwxMCArMjA3NDQs
NyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXENvbW1hbmRMaW5lQVBJ
TW9kdWxlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcRE9NRWRp
dG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcRE9NUGF0Y2hT
dXBwb3J0LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5qZWN0
ZWRTY3JpcHRDYW52YXNNb2R1bGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIgLz4KLSAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JDYW52YXNBZ2VudC5oIiAvPgotICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNhbnZhc0luc3RydW1l
bnRhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckNsaWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXElu
c3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JDb250cm9sbGVyLmgiIC8+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggYzU1ZjAyNy4uYWEzMzU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNDcyOCwxOCArNDcyOCwxMiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXERPTVBhdGNoU3VwcG9ydC5j
cHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
LSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5jcHAiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JB
bGxJbk9uZS5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9G
aWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNw
ZWN0b3JcSW5zcGVjdG9yQ2xpZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTIyNjYsMTggKzEyMjYwLDkgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxET01QYXRjaFN1cHBvcnQuaCI+CiAgICAgICA8
RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgiPgot
ICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckNhbnZh
c0FnZW50LmgiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JDYW52
YXNJbnN0cnVtZW50YXRpb24uaCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgot
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXElu
c3BlY3RvckNsaWVudC5oIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkBAIC0xMjkyOCw5ICsxMjkxMyw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSFRNTE5hbWVzLmgiPgogICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEluamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlU291cmNlLmgiPgotICAgICAgPEZpbHRlcj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgot
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEluc3BlY3Rvck92ZXJsYXlQYWdlLmgiPgogICAgICAgPEZpbHRlcj5EZXJpdmVk
U291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgyZmMxN2YuLjNhOTE4YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTQxMjksOCArNDEyOSw2IEBACiAJCUFBNUYzQjhEMTZDQzMzRDEwMDQ1NUVCMCAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUFFMjdCNzUxNkNCRkMwRDAwNjIzMDQzIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXJNb2NrLmggKi87IH07CiAJCUFBNUYzQjhGMTZDQzRCMzkwMDQ1NUVC
MCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUUyN0I3NDE2Q0JGQzBEMDA2MjMwNDMgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2suY3BwICovOyB9OwogCQlBQTVGM0I5MTE2Q0M1
QkVCMDA0NTVFQjAgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE1RjNCOTAxNkNDNUJFQjAwNDU1RUIw
IC8qIENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKLQkJQUE3MzE4M0UxNTkyNTVCOTAw
QTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBNzMxODNDMTU5MjU1QjkwMEE5M0U2RSAv
KiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgKi87IH07Ci0JCUFBNzMxODNGMTU5MjU1
QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZF
IC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmggKi87IH07CiAJCUFBN0ZFRUE0MTZBNEU2
RjMwMDRDMEMzMyAvKiBKU1NwZWVjaFN5bnRoZXNpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUU5QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNT
cGVlY2hTeW50aGVzaXMuY3BwICovOyB9OwogCQlBQTdGRUVBNjE2QTRFNkYzMDA0QzBDMzMgLyog
SlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUE3RkVFOUUxNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAqLzsgfTsKIAkJQUE3RkVFQTcxNkE0RTZGMzAwNEMwQzMz
IC8qIEpTU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQTdGRUU5RjE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVl
Y2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLzsgfTsKQEAgLTQxNDUsOSArNDE0Myw2IEBACiAJCUFB
QTcyOEY5MTZEMUQ4QkMwMEQzQkJDNiAvKiBBWE9iamVjdENhY2hlSU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUFBNzI4RjMxNkQxRDhCQzAwRDNC
QkM2IC8qIEFYT2JqZWN0Q2FjaGVJT1MubW0gKi87IH07CiAJCUFBQzA4Q0VGMTVGOTMzRDYwMEYx
RTE4OCAvKiBTVkdJbWFnZUNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQUFDMDhDRUQxNUY5MzNENjAwRjFFMTg4IC8qIFNWR0ltYWdl
Q2hyb21lQ2xpZW50LmggKi87IH07CiAJCUFBQzA4Q0YzMTVGOTQxRkQwMEYxRTE4OCAvKiBBY2Nl
c3NpYmlsaXR5U1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQUFDMDhDRjExNUY5NDFGQzAwRjFFMTg4IC8qIEFjY2Vzc2liaWxpdHlTVkdSb290
LmggKi87IH07Ci0JCUFBRDc2NkVCMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JDYW52YXNB
Z2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
QUQ3NjZFODE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwICovOyB9
OwotCQlBQUQ3NjZFQzE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFBRDc2NkU5MTU3
RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JDYW52YXNBZ2VudC5oICovOyB9OwotCQlBQUQ3NjZF
RDE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUQ3NjZFQTE1N0U1
MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJ
CUFBRjVCN0I3MTUyNEI2QzUwMDA0Q0I0OSAvKiBXZWJTb2NrZXRGcmFtZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQUY1QjdCMTE1MjRCNEJEMDAw
NENCNDkgLyogV2ViU29ja2V0RnJhbWUuY3BwICovOyB9OwogCQlBQjIzQTMyNzA5QkJBN0QwMDA2
N0NDNTMgLyogQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUIyM0EzMjUwOUJCQTdEMDAwNjdDQzUzIC8qIEJl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCAqLzsgfTsKIAkJQUIyM0EzMjgwOUJCQTdEMDAwNjdD
QzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQjIzQTMyNjA5QkJBN0QwMDA2N0NDNTMgLyogQmVmb3Jl
VGV4dEluc2VydGVkRXZlbnQuaCAqLzsgfTsKQEAgLTExMTQ3LDggKzExMTQyLDYgQEAKIAkJQUE0
QzNBNzQwQjJCMTY3OTAwMjMzNEEyIC8qIElubGluZVN0eWxlU2hlZXRPd25lci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lU3R5bGVTaGVldE93bmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUE0QzNBNzUwQjJCMTY3OTAwMjMzNEEy
IC8qIElubGluZVN0eWxlU2hlZXRPd25lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5saW5lU3R5bGVTaGVldE93bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUFBNUYzQjkwMTZDQzVCRUIwMDQ1NUVCMCAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVy
LmZyYW1ld29yazsgbmFtZSA9IENvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVGb3VuZGF0aW9uLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJQUE3MzE4M0MxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJQUE3MzE4M0QxNTkyNTVCOTAwQTkzRTZFIC8qIEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUFBN0VBMEFB
MTc1NTdCOTAwMERGNDY0MyAvKiBVSVJlcXVlc3RFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gVUlSZXF1ZXN0RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
QTdGRUU5QzE2QTRFNkYzMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTdGRUU5RTE2QTRFNkYzMDA0QzBDMzMgLyogSlNT
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTExNTYsOCArMTExNDksNiBAQAogCQlBQTdGRUVBMDE2QTRFNkYzMDA0
QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1NwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQUE3RkVFQTExNkE0RTZGMzAwNEMwQzMzIC8qIEpTU3BlZWNoU3lu
dGhlc2lzVm9pY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hT
eW50aGVzaXNWb2ljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQTdGRUVBQzE2
QTRFNzRCMDA0QzBDMzMgLyogSlNTcGVlY2hTeW50aGVzaXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNTcGVlY2hTeW50aGVzaXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQUE5MDMwRkUxNTdFMTZBMDAwMjc2MjQ3IC8qIEluamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlU291cmNlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
SW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUFBOTEyNzUwMTU3RTM1QTUwMDQ1NEU1NCAvKiBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZVNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBQUE0RkFDRTE3NUQ1Q0IzMDA3NDM4NzMgLyogSlNVSVJlcXVlc3RFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1VJUmVxdWVzdEV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUFBQTRGQUNGMTc1RDVDQjMwMDc0Mzg3MyAvKiBKU1VJUmVxdWVz
dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVUlSZXF1
ZXN0RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUE3MjhGMDE2RDFE
OEJDMDBEM0JCQzYgLyogQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlPYmplY3RJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTE2Nyw5ICsxMTE1OCw2IEBACiAJCUFBQzA4Q0VE
MTVGOTMzRDYwMEYxRTE4OCAvKiBTVkdJbWFnZUNocm9tZUNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZUNocm9tZUNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBQUMwOENGMDE1Rjk0MUZDMDBGMUUxODggLyogQWNjZXNzaWJpbGl0
eVNWR1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNz
aWJpbGl0eVNWR1Jvb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUMwOENG
MTE1Rjk0MUZDMDBGMUUxODggLyogQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVNWR1Jvb3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQUFENzY2RTgxNTdFNTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvckNh
bnZhc0FnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQUFENzY2
RTkxNTdFNTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0FnZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUFBRDc2NkVBMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JD
YW52YXNJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUFBRTI3Qjc0MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyTW9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpemVyTW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUFBRTI3Qjc1MTZDQkZDMEQwMDYyMzA0MyAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTW9j
ay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpemVyTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBQUUzNzU1RDE3NDI5
QkNDMDA2MjAwQzIgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJJ
T1MubW07IHBhdGggPSBpb3MvUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplcklPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NzY2LDcgKzE0NzU0LDYgQEAKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTU4NEZFMjUxODYzN0RBQjAwODQzQjEwIC8q
IENvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmggKi8sCi0JCQkJQUE5MTI3NTAxNTdFMzVBNTAw
NDU0RTU0IC8qIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmggKi8sCiAJCQkJNEY3
MDdBOTcxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvcldlYkJhY2tlbmREaXNwYXRjaGVycy5j
cHAgKi8sCiAJCQkJNEY3MDdBOTgxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvcldlYkJhY2tl
bmREaXNwYXRjaGVycy5oICovLAogCQkJCTRGNEY1RkZBMTFDQkQyRDIwMEExODZCRiAvKiBJbnNw
ZWN0b3JXZWJGcm9udGVuZERpc3BhdGNoZXJzLmNwcCAqLywKQEAgLTE0ODAwLDE0ICsxNDc4Nyw4
IEBACiAJCQkJN0FBQkEyNTgxNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5oICovLAogCQkJ
CTdBNTQ4ODE2MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuY3BwICovLAogCQkJ
CTdBNTQ4ODE1MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuaCAqLywKLQkJCQlB
QTczMTgzQzE1OTI1NUI5MDBBOTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3Bw
ICovLAotCQkJCUFBNzMxODNEMTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5oICovLAotCQkJCUFBOTAzMEZFMTU3RTE2QTAwMDI3NjI0NyAvKiBJbmplY3RlZFNj
cmlwdENhbnZhc01vZHVsZVNvdXJjZS5qcyAqLywKIAkJCQlCODg1RThEMjExRTA2REQyMDA5RkZC
RjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCAqLywKIAkJCQlCODg1RThE
MzExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmggKi8s
Ci0JCQkJQUFENzY2RTgxNTdFNTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50LmNw
cCAqLywKLQkJCQlBQUQ3NjZFOTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzQWdl
bnQuaCAqLywKLQkJCQlBQUQ3NjZFQTE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFz
SW5zdHJ1bWVudGF0aW9uLmggKi8sCiAJCQkJN0ExRjJCNTExMjZDNjFCMjAwMDZBN0U2IC8qIElu
c3BlY3RvckNsaWVudC5jcHAgKi8sCiAJCQkJMUM4MUI5NTgwRTk3MzMwODAwMjY2RTA3IC8qIElu
c3BlY3RvckNsaWVudC5oICovLAogCQkJCUYzRjVDRjEwMTJFRDgxQTgwMDg0QzU2OSAvKiBJbnNw
ZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggKi8sCkBAIC0yMzkwMiw3ICsyMzg4Myw2IEBA
CiAJCQkJQkUxNkM1OTUxN0NGRTE3MjAwODUyQzA0IC8qIEluYmFuZFdlYlZUVFRleHRUcmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91
dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUQ3MTlGODE4MTEwNkUwMDAxNkRD
NTEgLyogSW5kZXhlZERCLmggaW4gSGVhZGVycyAqLywKLQkJCQlBQTczMTgzRjE1OTI1NUI5MDBB
OTNFNkUgLyogSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4Q0ZGNUU1MEExNTVBMDUwMDBBNDIzNCAvKiBJbmxpbmVCb3guaCBpbiBIZWFkZXJzICovLAog
CQkJCUI1N0NCNTJFMTgyQTNFRkMwMDc5QTY0NyAvKiBJbmxpbmVFbGVtZW50Qm94LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBOENGRjVFMzBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lRmxvd0JveC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMzkxOSw4ICsyMzg5OSw2IEBACiAJCQkJOTMzMDlERjAwOTlF
NjQ5MjAwNTZFNTgxIC8qIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5REYyMDk5RTY0OTIwMDU2RTU4MSAvKiBJbnNlcnRUZXh0Q29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjg4NUU4RDUxMUUwNkREMjAwOUZGQkY0IC8qIEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQUFENzY2RUMx
NTdFNTAyRjAwRTg1NDIzIC8qIEluc3BlY3RvckNhbnZhc0FnZW50LmggaW4gSGVhZGVycyAqLywK
LQkJCQlBQUQ3NjZFRDE1N0U1MDJGMDBFODU0MjMgLyogSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVu
dGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzgxQjk1QzBFOTczMzA4MDAyNjZFMDcgLyog
SW5zcGVjdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGM0Y1Q0YxMTEyRUQ4MUE4MDA4
NEM1NjkgLyogSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUM4MUI5NUEwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMjcyNjYsNyArMjcyNDQsNiBAQAogCQkJCTA3MzY3REUwMTcyQ0E2
ODIwMEQ4NjFCOSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZGT2JqQy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUJFMTZDNTk0MTdDRkUxNzIwMDg1MkMwNCAvKiBJbmJhbmRXZWJWVFRU
ZXh0VHJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVC
IC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUFBNzMxODNF
MTU5MjU1QjkwMEE5M0U2RSAvKiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOENGRjVFNjBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUI1N0NCNTJEMTgyQTNFRUQwMDc5QTY0NyAvKiBJbmxpbmVFbGVt
ZW50Qm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNUU0MEExNTVBMDUwMDBBNDIzNCAv
KiBJbmxpbmVGbG93Qm94LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjcyODIsNyArMjcyNTksNiBA
QAogCQkJCTkzMzA5REVGMDk5RTY0OTIwMDU2RTU4MSAvKiBJbnNlcnRQYXJhZ3JhcGhTZXBhcmF0
b3JDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REYxMDk5RTY0OTIwMDU2RTU4
MSAvKiBJbnNlcnRUZXh0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCODg1RThENDEx
RTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUFBRDc2NkVCMTU3RTUwMkYwMEU4NTQyMyAvKiBJbnNwZWN0b3JDYW52
YXNBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTFGMkI1MjEyNkM2MUIyMDAwNkE3RTYg
LyogSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDODFCOTVCMEU5NzMz
MDgwMDI2NkUwNyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUYzMjVBNDBBMTRFRTM2RkEwMDczMjRFMiAvKiBJbnNwZWN0b3JDb3VudGVycy5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENh
bnZhc0VsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
Q2FudmFzRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggN2FkMzZmOC4uMzc0YjliOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2FudmFzRWxlbWVudEN1
c3RvbS5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkNhbnZhc0NvbnRleHRBdHRy
aWJ1dGVzLmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oIgogI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdE9iamVjdC5oPgogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KQEAgLTg0LDIwICs4Myw3IEBAIEpTVmFsdWUgSlNIVE1MQ2FudmFz
RWxlbWVudDo6Z2V0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCogY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KGNvbnRleHRJZCwgYXR0cnMuZ2V0
KCkpOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIEpT
VmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGNv
bnRleHQpKTsKLSAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjYW52YXNBZ2VudEVu
YWJsZWQoJmNhbnZhcy5kb2N1bWVudCgpKSkgewotICAgICAgICBEZXByZWNhdGVkOjpTY3JpcHRP
YmplY3QgY29udGV4dE9iamVjdChleGVjLCBqc1ZhbHVlLmdldE9iamVjdCgpKTsKLSAgICAgICAg
RGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0IHdyYXBwZWQ7Ci0gICAgICAgIGlmIChjb250ZXh0LT5p
czJkKCkpCi0gICAgICAgICAgICB3cmFwcGVkID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
cmFwQ2FudmFzMkRSZW5kZXJpbmdDb250ZXh0Rm9ySW5zdHJ1bWVudGF0aW9uKCZjYW52YXMuZG9j
dW1lbnQoKSwgY29udGV4dE9iamVjdCk7Ci0jaWYgRU5BQkxFKFdFQkdMKQotICAgICAgICBlbHNl
IGlmIChjb250ZXh0LT5pczNkKCkpCi0gICAgICAgICAgICB3cmFwcGVkID0gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3cmFwV2ViR0xSZW5kZXJpbmdDb250ZXh0Rm9ySW5zdHJ1bWVudGF0aW9u
KCZjYW52YXMuZG9jdW1lbnQoKSwgY29udGV4dE9iamVjdCk7Ci0jZW5kaWYKLSAgICAgICAgaWYg
KCF3cmFwcGVkLmhhc05vVmFsdWUoKSkKLSAgICAgICAgICAgIHJldHVybiB3cmFwcGVkLmpzVmFs
dWUoKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVmFsdWU7CisgICAgcmV0dXJuIHRvSlMoZXhlYywg
Z2xvYmFsT2JqZWN0KCksIFdURjo6Z2V0UHRyKGNvbnRleHQpKTsKIH0KIAogSlNWYWx1ZSBKU0hU
TUxDYW52YXNFbGVtZW50Ojpwcm9iYWJseVN1cHBvcnRzQ29udGV4dChFeGVjU3RhdGUqIGV4ZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52
YXNNb2R1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhkMmM4Zi4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjE2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGUuaCIKLQotI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291
cmNlLmgiCi0jaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCi0jaW5jbHVkZSA8Ymlu
ZGluZ3MvU2NyaXB0RnVuY3Rpb25DYWxsLmg+Ci0jaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0T2Jq
ZWN0Lmg+Ci0jaW5jbHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg+Ci0jaW5jbHVkZSA8
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9J
bnNwZWN0b3JWYWx1ZXMuaD4KLQotdXNpbmcgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk7
Ci11c2luZyBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlSWQ7Ci11c2lu
ZyBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlSW5mbzsKLXVzaW5nIElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0ZTsKLXVzaW5nIEluc3Bl
Y3Rvcjo6VHlwZUJ1aWxkZXI6OkNhbnZhczo6VHJhY2VMb2c7Ci11c2luZyBJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nSWQ7Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci11
c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSgpCi0gICAg
OiBJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TW9kdWxlKCJJbmplY3RlZFNjcmlwdENhbnZhc01v
ZHVsZSIpCi17Ci19Ci0KLUluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIEluamVjdGVkU2NyaXB0
Q2FudmFzTW9kdWxlOjptb2R1bGVGb3JTdGF0ZShJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVj
dGVkU2NyaXB0TWFuYWdlciwgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlKQotewotICAgIElu
amVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIHJlc3VsdDsKLSAgICByZXN1bHQuZW5zdXJlSW5qZWN0
ZWQoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBzY3JpcHRTdGF0ZSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotU3RyaW5nIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpzb3VyY2UoKSBjb25z
dAotewotICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2VfanMpLCBzaXplb2YoSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGVTb3VyY2VfanMpKTsKLX0KLQotSlNDOjpKU1ZhbHVlIEluamVjdGVkU2NyaXB0
Q2FudmFzTW9kdWxlOjpob3N0KEluamVjdGVkU2NyaXB0TWFuYWdlciosIEpTQzo6RXhlY1N0YXRl
KikgY29uc3QKLXsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotRGVwcmVjYXRlZDo6
U2NyaXB0T2JqZWN0IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjp3cmFwQ2FudmFzMkRDb250
ZXh0KGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYgY29udGV4dCkKLXsKLSAgICByZXR1
cm4gY2FsbFdyYXBDb250ZXh0RnVuY3Rpb24oIndyYXBDYW52YXMyRENvbnRleHQiLCBjb250ZXh0
KTsKLX0KLQotI2lmIEVOQUJMRShXRUJHTCkKLURlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCBJbmpl
Y3RlZFNjcmlwdENhbnZhc01vZHVsZTo6d3JhcFdlYkdMQ29udGV4dChjb25zdCBEZXByZWNhdGVk
OjpTY3JpcHRPYmplY3QmIGdsQ29udGV4dCkKLXsKLSAgICByZXR1cm4gY2FsbFdyYXBDb250ZXh0
RnVuY3Rpb24oIndyYXBXZWJHTENvbnRleHQiLCBnbENvbnRleHQpOwotfQotI2VuZGlmIC8vIEVO
QUJMRShXRUJHTCkKLQotRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0IEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlOjpjYWxsV3JhcENvbnRleHRGdW5jdGlvbihjb25zdCBTdHJpbmcmIGZ1bmN0aW9u
TmFtZSwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0JiBjb250ZXh0KQotewotICAgIERl
cHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVj
dCgpLCBmdW5jdGlvbk5hbWUsIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhy
ZWFkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChjb250ZXh0KTsKLSAgICBib29sIGhh
ZEV4Y2VwdGlvbiA9IGZhbHNlOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHJlc3VsdFZh
bHVlID0gY2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKGZ1bmN0aW9uLCBoYWRFeGNlcHRpb24p
OwotICAgIGlmIChoYWRFeGNlcHRpb24gfHwgcmVzdWx0VmFsdWUuaGFzTm9WYWx1ZSgpIHx8ICFy
ZXN1bHRWYWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICByZXR1cm4gRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0KCk7Ci0gICAgfQotICAgIHJl
dHVybiBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3QoY29udGV4dC5zY3JpcHRTdGF0ZSgpLCByZXN1
bHRWYWx1ZSk7Ci19Ci0KLXZvaWQgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGU6Om1hcmtGcmFt
ZUVuZCgpCi17Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGlu
amVjdGVkU2NyaXB0T2JqZWN0KCksICJtYXJrRnJhbWVFbmQiLCBXZWJDb3JlOjpmdW5jdGlvbkNh
bGxIYW5kbGVyRnJvbUFueVRocmVhZCk7Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1
bHRWYWx1ZTsKLSAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdFZhbHVlKTsKLSAgICBBU1NF
UlQocmVzdWx0VmFsdWUpOwotfQotCi12b2lkIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpj
YXB0dXJlRnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBUcmFjZUxvZ0lkKiB0cmFjZUxv
Z0lkKQotewotICAgIGNhbGxTdGFydENhcHR1cmluZ0Z1bmN0aW9uKCJjYXB0dXJlRnJhbWUiLCBl
cnJvclN0cmluZywgdHJhY2VMb2dJZCk7Ci19Ci0KLXZvaWQgSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGU6OnN0YXJ0Q2FwdHVyaW5nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgVHJhY2VMb2dJ
ZCogdHJhY2VMb2dJZCkKLXsKLSAgICBjYWxsU3RhcnRDYXB0dXJpbmdGdW5jdGlvbigic3RhcnRD
YXB0dXJpbmciLCBlcnJvclN0cmluZywgdHJhY2VMb2dJZCk7Ci19Ci0KLXZvaWQgSW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGU6OmNhbGxTdGFydENhcHR1cmluZ0Z1bmN0aW9uKGNvbnN0IFN0cmlu
ZyYgZnVuY3Rpb25OYW1lLCBFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFRyYWNlTG9nSWQqIHRy
YWNlTG9nSWQpCi17Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9u
KGluamVjdGVkU2NyaXB0T2JqZWN0KCksIGZ1bmN0aW9uTmFtZSwgV2ViQ29yZTo6ZnVuY3Rpb25D
YWxsSGFuZGxlckZyb21BbnlUaHJlYWQpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVz
dWx0VmFsdWU7Ci0gICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHRWYWx1ZSk7Ci0gICAgaWYg
KCFyZXN1bHRWYWx1ZSB8fCByZXN1bHRWYWx1ZS0+dHlwZSgpICE9IEluc3BlY3RvclZhbHVlOjpU
eXBlU3RyaW5nIHx8ICFyZXN1bHRWYWx1ZS0+YXNTdHJpbmcodHJhY2VMb2dJZCkpCi0gICAgICAg
ICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogIiArIGZ1bmN0aW9uTmFtZTsKLX0KLQot
dm9pZCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6c3RvcENhcHR1cmluZyhFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFRyYWNlTG9nSWQmIHRyYWNlTG9nSWQpCi17Ci0gICAgY2Fs
bFZvaWRGdW5jdGlvbldpdGhUcmFjZUxvZ0lkQXJndW1lbnQoInN0b3BDYXB0dXJpbmciLCBlcnJv
clN0cmluZywgdHJhY2VMb2dJZCk7Ci19Ci0KLXZvaWQgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1
bGU6OmRyb3BUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFRyYWNlTG9n
SWQmIHRyYWNlTG9nSWQpCi17Ci0gICAgY2FsbFZvaWRGdW5jdGlvbldpdGhUcmFjZUxvZ0lkQXJn
dW1lbnQoImRyb3BUcmFjZUxvZyIsIGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkKTsKLX0KLQotdm9p
ZCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6Y2FsbFZvaWRGdW5jdGlvbldpdGhUcmFjZUxv
Z0lkQXJndW1lbnQoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgVHJhY2VMb2dJZCYgdHJhY2VMb2dJZCkKLXsKLSAgICBEZXByZWNhdGVk
OjpTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgZnVu
Y3Rpb25OYW1lLCBXZWJDb3JlOjpmdW5jdGlvbkNhbGxIYW5kbGVyRnJvbUFueVRocmVhZCk7Ci0g
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQodHJhY2VMb2dJZCk7Ci0gICAgYm9vbCBoYWRFeGNl
cHRpb24gPSBmYWxzZTsKLSAgICBjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQoZnVuY3Rpb24s
IGhhZEV4Y2VwdGlvbik7Ci0gICAgQVNTRVJUKCFoYWRFeGNlcHRpb24pOwotICAgIGlmIChoYWRF
eGNlcHRpb24pCi0gICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogIiArIGZ1
bmN0aW9uTmFtZTsKLX0KLQotdm9pZCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6dHJhY2VM
b2coRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBUcmFjZUxvZ0lkJiB0cmFjZUxvZ0lk
LCBjb25zdCBpbnQqIHN0YXJ0T2Zmc2V0LCBjb25zdCBpbnQqIG1heExlbmd0aCwgUmVmUHRyPFRy
YWNlTG9nPiogdHJhY2VMb2cpCi17Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxs
IGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0KCksICJ0cmFjZUxvZyIsIFdlYkNvcmU6OmZ1
bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhyZWFkKTsKLSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1
bWVudCh0cmFjZUxvZ0lkKTsKLSAgICBpZiAoc3RhcnRPZmZzZXQpCi0gICAgICAgIGZ1bmN0aW9u
LmFwcGVuZEFyZ3VtZW50KCpzdGFydE9mZnNldCk7Ci0gICAgaWYgKG1heExlbmd0aCkKLSAgICAg
ICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoKm1heExlbmd0aCk7Ci0gICAgUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiByZXN1bHRWYWx1ZTsKLSAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdFZh
bHVlKTsKLSAgICBpZiAoIXJlc3VsdFZhbHVlIHx8IHJlc3VsdFZhbHVlLT50eXBlKCkgIT0gSW5z
cGVjdG9yVmFsdWU6OlR5cGVPYmplY3QpIHsKLSAgICAgICAgaWYgKCFyZXN1bHRWYWx1ZS0+YXNT
dHJpbmcoZXJyb3JTdHJpbmcpKQotICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFs
IGVycm9yOiB0cmFjZUxvZyI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgKnRyYWNlTG9n
ID0gVHJhY2VMb2c6OnJ1bnRpbWVDYXN0KHJlc3VsdFZhbHVlKTsKLX0KLQotdm9pZCBJbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZTo6cmVwbGF5VHJhY2VMb2coRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBUcmFjZUxvZ0lkJiB0cmFjZUxvZ0lkLCBpbnQgc3RlcE5vLCBSZWZQdHI8UmVz
b3VyY2VTdGF0ZT4qIHJlc3VsdCkKLXsKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRGdW5jdGlvbkNh
bGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgInJlcGxheVRyYWNlTG9nIiwgV2Vi
Q29yZTo6ZnVuY3Rpb25DYWxsSGFuZGxlckZyb21BbnlUaHJlYWQpOwotICAgIGZ1bmN0aW9uLmFw
cGVuZEFyZ3VtZW50KHRyYWNlTG9nSWQpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHN0
ZXBObyk7Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHRWYWx1ZTsKLSAgICBtYWtl
Q2FsbChmdW5jdGlvbiwgJnJlc3VsdFZhbHVlKTsKLSAgICBpZiAoIXJlc3VsdFZhbHVlIHx8IHJl
c3VsdFZhbHVlLT50eXBlKCkgIT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVPYmplY3QpIHsKLSAgICAg
ICAgaWYgKCFyZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJyb3JTdHJpbmcpKQotICAgICAgICAgICAg
KmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiByZXBsYXlUcmFjZUxvZyI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgKnJlc3VsdCA9IFJlc291cmNlU3RhdGU6OnJ1bnRpbWVDYXN0
KHJlc3VsdFZhbHVlKTsKLX0KLQotdm9pZCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6cmVz
b3VyY2VJbmZvKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgUmVzb3VyY2VJZCYgcmVz
b3VyY2VJZCwgUmVmUHRyPFJlc291cmNlSW5mbz4qIHJlc3VsdCkKLXsKLSAgICBEZXByZWNhdGVk
OjpTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgInJl
c291cmNlSW5mbyIsIFdlYkNvcmU6OmZ1bmN0aW9uQ2FsbEhhbmRsZXJGcm9tQW55VGhyZWFkKTsK
LSAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZXNvdXJjZUlkKTsKLSAgICBSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOwotICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCAmcmVzdWx0
VmFsdWUpOwotICAgIGlmICghcmVzdWx0VmFsdWUgfHwgcmVzdWx0VmFsdWUtPnR5cGUoKSAhPSBJ
bnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgewotICAgICAgICBpZiAoIXJlc3VsdFZhbHVlLT5h
c1N0cmluZyhlcnJvclN0cmluZykpCi0gICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW50ZXJu
YWwgZXJyb3I6IHJlc291cmNlSW5mbyI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgKnJl
c3VsdCA9IFJlc291cmNlSW5mbzo6cnVudGltZUNhc3QocmVzdWx0VmFsdWUpOwotfQotCi12b2lk
IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpyZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgY29uc3QgVHJhY2VMb2dJZCYgdHJhY2VMb2dJZCwgY29uc3QgUmVzb3VyY2VJ
ZCYgcmVzb3VyY2VJZCwgUmVmUHRyPFJlc291cmNlU3RhdGU+KiByZXN1bHQpCi17Ci0gICAgRGVw
cmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0
KCksICJyZXNvdXJjZVN0YXRlIiwgV2ViQ29yZTo6ZnVuY3Rpb25DYWxsSGFuZGxlckZyb21BbnlU
aHJlYWQpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHRyYWNlTG9nSWQpOwotICAgIGZ1
bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHJlc291cmNlSWQpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JW
YWx1ZT4gcmVzdWx0VmFsdWU7Ci0gICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHRWYWx1ZSk7
Ci0gICAgaWYgKCFyZXN1bHRWYWx1ZSB8fCByZXN1bHRWYWx1ZS0+dHlwZSgpICE9IEluc3BlY3Rv
clZhbHVlOjpUeXBlT2JqZWN0KSB7Ci0gICAgICAgIGlmICghcmVzdWx0VmFsdWUtPmFzU3RyaW5n
KGVycm9yU3RyaW5nKSkKLSAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJv
cjogcmVzb3VyY2VTdGF0ZSI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgKnJlc3VsdCA9
IFJlc291cmNlU3RhdGU6OnJ1bnRpbWVDYXN0KHJlc3VsdFZhbHVlKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YmE3MDAuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZV9o
Ci0jZGVmaW5lIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlX2gKLQotI2luY2x1ZGUgIkluc3Bl
Y3RvcldlYlR5cGVCdWlsZGVycy5oIgotI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCi0jaW5jbHVk
ZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TW9kdWxlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBEZXByZWNhdGVkIHsKLWNsYXNzIFNjcmlwdE9iamVj
dDsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10eXBlZGVmIFN0cmluZyBFcnJvclN0cmlu
ZzsKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0KLWNsYXNzIEluamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlIGZpbmFsIDogcHVibGljIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNb2R1bGUgewot
cHVibGljOgotICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlKCk7Ci0gICAgCi0gICAgdmly
dHVhbCBTdHJpbmcgc291cmNlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBKU0M6OkpT
VmFsdWUgaG9zdChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlciosIEpTQzo6RXhlY1N0
YXRlKikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHJldHVybnNPYmplY3QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICBzdGF0aWMgSW5qZWN0ZWRTY3Jp
cHRDYW52YXNNb2R1bGUgbW9kdWxlRm9yU3RhdGUoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1h
bmFnZXIqLCBKU0M6OkV4ZWNTdGF0ZSopOwotCi0gICAgRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0
IHdyYXBDYW52YXMyRENvbnRleHQoY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0Jik7Ci0j
aWYgRU5BQkxFKFdFQkdMKQotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCB3cmFwV2ViR0xD
b250ZXh0KGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYpOwotI2VuZGlmCi0gICAgdm9p
ZCBtYXJrRnJhbWVFbmQoKTsKLQotICAgIHZvaWQgY2FwdHVyZUZyYW1lKEVycm9yU3RyaW5nKiwg
SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFjZUxvZ0lkKik7Ci0gICAgdm9pZCBz
dGFydENhcHR1cmluZyhFcnJvclN0cmluZyosIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNhbnZh
czo6VHJhY2VMb2dJZCopOwotICAgIHZvaWQgc3RvcENhcHR1cmluZyhFcnJvclN0cmluZyosIGNv
bnN0IEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNhbnZhczo6VHJhY2VMb2dJZCYpOwotICAgIHZv
aWQgZHJvcFRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgSW5zcGVjdG9yOjpUeXBlQnVpbGRl
cjo6Q2FudmFzOjpUcmFjZUxvZ0lkJik7Ci0gICAgdm9pZCB0cmFjZUxvZyhFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYsIGNvbnN0IGludCosIGNvbnN0IGludCosIFJlZlB0cjxJbnNwZWN0b3I6
OlR5cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nPiopOwotICAgIHZvaWQgcmVwbGF5VHJhY2VM
b2coRXJyb3JTdHJpbmcqLCBjb25zdCBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlRy
YWNlTG9nSWQmLCBpbnQsIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJl
c291cmNlU3RhdGU+Kik7Ci0gICAgdm9pZCByZXNvdXJjZUluZm8oRXJyb3JTdHJpbmcqLCBjb25z
dCBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlSWQmLCBSZWZQdHI8SW5z
cGVjdG9yOjpUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZUluZm8+Kik7Ci0gICAgdm9pZCBy
ZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6
Q2FudmFzOjpUcmFjZUxvZ0lkJiwgY29uc3QgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q2FudmFz
OjpSZXNvdXJjZUlkJiwgUmVmUHRyPEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVz
b3VyY2VTdGF0ZT4qKTsKLQotcHJpdmF0ZToKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3Qg
Y2FsbFdyYXBDb250ZXh0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0T2JqZWN0Jik7Ci0gICAgdm9pZCBjYWxsU3RhcnRDYXB0dXJpbmdGdW5jdGlvbihjb25z
dCBTdHJpbmcmLCBFcnJvclN0cmluZyosIFN0cmluZyopOwotICAgIHZvaWQgY2FsbFZvaWRGdW5j
dGlvbldpdGhUcmFjZUxvZ0lkQXJndW1lbnQoY29uc3QgU3RyaW5nJiwgRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmKTsKLX07Ci0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyAhZGVmaW5lZChJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZV9oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKaW5kZXggNTI0N2E5
Ni4uMGU5MTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxs
SW5PbmUuY3BwCkBAIC0yOSwxMCArMjksOCBAQAogI2luY2x1ZGUgIkNvbW1hbmRMaW5lQVBJTW9k
dWxlLmNwcCIKICNpbmNsdWRlICJET01FZGl0b3IuY3BwIgogI2luY2x1ZGUgIkRPTVBhdGNoU3Vw
cG9ydC5jcHAiCi0jaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ1NTQWdlbnQuY3BwIgotI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhc0FnZW50LmNwcCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvckNvdW50ZXJzLmNwcCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5NTI1OGVmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwz
MjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0K
LSNpbmNsdWRlICJJbnNwZWN0b3JDYW52YXNBZ2VudC5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKLSNpbmNsdWRlICJJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oIgotI2luY2x1ZGUgIklu
c3BlY3RvclBhZ2VBZ2VudC5oIgotI2luY2x1ZGUgIkluc3BlY3RvcldlYkZyb250ZW5kRGlzcGF0
Y2hlcnMuaCIKLSNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCi0jaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCi0jaW5jbHVkZSAiTm9kZUxpc3QuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5j
bHVkZSAiU2NyaXB0UHJvZmlsZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgotI2luY2x1
ZGUgPGJpbmRpbmdzL1NjcmlwdE9iamVjdC5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5oPgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4K
LQotdXNpbmcgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6QXJyYXk7Ci11c2luZyBJbnNwZWN0b3I6
OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlSWQ7Ci11c2luZyBJbnNwZWN0b3I6OlR5cGVC
dWlsZGVyOjpDYW52YXM6OlJlc291cmNlSW5mbzsKLXVzaW5nIEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0ZTsKLXVzaW5nIEluc3BlY3Rvcjo6VHlwZUJ1aWxkZXI6
OkNhbnZhczo6VHJhY2VMb2c7Ci11c2luZyBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6
OlRyYWNlTG9nSWQ7Ci11c2luZyBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpGcmFt
ZUlkOwotCi11c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLUluc3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCi0gICAg
OiBJbnNwZWN0b3JBZ2VudEJhc2UoQVNDSUlMaXRlcmFsKCJDYW52YXMiKSwgaW5zdHJ1bWVudGlu
Z0FnZW50cykKLSAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKLSAgICAsIG1faW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKLSAgICAsIG1fZW5hYmxlZChmYWxz
ZSkKLXsKLX0KLQotSW5zcGVjdG9yQ2FudmFzQWdlbnQ6On5JbnNwZWN0b3JDYW52YXNBZ2VudCgp
Ci17Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZENyZWF0ZUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogZnJvbnRlbmRDaGFu
bmVsLCBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlciogYmFja2VuZERpc3BhdGNoZXIpCi17Ci0g
ICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckNhbnZh
c0Zyb250ZW5kRGlzcGF0Y2hlcj4oZnJvbnRlbmRDaGFubmVsKTsKLSAgICBtX2JhY2tlbmREaXNw
YXRjaGVyID0gSW5zcGVjdG9yQ2FudmFzQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShiYWNrZW5k
RGlzcGF0Y2hlciwgdGhpcyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndpbGxE
ZXN0cm95RnJvbnRlbmRBbmRCYWNrZW5kKEluc3BlY3RvckRpc2Nvbm5lY3RSZWFzb24pCi17Ci0g
ICAgbV9mcm9udGVuZERpc3BhdGNoZXIgPSBudWxscHRyOwotICAgIG1fYmFja2VuZERpc3BhdGNo
ZXIuY2xlYXIoKTsKLQotICAgIGRpc2FibGUobnVsbHB0cik7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCi17Ci0gICAgaWYgKG1fZW5hYmxlZCkK
LSAgICAgICAgcmV0dXJuOwotICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0gICAgbV9pbnN0cnVtZW50
aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JDYW52YXNBZ2VudCh0aGlzKTsKLSAgICBmaW5kRnJhbWVz
V2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXMoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDYW52YXNB
Z2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCi17Ci0gICAgbV9lbmFibGVkID0gZmFsc2U7Ci0g
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JDYW52YXNBZ2VudChudWxscHRy
KTsKLSAgICBtX2ZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLmNsZWFyKCk7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRyb3BUcmFjZUxvZyhFcnJvclN0cmluZyogZXJy
b3JTdHJpbmcsIGNvbnN0IFRyYWNlTG9nSWQmIHRyYWNlTG9nSWQpCi17Ci0gICAgSW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoZXJy
b3JTdHJpbmcsIHRyYWNlTG9nSWQpOwotICAgIGlmICghbW9kdWxlLmhhc05vVmFsdWUoKSkKLSAg
ICAgICAgbW9kdWxlLmRyb3BUcmFjZUxvZyhlcnJvclN0cmluZywgdHJhY2VMb2dJZCk7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6Omhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBib29sKiByZXN1bHQpCi17Ci0gICAgaWYgKCFjaGVja0lz
RW5hYmxlZChlcnJvclN0cmluZykpCi0gICAgICAgIHJldHVybjsKLSAgICBmb3IgKEZyYW1lc1dp
dGhVbmluc3RydW1lbnRlZENhbnZhc2VzOjppdGVyYXRvciBpdCA9IG1fZnJhbWVzV2l0aFVuaW5z
dHJ1bWVudGVkQ2FudmFzZXMuYmVnaW4oKTsgaXQgIT0gbV9mcmFtZXNXaXRoVW5pbnN0cnVtZW50
ZWRDYW52YXNlcy5lbmQoKTsgKytpdCkgewotICAgICAgICBpZiAoaXQtPnZhbHVlKSB7Ci0gICAg
ICAgICAgICAqcmVzdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgIH0KLSAgICAqcmVzdWx0ID0gZmFsc2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OmNhcHR1cmVGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IEZyYW1lSWQq
IGZyYW1lSWQsIFRyYWNlTG9nSWQqIHRyYWNlTG9nSWQpCi17Ci0gICAgRnJhbWUqIGZyYW1lID0g
ZnJhbWVJZCA/IG1fcGFnZUFnZW50LT5hc3NlcnRGcmFtZShlcnJvclN0cmluZywgKmZyYW1lSWQp
IDogbV9wYWdlQWdlbnQtPm1haW5GcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJl
dHVybjsKLSAgICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBtb2R1bGUgPSBpbmplY3RlZFNj
cmlwdENhbnZhc01vZHVsZShlcnJvclN0cmluZywgbWFpbldvcmxkRXhlY1N0YXRlKGZyYW1lKSk7
Ci0gICAgaWYgKCFtb2R1bGUuaGFzTm9WYWx1ZSgpKQotICAgICAgICBtb2R1bGUuY2FwdHVyZUZy
YW1lKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDYW52YXNB
Z2VudDo6c3RhcnRDYXB0dXJpbmcoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBGcmFt
ZUlkKiBmcmFtZUlkLCBUcmFjZUxvZ0lkKiB0cmFjZUxvZ0lkKQotewotICAgIEZyYW1lKiBmcmFt
ZSA9IGZyYW1lSWQgPyBtX3BhZ2VBZ2VudC0+YXNzZXJ0RnJhbWUoZXJyb3JTdHJpbmcsICpmcmFt
ZUlkKSA6IG1fcGFnZUFnZW50LT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0gICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gaW5qZWN0
ZWRTY3JpcHRDYW52YXNNb2R1bGUoZXJyb3JTdHJpbmcsIG1haW5Xb3JsZEV4ZWNTdGF0ZShmcmFt
ZSkpOwotICAgIGlmICghbW9kdWxlLmhhc05vVmFsdWUoKSkKLSAgICAgICAgbW9kdWxlLnN0YXJ0
Q2FwdHVyaW5nKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JD
YW52YXNBZ2VudDo6c3RvcENhcHR1cmluZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0
IFRyYWNlTG9nSWQmIHRyYWNlTG9nSWQpCi17Ci0gICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1
bGUgbW9kdWxlID0gaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoZXJyb3JTdHJpbmcsIHRyYWNl
TG9nSWQpOwotICAgIGlmICghbW9kdWxlLmhhc05vVmFsdWUoKSkKLSAgICAgICAgbW9kdWxlLnN0
b3BDYXB0dXJpbmcoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwotfQotCi12b2lkIEluc3BlY3Rv
ckNhbnZhc0FnZW50OjpnZXRUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0
IFRyYWNlTG9nSWQmIHRyYWNlTG9nSWQsIGNvbnN0IGludCogc3RhcnRPZmZzZXQsIGNvbnN0IGlu
dCogbWF4TGVuZ3RoLCBSZWZQdHI8VHJhY2VMb2c+JiB0cmFjZUxvZykKLXsKLSAgICBJbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZSBtb2R1bGUgPSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZShl
cnJvclN0cmluZywgdHJhY2VMb2dJZCk7Ci0gICAgaWYgKCFtb2R1bGUuaGFzTm9WYWx1ZSgpKQot
ICAgICAgICBtb2R1bGUudHJhY2VMb2coZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQsIHN0YXJ0T2Zm
c2V0LCBtYXhMZW5ndGgsICZ0cmFjZUxvZyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OnJlcGxheVRyYWNlTG9nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgVHJhY2VM
b2dJZCYgdHJhY2VMb2dJZCwgaW50IHN0ZXBObywgUmVmUHRyPFJlc291cmNlU3RhdGU+JiByZXN1
bHQpCi17Ci0gICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gaW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGUoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwotICAgIGlmICghbW9k
dWxlLmhhc05vVmFsdWUoKSkKLSAgICAgICAgbW9kdWxlLnJlcGxheVRyYWNlTG9nKGVycm9yU3Ry
aW5nLCB0cmFjZUxvZ0lkLCBzdGVwTm8sICZyZXN1bHQpOwotfQotCi12b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpnZXRSZXNvdXJjZUluZm8oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25z
dCBSZXNvdXJjZUlkJiByZXNvdXJjZUlkLCBSZWZQdHI8UmVzb3VyY2VJbmZvPiYgcmVzdWx0KQot
ewotICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IGluamVjdGVkU2NyaXB0
Q2FudmFzTW9kdWxlKGVycm9yU3RyaW5nLCByZXNvdXJjZUlkKTsKLSAgICBpZiAoIW1vZHVsZS5o
YXNOb1ZhbHVlKCkpCi0gICAgICAgIG1vZHVsZS5yZXNvdXJjZUluZm8oZXJyb3JTdHJpbmcsIHJl
c291cmNlSWQsICZyZXN1bHQpOwotfQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpnZXRS
ZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgVHJhY2VMb2dJZCYg
dHJhY2VMb2dJZCwgY29uc3QgUmVzb3VyY2VJZCYgcmVzb3VyY2VJZCwgUmVmUHRyPFJlc291cmNl
U3RhdGU+JiByZXN1bHQpCi17Ci0gICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxl
ID0gaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwot
ICAgIGlmICghbW9kdWxlLmhhc05vVmFsdWUoKSkKLSAgICAgICAgbW9kdWxlLnJlc291cmNlU3Rh
dGUoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQsIHJlc291cmNlSWQsICZyZXN1bHQpOwotfQotCi1E
ZXByZWNhdGVkOjpTY3JpcHRPYmplY3QgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OndyYXBDYW52YXMy
RFJlbmRlcmluZ0NvbnRleHRGb3JJbnN0cnVtZW50YXRpb24oY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0T2JqZWN0JiBjb250ZXh0KQotewotICAgIEVycm9yU3RyaW5nIGVycm9yOwotICAgIEluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IGluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
KCZlcnJvciwgY29udGV4dCk7Ci0gICAgaWYgKG1vZHVsZS5oYXNOb1ZhbHVlKCkpCi0gICAgICAg
IHJldHVybiBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3QoKTsKLSAgICByZXR1cm4gbm90aWZ5UmVu
ZGVyaW5nQ29udGV4dFdhc1dyYXBwZWQobW9kdWxlLndyYXBDYW52YXMyRENvbnRleHQoY29udGV4
dCkpOwotfQotCi0jaWYgRU5BQkxFKFdFQkdMKQotRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0IElu
c3BlY3RvckNhbnZhc0FnZW50Ojp3cmFwV2ViR0xSZW5kZXJpbmdDb250ZXh0Rm9ySW5zdHJ1bWVu
dGF0aW9uKGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYgZ2xDb250ZXh0KQotewotICAg
IEVycm9yU3RyaW5nIGVycm9yOwotICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVs
ZSA9IGluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlKCZlcnJvciwgZ2xDb250ZXh0KTsKLSAgICBp
ZiAobW9kdWxlLmhhc05vVmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlw
dE9iamVjdCgpOwotICAgIHJldHVybiBub3RpZnlSZW5kZXJpbmdDb250ZXh0V2FzV3JhcHBlZCht
b2R1bGUud3JhcFdlYkdMQ29udGV4dChnbENvbnRleHQpKTsKLX0KLSNlbmRpZgotCi1EZXByZWNh
dGVkOjpTY3JpcHRPYmplY3QgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6Om5vdGlmeVJlbmRlcmluZ0Nv
bnRleHRXYXNXcmFwcGVkKGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYgd3JhcHBlZENv
bnRleHQpCi17Ci0gICAgQVNTRVJUKG1fZnJvbnRlbmREaXNwYXRjaGVyKTsKLSAgICBKU0M6OkV4
ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSB3cmFwcGVkQ29udGV4dC5zY3JpcHRTdGF0ZSgpOwotICAg
IERPTVdpbmRvdyogZG9tV2luZG93ID0gc2NyaXB0U3RhdGUgPyBkb21XaW5kb3dGcm9tRXhlY1N0
YXRlKHNjcmlwdFN0YXRlKSA6IG51bGxwdHI7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9tV2luZG93
ID8gZG9tV2luZG93LT5mcmFtZSgpIDogbnVsbHB0cjsKLSAgICBpZiAoZnJhbWUgJiYgIW1fZnJh
bWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXMuY29udGFpbnMoZnJhbWUpKQotICAgICAgICBt
X2ZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLnNldChmcmFtZSwgZmFsc2UpOwotICAg
IFN0cmluZyBmcmFtZUlkID0gbV9wYWdlQWdlbnQtPmZyYW1lSWQoZnJhbWUpOwotICAgIGlmICgh
ZnJhbWVJZC5pc0VtcHR5KCkpCi0gICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5jb250ZXh0
Q3JlYXRlZChmcmFtZUlkKTsKLSAgICByZXR1cm4gd3JhcHBlZENvbnRleHQ7Ci19Ci0KLUluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlIEluc3BlY3RvckNhbnZhc0FnZW50OjppbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEpTQzo6RXhlY1N0YXRlKiBz
Y3JpcHRTdGF0ZSkKLXsKLSAgICBpZiAoIWNoZWNrSXNFbmFibGVkKGVycm9yU3RyaW5nKSkKLSAg
ICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlKCk7Ci0gICAgSW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGU6Om1v
ZHVsZUZvclN0YXRlKG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBzY3JpcHRTdGF0ZSk7Ci0gICAg
aWYgKG1vZHVsZS5oYXNOb1ZhbHVlKCkpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogbm8gQ2FudmFzIG1vZHVs
ZSI7Ci0gICAgfQotICAgIHJldHVybiBtb2R1bGU7Ci19Ci0KLUluamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlIEluc3BlY3RvckNhbnZhc0FnZW50OjppbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZShF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYg
c2NyaXB0T2JqZWN0KQotewotICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcpKQot
ICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoKTsKLSAgICBpZiAoc2Ny
aXB0T2JqZWN0Lmhhc05vVmFsdWUoKSkgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiBvcmlnaW5hbCBEZXByZWNh
dGVkOjpTY3JpcHRPYmplY3QgaGFzIG5vIHZhbHVlIjsKLSAgICAgICAgcmV0dXJuIEluamVjdGVk
U2NyaXB0Q2FudmFzTW9kdWxlKCk7Ci0gICAgfQotICAgIHJldHVybiBpbmplY3RlZFNjcmlwdENh
bnZhc01vZHVsZShlcnJvclN0cmluZywgc2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCkpOwotfQot
Ci1JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aW5qZWN0
ZWRTY3JpcHRDYW52YXNNb2R1bGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIG9iamVjdElkKQotewotICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcpKQot
ICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoKTsKLSAgICBJbmplY3Rl
ZFNjcmlwdCBpbmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3Rl
ZFNjcmlwdEZvck9iamVjdElkKG9iamVjdElkKTsKLSAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFz
Tm9WYWx1ZSgpKSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJJbnNwZWN0ZWQgZnJhbWUgaGFz
IGdvbmUiOwotICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIGluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlKGVycm9yU3RyaW5nLCBp
bmplY3RlZFNjcmlwdC5zY3JpcHRTdGF0ZSgpKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDYW52YXNB
Z2VudDo6ZmluZEZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzKCkKLXsKLSAgICBtX2Zy
YW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLmNsZWFyKCk7Ci0KLSAgICBmb3IgKEZyYW1l
KiBmcmFtZSA9ICZtX3BhZ2VBZ2VudC0+cGFnZSgpLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewotICAgICAgICBpZiAoIWZyYW1lLT5k
b2N1bWVudCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgUmVmUHRyPE5vZGVM
aXN0PiBjYW52YXNlcyA9IGZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50c0J5VGFnTmFtZShI
VE1MTmFtZXM6OmNhbnZhc1RhZy5sb2NhbE5hbWUoKSk7Ci0gICAgICAgIGlmIChjYW52YXNlcykg
ewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gY2FudmFzZXMtPmxl
bmd0aCgpOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgICAgICBjb25zdCBIVE1MQ2Fu
dmFzRWxlbWVudCogY2FudmFzID0gdG9IVE1MQ2FudmFzRWxlbWVudChjYW52YXNlcy0+aXRlbShp
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIG1fZnJhbWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXMuc2V0
KGZyYW1lLCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yIChGcmFtZXNX
aXRoVW5pbnN0cnVtZW50ZWRDYW52YXNlczo6aXRlcmF0b3IgaXQgPSBtX2ZyYW1lc1dpdGhVbmlu
c3RydW1lbnRlZENhbnZhc2VzLmJlZ2luKCk7IGl0ICE9IG1fZnJhbWVzV2l0aFVuaW5zdHJ1bWVu
dGVkQ2FudmFzZXMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgU3RyaW5nIGZyYW1lSWQgPSBtX3Bh
Z2VBZ2VudC0+ZnJhbWVJZChpdC0+a2V5KTsKLSAgICAgICAgaWYgKCFmcmFtZUlkLmlzRW1wdHko
KSkKLSAgICAgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5jb250ZXh0Q3JlYXRlZChmcmFt
ZUlkKTsKLSAgICB9Ci19Ci0KLWJvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNoZWNrSXNFbmFi
bGVkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZykgY29uc3QKLXsKLSAgICBpZiAobV9lbmFibGVk
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAqZXJyb3JTdHJpbmcgPSAiQ2FudmFzIGFnZW50
IGlzIG5vdCBlbmFibGVkIjsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKEZyYW1lKiBmcmFtZSkKLXsKLSAgICBpZiAoIW1f
ZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChmcmFtZSA9PSBtX3BhZ2VBZ2VudC0+
bWFpbkZyYW1lKCkpIHsKLSAgICAgICAgZm9yIChGcmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRDYW52
YXNlczo6aXRlcmF0b3IgaXQgPSBtX2ZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLmJl
Z2luKCk7IGl0ICE9IG1fZnJhbWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXMuZW5kKCk7ICsr
aXQpCi0gICAgICAgICAgICBtX2ZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLnNldChp
dC0+a2V5LCBmYWxzZSk7Ci0gICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT50cmFjZUxvZ3NS
ZW1vdmVkKG51bGxwdHIsIG51bGxwdHIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHdoaWxlIChm
cmFtZSkgewotICAgICAgICAgICAgaWYgKG1fZnJhbWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFz
ZXMuY29udGFpbnMoZnJhbWUpKQotICAgICAgICAgICAgICAgIG1fZnJhbWVzV2l0aFVuaW5zdHJ1
bWVudGVkQ2FudmFzZXMuc2V0KGZyYW1lLCBmYWxzZSk7Ci0gICAgICAgICAgICBpZiAobV9wYWdl
QWdlbnQtPmhhc0lkRm9yRnJhbWUoZnJhbWUpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGZy
YW1lSWQgPSBtX3BhZ2VBZ2VudC0+ZnJhbWVJZChmcmFtZSk7Ci0gICAgICAgICAgICAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPnRyYWNlTG9nc1JlbW92ZWQoJmZyYW1lSWQsIG51bGxwdHIpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNl
TmV4dCgpOwotICAgICAgICB9Ci0gICAgfQotfQotCi12b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
OjpmcmFtZURldGFjaGVkKEZyYW1lKiBmcmFtZSkKLXsKLSAgICBpZiAobV9lbmFibGVkKQotICAg
ICAgICBtX2ZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLnJlbW92ZShmcmFtZSk7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRpZEJlZ2luRnJhbWUoKQotewotICAgIGlm
ICghbV9lbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgRXJyb3JTdHJpbmcgZXJyb3I7Ci0g
ICAgZm9yIChGcmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRDYW52YXNlczo6aXRlcmF0b3IgaXQgPSBt
X2ZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLmJlZ2luKCk7IGl0ICE9IG1fZnJhbWVz
V2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgSW5qZWN0
ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUo
JmVycm9yLCBtYWluV29ybGRFeGVjU3RhdGUoaXQtPmtleSkpOwotICAgICAgICBpZiAoIW1vZHVs
ZS5oYXNOb1ZhbHVlKCkpCi0gICAgICAgICAgICBtb2R1bGUubWFya0ZyYW1lRW5kKCk7Ci0gICAg
fQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVD
VE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZh
c0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJlMzJjMi4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDExNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JDYW52YXNBZ2VudF9oCi0jZGVm
aW5lIEluc3BlY3RvckNhbnZhc0FnZW50X2gKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0KLSNp
bmNsdWRlICJJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JXZWJC
YWNrZW5kRGlzcGF0Y2hlcnMuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JXZWJGcm9udGVuZERpc3Bh
dGNoZXJzLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yV2ViVHlwZUJ1aWxkZXJzLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0U3RhdGUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVz
cGFjZSBEZXByZWNhdGVkIHsKLWNsYXNzIFNjcmlwdE9iamVjdDsKLX0KLQotbmFtZXNwYWNlIElu
c3BlY3RvciB7Ci1jbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7Ci19Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRnJhbWU7Ci1jbGFzcyBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVs
ZTsKLWNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKLWNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7
Ci0KLXR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwotCi1jbGFzcyBJbnNwZWN0b3JDYW52YXNB
Z2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJhc2UsIHB1YmxpYyBJbnNwZWN0b3I6Okluc3Bl
Y3RvckNhbnZhc0JhY2tlbmREaXNwYXRjaGVySGFuZGxlciB7Ci1wdWJsaWM6Ci0gICAgSW5zcGVj
dG9yQ2FudmFzQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCos
IEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7Ci0gICAgfkluc3BlY3RvckNhbnZh
c0FnZW50KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJvbnRlbmRBbmRCYWNrZW5k
KEluc3BlY3Rvcjo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiwgSW5zcGVjdG9yOjpJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVz
dHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckRpc2Nvbm5lY3RSZWFz
b24pIG92ZXJyaWRlOwotCi0gICAgdm9pZCBmcmFtZU5hdmlnYXRlZChGcmFtZSopOwotICAgIHZv
aWQgZnJhbWVEZXRhY2hlZChGcmFtZSopOwotICAgIHZvaWQgZGlkQmVnaW5GcmFtZSgpOwotCi0g
ICAgLy8gQ2FsbGVkIGZyb20gSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9uLgotICAgIERl
cHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCB3cmFwQ2FudmFzMkRSZW5kZXJpbmdDb250ZXh0Rm9ySW5z
dHJ1bWVudGF0aW9uKGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYpOwotI2lmIEVOQUJM
RShXRUJHTCkKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3Qgd3JhcFdlYkdMUmVuZGVyaW5n
Q29udGV4dEZvckluc3RydW1lbnRhdGlvbihjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3Qm
KTsKLSNlbmRpZgotCi0gICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4KLSAgICB2aXJ0
dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc2FibGUoRXJyb3JTdHJpbmcqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZHJvcFRy
YWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q2FudmFz
OjpUcmFjZUxvZ0lkJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGhhc1VuaW5zdHJ1bWVu
dGVkQ2FudmFzZXMoRXJyb3JTdHJpbmcqLCBib29sKikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIGNhcHR1cmVGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IEluc3BlY3Rvcjo6VHlwZUJ1aWxk
ZXI6Ok5ldHdvcms6OkZyYW1lSWQqLCBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlRy
YWNlTG9nSWQqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RhcnRDYXB0dXJpbmcoRXJy
b3JTdHJpbmcqLCBjb25zdCBJbnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpOZXR3b3JrOjpGcmFtZUlk
KiwgSW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFjZUxvZ0lkKikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BDYXB0dXJpbmcoRXJyb3JTdHJpbmcqLCBjb25zdCBJbnNw
ZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nSWQmKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0VHJhY2VMb2coRXJyb3JTdHJpbmcqLCBjb25zdCBJbnNwZWN0b3I6OlR5
cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nSWQmLCBjb25zdCBpbnQqLCBjb25zdCBpbnQqLCBS
ZWZQdHI8SW5zcGVjdG9yOjpUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFjZUxvZz4mKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVwbGF5VHJhY2VMb2coRXJyb3JTdHJpbmcqLCBjb25zdCBJ
bnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nSWQmLCBpbnQsIFJlZlB0cjxJ
bnNwZWN0b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+Jikgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIGdldFJlc291cmNlSW5mbyhFcnJvclN0cmluZyosIGNvbnN0IElu
c3BlY3Rvcjo6VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VJZCYsIFJlZlB0cjxJbnNwZWN0
b3I6OlR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlSW5mbz4mKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VTdGF0ZShFcnJvclN0cmluZyosIGNvbnN0IEluc3BlY3Rv
cjo6VHlwZUJ1aWxkZXI6OkNhbnZhczo6VHJhY2VMb2dJZCYsIGNvbnN0IEluc3BlY3Rvcjo6VHlw
ZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VJZCYsIFJlZlB0cjxJbnNwZWN0b3I6OlR5cGVCdWls
ZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+Jikgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAg
SW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoRXJy
b3JTdHJpbmcqLCBKU0M6OkV4ZWNTdGF0ZSopOwotICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlIGluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlKEVycm9yU3RyaW5nKiwgY29uc3QgRGVwcmVj
YXRlZDo6U2NyaXB0T2JqZWN0Jik7Ci0gICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgaW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmKTsKLQot
ICAgIHZvaWQgZmluZEZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzKCk7Ci0gICAgYm9v
bCBjaGVja0lzRW5hYmxlZChFcnJvclN0cmluZyopIGNvbnN0OwotICAgIERlcHJlY2F0ZWQ6OlNj
cmlwdE9iamVjdCBub3RpZnlSZW5kZXJpbmdDb250ZXh0V2FzV3JhcHBlZChjb25zdCBEZXByZWNh
dGVkOjpTY3JpcHRPYmplY3QmKTsKLQotICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdl
bnQ7Ci0gICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6Okluc3BlY3RvckNhbnZh
c0Zyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVuZERpc3BhdGNoZXI7Ci0gICAgUmVmUHRyPElu
c3BlY3Rvcjo6SW5zcGVjdG9yQ2FudmFzQmFja2VuZERpc3BhdGNoZXI+IG1fYmFja2VuZERpc3Bh
dGNoZXI7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7Ci0gICAgLy8gQ29udGFpbnMgYWxsIGZyYW1lcyB3
aXRoIGNhbnZhc2VzLCB2YWx1ZSBpcyB0cnVlIG9ubHkgZm9yIGZyYW1lcyB0aGF0IGhhdmUgYW4g
dW5pbnN0cnVtZW50ZWQgY2FudmFzLgotICAgIHR5cGVkZWYgSGFzaE1hcDxGcmFtZSosIGJvb2w+
IEZyYW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzOwotICAgIEZyYW1lc1dpdGhVbmluc3Ry
dW1lbnRlZENhbnZhc2VzIG1fZnJhbWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXM7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQot
Ci0jZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQ2FudmFzQWdlbnRfaCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRp
b24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE1MGM5Mi4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9u
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JDYW52YXNJ
bnN0cnVtZW50YXRpb25faAotI2RlZmluZSBJbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb25f
aAotCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCi0j
aW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0T2JqZWN0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d3Jh
cENhbnZhczJEUmVuZGVyaW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYgY29udGV4dCkKLXsKLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkgewot
ICAgICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0FnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBj
YW52YXNBZ2VudC0+d3JhcENhbnZhczJEUmVuZGVyaW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlv
bihjb250ZXh0KTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOwotI2VuZGlmCi0gICAgcmV0dXJuIERlcHJlY2F0ZWQ6
OlNjcmlwdE9iamVjdCgpOwotfQotCi0jaWYgRU5BQkxFKFdFQkdMKQotRGVwcmVjYXRlZDo6U2Ny
aXB0T2JqZWN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d3JhcFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEZvckluc3RydW1lbnRhdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IERlcHJlY2F0
ZWQ6OlNjcmlwdE9iamVjdCYgZ2xDb250ZXh0KQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0g
ICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzRm9yRG9jdW1lbnQoZG9jdW1lbnQpKSB7Ci0gICAgICAgIGlmIChJbnNwZWN0
b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JDYW52YXNBZ2VudCgpKQotICAgICAgICAgICAgcmV0dXJuIGNhbnZhc0FnZW50LT53cmFwV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Rm9ySW5zdHJ1bWVudGF0aW9uKGdsQ29udGV4dCk7Ci0gICAgfQot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwotICAgIFVOVVNFRF9QQVJBTShnbENv
bnRleHQpOwotI2VuZGlmCi0gICAgcmV0dXJuIERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCgpOwot
fQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQ2FudmFzSW5zdHJ1bWVudGF0aW9uX2gpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXgg
ODM1ZmY0Yy4uYTQyZWMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckNTU0FnZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ2FudmFz
QWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCIKQEAg
LTE2Miw4ICsxNjEsNiBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVy
KFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogCiAgICAgbV9hZ2VudHMu
YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yV29ya2VyQWdlbnQ+KG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSkpOwogCi0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlx
dWU8SW5zcGVjdG9yQ2FudmFzQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFn
ZUFnZW50LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSkpOwotCiAgICAgbV9hZ2VudHMu
YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySW5wdXRBZ2VudD4obV9pbnN0cnVtZW50
aW5nQWdlbnRzLmdldCgpLCAmcGFnZSkpOwogCiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KG1faW5zdHJ1bWVudGluZ0FnZW50cy5n
ZXQoKSkpOwpAQCAtNDE2LDggKzQxMyw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlk
QmVnaW5GcmFtZSgpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5l
QWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkK
ICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkQmVnaW5GcmFtZSgpOwotICAgIGlmIChJbnNwZWN0
b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3Bl
Y3RvckNhbnZhc0FnZW50KCkpCi0gICAgICAgIGNhbnZhc0FnZW50LT5kaWRCZWdpbkZyYW1lKCk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkQ2FuY2VsRnJhbWUoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAppbmRleCAzMDUxMmFiLi5lNzQ3NmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNDMsNyArNDMsNiBAQAog
I2luY2x1ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNTU0FnZW50LmgiCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuaCIKQEAgLTczOSw4ICs3MzgsNiBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbgogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXRhY2hl
ZEZyb21QYXJlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEZyYW1lKiBmcmFtZSkKIHsKLSAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNhbnZhc0Fn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkKLSAgICAg
ICAgY2FudmFzQWdlbnQtPmZyYW1lRGV0YWNoZWQoZnJhbWUpOwogICAgIGlmIChJbnNwZWN0b3JQ
YWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VB
Z2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmZyYW1lRGV0YWNoZWQoZnJhbWUpOwogfQpAQCAt
NzczLDggKzc3MCw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRM
b2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAgICAgfQogICAgIGlmIChJ
bnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JET01BZ2VudCgpKQogICAgICAgICBkb21BZ2VudC0+ZGlkQ29tbWl0TG9hZChsb2FkZXItPmZy
YW1lKCktPmRvY3VtZW50KCkpOwotICAgIGlmIChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFz
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQotICAg
ICAgICBjYW52YXNBZ2VudC0+ZnJhbWVOYXZpZ2F0ZWQobG9hZGVyLT5mcmFtZSgpKTsKICAgICBp
ZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT5mcmFtZU5hdmlnYXRlZChs
b2FkZXIpOwogfQpAQCAtMTA2MiwxMiArMTA1Nyw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzSW1wbChJbnN0cnVtZW50aW5nQWdl
CiAgICAgICAgIGFwcGxpY2F0aW9uQ2FjaGVBZ2VudC0+dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0
YXR1cyhmcmFtZSk7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjYW52YXNB
Z2VudEVuYWJsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCkKLXsKLSAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5z
dHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAg
cmV0dXJuIGluc3RydW1lbnRpbmdBZ2VudHMgJiYgaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yQ2FudmFzQWdlbnQoKTsKLX0KLQogYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNv
bnNvbGVBZ2VudEVuYWJsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKIHsKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
ID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckNvbnRleHQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKaW5kZXggZGRmZjg5Mi4uYjVmNjNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjYxLDEyICsyNjEsMTAg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGZyb250ZW5kQ3JlYXRlZCgpIHsgc19mcm9udGVu
ZENvdW50ZXIgKz0gMTsgfQogICAgIHN0YXRpYyB2b2lkIGZyb250ZW5kRGVsZXRlZCgpIHsgc19m
cm9udGVuZENvdW50ZXIgLT0gMTsgfQogICAgIHN0YXRpYyBib29sIGhhc0Zyb250ZW5kcygpIHsg
cmV0dXJuIHNfZnJvbnRlbmRDb3VudGVyOyB9Ci0gICAgc3RhdGljIGJvb2wgY2FudmFzQWdlbnRF
bmFibGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgYm9vbCBjb25zb2xl
QWdlbnRFbmFibGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKICAgICBzdGF0aWMgYm9vbCB0
aW1lbGluZUFnZW50RW5hYmxlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAjZWxzZQogICAg
IHN0YXRpYyBib29sIGhhc0Zyb250ZW5kcygpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgc3RhdGlj
IGJvb2wgY2FudmFzQWdlbnRFbmFibGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIGNvbnNvbGVBZ2VudEVuYWJsZWQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGJvb2wgcnVudGlt
ZUFnZW50RW5hYmxlZChGcmFtZSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGJvb2wg
dGltZWxpbmVBZ2VudEVuYWJsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgcmV0dXJuIGZh
bHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGlu
Z0FnZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5jcHAKaW5kZXggYjIyYzdiNS4uOWNiNGNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmNwcApAQCAtNjUsNyArNjUsNiBAQCBJbnN0cnVt
ZW50aW5nQWdlbnRzOjpJbnN0cnVtZW50aW5nQWdlbnRzKEluc3BlY3RvckVudmlyb25tZW50JiBl
bnZpcm9ubWVudCkKICAgICAsIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudChudWxscHRyKQog
ICAgICwgbV9pbnNwZWN0b3JQcm9maWxlckFnZW50KG51bGxwdHIpCiAgICAgLCBtX2luc3BlY3Rv
cldvcmtlckFnZW50KG51bGxwdHIpCi0gICAgLCBtX2luc3BlY3RvckNhbnZhc0FnZW50KG51bGxw
dHIpCiB7CiB9CiAKQEAgLTkxLDcgKzkwLDYgQEAgdm9pZCBJbnN0cnVtZW50aW5nQWdlbnRzOjpy
ZXNldCgpCiAgICAgbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50ID0gbnVsbHB0cjsKICAgICBt
X2luc3BlY3RvclByb2ZpbGVyQWdlbnQgPSBudWxscHRyOwogICAgIG1faW5zcGVjdG9yV29ya2Vy
QWdlbnQgPSBudWxscHRyOwotICAgIG1faW5zcGVjdG9yQ2FudmFzQWdlbnQgPSBudWxscHRyOwog
fQogCiBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50YXRpb25Gb3JQYWdlKFBhZ2UqIHBh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaApp
bmRleCAzN2ZhYjE1Li44MjhjY2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnN0cnVtZW50aW5nQWdlbnRzLmgKQEAgLTQ2LDcgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JDU1NBZ2VudDsKLWNsYXNzIEluc3BlY3RvckNhbnZhc0FnZW50OwogY2xhc3MgSW5zcGVjdG9y
RE9NQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OwogY2xhc3MgSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50OwpAQCAtMTM0LDkgKzEzMyw2IEBAIHB1YmxpYzoKICAgICBJbnNw
ZWN0b3JXb3JrZXJBZ2VudCogaW5zcGVjdG9yV29ya2VyQWdlbnQoKSBjb25zdCB7IHJldHVybiBt
X2luc3BlY3RvcldvcmtlckFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JXb3JrZXJBZ2Vu
dChJbnNwZWN0b3JXb3JrZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JXb3JrZXJBZ2VudCA9
IGFnZW50OyB9CiAKLSAgICBJbnNwZWN0b3JDYW52YXNBZ2VudCogaW5zcGVjdG9yQ2FudmFzQWdl
bnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckNhbnZhc0FnZW50OyB9Ci0gICAgdm9pZCBz
ZXRJbnNwZWN0b3JDYW52YXNBZ2VudChJbnNwZWN0b3JDYW52YXNBZ2VudCogYWdlbnQpIHsgbV9p
bnNwZWN0b3JDYW52YXNBZ2VudCA9IGFnZW50OyB9Ci0KICAgICBJbnNwZWN0b3JMYXllclRyZWVB
Z2VudCogaW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3Rv
ckxheWVyVHJlZUFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JMYXllclRyZWVBZ2VudChJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JMYXllclRyZWVBZ2Vu
dCA9IGFnZW50OyB9CiAKQEAgLTE2Niw3ICsxNjIsNiBAQCBwcml2YXRlOgogICAgIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQqIG1faW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKICAgICBJbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudCogbV9pbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudDsKICAgICBJbnNw
ZWN0b3JXb3JrZXJBZ2VudCogbV9pbnNwZWN0b3JXb3JrZXJBZ2VudDsKLSAgICBJbnNwZWN0b3JD
YW52YXNBZ2VudCogbV9pbnNwZWN0b3JDYW52YXNBZ2VudDsKIH07CiAKIEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRhdGlvbkZvclBhZ2UoUGFnZSopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>